@wavemaker/app-rn-runtime 11.4.2-next.25744 → 11.4.2-next.25746

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 (39) hide show
  1. app-rn-runtime/components/advanced/carousel/carousel-template/carousel-template.component.js +4 -1
  2. app-rn-runtime/components/advanced/carousel/carousel-template/carousel-template.component.js.map +1 -1
  3. app-rn-runtime/components/advanced/carousel/carousel-template/carousel-template.styles.js +1 -2
  4. app-rn-runtime/components/advanced/carousel/carousel-template/carousel-template.styles.js.map +1 -1
  5. app-rn-runtime/components/advanced/carousel/carousel.component.js +107 -70
  6. app-rn-runtime/components/advanced/carousel/carousel.component.js.map +1 -1
  7. app-rn-runtime/components/advanced/carousel/carousel.props.js +2 -0
  8. app-rn-runtime/components/advanced/carousel/carousel.props.js.map +1 -1
  9. app-rn-runtime/components/advanced/carousel/carousel.styles.js +17 -9
  10. app-rn-runtime/components/advanced/carousel/carousel.styles.js.map +1 -1
  11. app-rn-runtime/components/basic/icon/icon.component.js +3 -0
  12. app-rn-runtime/components/basic/icon/icon.component.js.map +1 -1
  13. app-rn-runtime/components/basic/search/search.component.js +3 -1
  14. app-rn-runtime/components/basic/search/search.component.js.map +1 -1
  15. app-rn-runtime/components/container/accordion/accordion.component.js +6 -2
  16. app-rn-runtime/components/container/accordion/accordion.component.js.map +1 -1
  17. app-rn-runtime/components/data/list/list-template/list-template.component.js +15 -1
  18. app-rn-runtime/components/data/list/list-template/list-template.component.js.map +1 -1
  19. app-rn-runtime/components/data/list/list-template/list-template.styles.js +7 -3
  20. app-rn-runtime/components/data/list/list-template/list-template.styles.js.map +1 -1
  21. app-rn-runtime/components/data/list/list.component.js +14 -3
  22. app-rn-runtime/components/data/list/list.component.js.map +1 -1
  23. app-rn-runtime/components/data/list/list.props.js +6 -0
  24. app-rn-runtime/components/data/list/list.props.js.map +1 -1
  25. app-rn-runtime/components/input/radioset/radioset.component.js +7 -3
  26. app-rn-runtime/components/input/radioset/radioset.component.js.map +1 -1
  27. app-rn-runtime/components/input/radioset/radioset.props.js +6 -0
  28. app-rn-runtime/components/input/radioset/radioset.props.js.map +1 -1
  29. app-rn-runtime/components/input/radioset/radioset.styles.js +4 -8
  30. app-rn-runtime/components/input/radioset/radioset.styles.js.map +1 -1
  31. app-rn-runtime/components/navigation/basenav/basenav.component.js +2 -0
  32. app-rn-runtime/components/navigation/basenav/basenav.component.js.map +1 -1
  33. app-rn-runtime/components/navigation/navitem/navitem.component.js +1 -1
  34. app-rn-runtime/components/navigation/navitem/navitem.component.js.map +1 -1
  35. app-rn-runtime/gestures/swipe.animation.js +34 -11
  36. app-rn-runtime/gestures/swipe.animation.js.map +1 -1
  37. app-rn-runtime/package.json +3 -3
  38. app-rn-runtime/styles/theme.js +16 -1
  39. app-rn-runtime/styles/theme.js.map +1 -1
@@ -9,8 +9,11 @@ export default class WmCarouselTemplate extends BaseComponent {
9
9
  super(props, DEFAULT_CLASS, new WmCarouselTemplateProps());
10
10
  }
11
11
  renderWidget(props) {
12
+ var _this$parent;
12
13
  return /*#__PURE__*/React.createElement(View, {
13
- style: this.styles.root
14
+ style: [this.styles.root, {
15
+ height: this.styles.root.height || ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.styles.root.height) && '100%'
16
+ }]
14
17
  }, this._background, props.children);
15
18
  }
16
19
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","BaseComponent","BaseComponentState","WmCarouselTemplateProps","DEFAULT_CLASS","WmCarouselTemplateState","WmCarouselTemplate","constructor","props","renderWidget","createElement","style","styles","root","_background","children"],"sources":["carousel-template.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmCarouselTemplateProps from './carousel-template.props';\nimport { DEFAULT_CLASS, WmCarouselTemplateStyles } from './carousel-template.styles';\n\nexport class WmCarouselTemplateState extends BaseComponentState<WmCarouselTemplateProps> {}\n\nexport default class WmCarouselTemplate extends BaseComponent<WmCarouselTemplateProps, WmCarouselTemplateState, WmCarouselTemplateStyles> {\n\n constructor(props: WmCarouselTemplateProps) {\n super(props, DEFAULT_CLASS, new WmCarouselTemplateProps());\n }\n\n renderWidget(props: WmCarouselTemplateProps) {\n return (<View style={this.styles.root}>{this._background}{props.children}</View>); \n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,uBAAuB,MAAM,2BAA2B;AAC/D,SAASC,aAAa,QAAkC,4BAA4B;AAEpF,OAAO,MAAMC,uBAAuB,SAASH,kBAAkB,CAA0B;AAEzF,eAAe,MAAMI,kBAAkB,SAASL,aAAa,CAA6E;EAExIM,WAAWA,CAACC,KAA8B,EAAE;IAC1C,KAAK,CAACA,KAAK,EAAEJ,aAAa,EAAE,IAAID,uBAAuB,CAAC,CAAC,CAAC;EAC5D;EAEAM,YAAYA,CAACD,KAA8B,EAAE;IAC3C,oBAAQT,KAAA,CAAAW,aAAA,CAACV,IAAI;MAACW,KAAK,EAAE,IAAI,CAACC,MAAM,CAACC;IAAK,GAAE,IAAI,CAACC,WAAW,EAAEN,KAAK,CAACO,QAAe,CAAC;EAClF;AACF"}
1
+ {"version":3,"names":["React","View","BaseComponent","BaseComponentState","WmCarouselTemplateProps","DEFAULT_CLASS","WmCarouselTemplateState","WmCarouselTemplate","constructor","props","renderWidget","_this$parent","createElement","style","styles","root","height","parent","_background","children"],"sources":["carousel-template.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmCarouselTemplateProps from './carousel-template.props';\nimport { DEFAULT_CLASS, WmCarouselTemplateStyles } from './carousel-template.styles';\n\nexport class WmCarouselTemplateState extends BaseComponentState<WmCarouselTemplateProps> {}\n\nexport default class WmCarouselTemplate extends BaseComponent<WmCarouselTemplateProps, WmCarouselTemplateState, WmCarouselTemplateStyles> {\n\n constructor(props: WmCarouselTemplateProps) {\n super(props, DEFAULT_CLASS, new WmCarouselTemplateProps());\n }\n\n renderWidget(props: WmCarouselTemplateProps) {\n return (<View style={[this.styles.root, {\n height: this.styles.root.height || (this.parent?.styles.root.height && '100%')\n }]}>{this._background}{props.children}</View>); \n }\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,+CAA+C;AAEjG,OAAOC,uBAAuB,MAAM,2BAA2B;AAC/D,SAASC,aAAa,QAAkC,4BAA4B;AAEpF,OAAO,MAAMC,uBAAuB,SAASH,kBAAkB,CAA0B;AAEzF,eAAe,MAAMI,kBAAkB,SAASL,aAAa,CAA6E;EAExIM,WAAWA,CAACC,KAA8B,EAAE;IAC1C,KAAK,CAACA,KAAK,EAAEJ,aAAa,EAAE,IAAID,uBAAuB,CAAC,CAAC,CAAC;EAC5D;EAEAM,YAAYA,CAACD,KAA8B,EAAE;IAAA,IAAAE,YAAA;IAC3C,oBAAQX,KAAA,CAAAY,aAAA,CAACX,IAAI;MAACY,KAAK,EAAE,CAAC,IAAI,CAACC,MAAM,CAACC,IAAI,EAAE;QACtCC,MAAM,EAAE,IAAI,CAACF,MAAM,CAACC,IAAI,CAACC,MAAM,IAAK,EAAAL,YAAA,OAAI,CAACM,MAAM,cAAAN,YAAA,uBAAXA,YAAA,CAAaG,MAAM,CAACC,IAAI,CAACC,MAAM,KAAI;MACzE,CAAC;IAAE,GAAE,IAAI,CAACE,WAAW,EAAET,KAAK,CAACU,QAAe,CAAC;EAC/C;AACF"}
@@ -7,8 +7,7 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
7
7
  flexDirection: 'column',
8
8
  justifyContent: 'center',
9
9
  alignItems: 'center',
10
- width: '100%',
11
- height: '100%'
10
+ width: '100%'
12
11
  },
13
12
  text: {}
14
13
  });
