@wavemaker-ai/app-rn-runtime 1.0.0-rc.330 → 1.0.0-rc.332
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/components/basic/anchor/anchor.component.js +4 -4
- package/components/basic/anchor/anchor.component.js.map +1 -1
- package/components/basic/anchor/anchor.props.js +1 -0
- package/components/basic/anchor/anchor.props.js.map +1 -1
- package/components/basic/icon/icon.component.js +29 -2
- package/components/basic/icon/icon.component.js.map +1 -1
- package/components/basic/icon/svg-url-icon.component.js +80 -0
- package/components/basic/icon/svg-url-icon.component.js.map +1 -0
- package/components/basic/search/search.component.js +3 -1
- package/components/basic/search/search.component.js.map +1 -1
- package/components/basic/search/search.props.js +3 -0
- package/components/basic/search/search.props.js.map +1 -1
- package/components/basic/spinner/spinner.component.js +1 -0
- package/components/basic/spinner/spinner.component.js.map +1 -1
- package/components/basic/spinner/spinner.props.js +1 -0
- package/components/basic/spinner/spinner.props.js.map +1 -1
- package/components/chart/area-chart/area-chart.component.js +12 -6
- package/components/chart/area-chart/area-chart.component.js.map +1 -1
- package/components/chart/bar-chart/bar-chart.component.js +14 -7
- package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
- package/components/chart/basechart.props.js +1 -0
- package/components/chart/basechart.props.js.map +1 -1
- package/components/chart/basechart.styles.js +0 -1
- package/components/chart/basechart.styles.js.map +1 -1
- package/components/chart/bubble-chart/bubble-chart.component.js +25 -6
- package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
- package/components/chart/line-chart/line-chart.component.js +12 -6
- package/components/chart/line-chart/line-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.component.js +24 -4
- package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
- package/components/chart/pie-chart/pie-chart.props.js +1 -1
- package/components/chart/pie-chart/pie-chart.props.js.map +1 -1
- package/components/container/accordion/accordion.component.js +11 -3
- package/components/container/accordion/accordion.component.js.map +1 -1
- package/components/container/accordion/accordion.props.js +2 -0
- package/components/container/accordion/accordion.props.js.map +1 -1
- package/components/container/accordion/accordionpane/accordionpane.props.js +1 -0
- package/components/container/accordion/accordionpane/accordionpane.props.js.map +1 -1
- package/components/container/panel/panel.component.js +3 -1
- package/components/container/panel/panel.component.js.map +1 -1
- package/components/container/panel/panel.props.js +2 -0
- package/components/container/panel/panel.props.js.map +1 -1
- package/components/container/wizard/wizard.component.js +7 -3
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.props.js +1 -0
- package/components/container/wizard/wizard.props.js.map +1 -1
- package/components/container/wizard/wizardstep/wizardstep.props.js +3 -0
- package/components/container/wizard/wizardstep/wizardstep.props.js.map +1 -1
- package/components/data/form/form.component.js +3 -2
- package/components/data/form/form.component.js.map +1 -1
- package/components/data/form/form.props.js +1 -0
- package/components/data/form/form.props.js.map +1 -1
- package/components/data/list/list.component.js +5 -3
- package/components/data/list/list.component.js.map +1 -1
- package/components/data/list/list.props.js +2 -0
- package/components/data/list/list.props.js.map +1 -1
- package/components/input/basedataset/basedataset.component.js +2 -1
- package/components/input/basedataset/basedataset.component.js.map +1 -1
- package/components/input/basedataset/basedataset.props.js +1 -0
- package/components/input/basedataset/basedataset.props.js.map +1 -1
- package/components/input/fileupload/fileupload.component.js +1 -0
- package/components/input/fileupload/fileupload.component.js.map +1 -1
- package/components/input/fileupload/fileupload.props.js +1 -0
- package/components/input/fileupload/fileupload.props.js.map +1 -1
- package/components/input/rating/rating.component.js +4 -2
- package/components/input/rating/rating.component.js.map +1 -1
- package/components/input/rating/rating.props.js +4 -0
- package/components/input/rating/rating.props.js.map +1 -1
- package/components/input/switch/switch.component.js +2 -1
- package/components/input/switch/switch.component.js.map +1 -1
- package/components/input/text/text.component.js +6 -3
- package/components/input/text/text.component.js.map +1 -1
- package/components/input/text/text.props.js +2 -0
- package/components/input/text/text.props.js.map +1 -1
- package/components/navigation/basenav/basenav.component.js +2 -0
- package/components/navigation/basenav/basenav.component.js.map +1 -1
- package/components/navigation/basenav/basenav.props.js +1 -0
- package/components/navigation/basenav/basenav.props.js.map +1 -1
- package/components/navigation/menu/menu.component.js +3 -0
- package/components/navigation/menu/menu.component.js.map +1 -1
- package/components/navigation/menu/menu.props.js +2 -0
- package/components/navigation/menu/menu.props.js.map +1 -1
- package/components/navigation/popover/popover.component.js +1 -0
- package/components/navigation/popover/popover.component.js.map +1 -1
- package/components/navigation/popover/popover.props.js +1 -0
- package/components/navigation/popover/popover.props.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +2 -1
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/components-prism/basic/search/search.component.js +3 -1
- package/components-prism/basic/search/search.component.js.map +1 -1
- package/components-prism/basic/search/search.props.js +1 -0
- package/components-prism/basic/search/search.props.js.map +1 -1
- package/core/components/floatinglabel.component.js +2 -2
- package/core/components/floatinglabel.component.js.map +1 -1
- package/core/components/textinput.component.js +1 -0
- package/core/components/textinput.component.js.map +1 -1
- package/core/utils.js +16 -0
- package/core/utils.js.map +1 -1
- package/npm-shrinkwrap.json +148 -112
- package/package-lock.json +148 -112
- package/package.json +2 -2
|
@@ -74,8 +74,8 @@ export default class WmAnchor extends BaseComponent {
|
|
|
74
74
|
iconwidth: iconwidth,
|
|
75
75
|
accessible: false
|
|
76
76
|
});
|
|
77
|
-
const leftIcon = lefticon => {
|
|
78
|
-
if (!lefticon) {
|
|
77
|
+
const leftIcon = (lefticon, lefticonurl) => {
|
|
78
|
+
if (!lefticon && !lefticonurl) {
|
|
79
79
|
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
80
80
|
}
|
|
81
81
|
return /*#__PURE__*/React.createElement(WmIcon, {
|
|
@@ -84,7 +84,7 @@ export default class WmAnchor extends BaseComponent {
|
|
|
84
84
|
hint: props === null || props === void 0 ? void 0 : props.hint,
|
|
85
85
|
name: name + '_icon',
|
|
86
86
|
iconclass: lefticon,
|
|
87
|
-
iconurl:
|
|
87
|
+
iconurl: lefticonurl,
|
|
88
88
|
iconheight: iconheight,
|
|
89
89
|
iconmargin: iconmargin,
|
|
90
90
|
iconwidth: iconwidth,
|
|
@@ -113,7 +113,7 @@ export default class WmAnchor extends BaseComponent {
|
|
|
113
113
|
accessibilityProps: {
|
|
114
114
|
...getAccessibilityProps(AccessibilityWidgetType.ANCHOR, props)
|
|
115
115
|
}
|
|
116
|
-
}), this._background, props.iconposition === 'top' && icon, props.iconposition === 'left' && icon, props.lefticonclass && /*#__PURE__*/React.createElement(React.Fragment, null, leftIcon(props.lefticonclass)), props.caption ? /*#__PURE__*/React.createElement(Text, _extends({
|
|
116
|
+
}), this._background, props.iconposition === 'top' && icon, props.iconposition === 'left' && icon, (props.lefticonclass || props.lefticonurl) && /*#__PURE__*/React.createElement(React.Fragment, null, leftIcon(props.lefticonclass, props.lefticonurl)), props.caption ? /*#__PURE__*/React.createElement(Text, _extends({
|
|
117
117
|
style: this.styles.text
|
|
118
118
|
}, this.getTestPropsForLabel('caption'), {
|
|
119
119
|
numberOfLines: props.nooflines,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Text","Badge","BaseComponent","BaseComponentState","Tappable","WmIcon","encodeUrl","AccessibilityWidgetType","getAccessibilityProps","NavigationServiceConsumer","WmAnchorProps","DEFAULT_CLASS","Animatedview","createSkeleton","WmAnchorState","WmAnchor","constructor","props","onTap","navigationService","e","state","hyperlink","link","encodeurl","openUrl","target","invokeEventCallback","proxy","renderSkeleton","theme","styles","skeleton","root","width","skeletonwidth","height","skeletonheight","renderBadge","badgevalue","_showSkeleton","badgeSkeleton","badge","undefined","createElement","style","importantForAccessibility","renderWidget","iconclass","iconurl","name","iconheight","iconmargin","iconwidth","icon","text","color","id","getTestId","hint","accessible","leftIcon","lefticon","Fragment","entryanimation","animation","delay","animationdelay","justifyContent","onLayout","event","handleLayout","_extends","getTestPropsForAction","flexDirection","iconposition","disableTouchEffect","disabletoucheffect","accessibilityProps","ANCHOR","_background","lefticonclass","caption","getTestPropsForLabel","numberOfLines","nooflines"],"sources":["anchor.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, Text } from 'react-native';\nimport { Badge } from 'react-native-paper';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { SyntheticEvent, Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport { encodeUrl } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\n\nimport WmAnchorProps from './anchor.props';\nimport { DEFAULT_CLASS, WmAnchorStyles } from './anchor.styles';\nimport { Animatedview } from '@wavemaker-ai/app-rn-runtime/components/basic/animatedview.component';\nimport { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmAnchorState extends BaseComponentState<WmAnchorProps> {\n\n}\n\nexport default class WmAnchor extends BaseComponent<WmAnchorProps, WmAnchorState, WmAnchorStyles> {\n\n constructor(props: WmAnchorProps) {\n super(props, DEFAULT_CLASS, new WmAnchorProps());\n }\n\n onTap(navigationService: NavigationService, e: SyntheticEvent) {\n const props = this.state.props;\n if (props.hyperlink) {\n const link = props.encodeurl ? encodeUrl(props.hyperlink) : props.hyperlink;\n navigationService.openUrl(link, {\n target: this.state.props.target\n });\n }\n this.invokeEventCallback('onTap', [e, this.proxy]);\n }\n\n public renderSkeleton(props: WmAnchorProps){\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: this.props.skeletonwidth || this.styles.root.width,\n height: this.props.skeletonheight || this.styles.root.height\n });\n }\n\n renderBadge() {\n const { badgevalue } = this.props;\n if(this._showSkeleton) {\n return createSkeleton(this.theme, this.styles.badgeSkeleton, {\n ...this.styles.badge,\n // marginTop: -50\n })\n }\n return badgevalue != undefined ? (<Badge style={this.styles.badge} importantForAccessibility=\"no\">{badgevalue}</Badge>): null;\n }\n\n renderWidget(props: WmAnchorProps) {\n const {\n iconclass,\n iconurl,\n name,\n iconheight,\n iconmargin,\n iconwidth,\n badgevalue,\n } = props;\n\n if (this.styles.icon && this.styles.icon.text) {\n this.styles.icon.text.color = this.styles.text.color;\n }\n\n const icon = (iconclass || iconurl) && (\n <WmIcon\n id={this.getTestId('icon')}\n styles={this.styles.icon}\n hint={props?.hint}\n name={name + '_icon'}\n iconclass={iconclass}\n iconurl={iconurl}\n iconheight={iconheight}\n iconmargin={iconmargin}\n iconwidth={iconwidth}\n accessible={false}\n />\n );\n\n const leftIcon = (lefticon: string | undefined) => {\n if(!lefticon) {\n return <></>\n }\n\n return (\n <WmIcon\n id={this.getTestId('left-icon')}\n styles={this.styles.lefticon}\n hint={props?.hint}\n name={name + '_icon'}\n iconclass={lefticon}\n iconurl={iconurl}\n iconheight={iconheight}\n iconmargin={iconmargin}\n iconwidth={iconwidth}\n accessible={false}\n />\n )\n }\n return (\n <NavigationServiceConsumer>\n {(navigationService: NavigationService) =>\n (<Animatedview\n entryanimation={props.animation}\n delay={props.animationdelay}\n style={{width: this.styles.root.width, height: this.styles.root.height, justifyContent: 'center'}}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n <Tappable {...this.getTestPropsForAction()} target={this} styles={[this.styles.root, this.styles.root.width && this.styles.root.height ? { width: '100%', height: '100%'} : null, {flexDirection: props.iconposition === 'top' ? 'column': 'row'}]}\n onTap={props.hyperlink || props.onTap ? (e: SyntheticEvent) => this.onTap(navigationService, e) : undefined}\n disableTouchEffect={this.state.props.disabletoucheffect}\n accessibilityProps={{...getAccessibilityProps(\n AccessibilityWidgetType.ANCHOR,\n props\n )}}>\n {this._background}\n {props.iconposition === 'top' && icon}\n {props.iconposition === 'left' && icon}\n {props.lefticonclass &&\n <>\n {leftIcon(props.lefticonclass)}\n </>\n } \n {props.caption ? (<Text style={this.styles.text}\n {...this.getTestPropsForLabel('caption')}\n numberOfLines={props.nooflines} importantForAccessibility='no'>{props.caption}</Text>) : null}\n {props.iconposition === 'right' && icon}\n {this.renderBadge()}\n </Tappable>\n </Animatedview>)\n }\n </NavigationServiceConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Text","Badge","BaseComponent","BaseComponentState","Tappable","WmIcon","encodeUrl","AccessibilityWidgetType","getAccessibilityProps","NavigationServiceConsumer","WmAnchorProps","DEFAULT_CLASS","Animatedview","createSkeleton","WmAnchorState","WmAnchor","constructor","props","onTap","navigationService","e","state","hyperlink","link","encodeurl","openUrl","target","invokeEventCallback","proxy","renderSkeleton","theme","styles","skeleton","root","width","skeletonwidth","height","skeletonheight","renderBadge","badgevalue","_showSkeleton","badgeSkeleton","badge","undefined","createElement","style","importantForAccessibility","renderWidget","iconclass","iconurl","name","iconheight","iconmargin","iconwidth","icon","text","color","id","getTestId","hint","accessible","leftIcon","lefticon","lefticonurl","Fragment","entryanimation","animation","delay","animationdelay","justifyContent","onLayout","event","handleLayout","_extends","getTestPropsForAction","flexDirection","iconposition","disableTouchEffect","disabletoucheffect","accessibilityProps","ANCHOR","_background","lefticonclass","caption","getTestPropsForLabel","numberOfLines","nooflines"],"sources":["anchor.component.tsx"],"sourcesContent":["import React from 'react';\nimport { LayoutChangeEvent, Text } from 'react-native';\nimport { Badge } from 'react-native-paper';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { SyntheticEvent, Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport WmIcon from '@wavemaker-ai/app-rn-runtime/components/basic/icon/icon.component';\nimport { encodeUrl } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\nimport NavigationService, { NavigationServiceConsumer } from '@wavemaker-ai/app-rn-runtime/core/navigation.service';\n\nimport WmAnchorProps from './anchor.props';\nimport { DEFAULT_CLASS, WmAnchorStyles } from './anchor.styles';\nimport { Animatedview } from '@wavemaker-ai/app-rn-runtime/components/basic/animatedview.component';\nimport { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmAnchorState extends BaseComponentState<WmAnchorProps> {\n\n}\n\nexport default class WmAnchor extends BaseComponent<WmAnchorProps, WmAnchorState, WmAnchorStyles> {\n\n constructor(props: WmAnchorProps) {\n super(props, DEFAULT_CLASS, new WmAnchorProps());\n }\n\n onTap(navigationService: NavigationService, e: SyntheticEvent) {\n const props = this.state.props;\n if (props.hyperlink) {\n const link = props.encodeurl ? encodeUrl(props.hyperlink) : props.hyperlink;\n navigationService.openUrl(link, {\n target: this.state.props.target\n });\n }\n this.invokeEventCallback('onTap', [e, this.proxy]);\n }\n\n public renderSkeleton(props: WmAnchorProps){\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: this.props.skeletonwidth || this.styles.root.width,\n height: this.props.skeletonheight || this.styles.root.height\n });\n }\n\n renderBadge() {\n const { badgevalue } = this.props;\n if(this._showSkeleton) {\n return createSkeleton(this.theme, this.styles.badgeSkeleton, {\n ...this.styles.badge,\n // marginTop: -50\n })\n }\n return badgevalue != undefined ? (<Badge style={this.styles.badge} importantForAccessibility=\"no\">{badgevalue}</Badge>): null;\n }\n\n renderWidget(props: WmAnchorProps) {\n const {\n iconclass,\n iconurl,\n name,\n iconheight,\n iconmargin,\n iconwidth,\n badgevalue,\n } = props;\n\n if (this.styles.icon && this.styles.icon.text) {\n this.styles.icon.text.color = this.styles.text.color;\n }\n\n const icon = (iconclass || iconurl) && (\n <WmIcon\n id={this.getTestId('icon')}\n styles={this.styles.icon}\n hint={props?.hint}\n name={name + '_icon'}\n iconclass={iconclass}\n iconurl={iconurl}\n iconheight={iconheight}\n iconmargin={iconmargin}\n iconwidth={iconwidth}\n accessible={false}\n />\n );\n\n const leftIcon = (lefticon: string | undefined, lefticonurl: string | undefined) => {\n if(!lefticon && !lefticonurl) {\n return <></>\n }\n\n return (\n <WmIcon\n id={this.getTestId('left-icon')}\n styles={this.styles.lefticon}\n hint={props?.hint}\n name={name + '_icon'}\n iconclass={lefticon}\n iconurl={lefticonurl}\n iconheight={iconheight}\n iconmargin={iconmargin}\n iconwidth={iconwidth}\n accessible={false}\n />\n )\n }\n return (\n <NavigationServiceConsumer>\n {(navigationService: NavigationService) =>\n (<Animatedview\n entryanimation={props.animation}\n delay={props.animationdelay}\n style={{width: this.styles.root.width, height: this.styles.root.height, justifyContent: 'center'}}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n <Tappable {...this.getTestPropsForAction()} target={this} styles={[this.styles.root, this.styles.root.width && this.styles.root.height ? { width: '100%', height: '100%'} : null, {flexDirection: props.iconposition === 'top' ? 'column': 'row'}]}\n onTap={props.hyperlink || props.onTap ? (e: SyntheticEvent) => this.onTap(navigationService, e) : undefined}\n disableTouchEffect={this.state.props.disabletoucheffect}\n accessibilityProps={{...getAccessibilityProps(\n AccessibilityWidgetType.ANCHOR,\n props\n )}}>\n {this._background}\n {props.iconposition === 'top' && icon}\n {props.iconposition === 'left' && icon}\n {(props.lefticonclass || props.lefticonurl) &&\n <>\n {leftIcon(props.lefticonclass, props.lefticonurl)}\n </>\n }\n {props.caption ? (<Text style={this.styles.text}\n {...this.getTestPropsForLabel('caption')}\n numberOfLines={props.nooflines} importantForAccessibility='no'>{props.caption}</Text>) : null}\n {props.iconposition === 'right' && icon}\n {this.renderBadge()}\n </Tappable>\n </Animatedview>)\n }\n </NavigationServiceConsumer>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,7 @@ export default class WmAnchorProps extends BaseProps {
|
|
|
29
29
|
_defineProperty(this, "accessibilityrole", 'link');
|
|
30
30
|
_defineProperty(this, "nooflines", undefined);
|
|
31
31
|
_defineProperty(this, "lefticonclass", void 0);
|
|
32
|
+
_defineProperty(this, "lefticonurl", void 0);
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
//# sourceMappingURL=anchor.props.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseProps","WmAnchorProps","constructor","args","_defineProperty","undefined"],"sources":["anchor.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { AccessibilityRole } from 'react-native';\nexport default class WmAnchorProps extends BaseProps {\n animation?: string = null as any;\n animationdelay?: number = null as any;\n caption? = 'Link';\n hyperlink?: string = null as any;\n encodeurl?: boolean = false;\n badgevalue?: string = null as any;\n width?: string = null as any;\n height?: string = null as any;\n iconclass?: string = null as any;\n iconposition?: string = 'left';\n target?: string = '_blank';\n onTap?: any;\n skeletonwidth?: number;\n skeletonheight?: number;\n iconurl?: string = null as any;\n iconheight?: number = null as any;\n iconwidth?: number = null as any;\n iconmargin?: number = null as any;\n accessible?: boolean = true;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'link';\n nooflines?: any = undefined;\n lefticonclass?: string;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,kDAAkD;AAE5E,eAAe,MAAMC,aAAa,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC5B,IAAI;IAAAA,eAAA,yBACC,IAAI;IAAAA,eAAA,kBACnB,MAAM;IAAAA,eAAA,oBACI,IAAI;IAAAA,eAAA,oBACH,KAAK;IAAAA,eAAA,qBACL,IAAI;IAAAA,eAAA,gBACT,IAAI;IAAAA,eAAA,iBACH,IAAI;IAAAA,eAAA,oBACD,IAAI;IAAAA,eAAA,uBACD,MAAM;IAAAA,eAAA,iBACZ,QAAQ;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,kBAIP,IAAI;IAAAA,eAAA,qBACD,IAAI;IAAAA,eAAA,oBACL,IAAI;IAAAA,eAAA,qBACH,IAAI;IAAAA,eAAA,qBACH,IAAI;IAAAA,eAAA,6BACGC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,MAAM;IAAAA,eAAA,oBAC5BC,SAAS;IAAAD,eAAA;EAAA;
|
|
1
|
+
{"version":3,"names":["BaseProps","WmAnchorProps","constructor","args","_defineProperty","undefined"],"sources":["anchor.props.ts"],"sourcesContent":["import { BaseProps } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { AccessibilityRole } from 'react-native';\nexport default class WmAnchorProps extends BaseProps {\n animation?: string = null as any;\n animationdelay?: number = null as any;\n caption? = 'Link';\n hyperlink?: string = null as any;\n encodeurl?: boolean = false;\n badgevalue?: string = null as any;\n width?: string = null as any;\n height?: string = null as any;\n iconclass?: string = null as any;\n iconposition?: string = 'left';\n target?: string = '_blank';\n onTap?: any;\n skeletonwidth?: number;\n skeletonheight?: number;\n iconurl?: string = null as any;\n iconheight?: number = null as any;\n iconwidth?: number = null as any;\n iconmargin?: number = null as any;\n accessible?: boolean = true;\n accessibilitylabel?: string = undefined;\n hint?: string = undefined;\n accessibilityrole?: AccessibilityRole = 'link';\n nooflines?: any = undefined;\n lefticonclass?: string;\n lefticonurl?: string;\n}\n"],"mappings":";;;AAAA,SAASA,SAAS,QAAQ,kDAAkD;AAE5E,eAAe,MAAMC,aAAa,SAASD,SAAS,CAAC;EAAAE,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oBAC5B,IAAI;IAAAA,eAAA,yBACC,IAAI;IAAAA,eAAA,kBACnB,MAAM;IAAAA,eAAA,oBACI,IAAI;IAAAA,eAAA,oBACH,KAAK;IAAAA,eAAA,qBACL,IAAI;IAAAA,eAAA,gBACT,IAAI;IAAAA,eAAA,iBACH,IAAI;IAAAA,eAAA,oBACD,IAAI;IAAAA,eAAA,uBACD,MAAM;IAAAA,eAAA,iBACZ,QAAQ;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,kBAIP,IAAI;IAAAA,eAAA,qBACD,IAAI;IAAAA,eAAA,oBACL,IAAI;IAAAA,eAAA,qBACH,IAAI;IAAAA,eAAA,qBACH,IAAI;IAAAA,eAAA,6BACGC,SAAS;IAAAD,eAAA,eACvBC,SAAS;IAAAD,eAAA,4BACe,MAAM;IAAAA,eAAA,oBAC5BC,SAAS;IAAAD,eAAA;IAAAA,eAAA;EAAA;AAG/B","ignoreList":[]}
|
|
@@ -5,6 +5,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { Animated, Easing, Text, Image, View } from 'react-native';
|
|
7
7
|
import { FontAwesome } from '@expo/vector-icons';
|
|
8
|
+
import SvgUrlIcon from './svg-url-icon.component';
|
|
8
9
|
import { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';
|
|
9
10
|
import { isFullPathUrl } from '@wavemaker-ai/app-rn-runtime/core/utils';
|
|
10
11
|
import { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';
|
|
@@ -123,7 +124,7 @@ export default class WmIcon extends BaseComponent {
|
|
|
123
124
|
});
|
|
124
125
|
}
|
|
125
126
|
getElementToShow(props, iconSrc) {
|
|
126
|
-
var _this$styles$image, _this$styles$image2, _this$styles$image3;
|
|
127
|
+
var _this$styles$image, _this$styles$image2, _props$iconurl, _this$styles$image3;
|
|
127
128
|
const {
|
|
128
129
|
iconmargin,
|
|
129
130
|
iconheight,
|
|
@@ -133,6 +134,32 @@ export default class WmIcon extends BaseComponent {
|
|
|
133
134
|
let elementToshow, source;
|
|
134
135
|
if (iconwidth) width = iconwidth;else if (iconheight) width = iconheight;else width = ((_this$styles$image = this.styles.image) === null || _this$styles$image === void 0 ? void 0 : _this$styles$image.width) || 12;
|
|
135
136
|
if (iconheight) height = iconheight;else if (iconwidth) height = iconwidth;else height = ((_this$styles$image2 = this.styles.image) === null || _this$styles$image2 === void 0 ? void 0 : _this$styles$image2.height) || 12;
|
|
137
|
+
const SvgComponent = typeof iconSrc === 'function' ? iconSrc : iconSrc && typeof iconSrc === 'object' && typeof (iconSrc === null || iconSrc === void 0 ? void 0 : iconSrc.default) === 'function' ? iconSrc.default : null;
|
|
138
|
+
if (SvgComponent) {
|
|
139
|
+
var _this$styles$root, _this$styles$text, _this$styles$root2, _this$styles$text2;
|
|
140
|
+
const color = ((_this$styles$root = this.styles.root) === null || _this$styles$root === void 0 ? void 0 : _this$styles$root.color) || ((_this$styles$text = this.styles.text) === null || _this$styles$text === void 0 ? void 0 : _this$styles$text.color);
|
|
141
|
+
const size = props.iconsize || ((_this$styles$root2 = this.styles.root) === null || _this$styles$root2 === void 0 ? void 0 : _this$styles$root2.fontSize) || ((_this$styles$text2 = this.styles.text) === null || _this$styles$text2 === void 0 ? void 0 : _this$styles$text2.fontSize) || width;
|
|
142
|
+
return /*#__PURE__*/React.createElement(SvgComponent, {
|
|
143
|
+
width: size,
|
|
144
|
+
height: size,
|
|
145
|
+
color: color || undefined
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
const isSvgUrl = typeof iconSrc === 'string' && (((_props$iconurl = props.iconurl) === null || _props$iconurl === void 0 ? void 0 : _props$iconurl.toLowerCase().endsWith('.svg')) || iconSrc.toLowerCase().endsWith('.svg'));
|
|
149
|
+
if (isSvgUrl) {
|
|
150
|
+
var _this$styles$root3, _this$styles$text3, _this$styles$root4, _this$styles$text4;
|
|
151
|
+
const color = ((_this$styles$root3 = this.styles.root) === null || _this$styles$root3 === void 0 ? void 0 : _this$styles$root3.color) || ((_this$styles$text3 = this.styles.text) === null || _this$styles$text3 === void 0 ? void 0 : _this$styles$text3.color);
|
|
152
|
+
const size = props.iconsize || ((_this$styles$root4 = this.styles.root) === null || _this$styles$root4 === void 0 ? void 0 : _this$styles$root4.fontSize) || ((_this$styles$text4 = this.styles.text) === null || _this$styles$text4 === void 0 ? void 0 : _this$styles$text4.fontSize) || width;
|
|
153
|
+
return /*#__PURE__*/React.createElement(SvgUrlIcon, {
|
|
154
|
+
uri: iconSrc,
|
|
155
|
+
width: size,
|
|
156
|
+
height: size,
|
|
157
|
+
color: color ? String(color) : undefined,
|
|
158
|
+
style: {
|
|
159
|
+
margin: iconmargin !== null && iconmargin !== void 0 ? iconmargin : 0
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
136
163
|
if (isFullPathUrl(iconSrc)) {
|
|
137
164
|
source = {
|
|
138
165
|
uri: iconSrc
|
|
@@ -157,7 +184,7 @@ export default class WmIcon extends BaseComponent {
|
|
|
157
184
|
return null;
|
|
158
185
|
}
|
|
159
186
|
const iconImageSrc = this.loadAsset(iconImage);
|
|
160
|
-
if (iconImageSrc
|
|
187
|
+
if (iconImageSrc != null) {
|
|
161
188
|
return iconImageSrc;
|
|
162
189
|
}
|
|
163
190
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","Easing","Text","Image","View","FontAwesome","BaseComponent","BaseComponentState","isFullPathUrl","AccessibilityWidgetType","getAccessibilityProps","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","args","_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","skeletonWidth","skeletonwidth","iconsize","root","width","skeletonHeight","skeletonheight","height","skeleton","getElementToShow","iconSrc","_this$styles$image","_this$styles$image2","_this$styles$image3","iconmargin","iconheight","iconwidth","elementToshow","source","image","uri","testID","getTestId","margin","borderRadius","loadIcon","iconImage","loadAsset","iconImageSrc","renderIcon","iconJsx","_iconSource","iconurl","state","text","color","transform","iconSize","fontSize","show","_extends","getTestProps","_this$styles$icon","WMCustomIcon","interpolate","inputRange","outputRange","opacity","renderWidget","iterationCount","iterationcount","parseInt","undefined","target","rippleColor","getTestPropsForAction","disableTouchEffect","disabletoucheffect","onLayout","event","handleLayout","entryanimation","delay","animationdelay","accessibilityProps","accessible","ICON","_background","iconposition","caption","getTestPropsForLabel","importantForAccessibility"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text, Image, View, LayoutChangeEvent } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { isFullPathUrl } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\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-ai/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker-ai/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 private _iconSource = null as any;\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 let skeletonWidth = (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue;\n let skeletonHeight = (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n\n if(this.props.skeletonheight == \"0\") {\n skeletonWidth = 0\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth,\n height: skeletonHeight\n });\n }\n\n getElementToShow(props: WmIconProps, iconSrc: any) {\n\n const { iconmargin, iconheight, iconwidth } = props;\n let width, height;\n let elementToshow, source;\n\n if (iconwidth) width = iconwidth;\n else if (iconheight) width = iconheight;\n else width = this.styles.image?.width || 12;\n if (iconheight) height = iconheight;\n else if (iconwidth) height = iconwidth;\n else height = this.styles.image?.height || 12;\n\n if (isFullPathUrl(iconSrc)) {\n source = {\n uri: iconSrc\n };\n } else {\n source = iconSrc;\n }\n elementToshow = <Image testID={this.getTestId('icon')}\n style={{\n margin: iconmargin ?? 0,\n height: height,\n width: width,\n borderRadius: this.styles.image?.borderRadius || 0\n }}\n source={source}/>;\n return elementToshow;\n }\n\n loadIcon(iconImage: string | undefined) {\n if (!iconImage || !this.loadAsset) {\n return null;\n }\n const iconImageSrc = this.loadAsset(iconImage);\n if (iconImageSrc && typeof iconImageSrc !== 'function') {\n return iconImageSrc;\n }\n return null;\n }\n\n renderIcon(props: WmIconProps) {\n let iconJsx = null;\n this._iconSource = this._iconSource || this.loadIcon(props.iconurl);\n const iconSrc: any = this._iconSource\n if (iconSrc) {\n return this.getElementToShow(props, iconSrc);\n }\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n const { root, text, icon } = this.styles;\n const style = [{ color: root.color || text.color },\n icon,\n { transform: [{ rotate: iconDef.rotate }] }];\n\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 iconJsx = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\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 && !customIcon && !this.styles.icon?.fontFamily) {\n return null;\n }\n //@ts-ignore type information is not matching\n iconJsx = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (iconJsx && 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}>{iconJsx}</Animated.View>);\n } else if (iconJsx && 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}>{iconJsx}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return (\n <View\n // {...getAccessibilityProps(AccessibilityWidgetType.ICON, this.props)}\n >\n {iconJsx}\n </View>\n );\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n let iterationCount: any = props.iterationcount ? (props.iterationcount != 'infinite' ? parseInt(props.iterationcount): 'infinite') : undefined;\n return (\n <Tappable\n target={this}\n rippleColor = {this.styles.root.rippleColor}\n {...this.getTestPropsForAction()}\n disableTouchEffect={this.state.props.disabletoucheffect}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n <Animatedview entryanimation={props.animation} delay={props.animationdelay} style={this.styles.root} iterationCount={iterationCount} accessibilityProps={props.accessible ? {...getAccessibilityProps(AccessibilityWidgetType.ICON, props)} : {}}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text {...this.getTestPropsForLabel('caption')} style={this.styles.text}\n importantForAccessibility=\"no\">{props.caption}\n </Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Animated","Easing","Text","Image","View","FontAwesome","SvgUrlIcon","BaseComponent","BaseComponentState","isFullPathUrl","AccessibilityWidgetType","getAccessibilityProps","WmIconProps","DEFAULT_CLASS","WavIcon","StreamlineLightIcon","StreamlineRegularIcon","Tappable","Animatedview","createSkeleton","ICON_SIZES","Map","ICON_ROTATTION","WmIconState","constructor","args","_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","skeletonWidth","skeletonwidth","iconsize","root","width","skeletonHeight","skeletonheight","height","skeleton","getElementToShow","iconSrc","_this$styles$image","_this$styles$image2","_props$iconurl","_this$styles$image3","iconmargin","iconheight","iconwidth","elementToshow","source","image","SvgComponent","default","_this$styles$root","_this$styles$text","_this$styles$root2","_this$styles$text2","color","text","fontSize","undefined","isSvgUrl","iconurl","toLowerCase","endsWith","_this$styles$root3","_this$styles$text3","_this$styles$root4","_this$styles$text4","uri","String","margin","testID","getTestId","borderRadius","loadIcon","iconImage","loadAsset","iconImageSrc","renderIcon","iconJsx","_iconSource","state","transform","iconSize","show","_extends","getTestProps","_this$styles$icon","WMCustomIcon","interpolate","inputRange","outputRange","opacity","renderWidget","iterationCount","iterationcount","parseInt","target","rippleColor","getTestPropsForAction","disableTouchEffect","disabletoucheffect","onLayout","event","handleLayout","entryanimation","delay","animationdelay","accessibilityProps","accessible","ICON","_background","iconposition","caption","getTestPropsForLabel","importantForAccessibility"],"sources":["icon.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Animated, DimensionValue, Easing, Text, Image, View, LayoutChangeEvent } from 'react-native';\nimport { FontAwesome } from '@expo/vector-icons';\nimport SvgUrlIcon from './svg-url-icon.component';\nimport { BaseComponent, BaseComponentState } from '@wavemaker-ai/app-rn-runtime/core/base.component';\nimport { isFullPathUrl } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\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-ai/app-rn-runtime/core/tappable.component';\nimport { Animatedview } from '@wavemaker-ai/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 private _iconSource = null as any;\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 let skeletonWidth = (this.props.skeletonwidth || this.props.iconsize || this.styles.root.width) as DimensionValue;\n let skeletonHeight = (this.props.skeletonheight || this.props.iconsize || this.styles.root.height) as DimensionValue\n\n if(this.props.skeletonheight == \"0\") {\n skeletonWidth = 0\n }\n\n if(this.props.skeletonheight == \"0\") {\n skeletonHeight = 0\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, {\n ...this.styles.root,\n width: skeletonWidth,\n height: skeletonHeight\n });\n }\n\n getElementToShow(props: WmIconProps, iconSrc: any) {\n\n const { iconmargin, iconheight, iconwidth } = props;\n let width, height;\n let elementToshow, source;\n\n if (iconwidth) width = iconwidth;\n else if (iconheight) width = iconheight;\n else width = this.styles.image?.width || 12;\n if (iconheight) height = iconheight;\n else if (iconwidth) height = iconwidth;\n else height = this.styles.image?.height || 12;\n\n const SvgComponent = typeof iconSrc === 'function'\n ? iconSrc\n : (iconSrc && typeof iconSrc === 'object' && typeof iconSrc?.default === 'function')\n ? iconSrc.default\n : null;\n\n if (SvgComponent) {\n const color = this.styles.root?.color || this.styles.text?.color;\n const size = props.iconsize\n || this.styles.root?.fontSize\n || this.styles.text?.fontSize\n || width;\n return (\n <SvgComponent\n width={size}\n height={size}\n color={color || undefined}\n />\n );\n }\n\n const isSvgUrl = typeof iconSrc === 'string'\n && (props.iconurl?.toLowerCase().endsWith('.svg') || iconSrc.toLowerCase().endsWith('.svg'));\n\n if (isSvgUrl) {\n const color = this.styles.root?.color || this.styles.text?.color;\n const size = (props.iconsize\n || this.styles.root?.fontSize\n || this.styles.text?.fontSize\n || width) as number;\n return (\n <SvgUrlIcon\n uri={iconSrc}\n width={size}\n height={size}\n color={color ? String(color) : undefined}\n style={{ margin: iconmargin ?? 0 }}\n />\n );\n }\n\n if (isFullPathUrl(iconSrc)) {\n source = {\n uri: iconSrc\n };\n } else {\n source = iconSrc;\n }\n elementToshow = <Image testID={this.getTestId('icon')}\n style={{\n margin: iconmargin ?? 0,\n height: height,\n width: width,\n borderRadius: this.styles.image?.borderRadius || 0\n }}\n source={source}/>;\n return elementToshow;\n }\n\n loadIcon(iconImage: string | undefined) {\n if (!iconImage || !this.loadAsset) {\n return null;\n }\n const iconImageSrc = this.loadAsset(iconImage);\n if (iconImageSrc != null) {\n return iconImageSrc;\n }\n return null;\n }\n\n renderIcon(props: WmIconProps) {\n let iconJsx = null;\n this._iconSource = this._iconSource || this.loadIcon(props.iconurl);\n const iconSrc: any = this._iconSource\n if (iconSrc) {\n return this.getElementToShow(props, iconSrc);\n }\n const iconDef = this.state.iconDef;\n if (!iconDef) {\n return null;\n }\n const { root, text, icon } = this.styles;\n const style = [{ color: root.color || text.color },\n icon,\n { transform: [{ rotate: iconDef.rotate }] }];\n\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 iconJsx = (<FontAwesome name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\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 && !customIcon && !this.styles.icon?.fontFamily) {\n return null;\n }\n //@ts-ignore type information is not matching\n iconJsx = WMCustomIcon ? (<WMCustomIcon name={customIcon ? '' : iconDef.type}\n style={style}\n size={iconSize}\n {...this.getTestProps('icon')}>\n {customIcon}\n </WMCustomIcon>) : null;\n }\n if (iconJsx && 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}>{iconJsx}</Animated.View>);\n } else if (iconJsx && 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}>{iconJsx}</Animated.View>);\n } else {\n this.stopAnimation = true;\n }\n return (\n <View\n // {...getAccessibilityProps(AccessibilityWidgetType.ICON, this.props)}\n >\n {iconJsx}\n </View>\n );\n }\n\n renderWidget(props: WmIconProps) {\n let icon = this.renderIcon(props);\n let iterationCount: any = props.iterationcount ? (props.iterationcount != 'infinite' ? parseInt(props.iterationcount): 'infinite') : undefined;\n return (\n <Tappable\n target={this}\n rippleColor = {this.styles.root.rippleColor}\n {...this.getTestPropsForAction()}\n disableTouchEffect={this.state.props.disabletoucheffect}\n onLayout={(event: LayoutChangeEvent) => this.handleLayout(event)}\n >\n <Animatedview entryanimation={props.animation} delay={props.animationdelay} style={this.styles.root} iterationCount={iterationCount} accessibilityProps={props.accessible ? {...getAccessibilityProps(AccessibilityWidgetType.ICON, props)} : {}}>\n {this._background}\n {(props.iconposition === 'left' && icon) || null}\n {(props.caption && (<Text {...this.getTestPropsForLabel('caption')} style={this.styles.text}\n importantForAccessibility=\"no\">{props.caption}\n </Text>)) || null}\n {(props.iconposition === 'right' && icon) || null}\n </Animatedview>\n </Tappable>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { SvgXml } from 'react-native-svg';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Module-level cache for normalized SVG markup keyed by URL.
|
|
6
|
+
* Shared across all instances so the same URL is only fetched once.
|
|
7
|
+
*/
|
|
8
|
+
const svgCache = new Map();
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* In-flight fetch promises to avoid duplicate network requests when multiple
|
|
12
|
+
* instances mount simultaneously with the same URL.
|
|
13
|
+
*/
|
|
14
|
+
const inFlightRequests = new Map();
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Replaces hardcoded fill/stroke color values with `currentColor` so the
|
|
18
|
+
* icon color can be controlled via the `color` prop in react-native-svg.
|
|
19
|
+
* Values of `none` are preserved as-is.
|
|
20
|
+
*/
|
|
21
|
+
function normalizeSvg(svg) {
|
|
22
|
+
return svg.replace(/fill\s*=\s*"(?!\s*none\s*")[^"]*"/gi, 'fill="currentColor"').replace(/fill\s*=\s*'(?!\s*none\s*')[^']*'/gi, "fill='currentColor'").replace(/stroke\s*=\s*"(?!\s*none\s*")[^"]*"/gi, 'stroke="currentColor"').replace(/stroke\s*=\s*'(?!\s*none\s*')[^']*'/gi, "stroke='currentColor'").replace(/(fill|stroke)\s*:\s*(?!\s*none\b)[^;"']+/gi, '$1: currentColor');
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Fetches an SVG from a URL, normalizes hardcoded colors to `currentColor`,
|
|
26
|
+
* then renders it via SvgXml so the `color` prop controls the icon color —
|
|
27
|
+
* the same behaviour as the web SvgIconDirective.
|
|
28
|
+
*/
|
|
29
|
+
const SvgUrlIcon = ({
|
|
30
|
+
uri,
|
|
31
|
+
width,
|
|
32
|
+
height,
|
|
33
|
+
color,
|
|
34
|
+
style
|
|
35
|
+
}) => {
|
|
36
|
+
const [xml, setXml] = useState(() => {
|
|
37
|
+
var _svgCache$get;
|
|
38
|
+
return (_svgCache$get = svgCache.get(uri)) !== null && _svgCache$get !== void 0 ? _svgCache$get : null;
|
|
39
|
+
});
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (!uri) return;
|
|
42
|
+
const cached = svgCache.get(uri);
|
|
43
|
+
if (cached !== undefined) {
|
|
44
|
+
setXml(cached);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
let cancelled = false;
|
|
48
|
+
let request = inFlightRequests.get(uri);
|
|
49
|
+
if (!request) {
|
|
50
|
+
request = fetch(uri).then(res => res.text()).then(text => {
|
|
51
|
+
const normalized = normalizeSvg(text);
|
|
52
|
+
svgCache.set(uri, normalized);
|
|
53
|
+
inFlightRequests.delete(uri);
|
|
54
|
+
return normalized;
|
|
55
|
+
}).catch(() => {
|
|
56
|
+
inFlightRequests.delete(uri);
|
|
57
|
+
return '';
|
|
58
|
+
});
|
|
59
|
+
inFlightRequests.set(uri, request);
|
|
60
|
+
}
|
|
61
|
+
request.then(normalized => {
|
|
62
|
+
if (!cancelled) {
|
|
63
|
+
setXml(normalized);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return () => {
|
|
67
|
+
cancelled = true;
|
|
68
|
+
};
|
|
69
|
+
}, [uri]);
|
|
70
|
+
if (!xml) return null;
|
|
71
|
+
return /*#__PURE__*/React.createElement(SvgXml, {
|
|
72
|
+
xml: xml,
|
|
73
|
+
width: width,
|
|
74
|
+
height: height,
|
|
75
|
+
color: color,
|
|
76
|
+
style: style
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
export default SvgUrlIcon;
|
|
80
|
+
//# sourceMappingURL=svg-url-icon.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","SvgXml","svgCache","Map","inFlightRequests","normalizeSvg","svg","replace","SvgUrlIcon","uri","width","height","color","style","xml","setXml","_svgCache$get","get","cached","undefined","cancelled","request","fetch","then","res","text","normalized","set","delete","catch","createElement"],"sources":["svg-url-icon.component.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { StyleProp, ViewStyle } from 'react-native';\nimport { SvgXml } from 'react-native-svg';\n\n/**\n * Module-level cache for normalized SVG markup keyed by URL.\n * Shared across all instances so the same URL is only fetched once.\n */\nconst svgCache = new Map<string, string>();\n\n/**\n * In-flight fetch promises to avoid duplicate network requests when multiple\n * instances mount simultaneously with the same URL.\n */\nconst inFlightRequests = new Map<string, Promise<string>>();\n\n/**\n * Replaces hardcoded fill/stroke color values with `currentColor` so the\n * icon color can be controlled via the `color` prop in react-native-svg.\n * Values of `none` are preserved as-is.\n */\nfunction normalizeSvg(svg: string): string {\n return svg\n .replace(/fill\\s*=\\s*\"(?!\\s*none\\s*\")[^\"]*\"/gi, 'fill=\"currentColor\"')\n .replace(/fill\\s*=\\s*'(?!\\s*none\\s*')[^']*'/gi, \"fill='currentColor'\")\n .replace(/stroke\\s*=\\s*\"(?!\\s*none\\s*\")[^\"]*\"/gi, 'stroke=\"currentColor\"')\n .replace(/stroke\\s*=\\s*'(?!\\s*none\\s*')[^']*'/gi, \"stroke='currentColor'\")\n .replace(/(fill|stroke)\\s*:\\s*(?!\\s*none\\b)[^;\"']+/gi, '$1: currentColor');\n}\n\ninterface SvgUrlIconProps {\n uri: string;\n width: number;\n height: number;\n color?: string;\n style?: StyleProp<ViewStyle>;\n}\n\n/**\n * Fetches an SVG from a URL, normalizes hardcoded colors to `currentColor`,\n * then renders it via SvgXml so the `color` prop controls the icon color —\n * the same behaviour as the web SvgIconDirective.\n */\nconst SvgUrlIcon: React.FC<SvgUrlIconProps> = ({ uri, width, height, color, style }) => {\n const [xml, setXml] = useState<string | null>(() => svgCache.get(uri) ?? null);\n\n useEffect(() => {\n if (!uri) return;\n\n const cached = svgCache.get(uri);\n if (cached !== undefined) {\n setXml(cached);\n return;\n }\n\n let cancelled = false;\n\n let request = inFlightRequests.get(uri);\n if (!request) {\n request = fetch(uri)\n .then(res => res.text())\n .then(text => {\n const normalized = normalizeSvg(text);\n svgCache.set(uri, normalized);\n inFlightRequests.delete(uri);\n return normalized;\n })\n .catch(() => {\n inFlightRequests.delete(uri);\n return '';\n });\n inFlightRequests.set(uri, request);\n }\n\n request.then(normalized => {\n if (!cancelled) {\n setXml(normalized);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [uri]);\n\n if (!xml) return null;\n\n return (\n <SvgXml\n xml={xml}\n width={width}\n height={height}\n color={color}\n style={style}\n />\n );\n};\n\nexport default SvgUrlIcon;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAElD,SAASC,MAAM,QAAQ,kBAAkB;;AAEzC;AACA;AACA;AACA;AACA,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAiB,CAAC;;AAE1C;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAG,IAAID,GAAG,CAA0B,CAAC;;AAE3D;AACA;AACA;AACA;AACA;AACA,SAASE,YAAYA,CAACC,GAAW,EAAU;EACzC,OAAOA,GAAG,CACPC,OAAO,CAAC,qCAAqC,EAAE,qBAAqB,CAAC,CACrEA,OAAO,CAAC,qCAAqC,EAAE,qBAAqB,CAAC,CACrEA,OAAO,CAAC,uCAAuC,EAAE,uBAAuB,CAAC,CACzEA,OAAO,CAAC,uCAAuC,EAAE,uBAAuB,CAAC,CACzEA,OAAO,CAAC,4CAA4C,EAAE,kBAAkB,CAAC;AAC9E;AAUA;AACA;AACA;AACA;AACA;AACA,MAAMC,UAAqC,GAAGA,CAAC;EAAEC,GAAG;EAAEC,KAAK;EAAEC,MAAM;EAAEC,KAAK;EAAEC;AAAM,CAAC,KAAK;EACtF,MAAM,CAACC,GAAG,EAAEC,MAAM,CAAC,GAAGf,QAAQ,CAAgB;IAAA,IAAAgB,aAAA;IAAA,QAAAA,aAAA,GAAMd,QAAQ,CAACe,GAAG,CAACR,GAAG,CAAC,cAAAO,aAAA,cAAAA,aAAA,GAAI,IAAI;EAAA,EAAC;EAE9EjB,SAAS,CAAC,MAAM;IACd,IAAI,CAACU,GAAG,EAAE;IAEV,MAAMS,MAAM,GAAGhB,QAAQ,CAACe,GAAG,CAACR,GAAG,CAAC;IAChC,IAAIS,MAAM,KAAKC,SAAS,EAAE;MACxBJ,MAAM,CAACG,MAAM,CAAC;MACd;IACF;IAEA,IAAIE,SAAS,GAAG,KAAK;IAErB,IAAIC,OAAO,GAAGjB,gBAAgB,CAACa,GAAG,CAACR,GAAG,CAAC;IACvC,IAAI,CAACY,OAAO,EAAE;MACZA,OAAO,GAAGC,KAAK,CAACb,GAAG,CAAC,CACjBc,IAAI,CAACC,GAAG,IAAIA,GAAG,CAACC,IAAI,CAAC,CAAC,CAAC,CACvBF,IAAI,CAACE,IAAI,IAAI;QACZ,MAAMC,UAAU,GAAGrB,YAAY,CAACoB,IAAI,CAAC;QACrCvB,QAAQ,CAACyB,GAAG,CAAClB,GAAG,EAAEiB,UAAU,CAAC;QAC7BtB,gBAAgB,CAACwB,MAAM,CAACnB,GAAG,CAAC;QAC5B,OAAOiB,UAAU;MACnB,CAAC,CAAC,CACDG,KAAK,CAAC,MAAM;QACXzB,gBAAgB,CAACwB,MAAM,CAACnB,GAAG,CAAC;QAC5B,OAAO,EAAE;MACX,CAAC,CAAC;MACJL,gBAAgB,CAACuB,GAAG,CAAClB,GAAG,EAAEY,OAAO,CAAC;IACpC;IAEAA,OAAO,CAACE,IAAI,CAACG,UAAU,IAAI;MACzB,IAAI,CAACN,SAAS,EAAE;QACdL,MAAM,CAACW,UAAU,CAAC;MACpB;IACF,CAAC,CAAC;IAEF,OAAO,MAAM;MACXN,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACX,GAAG,CAAC,CAAC;EAET,IAAI,CAACK,GAAG,EAAE,OAAO,IAAI;EAErB,oBACEhB,KAAA,CAAAgC,aAAA,CAAC7B,MAAM;IACLa,GAAG,EAAEA,GAAI;IACTJ,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,KAAK,EAAEA;EAAM,CACd,CAAC;AAEN,CAAC;AAED,eAAeL,UAAU","ignoreList":[]}
|
|
@@ -349,11 +349,13 @@ export default class WmSearch extends BaseDatasetComponent {
|
|
|
349
349
|
onTap: this.clearSearch.bind(this),
|
|
350
350
|
id: this.getTestId('clear'),
|
|
351
351
|
styles: this.styles.clearButton,
|
|
352
|
-
iconclass: props.clearsearchiconclass || 'wi wi-clear'
|
|
352
|
+
iconclass: props.clearsearchiconclass || 'wi wi-clear',
|
|
353
|
+
iconurl: props.clearsearchiconurl
|
|
353
354
|
}) : null), props.showSearchIcon && props.type === 'search' ? /*#__PURE__*/React.createElement(WmButton, {
|
|
354
355
|
styles: this.styles.searchButton,
|
|
355
356
|
id: this.getTestId('search'),
|
|
356
357
|
iconclass: props.searchiconclass || props.iconclass,
|
|
358
|
+
iconurl: props.searchiconurl || props.iconurl,
|
|
357
359
|
onTap: this.searchIconPress.bind(this)
|
|
358
360
|
}) : null)
|
|
359
361
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Keyboard","Platform","Text","TextInput","View","ScrollView","find","isNull","WmSearchProps","DEFAULT_CLASS","ModalConsumer","DataProvider","AccessibilityWidgetType","getAccessibilityProps","BaseDatasetComponent","BaseDatasetState","WmAnchor","WmPicture","Tappable","WmButton","get","isArray","isEmpty","isObject","AssetProvider","createSkeleton","WmSearchState","constructor","args","_defineProperty","top","left","WmSearch","props","Promise","resolve","position","view","measure","x","y","width","height","px","py","OS","updateState","value","isDefaultQuery","prevQuery","state","query","searchon","result","data","updateFilteredData","validate","datavalue","setTimeout","invokeEvent","undefined","proxy","invokeEventCallback","computePosition","then","isOpened","dataProvider","clearSearch","hide","dataItems","map","item","selected","type","queryText","_filteredData","filterOptions","entries","filteredData","minchars","length","_this$dataProvider","searchkey","updateRequired","init","invokeVariable","response","dataSet","setDataItems","filter","dataObject","isFocused","styles","modal","display","showPopover","focus","_this$widgetRef","widgetRef","onChange","debouncetime","timer","clearTimeout","handleChange","invokeChange","e","cursor","target","selectionStart","onFocus","disabled","readonly","_this$state$props$que","onBlur","triggerValidation","prepareModalOptions","content","modalService","o","modalOptions","modalContentSTyles","searchInputWidth","modalContent","borderWidth","modalStyle","contentStyle","isModal","onClose","dismiss","setState","hideModal","searchIconPress","onItemSelect","displayexp","displayfield","datafield","updateDatavalue","prevDatavalue","queryModel","renderSkeleton","rootStyle","searchInputWrapper","root","text","theme","skeleton","renderSearchBar","_foundationStyle$root","_this$state$dataItems","opts","valueExpr","foundationStyle","getStyle","createElement","style","ref","onLayout","_extends","mergeStyle","isValid","invalid","focusedText","focused","selectionEnd","getTestPropsForInput","SEARCH","placeholderTextColor","placeholderText","color","placeholder","autoFocus","autofocus","editable","onChangeText","bind","nativeEvent","layout","showclear","onTap","id","getTestId","clearButton","iconclass","clearsearchiconclass","showSearchIcon","searchButton","searchiconclass","reset","renderSearchItem","index","imageStyles","imagewidth","getTestProps","disableTouchEffect","disabletoucheffect","searchItem","template","renderitempartial","Fragment","name","picturesource","imgSrc","getTestPropsForLabel","searchItemText","updateDefaultQueryModel","selectedItem","onDataItemsUpdate","componentDidMount","onPropertyChange","$new","$old","dataset","setTemplate","partialName","renderWidget","event","handleLayout","rootWrapper","showModal","maxHeight","contentContainerStyle","dropDownContent","loadAsset","key","limit","caption","datacompletemsg","dataCompleteItem"],"sources":["search.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Keyboard, Platform, Text, TextInput, View } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { find, isNull } from 'lodash';\n\nimport WmSearchProps from './search.props';\nimport { DEFAULT_CLASS, WmSearchStyles } from './search.styles';\nimport { ModalConsumer, ModalOptions, ModalService} from \"@wavemaker-ai/app-rn-runtime/core/modal.service\";\nimport { DataProvider } from '@wavemaker-ai/app-rn-runtime/components/basic/search/local-data-provider';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nimport {\n BaseDatasetComponent,\n BaseDatasetState\n} from '@wavemaker-ai/app-rn-runtime/components/input/basedataset/basedataset.component';\nimport WmAnchor from '@wavemaker-ai/app-rn-runtime/components/basic/anchor/anchor.component';\nimport WmPicture from '@wavemaker-ai/app-rn-runtime/components/basic/picture/picture.component';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport WmButton from '@wavemaker-ai/app-rn-runtime/components/basic/button/button.component';\nimport { get, isArray, isEmpty, isObject } from \"lodash-es\";\nimport { AssetProvider } from '@wavemaker-ai/app-rn-runtime/core/asset.provider';\nimport { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmSearchState extends BaseDatasetState<WmSearchProps> {\n isOpened: boolean = false;\n modalOptions = {} as ModalOptions;\n template: string = \"\";\n position = {\n top: 0,\n left: 0\n } as DropdownPosition;\n data: any = [];\n}\n\nexport interface DropdownPosition {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport default class WmSearch extends BaseDatasetComponent<WmSearchProps, WmSearchState, WmSearchStyles> {\n view: View = null as any;\n private prevDatavalue: any;\n private queryModel: any;\n private searchInputWidth: any;\n private isDefaultQuery: boolean = true;\n private dataProvider: DataProvider;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n private isFocused: boolean = false;\n private updateRequired: any;\n private timer: ReturnType<typeof setTimeout> | null = null;\n\n constructor(props: WmSearchProps) {\n super(props, DEFAULT_CLASS, new WmSearchProps(), new WmSearchState());\n this.dataProvider = new DataProvider();\n if (this.props.datavalue) {\n this.updateState({\n props: {\n query: this.props.datavalue\n }\n } as WmSearchState);\n }\n }\n\n computePosition = () => {\n return new Promise<void>((resolve) => {\n const position = {} as DropdownPosition;\n this.view.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n position.left = px;\n Platform.OS === 'ios' ? position.top = py : position.top = py+ height;\n this.updateState({ position: position } as WmSearchState, resolve);\n });\n });\n }\n\n clearSearch() {\n this.invokeEventCallback('onClear', [null, this]);\n this.hide();\n this.updateState({\n props: {\n query: ''\n },\n dataItems: this.state.dataItems ? this.state.dataItems.map((item: any) => {\n item.selected = false;\n return item;\n }) : []\n } as WmSearchState, () => {\n if (this.state.props.type === 'autocomplete') {\n this.updateFilteredData('');\n }\n });\n }\n\n updateFilteredData(queryText: string = '') {\n const props = this.state.props;\n const filterOptions = {\n query: queryText,\n props: props,\n entries: this.state.dataItems\n };\n let filteredData: Array<any> = [];\n if (props.minchars && queryText.length < props.minchars) {\n filteredData = [];\n } else if (props.type === 'search' && !queryText) {\n filteredData = [];\n } else {\n if (this.props.searchkey && this.updateRequired === undefined) {\n this.updateRequired = this.dataProvider.init(this);\n }\n // for service variables invoke the variable with params.\n if (this.props.searchkey && this.updateRequired && this.state.props.query !== queryText) {\n this.dataProvider.invokeVariable(this, queryText).then((response: any) => {\n if (response) {\n response = response.dataSet;\n if (isEmpty(response)) {\n filteredData = [];\n } else {\n if (isObject(response) && !isArray(response)) {\n response = [response];\n }\n this.setDataItems(response);\n }\n }\n }, () => {});\n return;\n }\n filteredData = this.dataProvider?.filter(filterOptions);\n }\n this.updateState({\n props: { result: filteredData?.map( (item: any) => item.dataObject), query: queryText },\n data: filteredData,\n } as WmSearchState);\n if (!this.state.isOpened && this.isFocused && filteredData.length > 0 ) {\n if(this.styles.modal.display !== \"none\"){\n this.showPopover && this.showPopover();\n }\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n handleChange = (value: any) => {\n this.isDefaultQuery = false;\n const prevQuery = this.state.props.query;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateState({\n props: {result: [], query: value},\n data: []\n } as WmSearchState);\n } else {\n this.updateFilteredData(value);\n }\n if (value === '') {\n this.validate(value);\n this.updateState({\n props: {\n datavalue: '',\n },\n } as WmSearchState);\n if (value === prevQuery) {\n return;\n }\n }\n setTimeout(() => {\n if (this.props.invokeEvent) {\n this.props.invokeEvent('onChange', [undefined, this.proxy, value, prevQuery]);\n }\n this.invokeEventCallback('onChange', [ undefined, this.proxy, value, prevQuery ]);\n }, 300);\n }\n\n onChange(value: any) {\n if(this.state.props.debouncetime && this.state.props.debouncetime > 0) {\n if(this.timer !== null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n this.timer = setTimeout(() => {\n this.handleChange(value)\n }, this.state.props.debouncetime)\n } else {\n this.handleChange(value);\n }\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.updateState({ props: { query: e.target.value } } as WmSearchState);\n }\n }\n\n onFocus() {\n this.isFocused = true;\n if (\n !(this.state.props.disabled || this.state.props.readonly) &&\n this.state.props.type === 'autocomplete'\n ) {\n this.cursor = this.state.props.query?.length || 0;\n this.updateFilteredData(this.state.props.query || '');\n }\n this.invokeEventCallback('onFocus', [null, this]);\n }\n\n onBlur() {\n this.isFocused = false;\n this.validate(this.state.props.datavalue);\n if (!this.state.props.datavalue) {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n this.invokeEventCallback('onBlur', [null, this]);\n }\n\n public showPopover = () => {\n this.computePosition().then(() => {\n this.updateState({ isOpened: true } as WmSearchState);\n });\n };\n\n public hide = () => {};\n\n prepareModalOptions(content: React.ReactNode, styles: WmSearchStyles, modalService: ModalService) {\n const o = this.state.modalOptions;\n const modalContentSTyles = {\n width: this.searchInputWidth - 2 * (styles.modalContent.borderWidth || 0),\n left: (this.state.position.left || 0) + 2 * (styles.modalContent.borderWidth || 0) };\n o.modalStyle = {...styles.modal};\n o.contentStyle = {...styles.modalContent, ...this.state.position, ...modalContentSTyles};\n o.content = content;\n o.isModal = true;\n o.onClose = () => {\n this.hide = () => {};\n Keyboard.dismiss();\n if (this.state.isOpened) {\n this.setState({isOpened: false, modalOptions: {} as ModalOptions} as WmSearchState);\n }\n };\n this.hide = () => {\n modalService.hideModal(this.state.modalOptions);\n if (this.state.isOpened) {\n this.setState({ isOpened: false, modalOptions: {} as ModalOptions } as WmSearchState);\n }\n }\n return o;\n }\n\n searchIconPress() {\n this.isFocused = false;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateFilteredData(this.state.props.query);\n } else {\n this.onItemSelect(this.state.data[0]);\n }\n\n if (get(this.props, 'formfield')) {\n // @ts-ignore\n // @ts-ignore\n this.props.invokeEvent('onSubmit', [null, this]);\n } else {\n this.invokeEventCallback('onSubmit', [null, this]);\n }\n }\n\n onItemSelect(item: any) {\n this.isFocused = false;\n this.updateState({ props: {\n query: item.displayexp || item.displayfield\n }\n } as WmSearchState);\n this.validate(item.datafield);\n this.updateDatavalue(item.datafield);\n this.prevDatavalue = item.datafield;\n this.queryModel = item;\n if (get(this.props, 'formfield')) {\n // @ts-ignore\n this.props.invokeEvent('onSelect', [null, this, item.datafield]);\n // @ts-ignore\n this.props.invokeEvent('onSubmit', [null, this]);\n } else {\n this.invokeEventCallback('onSelect', [null, this, item.datafield]);\n this.invokeEventCallback('onSubmit', [null, this]);\n }\n this.hide();\n }\n\n public renderSkeleton(props: WmSearchProps): React.ReactNode {\n\n const rootStyle = {\n ...this.styles.searchInputWrapper,\n ...this.styles.root,\n ...this.styles.text\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, rootStyle)\n }\n\n renderSearchBar() {\n const props = this.state.props;\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.props.query || '';\n const foundationStyle = this.theme.getStyle('app-input');\n return(\n /*\n * onLayout function is required.\n * https://github.com/naoufal/react-native-accordion/pull/19/files\n */\n <View style={this.styles.root} ref={ref => {this.view = ref as View}} onLayout={() => {}}>\n <View style={this.styles.searchInputWrapper}>\n <TextInput style={ this.state.props.type === 'autocomplete' ?\n [foundationStyle?.root ?? {}, this.theme.mergeStyle(this.styles.text, foundationStyle?.text),\n this.state.isValid ? {} : this.theme.mergeStyle(this.styles.invalid, foundationStyle?.invalid),\n this.isFocused ? this.theme.mergeStyle(this.styles.focusedText, foundationStyle?.focused) : {},\n this.state.props.disabled ? this.theme.mergeStyle(foundationStyle?.disabled) : {}] :\n [this.styles.text, this.state.isValid ? {} : this.styles.invalid, this.state.isOpened && this.state.dataItems?.length > 0? this.styles.focusedText : null]}\n ref={ref => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(AccessibilityWidgetType.SEARCH, props)}\n placeholderTextColor={this.styles.placeholderText.color as any}\n placeholder={props.placeholder || 'Search'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n onChangeText={this.onChange.bind(this)}\n onChange={this.invokeChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onLayout={e => {this.searchInputWidth = e.nativeEvent.layout.width}}\n onBlur={this.onBlur.bind(this)}\n {...opts}>\n </TextInput>\n {(props.showclear && !(this.state.props.disabled || this.state.props.readonly)) && this.state.props.query ? <WmButton onTap={this.clearSearch.bind(this)}\n id={this.getTestId('clear')}\n styles={this.styles.clearButton} iconclass={props.clearsearchiconclass || 'wi wi-clear'}></WmButton> : null}\n </View>\n {props.showSearchIcon && props.type === 'search' ? <WmButton styles={this.styles.searchButton}\n id={this.getTestId('search')}\n iconclass={props.searchiconclass || props.iconclass} onTap={this.searchIconPress.bind(this)}></WmButton> : null}\n </View>\n );\n }\n\n reset() {\n if (this.state.props.query) {\n this.updateState({\n props: {\n query: ''\n }\n } as WmSearchState);\n }\n }\n\n renderSearchItem(item: any, index: number) {\n const props = this.state.props;\n const imageStyles = { root: {height:props.imagewidth, width:props.imagewidth}}\n return (\n <Tappable onTap={this.onItemSelect.bind(this, item)} {...this.getTestProps(`action${index}`)} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={this.styles.searchItem}>\n {!isEmpty(this.state.template) && this.props.renderitempartial ?\n this.props.renderitempartial(item.dataObject, index, this.state.template) : (<>\n <WmPicture id={this.getTestId(`picture${index}`)} styles={imageStyles} name={props.name + '_image'} picturesource={item.imgSrc}></WmPicture>\n <Text {...this.getTestPropsForLabel(index + '')} style={this.styles.searchItemText}>{item.displayexp || item.displayfield}</Text>\n </>)}\n </View>\n </Tappable>\n );\n }\n\n updateDefaultQueryModel() {\n if (this.state.dataItems && this.state.dataItems.length && this.isDefaultQuery) {\n const selectedItem = find(this.state.dataItems, (item) => item.selected);\n this.updateState({ props: {\n query: selectedItem ? (selectedItem.displayexp || selectedItem.displayfield) : ''\n }\n } as WmSearchState);\n }\n }\n\n onDataItemsUpdate() {\n super.onDataItemsUpdate();\n this.isFocused && this.state.dataItems.length && this.updateFilteredData(this.state.props.query);\n this.updateDefaultQueryModel();\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.updateDefaultQueryModel();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'dataset':\n if (!isEmpty($new) && isObject($new) && !isArray($new)) {\n $new = [$new];\n this.updateState({\n props: {\n dataset: $new\n }\n } as WmSearchState);\n }\n break;\n }\n super.onPropertyChange(name, $new, $old);\n }\n\n setTemplate(partialName: any) {\n this.updateState({ template: partialName} as WmSearchState);\n }\n\n renderWidget(props: WmSearchProps) {\n const result = this.state.data;\n return (\n <View\n onLayout={(event) => this.handleLayout(event)}\n style={[this.styles.rootWrapper]}\n >\n {this.renderSearchBar()}\n {this.state.isOpened ? (\n <ModalConsumer>\n {(modalService: ModalService) => {\n modalService.showModal(this.prepareModalOptions((\n <ScrollView style={{width: '100%', maxHeight: 200}} contentContainerStyle={this.styles.dropDownContent}>\n <AssetProvider value={this.loadAsset}>\n {result && result.map((item: any, index: any) => (\n <View key={item.key}>\n {\n (!props.limit) || (props.limit && index+1 <= props.limit) ?\n this.renderSearchItem(item, index)\n : null\n }\n {\n index === result.length - 1 ?\n <WmAnchor caption={props.datacompletemsg} styles={this.styles.dataCompleteItem}></WmAnchor> : null\n }\n </View>\n ))}\n </AssetProvider>\n </ScrollView>\n ), this.styles, modalService));\n return null;\n }}\n </ModalConsumer>) : null}\n </View>\n\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Keyboard","Platform","Text","TextInput","View","ScrollView","find","isNull","WmSearchProps","DEFAULT_CLASS","ModalConsumer","DataProvider","AccessibilityWidgetType","getAccessibilityProps","BaseDatasetComponent","BaseDatasetState","WmAnchor","WmPicture","Tappable","WmButton","get","isArray","isEmpty","isObject","AssetProvider","createSkeleton","WmSearchState","constructor","args","_defineProperty","top","left","WmSearch","props","Promise","resolve","position","view","measure","x","y","width","height","px","py","OS","updateState","value","isDefaultQuery","prevQuery","state","query","searchon","result","data","updateFilteredData","validate","datavalue","setTimeout","invokeEvent","undefined","proxy","invokeEventCallback","computePosition","then","isOpened","dataProvider","clearSearch","hide","dataItems","map","item","selected","type","queryText","_filteredData","filterOptions","entries","filteredData","minchars","length","_this$dataProvider","searchkey","updateRequired","init","invokeVariable","response","dataSet","setDataItems","filter","dataObject","isFocused","styles","modal","display","showPopover","focus","_this$widgetRef","widgetRef","onChange","debouncetime","timer","clearTimeout","handleChange","invokeChange","e","cursor","target","selectionStart","onFocus","disabled","readonly","_this$state$props$que","onBlur","triggerValidation","prepareModalOptions","content","modalService","o","modalOptions","modalContentSTyles","searchInputWidth","modalContent","borderWidth","modalStyle","contentStyle","isModal","onClose","dismiss","setState","hideModal","searchIconPress","onItemSelect","displayexp","displayfield","datafield","updateDatavalue","prevDatavalue","queryModel","renderSkeleton","rootStyle","searchInputWrapper","root","text","theme","skeleton","renderSearchBar","_foundationStyle$root","_this$state$dataItems","opts","valueExpr","foundationStyle","getStyle","createElement","style","ref","onLayout","_extends","mergeStyle","isValid","invalid","focusedText","focused","selectionEnd","getTestPropsForInput","SEARCH","placeholderTextColor","placeholderText","color","placeholder","autoFocus","autofocus","editable","onChangeText","bind","nativeEvent","layout","showclear","onTap","id","getTestId","clearButton","iconclass","clearsearchiconclass","iconurl","clearsearchiconurl","showSearchIcon","searchButton","searchiconclass","searchiconurl","reset","renderSearchItem","index","imageStyles","imagewidth","getTestProps","disableTouchEffect","disabletoucheffect","searchItem","template","renderitempartial","Fragment","name","picturesource","imgSrc","getTestPropsForLabel","searchItemText","updateDefaultQueryModel","selectedItem","onDataItemsUpdate","componentDidMount","onPropertyChange","$new","$old","dataset","setTemplate","partialName","renderWidget","event","handleLayout","rootWrapper","showModal","maxHeight","contentContainerStyle","dropDownContent","loadAsset","key","limit","caption","datacompletemsg","dataCompleteItem"],"sources":["search.component.tsx"],"sourcesContent":["import React from 'react';\nimport { DimensionValue, Keyboard, Platform, Text, TextInput, View } from 'react-native';\nimport { ScrollView } from 'react-native-gesture-handler';\nimport { find, isNull } from 'lodash';\n\nimport WmSearchProps from './search.props';\nimport { DEFAULT_CLASS, WmSearchStyles } from './search.styles';\nimport { ModalConsumer, ModalOptions, ModalService} from \"@wavemaker-ai/app-rn-runtime/core/modal.service\";\nimport { DataProvider } from '@wavemaker-ai/app-rn-runtime/components/basic/search/local-data-provider';\nimport { AccessibilityWidgetType, getAccessibilityProps } from '@wavemaker-ai/app-rn-runtime/core/accessibility';\n\nimport {\n BaseDatasetComponent,\n BaseDatasetState\n} from '@wavemaker-ai/app-rn-runtime/components/input/basedataset/basedataset.component';\nimport WmAnchor from '@wavemaker-ai/app-rn-runtime/components/basic/anchor/anchor.component';\nimport WmPicture from '@wavemaker-ai/app-rn-runtime/components/basic/picture/picture.component';\nimport { Tappable } from '@wavemaker-ai/app-rn-runtime/core/tappable.component';\nimport WmButton from '@wavemaker-ai/app-rn-runtime/components/basic/button/button.component';\nimport { get, isArray, isEmpty, isObject } from \"lodash-es\";\nimport { AssetProvider } from '@wavemaker-ai/app-rn-runtime/core/asset.provider';\nimport { createSkeleton } from '../skeleton/skeleton.component';\n\nexport class WmSearchState extends BaseDatasetState<WmSearchProps> {\n isOpened: boolean = false;\n modalOptions = {} as ModalOptions;\n template: string = \"\";\n position = {\n top: 0,\n left: 0\n } as DropdownPosition;\n data: any = [];\n}\n\nexport interface DropdownPosition {\n top?: number;\n bottom?: number;\n left?: number;\n right?: number;\n}\n\nexport default class WmSearch extends BaseDatasetComponent<WmSearchProps, WmSearchState, WmSearchStyles> {\n view: View = null as any;\n private prevDatavalue: any;\n private queryModel: any;\n private searchInputWidth: any;\n private isDefaultQuery: boolean = true;\n private dataProvider: DataProvider;\n public widgetRef: TextInput | null = null;\n private cursor: any = 0;\n private isFocused: boolean = false;\n private updateRequired: any;\n private timer: ReturnType<typeof setTimeout> | null = null;\n\n constructor(props: WmSearchProps) {\n super(props, DEFAULT_CLASS, new WmSearchProps(), new WmSearchState());\n this.dataProvider = new DataProvider();\n if (this.props.datavalue) {\n this.updateState({\n props: {\n query: this.props.datavalue\n }\n } as WmSearchState);\n }\n }\n\n computePosition = () => {\n return new Promise<void>((resolve) => {\n const position = {} as DropdownPosition;\n this.view.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n position.left = px;\n Platform.OS === 'ios' ? position.top = py : position.top = py+ height;\n this.updateState({ position: position } as WmSearchState, resolve);\n });\n });\n }\n\n clearSearch() {\n this.invokeEventCallback('onClear', [null, this]);\n this.hide();\n this.updateState({\n props: {\n query: ''\n },\n dataItems: this.state.dataItems ? this.state.dataItems.map((item: any) => {\n item.selected = false;\n return item;\n }) : []\n } as WmSearchState, () => {\n if (this.state.props.type === 'autocomplete') {\n this.updateFilteredData('');\n }\n });\n }\n\n updateFilteredData(queryText: string = '') {\n const props = this.state.props;\n const filterOptions = {\n query: queryText,\n props: props,\n entries: this.state.dataItems\n };\n let filteredData: Array<any> = [];\n if (props.minchars && queryText.length < props.minchars) {\n filteredData = [];\n } else if (props.type === 'search' && !queryText) {\n filteredData = [];\n } else {\n if (this.props.searchkey && this.updateRequired === undefined) {\n this.updateRequired = this.dataProvider.init(this);\n }\n // for service variables invoke the variable with params.\n if (this.props.searchkey && this.updateRequired && this.state.props.query !== queryText) {\n this.dataProvider.invokeVariable(this, queryText).then((response: any) => {\n if (response) {\n response = response.dataSet;\n if (isEmpty(response)) {\n filteredData = [];\n } else {\n if (isObject(response) && !isArray(response)) {\n response = [response];\n }\n this.setDataItems(response);\n }\n }\n }, () => {});\n return;\n }\n filteredData = this.dataProvider?.filter(filterOptions);\n }\n this.updateState({\n props: { result: filteredData?.map( (item: any) => item.dataObject), query: queryText },\n data: filteredData,\n } as WmSearchState);\n if (!this.state.isOpened && this.isFocused && filteredData.length > 0 ) {\n if(this.styles.modal.display !== \"none\"){\n this.showPopover && this.showPopover();\n }\n }\n }\n\n focus() {\n this?.widgetRef?.focus();\n }\n\n handleChange = (value: any) => {\n this.isDefaultQuery = false;\n const prevQuery = this.state.props.query;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateState({\n props: {result: [], query: value},\n data: []\n } as WmSearchState);\n } else {\n this.updateFilteredData(value);\n }\n if (value === '') {\n this.validate(value);\n this.updateState({\n props: {\n datavalue: '',\n },\n } as WmSearchState);\n if (value === prevQuery) {\n return;\n }\n }\n setTimeout(() => {\n if (this.props.invokeEvent) {\n this.props.invokeEvent('onChange', [undefined, this.proxy, value, prevQuery]);\n }\n this.invokeEventCallback('onChange', [ undefined, this.proxy, value, prevQuery ]);\n }, 300);\n }\n\n onChange(value: any) {\n if(this.state.props.debouncetime && this.state.props.debouncetime > 0) {\n if(this.timer !== null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n\n this.timer = setTimeout(() => {\n this.handleChange(value)\n }, this.state.props.debouncetime)\n } else {\n this.handleChange(value);\n }\n }\n\n invokeChange(e: any) {\n if (Platform.OS === 'web') {\n this.cursor = e.target.selectionStart;\n this.updateState({ props: { query: e.target.value } } as WmSearchState);\n }\n }\n\n onFocus() {\n this.isFocused = true;\n if (\n !(this.state.props.disabled || this.state.props.readonly) &&\n this.state.props.type === 'autocomplete'\n ) {\n this.cursor = this.state.props.query?.length || 0;\n this.updateFilteredData(this.state.props.query || '');\n }\n this.invokeEventCallback('onFocus', [null, this]);\n }\n\n onBlur() {\n this.isFocused = false;\n this.validate(this.state.props.datavalue);\n if (!this.state.props.datavalue) {\n setTimeout(() => {\n this.props.triggerValidation && this.props.triggerValidation();\n })\n }\n this.invokeEventCallback('onBlur', [null, this]);\n }\n\n public showPopover = () => {\n this.computePosition().then(() => {\n this.updateState({ isOpened: true } as WmSearchState);\n });\n };\n\n public hide = () => {};\n\n prepareModalOptions(content: React.ReactNode, styles: WmSearchStyles, modalService: ModalService) {\n const o = this.state.modalOptions;\n const modalContentSTyles = {\n width: this.searchInputWidth - 2 * (styles.modalContent.borderWidth || 0),\n left: (this.state.position.left || 0) + 2 * (styles.modalContent.borderWidth || 0) };\n o.modalStyle = {...styles.modal};\n o.contentStyle = {...styles.modalContent, ...this.state.position, ...modalContentSTyles};\n o.content = content;\n o.isModal = true;\n o.onClose = () => {\n this.hide = () => {};\n Keyboard.dismiss();\n if (this.state.isOpened) {\n this.setState({isOpened: false, modalOptions: {} as ModalOptions} as WmSearchState);\n }\n };\n this.hide = () => {\n modalService.hideModal(this.state.modalOptions);\n if (this.state.isOpened) {\n this.setState({ isOpened: false, modalOptions: {} as ModalOptions } as WmSearchState);\n }\n }\n return o;\n }\n\n searchIconPress() {\n this.isFocused = false;\n if (this.state.props.searchon === 'onsearchiconclick') {\n this.updateFilteredData(this.state.props.query);\n } else {\n this.onItemSelect(this.state.data[0]);\n }\n\n if (get(this.props, 'formfield')) {\n // @ts-ignore\n // @ts-ignore\n this.props.invokeEvent('onSubmit', [null, this]);\n } else {\n this.invokeEventCallback('onSubmit', [null, this]);\n }\n }\n\n onItemSelect(item: any) {\n this.isFocused = false;\n this.updateState({ props: {\n query: item.displayexp || item.displayfield\n }\n } as WmSearchState);\n this.validate(item.datafield);\n this.updateDatavalue(item.datafield);\n this.prevDatavalue = item.datafield;\n this.queryModel = item;\n if (get(this.props, 'formfield')) {\n // @ts-ignore\n this.props.invokeEvent('onSelect', [null, this, item.datafield]);\n // @ts-ignore\n this.props.invokeEvent('onSubmit', [null, this]);\n } else {\n this.invokeEventCallback('onSelect', [null, this, item.datafield]);\n this.invokeEventCallback('onSubmit', [null, this]);\n }\n this.hide();\n }\n\n public renderSkeleton(props: WmSearchProps): React.ReactNode {\n\n const rootStyle = {\n ...this.styles.searchInputWrapper,\n ...this.styles.root,\n ...this.styles.text\n }\n\n return createSkeleton(this.theme, this.styles.skeleton, rootStyle)\n }\n\n renderSearchBar() {\n const props = this.state.props;\n let opts: any = {};\n const valueExpr = Platform.OS === 'web' ? 'value' : 'defaultValue';\n opts[valueExpr] = this.state.props.query || '';\n const foundationStyle = this.theme.getStyle('app-input');\n return(\n /*\n * onLayout function is required.\n * https://github.com/naoufal/react-native-accordion/pull/19/files\n */\n <View style={this.styles.root} ref={ref => {this.view = ref as View}} onLayout={() => {}}>\n <View style={this.styles.searchInputWrapper}>\n <TextInput style={ this.state.props.type === 'autocomplete' ?\n [foundationStyle?.root ?? {}, this.theme.mergeStyle(this.styles.text, foundationStyle?.text),\n this.state.isValid ? {} : this.theme.mergeStyle(this.styles.invalid, foundationStyle?.invalid),\n this.isFocused ? this.theme.mergeStyle(this.styles.focusedText, foundationStyle?.focused) : {},\n this.state.props.disabled ? this.theme.mergeStyle(foundationStyle?.disabled) : {}] :\n [this.styles.text, this.state.isValid ? {} : this.styles.invalid, this.state.isOpened && this.state.dataItems?.length > 0? this.styles.focusedText : null]}\n ref={ref => {this.widgetRef = ref;\n // @ts-ignore\n if (ref && !isNull(ref.selectionStart) && !isNull(ref.selectionEnd)) {\n // @ts-ignore\n ref.selectionStart = ref.selectionEnd = this.cursor;\n }}}\n {...this.getTestPropsForInput()}\n {...getAccessibilityProps(AccessibilityWidgetType.SEARCH, props)}\n placeholderTextColor={this.styles.placeholderText.color as any}\n placeholder={props.placeholder || 'Search'}\n autoFocus={props.autofocus}\n editable={props.disabled || props.readonly ? false : true}\n onChangeText={this.onChange.bind(this)}\n onChange={this.invokeChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onLayout={e => {this.searchInputWidth = e.nativeEvent.layout.width}}\n onBlur={this.onBlur.bind(this)}\n {...opts}>\n </TextInput>\n {(props.showclear && !(this.state.props.disabled || this.state.props.readonly)) && this.state.props.query ? <WmButton onTap={this.clearSearch.bind(this)}\n id={this.getTestId('clear')}\n styles={this.styles.clearButton} iconclass={props.clearsearchiconclass || 'wi wi-clear'} iconurl={props.clearsearchiconurl}></WmButton> : null}\n </View>\n {props.showSearchIcon && props.type === 'search' ? <WmButton styles={this.styles.searchButton}\n id={this.getTestId('search')}\n iconclass={props.searchiconclass || props.iconclass} iconurl={props.searchiconurl || props.iconurl} onTap={this.searchIconPress.bind(this)}></WmButton> : null}\n </View>\n );\n }\n\n reset() {\n if (this.state.props.query) {\n this.updateState({\n props: {\n query: ''\n }\n } as WmSearchState);\n }\n }\n\n renderSearchItem(item: any, index: number) {\n const props = this.state.props;\n const imageStyles = { root: {height:props.imagewidth, width:props.imagewidth}}\n return (\n <Tappable onTap={this.onItemSelect.bind(this, item)} {...this.getTestProps(`action${index}`)} disableTouchEffect={this.state.props.disabletoucheffect}>\n <View style={this.styles.searchItem}>\n {!isEmpty(this.state.template) && this.props.renderitempartial ?\n this.props.renderitempartial(item.dataObject, index, this.state.template) : (<>\n <WmPicture id={this.getTestId(`picture${index}`)} styles={imageStyles} name={props.name + '_image'} picturesource={item.imgSrc}></WmPicture>\n <Text {...this.getTestPropsForLabel(index + '')} style={this.styles.searchItemText}>{item.displayexp || item.displayfield}</Text>\n </>)}\n </View>\n </Tappable>\n );\n }\n\n updateDefaultQueryModel() {\n if (this.state.dataItems && this.state.dataItems.length && this.isDefaultQuery) {\n const selectedItem = find(this.state.dataItems, (item) => item.selected);\n this.updateState({ props: {\n query: selectedItem ? (selectedItem.displayexp || selectedItem.displayfield) : ''\n }\n } as WmSearchState);\n }\n }\n\n onDataItemsUpdate() {\n super.onDataItemsUpdate();\n this.isFocused && this.state.dataItems.length && this.updateFilteredData(this.state.props.query);\n this.updateDefaultQueryModel();\n }\n\n componentDidMount(): void {\n super.componentDidMount();\n this.updateDefaultQueryModel();\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n switch (name) {\n case 'dataset':\n if (!isEmpty($new) && isObject($new) && !isArray($new)) {\n $new = [$new];\n this.updateState({\n props: {\n dataset: $new\n }\n } as WmSearchState);\n }\n break;\n }\n super.onPropertyChange(name, $new, $old);\n }\n\n setTemplate(partialName: any) {\n this.updateState({ template: partialName} as WmSearchState);\n }\n\n renderWidget(props: WmSearchProps) {\n const result = this.state.data;\n return (\n <View\n onLayout={(event) => this.handleLayout(event)}\n style={[this.styles.rootWrapper]}\n >\n {this.renderSearchBar()}\n {this.state.isOpened ? (\n <ModalConsumer>\n {(modalService: ModalService) => {\n modalService.showModal(this.prepareModalOptions((\n <ScrollView style={{width: '100%', maxHeight: 200}} contentContainerStyle={this.styles.dropDownContent}>\n <AssetProvider value={this.loadAsset}>\n {result && result.map((item: any, index: any) => (\n <View key={item.key}>\n {\n (!props.limit) || (props.limit && index+1 <= props.limit) ?\n this.renderSearchItem(item, index)\n : null\n }\n {\n index === result.length - 1 ?\n <WmAnchor caption={props.datacompletemsg} styles={this.styles.dataCompleteItem}></WmAnchor> : null\n }\n </View>\n ))}\n </AssetProvider>\n </ScrollView>\n ), this.styles, modalService));\n return null;\n }}\n </ModalConsumer>) : null}\n </View>\n\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|