@@ -1 +1 @@
1
- {"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","flexDirection","justifyContent","alignItems","width","height","text"],"sources":["carousel-template.styles.ts"],"sourcesContent":["import BASE_THEME from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport type WmCarouselTemplateStyles = BaseStyles & {};\n\nexport const DEFAULT_CLASS = 'app-carousel-template';\n\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmCarouselTemplateStyles = defineStyles({\n root: {\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%',\n height: '100%'\n },\n text: {}\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAM,wCAAwC;AAC/D,SAAqBC,YAAY,QAAQ,+CAA+C;AAIxF,OAAO,MAAMC,aAAa,GAAG,uBAAuB;AAEpDF,UAAU,CAACG,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACnD,MAAMC,aAAuC,GAAGL,YAAY,CAAC;IACzDM,IAAI,EAAE;MACFC,aAAa,EAAE,QAAQ;MACvBC,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpBC,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE;IACZ,CAAC;IACDC,IAAI,EAAE,CAAC;EACX,CAAC,CAAC;EAEFR,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;AAC9C,CAAC,CAAC"}
1
+ {"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","defaultStyles","root","flexDirection","justifyContent","alignItems","width","text"],"sources":["carousel-template.styles.ts"],"sourcesContent":["import BASE_THEME from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\n\nexport type WmCarouselTemplateStyles = BaseStyles & {};\n\nexport const DEFAULT_CLASS = 'app-carousel-template';\n\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const defaultStyles: WmCarouselTemplateStyles = defineStyles({\n root: {\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n width: '100%'\n },\n text: {}\n });\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n});"],"mappings":"AAAA,OAAOA,UAAU,MAAM,wCAAwC;AAC/D,SAAqBC,YAAY,QAAQ,+CAA+C;AAIxF,OAAO,MAAMC,aAAa,GAAG,uBAAuB;AAEpDF,UAAU,CAACG,aAAa,CAAC,CAACC,cAAc,EAAEC,QAAQ,KAAK;EACnD,MAAMC,aAAuC,GAAGL,YAAY,CAAC;IACzDM,IAAI,EAAE;MACFC,aAAa,EAAE,QAAQ;MACvBC,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpBC,KAAK,EAAE;IACX,CAAC;IACDC,IAAI,EAAE,CAAC;EACX,CAAC,CAAC;EAEFP,QAAQ,CAACH,aAAa,EAAE,EAAE,EAAEI,aAAa,CAAC;AAC9C,CAAC,CAAC"}
@@ -2,71 +2,78 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
2
2
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
3
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
4
  import React from 'react';
5
- import { View, Text } from 'react-native';
6
- import Carousel, { Pagination } from 'react-native-snap-carousel';
5
+ import { isArray } from 'lodash-es';
6
+ import { Animated, View } from 'react-native';
7
7
  import { DefaultKeyExtractor } from '@wavemaker/app-rn-runtime/core/key.extractor';
8
8
  import WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';
9
9
  import { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';
10
+ import * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/swipe.animation';
10
11
  import WmCarouselProps from './carousel.props';
11
12
  import { DEFAULT_CLASS } from './carousel.styles';
12
13
  export class WmCarouselState extends BaseComponentState {
13
14
  constructor() {
14
15
  super(...arguments);
15
- _defineProperty(this, "activeIndex", 0);
16
- _defineProperty(this, "sliderWidth", 0);
16
+ _defineProperty(this, "activeIndex", 1);
17
17
  }
18
18
  }
19
19
  export default class WmCarousel extends BaseComponent {
20
20
  constructor(_props) {
21
21
  super(_props, DEFAULT_CLASS, new WmCarouselProps(), new WmCarouselState());
22
- _defineProperty(this, "carouselRef", null);
23
22
  _defineProperty(this, "noOfSlides", 0);
23
+ _defineProperty(this, "slideLayout", null);
24
24
  _defineProperty(this, "keyExtractor", new DefaultKeyExtractor());
25
25
  _defineProperty(this, "stopPlay", null);
26
+ _defineProperty(this, "animationView", null);
27
+ _defineProperty(this, "animationHandlers", {
28
+ bounds: e => {
29
+ var _this$slideLayout;
30
+ const activeTabIndex = this.state.activeIndex - 1,
31
+ w = ((_this$slideLayout = this.slideLayout) === null || _this$slideLayout === void 0 ? void 0 : _this$slideLayout.width) || 0,
32
+ noOfTabs = this.state.props.dataset.length;
33
+ return {
34
+ lower: -1 * (activeTabIndex - (activeTabIndex === 0 ? 0 : 1)) * w,
35
+ center: -1 * activeTabIndex * w,
36
+ upper: -1 * (activeTabIndex + (activeTabIndex === noOfTabs - 1 ? 0 : 1)) * w
37
+ };
38
+ },
39
+ computePhase: value => {
40
+ var _this$slideLayout2;
41
+ const w = ((_this$slideLayout2 = this.slideLayout) === null || _this$slideLayout2 === void 0 ? void 0 : _this$slideLayout2.width) || 0;
42
+ return w && Math.abs(value / w);
43
+ },
44
+ onLower: e => {
45
+ this.onSlideChange(this.state.activeIndex - 1);
46
+ },
47
+ onUpper: e => {
48
+ this.onSlideChange(this.state.activeIndex + 1);
49
+ }
50
+ });
26
51
  _defineProperty(this, "onSlideChange", index => {
27
52
  const prevIndex = this.state.activeIndex;
28
53
  this.updateState({
29
54
  activeIndex: index
30
55
  }, () => this.invokeEventCallback('onChange', [this, index, prevIndex]));
31
56
  });
32
- _defineProperty(this, "renderItem", data => {
57
+ _defineProperty(this, "renderItem", (item, index) => {
33
58
  const props = this.state.props;
34
59
  if (props.type === 'dynamic') {
35
- return props.renderSlide ? props.renderSlide(data.item, data.index) : null;
60
+ return props.renderSlide ? props.renderSlide(item, index) : null;
36
61
  }
37
- return props.children[data.index];
38
- });
39
- _defineProperty(this, "onLayoutChange", e => {
40
- this.updateState({
41
- sliderWidth: e.nativeEvent.layout.width
42
- });
43
- });
44
- _defineProperty(this, "getDotElement", _ref => {
45
- let {
46
- active,
47
- index
48
- } = _ref;
49
- return /*#__PURE__*/React.createElement(Text, {
50
- style: active ? this.styles.activeDotStyle : this.styles.dotStyle
51
- }, index);
62
+ return props.children[index];
52
63
  });
53
64
  _defineProperty(this, "next", () => {
54
- if (this.carouselRef && this.carouselRef.currentIndex < this.noOfSlides - 1) {
55
- var _this$carouselRef;
56
- (_this$carouselRef = this.carouselRef) === null || _this$carouselRef === void 0 ? void 0 : _this$carouselRef.snapToNext();
65
+ if (this.state.activeIndex >= this.state.props.dataset.length) {
66
+ var _this$animationView;
67
+ this.onSlideChange(1);
68
+ (_this$animationView = this.animationView) === null || _this$animationView === void 0 ? void 0 : _this$animationView.setPosition(0);
57
69
  } else {
58
- var _this$carouselRef2;
59
- (_this$carouselRef2 = this.carouselRef) === null || _this$carouselRef2 === void 0 ? void 0 : _this$carouselRef2.snapToItem(0);
70
+ var _this$animationView2;
71
+ (_this$animationView2 = this.animationView) === null || _this$animationView2 === void 0 ? void 0 : _this$animationView2.goToUpper();
60
72
  }
61
73
  });
62
74
  _defineProperty(this, "prev", () => {
63
- if (this.carouselRef && this.carouselRef.currentIndex > 0) {
64
- var _this$carouselRef3;
65
- (_this$carouselRef3 = this.carouselRef) === null || _this$carouselRef3 === void 0 ? void 0 : _this$carouselRef3.snapToPrev();
66
- } else {
67
- var _this$carouselRef4;
68
- (_this$carouselRef4 = this.carouselRef) === null || _this$carouselRef4 === void 0 ? void 0 : _this$carouselRef4.snapToItem(this.noOfSlides - 1);
69
- }
75
+ var _this$animationView3;
76
+ (_this$animationView3 = this.animationView) === null || _this$animationView3 === void 0 ? void 0 : _this$animationView3.goToLower();
70
77
  });
71
78
  this.cleanup.push(() => {
72
79
  this.stopPlay && this.stopPlay();
@@ -78,14 +85,24 @@ export default class WmCarousel extends BaseComponent {
78
85
  }
79
86
  return 'list_item_' + this.keyExtractor.getKey(item, true);
80
87
  }
88
+ setSlideLayout(event) {
89
+ this.slideLayout = event.nativeEvent.layout;
90
+ this.forceUpdate();
91
+ }
81
92
  autoPlay() {
82
93
  const props = this.state.props;
83
94
  this.stopPlay && this.stopPlay();
84
- if (props.animation && props.animationinterval) {
95
+ if (props.animation === 'auto' && props.animationinterval) {
85
96
  const intervalId = setInterval(() => {
86
97
  this.next();
87
98
  }, props.animationinterval * 1000);
88
99
  this.stopPlay = () => clearInterval(intervalId);
100
+ } else {
101
+ setTimeout(() => {
102
+ var _this$animationView4;
103
+ this.onSlideChange(1);
104
+ (_this$animationView4 = this.animationView) === null || _this$animationView4 === void 0 ? void 0 : _this$animationView4.setPosition(0);
105
+ }, 1000);
89
106
  }
90
107
  }
91
108
  onPropertyChange(name, $new, $old) {
@@ -95,6 +112,9 @@ export default class WmCarousel extends BaseComponent {
95
112
  {
96
113
  var _this$keyExtractor;
97
114
  (_this$keyExtractor = this.keyExtractor) === null || _this$keyExtractor === void 0 ? void 0 : _this$keyExtractor.clear();
115
+ this.updateState({
116
+ activeIndex: Math.min(this.state.activeIndex, ($new === null || $new === void 0 ? void 0 : $new.length) || 0)
117
+ });
98
118
  break;
99
119
  }
100
120
  case 'animation':
@@ -104,51 +124,68 @@ export default class WmCarousel extends BaseComponent {
104
124
  }
105
125
  }
106
126
  }
107
- renderPagination(props, styles) {
108
- return /*#__PURE__*/React.createElement(Pagination, {
109
- carouselRef: this.carouselRef,
110
- dotsLength: this.noOfSlides,
111
- activeDotIndex: this.state.activeIndex,
112
- containerStyle: styles.dotsWrapperStyle,
113
- dotStyle: styles.activeDotStyle,
114
- inactiveDotStyle: styles.dotStyle,
115
- inactiveDotScale: 0.8,
116
- tappableDots: true
117
- });
127
+ renderPagination(data) {
128
+ const maxNoOfDots = this.state.props.maxnoofdots;
129
+ let minIndex = Math.max(this.state.activeIndex - maxNoOfDots + 1, 0);
130
+ let maxIndex = Math.min(minIndex + maxNoOfDots - 1, data.length);
131
+ if (maxIndex === data.length) {
132
+ minIndex = maxIndex - maxNoOfDots;
133
+ }
134
+ return /*#__PURE__*/React.createElement(View, {
135
+ style: this.styles.dotsWrapperStyle
136
+ }, data.map((item, index) => {
137
+ return index >= minIndex && index <= maxIndex ? /*#__PURE__*/React.createElement(View, {
138
+ key: 'dots_' + this.generateItemKey(item, index, this.state.props),
139
+ style: [this.styles.dotStyle, index === this.state.activeIndex - 1 ? this.styles.activeDotStyle : null]
140
+ }) : null;
141
+ }));
118
142
  }
119
143
  renderWidget(props) {
144
+ var _data;
120
145
  const hasNavs = props.controls === 'both' || props.controls === 'navs';
121
146
  const hasDots = props.controls === 'both' || props.controls === 'indicators';
122
147
  let styles = this.styles;
123
- const data = props.type === 'dynamic' ? props.dataset : props.children;
124
- this.noOfSlides = (data === null || data === void 0 ? void 0 : data.length) || 0;
125
- const autoPlay = props.animation === 'auto';
148
+ let data = props.type === 'dynamic' ? props.dataset : props.children;
149
+ data = isArray(data) ? data : [];
150
+ this.noOfSlides = ((_data = data) === null || _data === void 0 ? void 0 : _data.length) || 0;
126
151
  // TODO: loop prop on Carousel is not working Refer: https://github.com/meliorence/react-native-snap-carousel/issues/608
127
152
  return /*#__PURE__*/React.createElement(View, {
128
153
  style: styles.root,
129
- onLayout: this.onLayoutChange
130
- }, this._background, this.state.sliderWidth > 0 ? /*#__PURE__*/React.createElement(Carousel, {
131
- ref: ref => this.carouselRef = ref,
132
- data: data || [],
133
- firstItem: 0,
154
+ onLayout: this.setSlideLayout.bind(this)
155
+ }, this._background, /*#__PURE__*/React.createElement(SwipeAnimation.View, {
156
+ enableGestures: props.enablegestures,
134
157
  style: {
135
- width: '100%',
136
- height: '100%'
158
+ flexDirection: 'row',
159
+ flexWrap: 'nowrap',
160
+ alignItems: 'center'
137
161
  },
138
- enableSnap: true,
139
- loopClonesPerSide: 1,
140
- autoplay: false,
141
- activeSlideAlignment: "start",
142
- keyExtractor: (item, index) => {
143
- return this.generateItemKey(item, index, props);
162
+ direction: "horizontal",
163
+ ref: r => {
164
+ this.animationView = r;
144
165
  },
145
- renderItem: this.renderItem,
146
- sliderWidth: this.state.sliderWidth,
147
- itemWidth: this.state.sliderWidth,
148
- lockScrollWhileSnapping: false,
149
- scrollEnabled: false,
150
- onSnapToItem: this.onSlideChange
151
- }) : null, hasNavs ? /*#__PURE__*/React.createElement(View, {
166
+ handlers: this.animationHandlers
167
+ }, data.map((item, index) => {
168
+ var _this$animationView5, _this$animationView6;
169
+ const isActive = index === this.state.activeIndex - 1;
170
+ let scale = (_this$animationView5 = this.animationView) === null || _this$animationView5 === void 0 ? void 0 : _this$animationView5.animationPhase.interpolate({
171
+ inputRange: [-2000, index - 1, index, index + 1, 2000],
172
+ outputRange: [0.8, 0.8, 1, 0.8, 0.8]
173
+ });
174
+ let translateX = (_this$animationView6 = this.animationView) === null || _this$animationView6 === void 0 ? void 0 : _this$animationView6.animationPhase.interpolate({
175
+ inputRange: [-2000, index - 1, index, index + 1, 2000],
176
+ outputRange: [-56, -56, 0, 56, 56]
177
+ });
178
+ return /*#__PURE__*/React.createElement(Animated.View, {
179
+ key: this.generateItemKey(item, index, props),
180
+ style: [this.styles.slide, index === 0 ? this.styles.firstSlide : null, index === data.length - 1 ? this.styles.lastSlide : null, isActive ? this.styles.activeSlide : null, translateX && scale ? {
181
+ transform: [{
182
+ translateX: translateX
183
+ }, {
184
+ scale: scale
185
+ }]
186
+ } : null]
187
+ }, this.renderItem(item, index));
188
+ })), hasNavs ? /*#__PURE__*/React.createElement(View, {
152
189
  style: styles.btnPanel
153
190
  }, /*#__PURE__*/React.createElement(WmIcon, {
154
191
  iconclass: "wi wi-chevron-left fa-2x",
@@ -158,7 +195,7 @@ export default class WmCarousel extends BaseComponent {
158
195
  iconclass: "wi wi-chevron-right fa-2x",
159
196
  styles: styles.nextBtn,
160
197
  onTap: this.next
161
- })) : null, this.state.sliderWidth > 0 && hasDots && data ? this.renderPagination(props, styles) : null);
198
+ })) : null, hasDots && data ? this.renderPagination(data) : null);
162
199
  }
163
200
  }
164
201
  //# sourceMappingURL=carousel.component.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","Text","Carousel","Pagination","DefaultKeyExtractor","WmIcon","BaseComponent","BaseComponentState","WmCarouselProps","DEFAULT_CLASS","WmCarouselState","constructor","arguments","_defineProperty","WmCarousel","props","index","prevIndex","state","activeIndex","updateState","invokeEventCallback","data","type","renderSlide","item","children","e","sliderWidth","nativeEvent","layout","width","_ref","active","createElement","style","styles","activeDotStyle","dotStyle","carouselRef","currentIndex","noOfSlides","_this$carouselRef","snapToNext","_this$carouselRef2","snapToItem","_this$carouselRef3","snapToPrev","_this$carouselRef4","cleanup","push","stopPlay","generateItemKey","itemkey","_showSkeleton","keyExtractor","getKey","autoPlay","animation","animationinterval","intervalId","setInterval","next","clearInterval","onPropertyChange","name","$new","$old","_this$keyExtractor","clear","renderPagination","dotsLength","activeDotIndex","containerStyle","dotsWrapperStyle","inactiveDotStyle","inactiveDotScale","tappableDots","renderWidget","hasNavs","controls","hasDots","dataset","length","root","onLayout","onLayoutChange","_background","ref","firstItem","height","enableSnap","loopClonesPerSide","autoplay","activeSlideAlignment","renderItem","itemWidth","lockScrollWhileSnapping","scrollEnabled","onSnapToItem","onSlideChange","btnPanel","iconclass","prevBtn","onTap","prev","nextBtn"],"sources":["carousel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { View, Text, LayoutChangeEvent } from 'react-native';\nimport Carousel, { Pagination } from 'react-native-snap-carousel';\nimport { DefaultKeyExtractor } from '@wavemaker/app-rn-runtime/core/key.extractor';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmCarouselProps from './carousel.props';\nimport { DEFAULT_CLASS, WmCarouselStyles } from './carousel.styles';\n\nexport class WmCarouselState extends BaseComponentState<WmCarouselProps> {\n activeIndex = 0;\n sliderWidth = 0;\n}\n\nexport default class WmCarousel extends BaseComponent<WmCarouselProps, WmCarouselState, WmCarouselStyles> {\n\n carouselRef: Carousel<unknown> | null = null as any;\n noOfSlides: number = 0;\n private keyExtractor = new DefaultKeyExtractor();\n stopPlay: Function = null as any;\n\n constructor(props: WmCarouselProps) {\n super(props, DEFAULT_CLASS, new WmCarouselProps(), new WmCarouselState());\n this.cleanup.push(() => {\n this.stopPlay && this.stopPlay();\n })\n }\n\n private generateItemKey(item: any, index: number, props: WmCarouselProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n autoPlay() {\n const props = this.state.props;\n this.stopPlay && this.stopPlay();\n if (props.animation && props.animationinterval) {\n const intervalId = setInterval(() => {\n this.next();\n }, props.animationinterval * 1000);\n this.stopPlay = () => clearInterval(intervalId);\n }\n }\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'dataset': {\n this.keyExtractor?.clear();\n break;\n }\n case 'animation':\n case 'animationinterval' : {\n this.autoPlay();\n }\n }\n }\n\n onSlideChange = (index: number) => {\n const prevIndex = this.state.activeIndex;\n this.updateState({\n activeIndex: index\n } as WmCarouselState,\n () => this.invokeEventCallback('onChange', [this, index, prevIndex]));\n }\n\n renderItem = (data: any) => {\n const props = this.state.props;\n if (props.type === 'dynamic') {\n return props.renderSlide ? props.renderSlide(data.item, data.index) : null;\n }\n return props.children[data.index];\n }\n\n onLayoutChange = (e: LayoutChangeEvent) => {\n this.updateState({\n sliderWidth: e.nativeEvent.layout.width\n } as WmCarouselState);\n }\n\n getDotElement = ({active, index}: {active: boolean, index: number}) => {\n return (<Text style={active ? this.styles.activeDotStyle: this.styles.dotStyle}>{index}</Text>);\n }\n\n renderPagination(props: WmCarouselProps, styles: WmCarouselStyles) {\n return (\n <Pagination\n carouselRef={this.carouselRef as any}\n dotsLength={this.noOfSlides}\n activeDotIndex={this.state.activeIndex}\n containerStyle={styles.dotsWrapperStyle}\n dotStyle={styles.activeDotStyle}\n inactiveDotStyle={styles.dotStyle}\n inactiveDotScale={0.8}\n tappableDots={true}\n />\n );\n }\n\n next = () => {\n if (this.carouselRef && this.carouselRef.currentIndex < this.noOfSlides - 1) {\n this.carouselRef?.snapToNext();\n } else {\n this.carouselRef?.snapToItem(0);\n }\n }\n\n prev = () => {\n if (this.carouselRef && this.carouselRef.currentIndex > 0) {\n this.carouselRef?.snapToPrev();\n } else {\n this.carouselRef?.snapToItem(this.noOfSlides - 1);\n }\n }\n\n renderWidget(props: WmCarouselProps) {\n const hasNavs = props.controls === 'both' || props.controls ==='navs';\n const hasDots = props.controls === 'both' || props.controls ==='indicators';\n let styles = this.styles;\n const data = props.type === 'dynamic' ? props.dataset : props.children;\n this.noOfSlides = data?.length || 0;\n const autoPlay = props.animation === 'auto';\n // TODO: loop prop on Carousel is not working Refer: https://github.com/meliorence/react-native-snap-carousel/issues/608\n return (\n <View style={styles.root} onLayout={this.onLayoutChange}>\n {this._background}\n {this.state.sliderWidth > 0 ?\n (<Carousel\n ref={ref => this.carouselRef = ref}\n data={data || []}\n firstItem={0}\n style={{width: '100%', height: '100%'}}\n enableSnap={true}\n loopClonesPerSide={1}\n autoplay={false}\n activeSlideAlignment='start'\n keyExtractor={(item: any, index: number) => {\n return this.generateItemKey(item, index, props)\n }}\n renderItem={this.renderItem}\n sliderWidth={this.state.sliderWidth}\n itemWidth={this.state.sliderWidth}\n lockScrollWhileSnapping={false}\n scrollEnabled={false}\n onSnapToItem={this.onSlideChange}\n ></Carousel>) : null}\n {hasNavs ? (\n <View style={styles.btnPanel}>\n <WmIcon\n iconclass=\"wi wi-chevron-left fa-2x\"\n styles={styles.prevBtn}\n onTap={this.prev}/>\n <WmIcon\n iconclass=\"wi wi-chevron-right fa-2x\"\n styles={styles.nextBtn}\n onTap={this.next}/>\n </View>): null}\n {this.state.sliderWidth > 0 && hasDots && data ? this.renderPagination(props, styles) : null}\n </View>);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","isArray","Animated","View","DefaultKeyExtractor","WmIcon","BaseComponent","BaseComponentState","SwipeAnimation","WmCarouselProps","DEFAULT_CLASS","WmCarouselState","constructor","arguments","_defineProperty","WmCarousel","props","bounds","e","_this$slideLayout","activeTabIndex","state","activeIndex","w","slideLayout","width","noOfTabs","dataset","length","lower","center","upper","computePhase","value","_this$slideLayout2","Math","abs","onLower","onSlideChange","onUpper","index","prevIndex","updateState","invokeEventCallback","item","type","renderSlide","children","_this$animationView","animationView","setPosition","_this$animationView2","goToUpper","_this$animationView3","goToLower","cleanup","push","stopPlay","generateItemKey","itemkey","_showSkeleton","keyExtractor","getKey","setSlideLayout","event","nativeEvent","layout","forceUpdate","autoPlay","animation","animationinterval","intervalId","setInterval","next","clearInterval","setTimeout","_this$animationView4","onPropertyChange","name","$new","$old","_this$keyExtractor","clear","min","renderPagination","data","maxNoOfDots","maxnoofdots","minIndex","max","maxIndex","createElement","style","styles","dotsWrapperStyle","map","key","dotStyle","activeDotStyle","renderWidget","_data","hasNavs","controls","hasDots","noOfSlides","root","onLayout","bind","_background","enableGestures","enablegestures","flexDirection","flexWrap","alignItems","direction","ref","r","handlers","animationHandlers","_this$animationView5","_this$animationView6","isActive","scale","animationPhase","interpolate","inputRange","outputRange","translateX","slide","firstSlide","lastSlide","activeSlide","transform","renderItem","btnPanel","iconclass","prevBtn","onTap","prev","nextBtn"],"sources":["carousel.component.tsx"],"sourcesContent":["import React from 'react';\nimport { isArray } from 'lodash-es';\nimport { Animated, View, Text, LayoutChangeEvent, LayoutRectangle } from 'react-native';\nimport { DefaultKeyExtractor } from '@wavemaker/app-rn-runtime/core/key.extractor';\nimport WmIcon from '@wavemaker/app-rn-runtime/components/basic/icon/icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\nimport * as SwipeAnimation from '@wavemaker/app-rn-runtime/gestures/swipe.animation';\n\nimport WmCarouselProps from './carousel.props';\nimport { DEFAULT_CLASS, WmCarouselStyles } from './carousel.styles';\n\nexport class WmCarouselState extends BaseComponentState<WmCarouselProps> {\n activeIndex = 1;\n}\n\nexport default class WmCarousel extends BaseComponent<WmCarouselProps, WmCarouselState, WmCarouselStyles> {\n\n noOfSlides: number = 0;\n private slideLayout: LayoutRectangle = null as any;\n private keyExtractor = new DefaultKeyExtractor();\n stopPlay: Function = null as any;\n private animationView: SwipeAnimation.View | null = null as any;\n private animationHandlers = {\n bounds: (e) => {\n const activeTabIndex = this.state.activeIndex - 1,\n w = this.slideLayout?.width || 0,\n noOfTabs = this.state.props.dataset.length;\n return {\n lower: -1 * (activeTabIndex - (activeTabIndex === 0 ? 0 : 1)) * w,\n center: -1 * activeTabIndex * w,\n upper: -1 * (activeTabIndex + (activeTabIndex === noOfTabs - 1 ? 0 : 1)) * w\n };\n },\n computePhase: (value) => {\n const w = this.slideLayout?.width || 0;\n return w && Math.abs(value / w);\n },\n onLower: (e) => {\n this.onSlideChange(this.state.activeIndex - 1);\n },\n onUpper: (e) => {\n this.onSlideChange(this.state.activeIndex + 1);\n }\n } as SwipeAnimation.Handlers;\n\n constructor(props: WmCarouselProps) {\n super(props, DEFAULT_CLASS, new WmCarouselProps(), new WmCarouselState());\n this.cleanup.push(() => {\n this.stopPlay && this.stopPlay();\n })\n }\n\n private generateItemKey(item: any, index: number, props: WmCarouselProps) {\n if (props.itemkey && item && !this._showSkeleton) {\n return props.itemkey(item, index);\n }\n return 'list_item_' + this.keyExtractor.getKey(item, true);\n }\n\n setSlideLayout(event: LayoutChangeEvent) {\n this.slideLayout = event.nativeEvent.layout;\n this.forceUpdate();\n }\n\n autoPlay() {\n const props = this.state.props;\n this.stopPlay && this.stopPlay();\n if (props.animation === 'auto' && props.animationinterval) {\n const intervalId = setInterval(() => {\n this.next();\n }, props.animationinterval * 1000);\n this.stopPlay = () => clearInterval(intervalId);\n } else {\n setTimeout(() => {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n }, 1000);\n }\n }\n\n onPropertyChange(name: string, $new: any, $old: any): void {\n super.onPropertyChange(name, $new, $old);\n switch (name) {\n case 'dataset': {\n this.keyExtractor?.clear();\n this.updateState({\n activeIndex: Math.min(this.state.activeIndex, $new?.length || 0)\n } as WmCarouselState);\n break;\n }\n case 'animation':\n case 'animationinterval' : {\n this.autoPlay();\n }\n }\n }\n\n onSlideChange = (index: number) => {\n const prevIndex = this.state.activeIndex;\n this.updateState({\n activeIndex: index\n } as WmCarouselState,\n () => this.invokeEventCallback('onChange', [this, index, prevIndex]));\n }\n\n renderItem = (item: any, index: number) => {\n const props = this.state.props;\n if (props.type === 'dynamic') {\n return props.renderSlide ? props.renderSlide(item, index) : null;\n }\n return props.children[index];\n }\n\n next = () => {\n if (this.state.activeIndex >= this.state.props.dataset.length) {\n this.onSlideChange(1);\n this.animationView?.setPosition(0);\n } else {\n this.animationView?.goToUpper();\n }\n }\n\n prev = () => {\n this.animationView?.goToLower();\n }\n\n renderPagination(data: any) {\n const maxNoOfDots = this.state.props.maxnoofdots;\n let minIndex = Math.max(this.state.activeIndex - maxNoOfDots + 1, 0);\n let maxIndex = Math.min(minIndex + maxNoOfDots - 1, data.length);\n if (maxIndex === data.length) {\n minIndex = maxIndex - maxNoOfDots;\n }\n return (<View style={this.styles.dotsWrapperStyle}>\n {\n data.map((item: any, index: number) => {\n return index >= minIndex && index <= maxIndex ? (\n <View key={'dots_' + this.generateItemKey(item, index, this.state.props)} \n style={[\n this.styles.dotStyle,\n index === this.state.activeIndex - 1 ? this.styles.activeDotStyle: null]}>\n </View>) : null;\n })\n }\n </View>);\n }\n\n renderWidget(props: WmCarouselProps) {\n const hasNavs = props.controls === 'both' || props.controls ==='navs';\n const hasDots = props.controls === 'both' || props.controls ==='indicators';\n let styles = this.styles;\n let data = props.type === 'dynamic' ? props.dataset : props.children;\n data = isArray(data) ? data : [];\n this.noOfSlides = data?.length || 0;\n // TODO: loop prop on Carousel is not working Refer: https://github.com/meliorence/react-native-snap-carousel/issues/608\n return (\n <View style={styles.root} onLayout={this.setSlideLayout.bind(this)}>\n {this._background}\n <SwipeAnimation.View \n enableGestures={props.enablegestures}\n style={{\n flexDirection: 'row',\n flexWrap: 'nowrap',\n alignItems: 'center'\n }}\n direction='horizontal'\n ref={(r) => {this.animationView = r}}\n handlers = {this.animationHandlers}\n >\n {data.map((item: any, index: number) => {\n const isActive = index === this.state.activeIndex - 1;\n let scale = this.animationView?.animationPhase.interpolate({\n inputRange: [-2000, index - 1, index, index + 1, 2000],\n outputRange: [0.8, 0.8, 1, 0.8, 0.8]\n });\n let translateX = this.animationView?.animationPhase.interpolate({\n inputRange: [-2000, index - 1, index, index + 1, 2000],\n outputRange: [-56, -56, 0, 56, 56]\n });\n return (\n <Animated.View key={this.generateItemKey(item, index, props)}\n style={[this.styles.slide,\n index === 0 ? this.styles.firstSlide : null,\n index === data.length - 1 ? this.styles.lastSlide: null,\n isActive ? this.styles.activeSlide: null,\n translateX && scale ? {\n transform: [\n {\n translateX: translateX\n },\n {\n scale: scale\n }\n ]\n } : null]}>\n {this.renderItem(item, index)}\n </Animated.View>\n );\n })}\n </SwipeAnimation.View>\n {hasNavs ? (\n <View style={styles.btnPanel}>\n <WmIcon\n iconclass=\"wi wi-chevron-left fa-2x\"\n styles={styles.prevBtn}\n onTap={this.prev}/>\n <WmIcon\n iconclass=\"wi wi-chevron-right fa-2x\"\n styles={styles.nextBtn}\n onTap={this.next}/>\n </View>): null}\n {hasDots && data ? this.renderPagination(data) : null}\n </View>);\n }\n}\n"],"mappings":"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"}
@@ -13,6 +13,8 @@ export default class WmCarouselProps extends BaseProps {
13
13
  _defineProperty(this, "children", null);
14
14
  _defineProperty(this, "itemkey", null);
15
15
  _defineProperty(this, "renderSlide", void 0);
16
+ _defineProperty(this, "enablegestures", true);
17
+ _defineProperty(this, "maxnoofdots", 20);
16
18
  }
17
19
  }
18
20
  //# sourceMappingURL=carousel.props.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BaseProps","WmCarouselProps","constructor","arguments","_defineProperty"],"sources":["carousel.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport React from 'react';\n\nexport default class WmCarouselProps extends BaseProps {\n dataset: any = null;\n type?: 'static' | 'dynamic' = 'static';\n animation?: string = 'auto';\n animationinterval?: number = 3;\n controls?: 'both' | 'none' | 'navs' | 'indicators' = 'both';\n children? = null as any;\n itemkey?: ($item: any, $index: any) => any = null as any;\n renderSlide?: ($item: any, $index: number) => React.ReactNode;\n}"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAGzE,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,kBACtC,IAAI;IAAAA,eAAA,eACW,QAAQ;IAAAA,eAAA,oBACjB,MAAM;IAAAA,eAAA,4BACE,CAAC;IAAAA,eAAA,mBACuB,MAAM;IAAAA,eAAA,mBAC/C,IAAI;IAAAA,eAAA,kBAC6B,IAAI;IAAAA,eAAA;EAAA;AAEnD"}
1
+ {"version":3,"names":["BaseProps","WmCarouselProps","constructor","arguments","_defineProperty"],"sources":["carousel.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker/app-rn-runtime/core/base.component';\nimport React from 'react';\n\nexport default class WmCarouselProps extends BaseProps {\n dataset: any = null;\n type?: 'static' | 'dynamic' = 'static';\n animation?: 'auto' | 'none' = 'auto';\n animationinterval?: number = 3;\n controls?: 'both' | 'none' | 'navs' | 'indicators' = 'both';\n children? = null as any;\n itemkey?: ($item: any, $index: any) => any = null as any;\n renderSlide?: ($item: any, $index: number) => React.ReactNode;\n enablegestures = true;\n maxnoofdots = 20;\n}"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,+CAA+C;AAGzE,eAAe,MAAMC,eAAe,SAASD,SAAS,CAAC;EAAAE,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,kBACtC,IAAI;IAAAA,eAAA,eACW,QAAQ;IAAAA,eAAA,oBACR,MAAM;IAAAA,eAAA,4BACP,CAAC;IAAAA,eAAA,mBACuB,MAAM;IAAAA,eAAA,mBAC/C,IAAI;IAAAA,eAAA,kBAC6B,IAAI;IAAAA,eAAA;IAAAA,eAAA,yBAE/B,IAAI;IAAAA,eAAA,sBACR,EAAE;EAAA;AAClB"}
@@ -15,6 +15,16 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
15
15
  position: 'relative'
16
16
  },
17
17
  text: {},
18
+ slide: {
19
+ width: '100%',
20
+ paddingHorizontal: 16,
21
+ transform: [{
22
+ translateX: 0
23
+ }]
24
+ },
25
+ firstSlide: {},
26
+ lastSlide: {},
27
+ activeSlide: {},
18
28
  btnPanel: {
19
29
  position: 'absolute',
20
30
  top: '50%',
@@ -53,25 +63,23 @@ BASE_THEME.registerStyle((themeVariables, addStyle) => {
53
63
  },
54
64
  dotsWrapperStyle: {
55
65
  opacity: 1,
56
- height: 64,
57
- marginTop: -64,
58
- position: 'absolute',
59
- top: '100%',
60
66
  backgroundColor: themeVariables.carouselDotWrapperBgColor,
61
- alignSelf: 'center',
67
+ flexDirection: 'row',
68
+ justifyContent: 'center',
69
+ alignItems: 'center',
62
70
  paddingTop: 4,
63
71
  paddingBottom: 4
64
72
  },
65
73
  activeDotStyle: {
66
- width: 12,
67
- height: 12,
68
- borderRadius: 10,
69
74
  backgroundColor: themeVariables.carouselActiveDotColor,
70
75
  opacity: 1
71
76
  },
72
77
  dotStyle: {
78
+ width: 8,
79
+ height: 8,
80
+ borderRadius: 10,
73
81
  opacity: 0.2,
74
- marginHorizontal: -2,
82
+ marginHorizontal: 2,
75
83
  backgroundColor: themeVariables.carouselDotColor
76
84
  }
77
85
  });
@@ -1 +1 @@
1
- {"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","btn","height","width","borderRadius","borderColor","transparent","borderWidth","justifyContent","defaultStyles","root","position","text","btnPanel","top","marginTop","flexDirection","alignItems","prevBtn","marginLeft","backgroundColor","carouselPrevBgColor","fontSize","icon","color","carouselPrevBtnColor","nextBtn","marginRight","carouselNextBtnColor","dotsWrapperStyle","opacity","carouselDotWrapperBgColor","alignSelf","paddingTop","paddingBottom","activeDotStyle","carouselActiveDotColor","dotStyle","marginHorizontal","carouselDotColor","transform","rotateY","defaultColorF","right","padding","primaryColor"],"sources":["carousel.styles.ts"],"sourcesContent":["import { ViewStyle } from 'react-native';\nimport BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { WmIconStyles } from '@wavemaker/app-rn-runtime/components/basic/icon/icon.styles';\n\nexport type WmCarouselStyles = BaseStyles & {\n btnPanel: AllStyle,\n prevBtn: WmIconStyles,\n nextBtn: WmIconStyles,\n dotsWrapperStyle: AllStyle,\n dotStyle: AllStyle,\n activeDotStyle: AllStyle\n};\nexport const DEFAULT_CLASS = 'app-carousel';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const btn: ViewStyle = {\n height: 48,\n width: 48,\n borderRadius: 48,\n borderColor: themeVariables.transparent,\n borderWidth: 1,\n justifyContent: 'center'\n };\n const defaultStyles: WmCarouselStyles = defineStyles({\n root: {\n position: 'relative'\n },\n text: {},\n btnPanel: {\n position: 'absolute',\n top: '50%',\n marginTop: -64,\n height: 64,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%'\n },\n prevBtn : {\n root: {\n marginLeft: 12,\n ...btn,\n backgroundColor: themeVariables.carouselPrevBgColor\n },\n text: {\n fontSize: 32\n },\n icon : {\n color: themeVariables.carouselPrevBtnColor\n }\n } as WmIconStyles,\n nextBtn : {\n root: {\n marginRight: 12,\n ...btn,\n backgroundColor: themeVariables.carouselPrevBgColor\n },\n text: {\n fontSize: 32\n },\n icon : {\n color: themeVariables.carouselNextBtnColor\n }\n } as WmIconStyles,\n dotsWrapperStyle:{\n opacity: 1,\n height: 64,\n marginTop: -64,\n position: 'absolute',\n top: '100%',\n backgroundColor: themeVariables.carouselDotWrapperBgColor,\n alignSelf: 'center',\n paddingTop: 4,\n paddingBottom: 4\n },\n activeDotStyle: {\n width: 12,\n height: 12,\n borderRadius: 10,\n backgroundColor: themeVariables.carouselActiveDotColor,\n opacity: 1\n },\n dotStyle: {\n opacity: 0.2,\n marginHorizontal: -2,\n backgroundColor: themeVariables.carouselDotColor\n }\n } as WmCarouselStyles);\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n prevBtn : {\n root:{\n transform: [{rotateY: '180deg'}]\n }\n },\n nextBtn : {\n root:{\n transform: [{rotateY: '180deg'}]\n }\n }\n });\n\n addStyle('app-carousel-1', '', {\n btnPanel: {\n top: '100%'\n },\n prevBtn: {\n root: {\n borderRadius: 6\n }\n },\n nextBtn: {\n root: {\n borderRadius: 6\n }\n }\n } as any as WmCarouselStyles);\n\n addStyle('app-carousel-2', '', {\n btnPanel: {\n backgroundColor: themeVariables.defaultColorF,\n width: '100%',\n top: '100%',\n right: 0,\n padding: 8,\n justifyContent: 'flex-end'\n },\n dotsWrapperStyle:{\n alignSelf: 'flex-start',\n justifyContent: 'flex-start'\n },\n activeDotStyle: {\n backgroundColor: themeVariables.primaryColor,\n },\n dotStyle: {\n backgroundColor: themeVariables.primaryColor,\n },\n prevBtn: {\n root: {\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n borderColor: themeVariables.primaryColor,\n },\n icon : {\n color: themeVariables.primaryColor\n }\n },\n nextBtn: {\n root: {\n marginLeft: 8,\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n borderColor: themeVariables.primaryColor,\n },\n icon : {\n color: themeVariables.primaryColor\n }\n }\n } as any as WmCarouselStyles);\n});"],"mappings":"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"}
1
+ {"version":3,"names":["BASE_THEME","defineStyles","DEFAULT_CLASS","registerStyle","themeVariables","addStyle","btn","height","width","borderRadius","borderColor","transparent","borderWidth","justifyContent","defaultStyles","root","position","text","slide","paddingHorizontal","transform","translateX","firstSlide","lastSlide","activeSlide","btnPanel","top","marginTop","flexDirection","alignItems","prevBtn","marginLeft","backgroundColor","carouselPrevBgColor","fontSize","icon","color","carouselPrevBtnColor","nextBtn","marginRight","carouselNextBtnColor","dotsWrapperStyle","opacity","carouselDotWrapperBgColor","paddingTop","paddingBottom","activeDotStyle","carouselActiveDotColor","dotStyle","marginHorizontal","carouselDotColor","rotateY","defaultColorF","right","padding","alignSelf","primaryColor"],"sources":["carousel.styles.ts"],"sourcesContent":["import { ViewStyle } from 'react-native';\nimport BASE_THEME, { AllStyle } from '@wavemaker/app-rn-runtime/styles/theme';\nimport { BaseStyles, defineStyles } from '@wavemaker/app-rn-runtime/core/base.component';\nimport { WmIconStyles } from '@wavemaker/app-rn-runtime/components/basic/icon/icon.styles';\n\nexport type WmCarouselStyles = BaseStyles & {\n btnPanel: AllStyle,\n prevBtn: WmIconStyles,\n slide: AllStyle,\n firstSlide: AllStyle,\n lastSlide: AllStyle,\n activeSlide: AllStyle,\n nextBtn: WmIconStyles,\n dotsWrapperStyle: AllStyle,\n dotStyle: AllStyle,\n activeDotStyle: AllStyle\n};\nexport const DEFAULT_CLASS = 'app-carousel';\nBASE_THEME.registerStyle((themeVariables, addStyle) => {\n const btn: ViewStyle = {\n height: 48,\n width: 48,\n borderRadius: 48,\n borderColor: themeVariables.transparent,\n borderWidth: 1,\n justifyContent: 'center'\n };\n const defaultStyles: WmCarouselStyles = defineStyles({\n root: {\n position: 'relative'\n },\n text: {},\n slide: {\n width: '100%',\n paddingHorizontal: 16,\n transform: [\n {\n translateX: 0\n }\n ]\n },\n firstSlide: {},\n lastSlide: {},\n activeSlide: {},\n btnPanel: {\n position: 'absolute',\n top: '50%',\n marginTop: -64,\n height: 64,\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%'\n },\n prevBtn : {\n root: {\n marginLeft: 12,\n ...btn,\n backgroundColor: themeVariables.carouselPrevBgColor\n },\n text: {\n fontSize: 32\n },\n icon : {\n color: themeVariables.carouselPrevBtnColor\n }\n } as WmIconStyles,\n nextBtn : {\n root: {\n marginRight: 12,\n ...btn,\n backgroundColor: themeVariables.carouselPrevBgColor\n },\n text: {\n fontSize: 32\n },\n icon : {\n color: themeVariables.carouselNextBtnColor\n }\n } as WmIconStyles,\n dotsWrapperStyle:{\n opacity: 1,\n backgroundColor: themeVariables.carouselDotWrapperBgColor,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n paddingTop: 4,\n paddingBottom: 4\n },\n activeDotStyle: {\n backgroundColor: themeVariables.carouselActiveDotColor,\n opacity: 1\n },\n dotStyle: {\n width: 8,\n height: 8,\n borderRadius: 10,\n opacity: 0.2,\n marginHorizontal: 2,\n backgroundColor: themeVariables.carouselDotColor\n }\n } as WmCarouselStyles);\n\n addStyle(DEFAULT_CLASS, '', defaultStyles);\n addStyle(DEFAULT_CLASS + '-rtl', '', {\n prevBtn : {\n root:{\n transform: [{rotateY: '180deg'}]\n }\n },\n nextBtn : {\n root:{\n transform: [{rotateY: '180deg'}]\n }\n }\n });\n\n addStyle('app-carousel-1', '', {\n btnPanel: {\n top: '100%'\n },\n prevBtn: {\n root: {\n borderRadius: 6\n }\n },\n nextBtn: {\n root: {\n borderRadius: 6\n }\n }\n } as any as WmCarouselStyles);\n\n addStyle('app-carousel-2', '', {\n btnPanel: {\n backgroundColor: themeVariables.defaultColorF,\n width: '100%',\n top: '100%',\n right: 0,\n padding: 8,\n justifyContent: 'flex-end'\n },\n dotsWrapperStyle:{\n alignSelf: 'flex-start',\n justifyContent: 'flex-start'\n },\n activeDotStyle: {\n backgroundColor: themeVariables.primaryColor,\n },\n dotStyle: {\n backgroundColor: themeVariables.primaryColor,\n },\n prevBtn: {\n root: {\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n borderColor: themeVariables.primaryColor,\n },\n icon : {\n color: themeVariables.primaryColor\n }\n },\n nextBtn: {\n root: {\n marginLeft: 8,\n backgroundColor: 'rgba(255, 255, 255, 0.1)',\n borderColor: themeVariables.primaryColor,\n },\n icon : {\n color: themeVariables.primaryColor\n }\n }\n } as any as WmCarouselStyles);\n});"],"mappings":"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"}
@@ -133,11 +133,14 @@ export default class WmIcon extends BaseComponent {
133
133
  size: iconSize
134
134
  }, customIcon);
135
135
  } else if (props.show && iconDef) {
136
+ var _this$styles$icon;
136
137
  let WMCustomIcon = WavIcon;
137
138
  if (iconDef.isStreamlineLightIcon) {
138
139
  WMCustomIcon = StreamlineLightIcon;
139
140
  } else if (iconDef.isStreamlineRegularIcon) {
140
141
  WMCustomIcon = StreamlineRegularIcon;
142
+ } else if (!iconDef.isWavIcon && !((_this$styles$icon = this.styles.icon) !== null && _this$styles$icon !== void 0 && _this$styles$icon.fontFamily)) {
143
+ return null;
141
144
  }
142
145
  //@ts-ignore type information is not matching
143
146
  icon = WMCustomIcon ? /*#__PURE__*/React.createElement(WMCustomIcon, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","Animated","Easing","Text","FontAwesome","BaseComponent","BaseComponentState","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","arguments","_defineProperty","WmIcon","props","Value","getIconDef","iconClass","iconDef","rotate","splits","split","isFontAwesome","find","v","isStreamlineLightIcon","isStreamlineRegularIcon","_splits$find","type","startsWith","substring","_splits$find2","_splits$find3","_splits$find4","isWavIcon","indexOf","animation","size","map","get","spin","stopAnimation","spinValue","setValue","timing","toValue","duration","easing","linear","useNativeDriver","start","componentDidMount","componentWillUnmount","onPropertyChange","name","$new","$old","updateState","getCustomIcon","style","_this$theme$getStyle","customIcon","theme","mergeStyle","getStyle","iconclass","icon","styles","customIconContent","content","createElement","fontFamily","decodeURIComponent","renderSkeleton","skeleton","root","width","skeletonwidth","iconsize","height","skeletonheight","renderIcon","state","color","text","transform","iconSize","fontSize","show","WMCustomIcon","interpolate","inputRange","outputRange","View","opacity","renderWidget","target","entryanimation","_background","iconposition","caption"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmIconProps from './icon.props';\nimport { DEFAULT_CLASS, WmIconStyles } from './icon.styles';\nimport WavIcon from './wavicon/wavicon.component';\nimport StreamlineLightIcon from './streamline-light-icon/streamline-light-icon.component';\nimport StreamlineRegularIcon from './streamline-regular-icon/streamline-regular-icon.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\ninterface IconDef {\n isFontAwesome: boolean;\n isWavIcon: boolean;\n isStreamlineLightIcon: boolean;\n isStreamlineRegularIcon: boolean;\n type: string;\n rotate: string;\n size: number;\n animation: string;\n}\n\nconst ICON_SIZES = new Map([\n ['fa-lg', 24],\n ['fa-2x', 36],\n ['fa-3x', 48],\n ['fa-4x', 60],\n ['fa-5x', 72]\n]);\n\nconst ICON_ROTATTION = new Map([\n ['fa-rotate-90', '90deg'],\n ['fa-rotate-180', '180deg'],\n ['fa-rotate-270', '270deg']\n]);\n\nexport class WmIconState extends BaseComponentState<WmIconProps> {\n public iconDef = {} as IconDef;\n}\n\nexport default class WmIcon extends BaseComponent<WmIconProps, WmIconState, WmIconStyles> {\n spinValue = new Animated.Value(0);\n pulseValue = new Animated.Value(0);\n public stopAnimation = true; \n\n constructor(props: WmIconProps) {\n super(props, DEFAULT_CLASS, new WmIconProps());\n }\n\n getIconDef(iconClass: string): IconDef {\n const iconDef = {\n rotate: '0'\n } as IconDef;\n const splits = iconClass.split(' ');\n iconDef.isFontAwesome = !!splits.find(v => v === 'fa');\n iconDef.isStreamlineLightIcon = !!splits.find(v => v === 'wm-sl-l');\n iconDef.isStreamlineRegularIcon = !!splits.find(v => v === 'wm-sl-r');\n if (iconDef.isFontAwesome) {\n iconDef.type = splits.find(v => v.startsWith('fa-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineLightIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineRegularIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else {\n iconDef.isWavIcon = !iconDef.isFontAwesome && !!splits.find(v => v === 'wi');\n iconDef.type = (iconDef.isWavIcon && splits.find(v => v.startsWith('wi-'))?.substring(3)) || '';\n }\n if (iconClass.indexOf('fa-spin') >= 0) {\n iconDef.animation = 'spin';\n } else if (iconClass.indexOf('fa-pulse') >= 0) {\n iconDef.animation = 'pulse';\n }\n iconDef.size = splits.map(v => ICON_SIZES.get(v)).find(v => !!v) || 12;\n iconDef.rotate = splits.map(v => ICON_ROTATTION.get(v)).find(v => !!v) || '0deg';\n return iconDef;\n }\n\n private spin () {\n if (this.stopAnimation) {\n return;\n }\n this.spinValue.setValue(0);\n Animated.timing(\n this.spinValue,\n {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true\n }\n ).start(() => this.spin());\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.spin();\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stopAnimation = true;\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'iconclass':\n $new && this.updateState({iconDef: this.getIconDef($new)} as WmIconState);\n break;\n }\n }\n\n private getCustomIcon(props: WmIconProps, style: any) {\n const customIcon = this.theme.mergeStyle({}, this.theme.getStyle(props?.iconclass || '')?.icon || this.styles.icon);\n const customIconContent = customIcon?.content;\n if (customIconContent) {\n delete customIcon.content;\n return (<Text\n style={[style, customIcon.fontFamily ? {fontFamily: customIcon.fontFamily}: null]}>\n {decodeURIComponent(customIconContent)}\n </Text>);\n }\n return null;\n }\n\n public renderSkeleton(props: WmIconProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue,\n height: (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n });\n }\n\n renderIcon(props: WmIconProps) {\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n let icon = null;\n const style = [{\n color: this.styles.root.color || this.styles.text.color\n }, this.styles.icon, {transform: [{rotate: iconDef.rotate}]}];\n const customIcon = this.getCustomIcon(props, style);\n const iconSize = props.iconsize || this.styles.root.fontSize || this.styles.text.fontSize || iconDef.size;\n if (props.show && iconDef && iconDef.isFontAwesome) {\n //@ts-ignore type information is not matching\n icon = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </FontAwesome>);\n } else if (props.show && iconDef) {\n let WMCustomIcon = WavIcon as unknown;\n if (iconDef.isStreamlineLightIcon) {\n WMCustomIcon = StreamlineLightIcon;\n } else if (iconDef.isStreamlineRegularIcon) {\n WMCustomIcon = StreamlineRegularIcon;\n }\n //@ts-ignore type information is not matching\n icon = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (icon && iconDef.animation === 'spin') {\n const rotate = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg']});\n const animation = { transform: [{ rotate }] };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else if (icon && iconDef.animation === 'pulse') {\n const opacity = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: [0, 1]});\n const animation = { opacity: opacity };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return icon;\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n return (\n <Tappable target={this}>\n <Animatedview entryanimation={props.animation} style={this.styles.root}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text style={this.styles.text}>{props.caption}</Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Animated","Easing","Text","FontAwesome","BaseComponent","BaseComponentState","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","arguments","_defineProperty","WmIcon","props","Value","getIconDef","iconClass","iconDef","rotate","splits","split","isFontAwesome","find","v","isStreamlineLightIcon","isStreamlineRegularIcon","_splits$find","type","startsWith","substring","_splits$find2","_splits$find3","_splits$find4","isWavIcon","indexOf","animation","size","map","get","spin","stopAnimation","spinValue","setValue","timing","toValue","duration","easing","linear","useNativeDriver","start","componentDidMount","componentWillUnmount","onPropertyChange","name","$new","$old","updateState","getCustomIcon","style","_this$theme$getStyle","customIcon","theme","mergeStyle","getStyle","iconclass","icon","styles","customIconContent","content","createElement","fontFamily","decodeURIComponent","renderSkeleton","skeleton","root","width","skeletonwidth","iconsize","height","skeletonheight","renderIcon","state","color","text","transform","iconSize","fontSize","show","_this$styles$icon","WMCustomIcon","interpolate","inputRange","outputRange","View","opacity","renderWidget","target","entryanimation","_background","iconposition","caption"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport { BaseComponent, BaseComponentState } from '@wavemaker/app-rn-runtime/core/base.component';\n\nimport WmIconProps from './icon.props';\nimport { DEFAULT_CLASS, WmIconStyles } from './icon.styles';\nimport WavIcon from './wavicon/wavicon.component';\nimport StreamlineLightIcon from './streamline-light-icon/streamline-light-icon.component';\nimport StreamlineRegularIcon from './streamline-regular-icon/streamline-regular-icon.component';\nimport { Tappable } from '@wavemaker/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker/app-rn-runtime/components/basic/animatedview.component';\nimport WmSkeleton, { createSkeleton } from '../skeleton/skeleton.component';\n\ninterface IconDef {\n isFontAwesome: boolean;\n isWavIcon: boolean;\n isStreamlineLightIcon: boolean;\n isStreamlineRegularIcon: boolean;\n type: string;\n rotate: string;\n size: number;\n animation: string;\n}\n\nconst ICON_SIZES = new Map([\n ['fa-lg', 24],\n ['fa-2x', 36],\n ['fa-3x', 48],\n ['fa-4x', 60],\n ['fa-5x', 72]\n]);\n\nconst ICON_ROTATTION = new Map([\n ['fa-rotate-90', '90deg'],\n ['fa-rotate-180', '180deg'],\n ['fa-rotate-270', '270deg']\n]);\n\nexport class WmIconState extends BaseComponentState<WmIconProps> {\n public iconDef = {} as IconDef;\n}\n\nexport default class WmIcon extends BaseComponent<WmIconProps, WmIconState, WmIconStyles> {\n spinValue = new Animated.Value(0);\n pulseValue = new Animated.Value(0);\n public stopAnimation = true; \n\n constructor(props: WmIconProps) {\n super(props, DEFAULT_CLASS, new WmIconProps());\n }\n\n getIconDef(iconClass: string): IconDef {\n const iconDef = {\n rotate: '0'\n } as IconDef;\n const splits = iconClass.split(' ');\n iconDef.isFontAwesome = !!splits.find(v => v === 'fa');\n iconDef.isStreamlineLightIcon = !!splits.find(v => v === 'wm-sl-l');\n iconDef.isStreamlineRegularIcon = !!splits.find(v => v === 'wm-sl-r');\n if (iconDef.isFontAwesome) {\n iconDef.type = splits.find(v => v.startsWith('fa-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineLightIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else if (iconDef.isStreamlineRegularIcon) {\n iconDef.type = splits.find(v => v.startsWith('sl-'))?.substring(3) || '';\n } else {\n iconDef.isWavIcon = !iconDef.isFontAwesome && !!splits.find(v => v === 'wi');\n iconDef.type = (iconDef.isWavIcon && splits.find(v => v.startsWith('wi-'))?.substring(3)) || '';\n }\n if (iconClass.indexOf('fa-spin') >= 0) {\n iconDef.animation = 'spin';\n } else if (iconClass.indexOf('fa-pulse') >= 0) {\n iconDef.animation = 'pulse';\n }\n iconDef.size = splits.map(v => ICON_SIZES.get(v)).find(v => !!v) || 12;\n iconDef.rotate = splits.map(v => ICON_ROTATTION.get(v)).find(v => !!v) || '0deg';\n return iconDef;\n }\n\n private spin () {\n if (this.stopAnimation) {\n return;\n }\n this.spinValue.setValue(0);\n Animated.timing(\n this.spinValue,\n {\n toValue: 1,\n duration: 1000,\n easing: Easing.linear,\n useNativeDriver: true\n }\n ).start(() => this.spin());\n }\n\n componentDidMount() {\n super.componentDidMount();\n this.spin();\n }\n\n componentWillUnmount(): void {\n super.componentWillUnmount();\n this.stopAnimation = true;\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n super.onPropertyChange(name, $new, $old);\n switch(name) {\n case 'iconclass':\n $new && this.updateState({iconDef: this.getIconDef($new)} as WmIconState);\n break;\n }\n }\n\n private getCustomIcon(props: WmIconProps, style: any) {\n const customIcon = this.theme.mergeStyle({}, this.theme.getStyle(props?.iconclass || '')?.icon || this.styles.icon);\n const customIconContent = customIcon?.content;\n if (customIconContent) {\n delete customIcon.content;\n return (<Text\n style={[style, customIcon.fontFamily ? {fontFamily: customIcon.fontFamily}: null]}>\n {decodeURIComponent(customIconContent)}\n </Text>);\n }\n return null;\n }\n\n public renderSkeleton(props: WmIconProps) {\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue,\n height: (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n });\n }\n\n renderIcon(props: WmIconProps) {\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n let icon = null;\n const style = [{\n color: this.styles.root.color || this.styles.text.color\n }, this.styles.icon, {transform: [{rotate: iconDef.rotate}]}];\n const customIcon = this.getCustomIcon(props, style);\n const iconSize = props.iconsize || this.styles.root.fontSize || this.styles.text.fontSize || iconDef.size;\n if (props.show && iconDef && iconDef.isFontAwesome) {\n //@ts-ignore type information is not matching\n icon = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </FontAwesome>);\n } else if (props.show && iconDef) {\n let WMCustomIcon = WavIcon as unknown;\n if (iconDef.isStreamlineLightIcon) {\n WMCustomIcon = StreamlineLightIcon;\n } else if (iconDef.isStreamlineRegularIcon) {\n WMCustomIcon = StreamlineRegularIcon;\n } else if (!iconDef.isWavIcon && !this.styles.icon?.fontFamily) {\n return null;\n }\n //@ts-ignore type information is not matching\n icon = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (icon && iconDef.animation === 'spin') {\n const rotate = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg']});\n const animation = { transform: [{ rotate }] };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else if (icon && iconDef.animation === 'pulse') {\n const opacity = this.spinValue.interpolate({ inputRange: [0, 1], outputRange: [0, 1]});\n const animation = { opacity: opacity };\n this.stopAnimation = false;\n return (<Animated.View style={animation}>{icon}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return icon;\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n return (\n <Tappable target={this}>\n <Animatedview entryanimation={props.animation} style={this.styles.root}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text style={this.styles.text}>{props.caption}</Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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"}