@wavemaker-ai/app-rn-runtime 1.0.0-rc.326 → 1.0.0-rc.328

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/components/advanced/offline-banner/offline-banner.component.js +68 -0
  2. package/components/advanced/offline-banner/offline-banner.component.js.map +1 -0
  3. package/components/advanced/offline-banner/offline-banner.props.js +12 -0
  4. package/components/advanced/offline-banner/offline-banner.props.js.map +1 -0
  5. package/components/advanced/offline-banner/offline-banner.styles.js +99 -0
  6. package/components/advanced/offline-banner/offline-banner.styles.js.map +1 -0
  7. package/components/advanced/webview/webview.component.js +2 -2
  8. package/components/advanced/webview/webview.component.js.map +1 -1
  9. package/components/advanced/webview/webview.props.js +1 -1
  10. package/components/advanced/webview/webview.props.js.map +1 -1
  11. package/components/chart/area-chart/area-chart.component.js +86 -93
  12. package/components/chart/area-chart/area-chart.component.js.map +1 -1
  13. package/components/chart/area-chart/area-chart.props.js +2 -0
  14. package/components/chart/area-chart/area-chart.props.js.map +1 -1
  15. package/components/chart/bar-chart/bar-chart.component.js +79 -97
  16. package/components/chart/bar-chart/bar-chart.component.js.map +1 -1
  17. package/components/chart/basechart.component.js +117 -96
  18. package/components/chart/basechart.component.js.map +1 -1
  19. package/components/chart/basechart.props.js +12 -0
  20. package/components/chart/basechart.props.js.map +1 -1
  21. package/components/chart/basechart.styles.js.map +1 -1
  22. package/components/chart/bubble-chart/bubble-chart.component.js +72 -70
  23. package/components/chart/bubble-chart/bubble-chart.component.js.map +1 -1
  24. package/components/chart/bubble-chart/bubble-chart.props.js +1 -0
  25. package/components/chart/bubble-chart/bubble-chart.props.js.map +1 -1
  26. package/components/chart/line-chart/line-chart.component.js +105 -79
  27. package/components/chart/line-chart/line-chart.component.js.map +1 -1
  28. package/components/chart/pie-chart/pie-chart.component.js +70 -166
  29. package/components/chart/pie-chart/pie-chart.component.js.map +1 -1
  30. package/components/chart/pie-chart/pie-chart.props.js +1 -0
  31. package/components/chart/pie-chart/pie-chart.props.js.map +1 -1
  32. package/components/container/accordion/accordionpane/accordionpane.component.js +6 -2
  33. package/components/container/accordion/accordionpane/accordionpane.component.js.map +1 -1
  34. package/components/container/container.component.js +3 -0
  35. package/components/container/container.component.js.map +1 -1
  36. package/components/container/tabs/tabpane/tabpane.component.js +6 -2
  37. package/components/container/tabs/tabpane/tabpane.component.js.map +1 -1
  38. package/components/container/wizard/wizardstep/wizardstep.component.js +6 -2
  39. package/components/container/wizard/wizardstep/wizardstep.component.js.map +1 -1
  40. package/components/data/list/list-template/list-template.component.js +3 -0
  41. package/components/data/list/list-template/list-template.component.js.map +1 -1
  42. package/components/data/list/list.component.js +6 -4
  43. package/components/data/list/list.component.js.map +1 -1
  44. package/components/data/list/list.styles.js +1 -14
  45. package/components/data/list/list.styles.js.map +1 -1
  46. package/components/page/page-content/page-content.component.js +3 -0
  47. package/components/page/page-content/page-content.component.js.map +1 -1
  48. package/components/page/page-content/page-content.props.js +2 -0
  49. package/components/page/page-content/page-content.props.js.map +1 -1
  50. package/components/page/page.component.js +95 -2
  51. package/components/page/page.component.js.map +1 -1
  52. package/components/page/page.props.js +3 -0
  53. package/components/page/page.props.js.map +1 -1
  54. package/components/page/tabbar/tabbar.component.js +3 -2
  55. package/components/page/tabbar/tabbar.component.js.map +1 -1
  56. package/components/page/tabbar/tabbar.props.js +1 -0
  57. package/components/page/tabbar/tabbar.props.js.map +1 -1
  58. package/components-prism/basic/search/search.component.js +206 -0
  59. package/components-prism/basic/search/search.component.js.map +1 -0
  60. package/components-prism/basic/search/search.props.js +14 -0
  61. package/components-prism/basic/search/search.props.js.map +1 -0
  62. package/components-prism/basic/search/search.styles.js +127 -0
  63. package/components-prism/basic/search/search.styles.js.map +1 -0
  64. package/core/accessibility.js +9 -0
  65. package/core/accessibility.js.map +1 -1
  66. package/core/auto-layout.utils.js +59 -0
  67. package/core/auto-layout.utils.js.map +1 -1
  68. package/core/base.component.js +22 -1
  69. package/core/base.component.js.map +1 -1
  70. package/core/network.service.js.map +1 -1
  71. package/npm-shrinkwrap.json +562 -1394
  72. package/package-lock.json +562 -1394
  73. package/package.json +12 -7
  74. package/runtime/base-fragment.component.js +7 -1
  75. package/runtime/base-fragment.component.js.map +1 -1
  76. package/runtime/base-page.component.js +24 -0
  77. package/runtime/base-page.component.js.map +1 -1
  78. package/runtime/base-partial.component.js.map +1 -1
  79. package/variables/http.service.js +6 -1
  80. package/variables/http.service.js.map +1 -1
  81. package/variables/interceptor/intercept-context.impl.js +46 -0
  82. package/variables/interceptor/intercept-context.impl.js.map +1 -0
  83. package/variables/interceptor/interceptor.factory.js +78 -0
  84. package/variables/interceptor/interceptor.factory.js.map +1 -0
  85. package/variables/interceptor/persistent.storage.js +142 -0
  86. package/variables/interceptor/persistent.storage.js.map +1 -0
  87. package/variables/interceptor/service-variable-interceptor.js +52 -0
  88. package/variables/interceptor/service-variable-interceptor.js.map +1 -0
  89. package/variables/service-variable.js +109 -1
  90. package/variables/service-variable.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["alignmentMatrixFixed","justifyContent","alignItems","alignmentMatrixAuto","start","center","end","isAutoLayout","props","direction","wrap","gap","alignment","columngap","undefined","getPositionValueStyle","positionvalue","top","right","bottom","left","split","parse","v","Number","replace","getDimensionStyle","baseStyle","isInnerView","base","width","height","dimensionStyle","parentDir","parentdirection","hasParentAlignment","Boolean","parentalignment","isRow","position","Object","assign","clipcontent","overflow","zindex","zIndex","alignSelf","flexGrow","num","endsWith","parseFloat","isNaN","flexShrink","minWidth","flexBasis","getGapStyle","_props$gap","_props$direction","_props$alignment","finalGap","finalDirection","finalAlignment","isAutoGap","layoutStyle","alignConfig","columnGap","rowGap","getContentContainerStyle","_props$direction2","_props$wrap","_props$gap2","_props$alignment2","finalWrap","isWrap","flexWrap","alignContent","getDirectionStyle","directionStyle","flexDirection","extractAutoLayoutProps","source","parentProps","_source$overflow","_source$parentdirecti","_source$parentalignme","toLowerCase"],"sources":["auto-layout.utils.ts"],"sourcesContent":["import { ViewStyle, DimensionValue } from 'react-native';\n\nexport interface AutoLayoutProps {\n direction?: 'row' | 'column';\n wrap?: boolean;\n alignment?: string;\n gap?: number | string | 'auto';\n columngap?: number | string | 'auto';\n parentdirection?: string;\n parentalignment?: string;\n\n position?: 'relative' | 'sticky' | 'absolute' | 'fixed';\n zindex?: number;\n clipcontent?: boolean;\n overflow?: 'none' | 'scroll';\n positionvalue?: string;\n}\n\nexport type ParentAlignItems = 'flex-start' | 'center' | 'flex-end';\n\nconst alignmentMatrixFixed: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n 'top-left': { justifyContent: 'flex-start', alignItems: 'flex-start' },\n 'top-center': { justifyContent: 'center', alignItems: 'flex-start' },\n 'top-right': { justifyContent: 'flex-end', alignItems: 'flex-start' },\n 'middle-left': { justifyContent: 'flex-start', alignItems: 'center' },\n 'middle-center': { justifyContent: 'center', alignItems: 'center' },\n 'middle-right': { justifyContent: 'flex-end', alignItems: 'center' },\n 'bottom-left': { justifyContent: 'flex-start', alignItems: 'flex-end' },\n 'bottom-center': { justifyContent: 'center', alignItems: 'flex-end' },\n 'bottom-right': { justifyContent: 'flex-end', alignItems: 'flex-end' },\n};\n\nconst alignmentMatrixAuto: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n start: { justifyContent: 'space-between', alignItems: 'flex-start' },\n center: { justifyContent: 'space-between', alignItems: 'center' },\n end: { justifyContent: 'space-between', alignItems: 'flex-end' },\n};\n\nexport function isAutoLayout(props: AutoLayoutProps): boolean {\n const { direction, wrap, gap, alignment, columngap } = props;\n\n return (\n direction !== undefined ||\n wrap !== undefined ||\n gap !== undefined ||\n alignment !== undefined ||\n columngap !== undefined\n );\n}\n\nexport function getPositionValueStyle(\n positionvalue: AutoLayoutProps['positionvalue']): Pick<ViewStyle, 'top' | 'right' | 'bottom' | 'left'> {\n const [top, right, bottom, left] = positionvalue?.split(' ') || [];\n const parse = (v?: string) => {\n if (!v || v === 'auto') return undefined;\n return Number(v.replace('px', ''));\n };\n return {\n top: parse(top),\n right: parse(right),\n bottom: parse(bottom),\n left: parse(left),\n };\n}\n\nexport function getDimensionStyle(\n props: AutoLayoutProps,\n baseStyle?: ViewStyle,\n isInnerView: boolean = false\n): ViewStyle {\n const base = baseStyle || {};\n const { width, height }: any = base;\n const dimensionStyle: ViewStyle = {};\n const parentDir = props.parentdirection;\n const hasParentAlignment = Boolean(props.parentalignment);\n const isRow = parentDir === 'row';\n if (!isInnerView){\n if(props.position === 'absolute'){\n dimensionStyle.position = 'absolute';\n Object.assign(dimensionStyle, getPositionValueStyle(props.positionvalue));\n }\n if(props.clipcontent){\n if(props.overflow == \"none\"){\n dimensionStyle.overflow = 'hidden'\n }\n }\n if(props.zindex !== undefined){\n dimensionStyle.zIndex = props.zindex\n }\n }\n if (isInnerView) {\n if (width && width !== 'hug') {\n dimensionStyle.width = '100%';\n }\n if (height && height !== 'hug') {\n dimensionStyle.height = '100%';\n }\n return dimensionStyle;\n }\n\n if (height === 'fill') {\n if (!parentDir) {\n dimensionStyle.height = '100%';\n } else {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n }\n dimensionStyle.height = undefined;\n }\n } else if (height === 'hug' || height === undefined) {\n if (parentDir && !isRow) {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n } else if (height) {\n const num = (typeof height === 'string' && height.endsWith('%')) ? height : parseFloat(height);\n dimensionStyle.height = (isNaN(num as number) ? height : num) as DimensionValue;\n }\n\n if (width === 'fill') {\n if (!parentDir) {\n dimensionStyle.width = '100%';\n } else {\n if (isRow) {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 1;\n dimensionStyle.minWidth = 0;\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width === 'hug') {\n if (parentDir) {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n dimensionStyle.flexBasis = 'auto';\n dimensionStyle.flexShrink = 0;\n } else if (!hasParentAlignment) {\n dimensionStyle.alignSelf = 'flex-start';\n }\n }\n dimensionStyle.width = undefined;\n } else if (width === undefined) {\n if (parentDir) {\n if (isRow) {\n // Keep row children with implicit width in their natural content size.\n // Setting flexGrow=0 here makes RN Web emit `flex: 0 1 0%`, which can collapse text/content.\n dimensionStyle.flexBasis = 'auto';\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width) {\n const num = (typeof width === 'string' && width.endsWith('%')) ? width : parseFloat(width);\n dimensionStyle.width = (isNaN(num as number) ? width : num) as DimensionValue;\n }\n\n return dimensionStyle;\n}\n\nfunction getGapStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalGap = props.gap ?? 4;\n const finalDirection = props.direction ?? 'row';\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isAutoGap = finalGap === 'auto';\n const isRow = finalDirection === 'row';\n\n const layoutStyle: ViewStyle = {};\n\n if (isAutoGap) {\n const alignConfig = alignmentMatrixAuto[finalAlignment] || alignmentMatrixAuto['start'];\n layoutStyle.justifyContent = alignConfig.justifyContent as ViewStyle['justifyContent'];\n layoutStyle.alignItems = alignConfig.alignItems as ViewStyle['alignItems'];\n } else {\n if (isRow) {\n layoutStyle.columnGap = Number(finalGap);\n } else {\n layoutStyle.rowGap = Number(finalGap);\n }\n }\n\n return layoutStyle;\n}\n\nexport function getContentContainerStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalDirection = props.direction ?? 'row';\n const finalWrap = props.wrap ?? false;\n const finalGap = props.gap ?? 4;\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isRow = finalDirection === 'row';\n const isAutoGap = finalGap === 'auto';\n const isWrap = finalWrap === true;\n\n const layoutStyle: ViewStyle = {\n flexWrap: isWrap && isRow ? 'wrap' : 'nowrap',\n };\n\n if (!isAutoGap) {\n const alignConfig =\n alignmentMatrixFixed[finalAlignment] || alignmentMatrixFixed['top-left'];\n\n layoutStyle.justifyContent = (\n isRow ? alignConfig.justifyContent : alignConfig.alignItems\n ) as ViewStyle['justifyContent'];\n layoutStyle.alignItems = (\n isRow ? alignConfig.alignItems : alignConfig.justifyContent\n ) as ViewStyle['alignItems'];\n }\n\n if (isWrap && isRow) {\n if (props.columngap === 'auto') {\n layoutStyle.alignContent = 'space-between';\n } else if (props.columngap !== undefined) {\n layoutStyle.rowGap = Number(props.columngap);\n layoutStyle.alignContent = 'flex-start';\n } else {\n // RN Web defaults wrapped rows to stretch, which can create large vertical gaps.\n layoutStyle.alignContent = 'flex-start';\n }\n }\n\n return {\n ...layoutStyle,\n ...getGapStyle(props),\n };\n}\n\nexport function getDirectionStyle(props: AutoLayoutProps): ViewStyle {\n const directionStyle: ViewStyle = {};\n if (props.direction) {\n directionStyle.flexDirection = props.direction;\n }\n return directionStyle;\n}\n\nexport function extractAutoLayoutProps(source: Record<string, any>, parentProps?: Record<string, any>): AutoLayoutProps {\n return {\n direction: source.direction,\n wrap: source.wrap,\n gap: source.gap,\n alignment: source.alignment,\n columngap: source.columngap,\n position: source.position,\n positionvalue: source.positionvalue,\n zindex: source.zindex,\n clipcontent: source.clipcontent,\n overflow: source.overflow?.toLowerCase() as AutoLayoutProps['overflow'],\n parentdirection: source.parentdirection ?? parentProps?.direction,\n parentalignment: source.parentalignment ?? parentProps?.alignment,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["alignmentMatrixFixed","justifyContent","alignItems","alignmentMatrixAuto","start","center","end","isAutoLayout","props","direction","wrap","gap","alignment","columngap","undefined","getPositionValueStyle","positionvalue","top","right","bottom","left","split","parse","v","Number","replace","getDimensionStyle","baseStyle","isInnerView","base","width","height","dimensionStyle","parentDir","parentdirection","hasParentAlignment","Boolean","parentalignment","isRow","position","Object","assign","clipcontent","overflow","zindex","zIndex","alignSelf","flexGrow","num","endsWith","parseFloat","isNaN","flexShrink","minWidth","flexBasis","getGapStyle","_props$gap","_props$direction","_props$alignment","finalGap","finalDirection","finalAlignment","isAutoGap","layoutStyle","alignConfig","columnGap","rowGap","getContentContainerStyle","_props$direction2","_props$wrap","_props$gap2","_props$alignment2","finalWrap","isWrap","flexWrap","alignContent","getDirectionStyle","directionStyle","flexDirection","resolveFillHugStyle","parentDirection","minHeight","extractAutoLayoutProps","source","parentProps","_source$overflow","_source$parentdirecti","_source$parentalignme","toLowerCase"],"sources":["auto-layout.utils.ts"],"sourcesContent":["import { ViewStyle, DimensionValue } from 'react-native';\n\nexport interface AutoLayoutProps {\n direction?: 'row' | 'column';\n wrap?: boolean;\n alignment?: string;\n gap?: number | string | 'auto';\n columngap?: number | string | 'auto';\n parentdirection?: string;\n parentalignment?: string;\n\n position?: 'relative' | 'sticky' | 'absolute' | 'fixed';\n zindex?: number;\n clipcontent?: boolean;\n overflow?: 'none' | 'scroll';\n positionvalue?: string;\n}\n\nexport type ParentAlignItems = 'flex-start' | 'center' | 'flex-end';\n\nconst alignmentMatrixFixed: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n 'top-left': { justifyContent: 'flex-start', alignItems: 'flex-start' },\n 'top-center': { justifyContent: 'center', alignItems: 'flex-start' },\n 'top-right': { justifyContent: 'flex-end', alignItems: 'flex-start' },\n 'middle-left': { justifyContent: 'flex-start', alignItems: 'center' },\n 'middle-center': { justifyContent: 'center', alignItems: 'center' },\n 'middle-right': { justifyContent: 'flex-end', alignItems: 'center' },\n 'bottom-left': { justifyContent: 'flex-start', alignItems: 'flex-end' },\n 'bottom-center': { justifyContent: 'center', alignItems: 'flex-end' },\n 'bottom-right': { justifyContent: 'flex-end', alignItems: 'flex-end' },\n};\n\nconst alignmentMatrixAuto: Record<\n string,\n { justifyContent: string; alignItems: string }\n> = {\n start: { justifyContent: 'space-between', alignItems: 'flex-start' },\n center: { justifyContent: 'space-between', alignItems: 'center' },\n end: { justifyContent: 'space-between', alignItems: 'flex-end' },\n};\n\nexport function isAutoLayout(props: AutoLayoutProps): boolean {\n const { direction, wrap, gap, alignment, columngap } = props;\n\n return (\n direction !== undefined ||\n wrap !== undefined ||\n gap !== undefined ||\n alignment !== undefined ||\n columngap !== undefined\n );\n}\n\nexport function getPositionValueStyle(\n positionvalue: AutoLayoutProps['positionvalue']): Pick<ViewStyle, 'top' | 'right' | 'bottom' | 'left'> {\n const [top, right, bottom, left] = positionvalue?.split(' ') || [];\n const parse = (v?: string) => {\n if (!v || v === 'auto') return undefined;\n return Number(v.replace('px', ''));\n };\n return {\n top: parse(top),\n right: parse(right),\n bottom: parse(bottom),\n left: parse(left),\n };\n}\n\nexport function getDimensionStyle(\n props: AutoLayoutProps,\n baseStyle?: ViewStyle,\n isInnerView: boolean = false\n): ViewStyle {\n const base = baseStyle || {};\n const { width, height }: any = base;\n const dimensionStyle: ViewStyle = {};\n const parentDir = props.parentdirection;\n const hasParentAlignment = Boolean(props.parentalignment);\n const isRow = parentDir === 'row';\n if (!isInnerView){\n if(props.position === 'absolute'){\n dimensionStyle.position = 'absolute';\n Object.assign(dimensionStyle, getPositionValueStyle(props.positionvalue));\n }\n if(props.clipcontent){\n if(props.overflow == \"none\"){\n dimensionStyle.overflow = 'hidden'\n }\n }\n if(props.zindex !== undefined){\n dimensionStyle.zIndex = props.zindex\n }\n }\n if (isInnerView) {\n if (width && width !== 'hug') {\n dimensionStyle.width = '100%';\n }\n if (height && height !== 'hug') {\n dimensionStyle.height = '100%';\n }\n return dimensionStyle;\n }\n\n if (height === 'fill') {\n if (!parentDir) {\n dimensionStyle.height = '100%';\n } else {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n }\n dimensionStyle.height = undefined;\n }\n } else if (height === 'hug' || height === undefined) {\n if (parentDir && !isRow) {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n } else if (height) {\n const num = (typeof height === 'string' && height.endsWith('%')) ? height : parseFloat(height);\n dimensionStyle.height = (isNaN(num as number) ? height : num) as DimensionValue;\n }\n\n if (width === 'fill') {\n if (!parentDir) {\n dimensionStyle.width = '100%';\n } else {\n if (isRow) {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 1;\n dimensionStyle.minWidth = 0;\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width === 'hug') {\n if (parentDir) {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n dimensionStyle.flexBasis = 'auto';\n dimensionStyle.flexShrink = 0;\n } else if (!hasParentAlignment) {\n dimensionStyle.alignSelf = 'flex-start';\n }\n }\n dimensionStyle.width = undefined;\n } else if (width === undefined) {\n if (parentDir) {\n if (isRow) {\n // Keep row children with implicit width in their natural content size.\n // Setting flexGrow=0 here makes RN Web emit `flex: 0 1 0%`, which can collapse text/content.\n dimensionStyle.flexBasis = 'auto';\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width) {\n const num = (typeof width === 'string' && width.endsWith('%')) ? width : parseFloat(width);\n dimensionStyle.width = (isNaN(num as number) ? width : num) as DimensionValue;\n }\n\n return dimensionStyle;\n}\n\nfunction getGapStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalGap = props.gap ?? 4;\n const finalDirection = props.direction ?? 'row';\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isAutoGap = finalGap === 'auto';\n const isRow = finalDirection === 'row';\n\n const layoutStyle: ViewStyle = {};\n\n if (isAutoGap) {\n const alignConfig = alignmentMatrixAuto[finalAlignment] || alignmentMatrixAuto['start'];\n layoutStyle.justifyContent = alignConfig.justifyContent as ViewStyle['justifyContent'];\n layoutStyle.alignItems = alignConfig.alignItems as ViewStyle['alignItems'];\n } else {\n if (isRow) {\n layoutStyle.columnGap = Number(finalGap);\n } else {\n layoutStyle.rowGap = Number(finalGap);\n }\n }\n\n return layoutStyle;\n}\n\nexport function getContentContainerStyle(props: AutoLayoutProps): ViewStyle {\n if (!isAutoLayout(props)) {\n return {};\n }\n\n const finalDirection = props.direction ?? 'row';\n const finalWrap = props.wrap ?? false;\n const finalGap = props.gap ?? 4;\n const finalAlignment = props.alignment ?? 'top-left';\n\n const isRow = finalDirection === 'row';\n const isAutoGap = finalGap === 'auto';\n const isWrap = finalWrap === true;\n\n const layoutStyle: ViewStyle = {\n flexWrap: isWrap && isRow ? 'wrap' : 'nowrap',\n };\n\n if (!isAutoGap) {\n const alignConfig =\n alignmentMatrixFixed[finalAlignment] || alignmentMatrixFixed['top-left'];\n\n layoutStyle.justifyContent = (\n isRow ? alignConfig.justifyContent : alignConfig.alignItems\n ) as ViewStyle['justifyContent'];\n layoutStyle.alignItems = (\n isRow ? alignConfig.alignItems : alignConfig.justifyContent\n ) as ViewStyle['alignItems'];\n }\n\n if (isWrap && isRow) {\n if (props.columngap === 'auto') {\n layoutStyle.alignContent = 'space-between';\n } else if (props.columngap !== undefined) {\n layoutStyle.rowGap = Number(props.columngap);\n layoutStyle.alignContent = 'flex-start';\n } else {\n // RN Web defaults wrapped rows to stretch, which can create large vertical gaps.\n layoutStyle.alignContent = 'flex-start';\n }\n }\n\n return {\n ...layoutStyle,\n ...getGapStyle(props),\n };\n}\n\nexport function getDirectionStyle(props: AutoLayoutProps): ViewStyle {\n const directionStyle: ViewStyle = {};\n if (props.direction) {\n directionStyle.flexDirection = props.direction;\n }\n return directionStyle;\n}\n\n/**\n * Resolves a plain (non-auto-layout) widget's own width/height fill|hug tokens into\n * flex styles based on its parent's direction. Deliberately independent of\n * getDimensionStyle (which drives auto-layout containers) so this can be applied\n * generically to any widget without touching that existing, already-relied-upon logic.\n * No-ops unless width/height is exactly 'fill' or 'hug'.\n */\nexport function resolveFillHugStyle(\n width: string | number | undefined,\n height: string | number | undefined,\n parentDirection?: string,\n hasParentAlignment: boolean = false\n): ViewStyle {\n const dimensionStyle: ViewStyle = {};\n const isRow = parentDirection === 'row';\n\n if (height === 'fill') {\n if (!parentDirection) {\n dimensionStyle.height = '100%';\n } else {\n if (isRow) {\n dimensionStyle.alignSelf = 'stretch';\n } else {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 0;\n dimensionStyle.flexBasis = 0;\n dimensionStyle.minHeight = 0;\n }\n dimensionStyle.height = undefined;\n }\n } else if (height === 'hug') {\n if (parentDirection && !isRow) {\n dimensionStyle.flexGrow = 0;\n }\n dimensionStyle.height = undefined;\n }\n\n if (width === 'fill') {\n if (!parentDirection) {\n dimensionStyle.width = '100%';\n } else {\n if (isRow) {\n dimensionStyle.flexGrow = 1;\n dimensionStyle.flexShrink = 0;\n dimensionStyle.flexBasis = 0;\n dimensionStyle.minWidth = 0;\n } else {\n dimensionStyle.alignSelf = 'stretch';\n }\n dimensionStyle.width = undefined;\n }\n } else if (width === 'hug') {\n if (parentDirection) {\n if (isRow) {\n dimensionStyle.flexGrow = 0;\n dimensionStyle.flexBasis = 'auto';\n dimensionStyle.flexShrink = 0;\n } else if (!hasParentAlignment) {\n dimensionStyle.alignSelf = 'flex-start';\n }\n }\n dimensionStyle.width = undefined;\n }\n\n return dimensionStyle;\n}\n\nexport function extractAutoLayoutProps(source: Record<string, any>, parentProps?: Record<string, any>): AutoLayoutProps {\n return {\n direction: source.direction,\n wrap: source.wrap,\n gap: source.gap,\n alignment: source.alignment,\n columngap: source.columngap,\n position: source.position,\n positionvalue: source.positionvalue,\n zindex: source.zindex,\n clipcontent: source.clipcontent,\n overflow: source.overflow?.toLowerCase() as AutoLayoutProps['overflow'],\n parentdirection: source.parentdirection ?? parentProps?.direction,\n parentalignment: source.parentalignment ?? parentProps?.alignment,\n };\n}\n"],"mappings":"AAoBA,MAAMA,oBAGL,GAAG;EACF,UAAU,EAAE;IAAEC,cAAc,EAAE,YAAY;IAAEC,UAAU,EAAE;EAAa,CAAC;EACtE,YAAY,EAAE;IAAED,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAa,CAAC;EACpE,WAAW,EAAE;IAAED,cAAc,EAAE,UAAU;IAAEC,UAAU,EAAE;EAAa,CAAC;EACrE,aAAa,EAAE;IAAED,cAAc,EAAE,YAAY;IAAEC,UAAU,EAAE;EAAS,CAAC;EACrE,eAAe,EAAE;IAAED,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAS,CAAC;EACnE,cAAc,EAAE;IAAED,cAAc,EAAE,UAAU;IAAEC,UAAU,EAAE;EAAS,CAAC;EACpE,aAAa,EAAE;IAAED,cAAc,EAAE,YAAY;IAAEC,UAAU,EAAE;EAAW,CAAC;EACvE,eAAe,EAAE;IAAED,cAAc,EAAE,QAAQ;IAAEC,UAAU,EAAE;EAAW,CAAC;EACrE,cAAc,EAAE;IAAED,cAAc,EAAE,UAAU;IAAEC,UAAU,EAAE;EAAW;AACvE,CAAC;AAED,MAAMC,mBAGL,GAAG;EACFC,KAAK,EAAE;IAAEH,cAAc,EAAE,eAAe;IAAEC,UAAU,EAAE;EAAa,CAAC;EACpEG,MAAM,EAAE;IAAEJ,cAAc,EAAE,eAAe;IAAEC,UAAU,EAAE;EAAS,CAAC;EACjEI,GAAG,EAAE;IAAEL,cAAc,EAAE,eAAe;IAAEC,UAAU,EAAE;EAAW;AACjE,CAAC;AAED,OAAO,SAASK,YAAYA,CAACC,KAAsB,EAAW;EAC5D,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,GAAG;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGL,KAAK;EAE5D,OACEC,SAAS,KAAKK,SAAS,IACvBJ,IAAI,KAAKI,SAAS,IAClBH,GAAG,KAAKG,SAAS,IACjBF,SAAS,KAAKE,SAAS,IACvBD,SAAS,KAAKC,SAAS;AAE3B;AAEA,OAAO,SAASC,qBAAqBA,CACnCC,aAA+C,EAAwD;EACvG,MAAM,CAACC,GAAG,EAAEC,KAAK,EAAEC,MAAM,EAAEC,IAAI,CAAC,GAAG,CAAAJ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEK,KAAK,CAAC,GAAG,CAAC,KAAI,EAAE;EAClE,MAAMC,KAAK,GAAIC,CAAU,IAAK;IAC5B,IAAI,CAACA,CAAC,IAAIA,CAAC,KAAK,MAAM,EAAE,OAAOT,SAAS;IACxC,OAAOU,MAAM,CAACD,CAAC,CAACE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;EACpC,CAAC;EACD,OAAO;IACLR,GAAG,EAAEK,KAAK,CAACL,GAAG,CAAC;IACfC,KAAK,EAAEI,KAAK,CAACJ,KAAK,CAAC;IACnBC,MAAM,EAAEG,KAAK,CAACH,MAAM,CAAC;IACrBC,IAAI,EAAEE,KAAK,CAACF,IAAI;EAClB,CAAC;AACH;AAEA,OAAO,SAASM,iBAAiBA,CAC/BlB,KAAsB,EACtBmB,SAAqB,EACrBC,WAAoB,GAAG,KAAK,EACjB;EACX,MAAMC,IAAI,GAAGF,SAAS,IAAI,CAAC,CAAC;EAC5B,MAAM;IAAEG,KAAK;IAAEC;EAAY,CAAC,GAAGF,IAAI;EACnC,MAAMG,cAAyB,GAAG,CAAC,CAAC;EACpC,MAAMC,SAAS,GAAGzB,KAAK,CAAC0B,eAAe;EACvC,MAAMC,kBAAkB,GAAGC,OAAO,CAAC5B,KAAK,CAAC6B,eAAe,CAAC;EACzD,MAAMC,KAAK,GAAGL,SAAS,KAAK,KAAK;EACjC,IAAI,CAACL,WAAW,EAAC;IACf,IAAGpB,KAAK,CAAC+B,QAAQ,KAAK,UAAU,EAAC;MAC/BP,cAAc,CAACO,QAAQ,GAAG,UAAU;MACpCC,MAAM,CAACC,MAAM,CAACT,cAAc,EAAEjB,qBAAqB,CAACP,KAAK,CAACQ,aAAa,CAAC,CAAC;IAC3E;IACA,IAAGR,KAAK,CAACkC,WAAW,EAAC;MACnB,IAAGlC,KAAK,CAACmC,QAAQ,IAAI,MAAM,EAAC;QAC1BX,cAAc,CAACW,QAAQ,GAAG,QAAQ;MACpC;IACF;IACA,IAAGnC,KAAK,CAACoC,MAAM,KAAK9B,SAAS,EAAC;MAC5BkB,cAAc,CAACa,MAAM,GAAGrC,KAAK,CAACoC,MAAM;IACtC;EACF;EACA,IAAIhB,WAAW,EAAE;IACf,IAAIE,KAAK,IAAIA,KAAK,KAAK,KAAK,EAAE;MAC5BE,cAAc,CAACF,KAAK,GAAG,MAAM;IAC/B;IACA,IAAIC,MAAM,IAAIA,MAAM,KAAK,KAAK,EAAE;MAC9BC,cAAc,CAACD,MAAM,GAAG,MAAM;IAChC;IACA,OAAOC,cAAc;EACvB;EAEA,IAAID,MAAM,KAAK,MAAM,EAAE;IACrB,IAAI,CAACE,SAAS,EAAE;MACdD,cAAc,CAACD,MAAM,GAAG,MAAM;IAChC,CAAC,MAAM;MACL,IAAIO,KAAK,EAAE;QACTN,cAAc,CAACc,SAAS,GAAG,SAAS;MACtC,CAAC,MAAM;QACLd,cAAc,CAACe,QAAQ,GAAG,CAAC;MAC7B;MACAf,cAAc,CAACD,MAAM,GAAGjB,SAAS;IACnC;EACF,CAAC,MAAM,IAAIiB,MAAM,KAAK,KAAK,IAAIA,MAAM,KAAKjB,SAAS,EAAE;IACjD,IAAImB,SAAS,IAAI,CAACK,KAAK,EAAE;MACvBN,cAAc,CAACe,QAAQ,GAAG,CAAC;IAC7B;IACAf,cAAc,CAACD,MAAM,GAAGjB,SAAS;EACrC,CAAC,MAAM,IAAIiB,MAAM,EAAE;IACjB,MAAMiB,GAAG,GAAI,OAAOjB,MAAM,KAAK,QAAQ,IAAIA,MAAM,CAACkB,QAAQ,CAAC,GAAG,CAAC,GAAIlB,MAAM,GAAGmB,UAAU,CAACnB,MAAM,CAAC;IAC9FC,cAAc,CAACD,MAAM,GAAIoB,KAAK,CAACH,GAAa,CAAC,GAAGjB,MAAM,GAAGiB,GAAsB;EACjF;EAEA,IAAIlB,KAAK,KAAK,MAAM,EAAE;IACpB,IAAI,CAACG,SAAS,EAAE;MACdD,cAAc,CAACF,KAAK,GAAG,MAAM;IAC/B,CAAC,MAAM;MACL,IAAIQ,KAAK,EAAE;QACTN,cAAc,CAACe,QAAQ,GAAG,CAAC;QAC3Bf,cAAc,CAACoB,UAAU,GAAG,CAAC;QAC7BpB,cAAc,CAACqB,QAAQ,GAAG,CAAC;MAC7B,CAAC,MAAM;QACLrB,cAAc,CAACc,SAAS,GAAG,SAAS;MACtC;MACAd,cAAc,CAACF,KAAK,GAAGhB,SAAS;IAClC;EACF,CAAC,MAAM,IAAIgB,KAAK,KAAK,KAAK,EAAE;IAC1B,IAAIG,SAAS,EAAE;MACb,IAAIK,KAAK,EAAE;QACTN,cAAc,CAACe,QAAQ,GAAG,CAAC;QAC3Bf,cAAc,CAACsB,SAAS,GAAG,MAAM;QACjCtB,cAAc,CAACoB,UAAU,GAAG,CAAC;MAC/B,CAAC,MAAM,IAAI,CAACjB,kBAAkB,EAAE;QAC9BH,cAAc,CAACc,SAAS,GAAG,YAAY;MACzC;IACF;IACAd,cAAc,CAACF,KAAK,GAAGhB,SAAS;EAClC,CAAC,MAAM,IAAIgB,KAAK,KAAKhB,SAAS,EAAE;IAC9B,IAAImB,SAAS,EAAE;MACb,IAAIK,KAAK,EAAE;QACT;QACA;QACAN,cAAc,CAACsB,SAAS,GAAG,MAAM;MACnC,CAAC,MAAM;QACLtB,cAAc,CAACc,SAAS,GAAG,SAAS;MACtC;MACAd,cAAc,CAACF,KAAK,GAAGhB,SAAS;IAClC;EACF,CAAC,MAAM,IAAIgB,KAAK,EAAE;IAChB,MAAMkB,GAAG,GAAI,OAAOlB,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACmB,QAAQ,CAAC,GAAG,CAAC,GAAInB,KAAK,GAAGoB,UAAU,CAACpB,KAAK,CAAC;IAC1FE,cAAc,CAACF,KAAK,GAAIqB,KAAK,CAACH,GAAa,CAAC,GAAGlB,KAAK,GAAGkB,GAAsB;EAC/E;EAEA,OAAOhB,cAAc;AACvB;AAEA,SAASuB,WAAWA,CAAC/C,KAAsB,EAAa;EAAA,IAAAgD,UAAA,EAAAC,gBAAA,EAAAC,gBAAA;EACtD,IAAI,CAACnD,YAAY,CAACC,KAAK,CAAC,EAAE;IACxB,OAAO,CAAC,CAAC;EACX;EAEA,MAAMmD,QAAQ,IAAAH,UAAA,GAAGhD,KAAK,CAACG,GAAG,cAAA6C,UAAA,cAAAA,UAAA,GAAI,CAAC;EAC/B,MAAMI,cAAc,IAAAH,gBAAA,GAAGjD,KAAK,CAACC,SAAS,cAAAgD,gBAAA,cAAAA,gBAAA,GAAI,KAAK;EAC/C,MAAMI,cAAc,IAAAH,gBAAA,GAAGlD,KAAK,CAACI,SAAS,cAAA8C,gBAAA,cAAAA,gBAAA,GAAI,UAAU;EAEpD,MAAMI,SAAS,GAAGH,QAAQ,KAAK,MAAM;EACrC,MAAMrB,KAAK,GAAGsB,cAAc,KAAK,KAAK;EAEtC,MAAMG,WAAsB,GAAG,CAAC,CAAC;EAEjC,IAAID,SAAS,EAAE;IACb,MAAME,WAAW,GAAG7D,mBAAmB,CAAC0D,cAAc,CAAC,IAAI1D,mBAAmB,CAAC,OAAO,CAAC;IACvF4D,WAAW,CAAC9D,cAAc,GAAG+D,WAAW,CAAC/D,cAA6C;IACtF8D,WAAW,CAAC7D,UAAU,GAAG8D,WAAW,CAAC9D,UAAqC;EAC5E,CAAC,MAAM;IACL,IAAIoC,KAAK,EAAE;MACTyB,WAAW,CAACE,SAAS,GAAGzC,MAAM,CAACmC,QAAQ,CAAC;IAC1C,CAAC,MAAM;MACLI,WAAW,CAACG,MAAM,GAAG1C,MAAM,CAACmC,QAAQ,CAAC;IACvC;EACF;EAEA,OAAOI,WAAW;AACpB;AAEA,OAAO,SAASI,wBAAwBA,CAAC3D,KAAsB,EAAa;EAAA,IAAA4D,iBAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAC,iBAAA;EAC1E,IAAI,CAAChE,YAAY,CAACC,KAAK,CAAC,EAAE;IACxB,OAAO,CAAC,CAAC;EACX;EAEA,MAAMoD,cAAc,IAAAQ,iBAAA,GAAG5D,KAAK,CAACC,SAAS,cAAA2D,iBAAA,cAAAA,iBAAA,GAAI,KAAK;EAC/C,MAAMI,SAAS,IAAAH,WAAA,GAAG7D,KAAK,CAACE,IAAI,cAAA2D,WAAA,cAAAA,WAAA,GAAI,KAAK;EACrC,MAAMV,QAAQ,IAAAW,WAAA,GAAG9D,KAAK,CAACG,GAAG,cAAA2D,WAAA,cAAAA,WAAA,GAAI,CAAC;EAC/B,MAAMT,cAAc,IAAAU,iBAAA,GAAG/D,KAAK,CAACI,SAAS,cAAA2D,iBAAA,cAAAA,iBAAA,GAAI,UAAU;EAEpD,MAAMjC,KAAK,GAAGsB,cAAc,KAAK,KAAK;EACtC,MAAME,SAAS,GAAGH,QAAQ,KAAK,MAAM;EACrC,MAAMc,MAAM,GAAGD,SAAS,KAAK,IAAI;EAEjC,MAAMT,WAAsB,GAAG;IAC7BW,QAAQ,EAAED,MAAM,IAAInC,KAAK,GAAG,MAAM,GAAG;EACvC,CAAC;EAED,IAAI,CAACwB,SAAS,EAAE;IACd,MAAME,WAAW,GACfhE,oBAAoB,CAAC6D,cAAc,CAAC,IAAI7D,oBAAoB,CAAC,UAAU,CAAC;IAE1E+D,WAAW,CAAC9D,cAAc,GACxBqC,KAAK,GAAG0B,WAAW,CAAC/D,cAAc,GAAG+D,WAAW,CAAC9D,UACnB;IAChC6D,WAAW,CAAC7D,UAAU,GACpBoC,KAAK,GAAG0B,WAAW,CAAC9D,UAAU,GAAG8D,WAAW,CAAC/D,cACnB;EAC9B;EAEA,IAAIwE,MAAM,IAAInC,KAAK,EAAE;IACnB,IAAI9B,KAAK,CAACK,SAAS,KAAK,MAAM,EAAE;MAC9BkD,WAAW,CAACY,YAAY,GAAG,eAAe;IAC5C,CAAC,MAAM,IAAInE,KAAK,CAACK,SAAS,KAAKC,SAAS,EAAE;MACxCiD,WAAW,CAACG,MAAM,GAAG1C,MAAM,CAAChB,KAAK,CAACK,SAAS,CAAC;MAC5CkD,WAAW,CAACY,YAAY,GAAG,YAAY;IACzC,CAAC,MAAM;MACL;MACAZ,WAAW,CAACY,YAAY,GAAG,YAAY;IACzC;EACF;EAEA,OAAO;IACL,GAAGZ,WAAW;IACd,GAAGR,WAAW,CAAC/C,KAAK;EACtB,CAAC;AACH;AAEA,OAAO,SAASoE,iBAAiBA,CAACpE,KAAsB,EAAa;EACnE,MAAMqE,cAAyB,GAAG,CAAC,CAAC;EACpC,IAAIrE,KAAK,CAACC,SAAS,EAAE;IACnBoE,cAAc,CAACC,aAAa,GAAGtE,KAAK,CAACC,SAAS;EAChD;EACA,OAAOoE,cAAc;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,mBAAmBA,CACjCjD,KAAkC,EAClCC,MAAmC,EACnCiD,eAAwB,EACxB7C,kBAA2B,GAAG,KAAK,EACxB;EACX,MAAMH,cAAyB,GAAG,CAAC,CAAC;EACpC,MAAMM,KAAK,GAAG0C,eAAe,KAAK,KAAK;EAEvC,IAAIjD,MAAM,KAAK,MAAM,EAAE;IACrB,IAAI,CAACiD,eAAe,EAAE;MACpBhD,cAAc,CAACD,MAAM,GAAG,MAAM;IAChC,CAAC,MAAM;MACL,IAAIO,KAAK,EAAE;QACTN,cAAc,CAACc,SAAS,GAAG,SAAS;MACtC,CAAC,MAAM;QACLd,cAAc,CAACe,QAAQ,GAAG,CAAC;QAC3Bf,cAAc,CAACoB,UAAU,GAAG,CAAC;QAC7BpB,cAAc,CAACsB,SAAS,GAAG,CAAC;QAC5BtB,cAAc,CAACiD,SAAS,GAAG,CAAC;MAC9B;MACAjD,cAAc,CAACD,MAAM,GAAGjB,SAAS;IACnC;EACF,CAAC,MAAM,IAAIiB,MAAM,KAAK,KAAK,EAAE;IAC3B,IAAIiD,eAAe,IAAI,CAAC1C,KAAK,EAAE;MAC7BN,cAAc,CAACe,QAAQ,GAAG,CAAC;IAC7B;IACAf,cAAc,CAACD,MAAM,GAAGjB,SAAS;EACnC;EAEA,IAAIgB,KAAK,KAAK,MAAM,EAAE;IACpB,IAAI,CAACkD,eAAe,EAAE;MACpBhD,cAAc,CAACF,KAAK,GAAG,MAAM;IAC/B,CAAC,MAAM;MACL,IAAIQ,KAAK,EAAE;QACTN,cAAc,CAACe,QAAQ,GAAG,CAAC;QAC3Bf,cAAc,CAACoB,UAAU,GAAG,CAAC;QAC7BpB,cAAc,CAACsB,SAAS,GAAG,CAAC;QAC5BtB,cAAc,CAACqB,QAAQ,GAAG,CAAC;MAC7B,CAAC,MAAM;QACLrB,cAAc,CAACc,SAAS,GAAG,SAAS;MACtC;MACAd,cAAc,CAACF,KAAK,GAAGhB,SAAS;IAClC;EACF,CAAC,MAAM,IAAIgB,KAAK,KAAK,KAAK,EAAE;IAC1B,IAAIkD,eAAe,EAAE;MACnB,IAAI1C,KAAK,EAAE;QACTN,cAAc,CAACe,QAAQ,GAAG,CAAC;QAC3Bf,cAAc,CAACsB,SAAS,GAAG,MAAM;QACjCtB,cAAc,CAACoB,UAAU,GAAG,CAAC;MAC/B,CAAC,MAAM,IAAI,CAACjB,kBAAkB,EAAE;QAC9BH,cAAc,CAACc,SAAS,GAAG,YAAY;MACzC;IACF;IACAd,cAAc,CAACF,KAAK,GAAGhB,SAAS;EAClC;EAEA,OAAOkB,cAAc;AACvB;AAEA,OAAO,SAASkD,sBAAsBA,CAACC,MAA2B,EAAEC,WAAiC,EAAmB;EAAA,IAAAC,gBAAA,EAAAC,qBAAA,EAAAC,qBAAA;EACtH,OAAO;IACL9E,SAAS,EAAE0E,MAAM,CAAC1E,SAAS;IAC3BC,IAAI,EAAEyE,MAAM,CAACzE,IAAI;IACjBC,GAAG,EAAEwE,MAAM,CAACxE,GAAG;IACfC,SAAS,EAAEuE,MAAM,CAACvE,SAAS;IAC3BC,SAAS,EAAEsE,MAAM,CAACtE,SAAS;IAC3B0B,QAAQ,EAAE4C,MAAM,CAAC5C,QAAQ;IACzBvB,aAAa,EAAEmE,MAAM,CAACnE,aAAa;IACnC4B,MAAM,EAAEuC,MAAM,CAACvC,MAAM;IACrBF,WAAW,EAAEyC,MAAM,CAACzC,WAAW;IAC/BC,QAAQ,GAAA0C,gBAAA,GAAEF,MAAM,CAACxC,QAAQ,cAAA0C,gBAAA,uBAAfA,gBAAA,CAAiBG,WAAW,CAAC,CAAgC;IACvEtD,eAAe,GAAAoD,qBAAA,GAAEH,MAAM,CAACjD,eAAe,cAAAoD,qBAAA,cAAAA,qBAAA,GAAIF,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE3E,SAAS;IACjE4B,eAAe,GAAAkD,qBAAA,GAAEJ,MAAM,CAAC9C,eAAe,cAAAkD,qBAAA,cAAAA,qBAAA,GAAIH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExE;EAC1D,CAAC;AACH","ignoreList":[]}
@@ -24,7 +24,7 @@ import { TextIdPrefixConsumer } from './testid.provider';
24
24
  import { isScreenReaderEnabled } from './accessibility';
25
25
  import { TappableContext } from './tappable.component';
26
26
  import { WmComponentNode } from './wm-component-tree';
27
- import { getPositionValueStyle } from './auto-layout.utils';
27
+ import { getPositionValueStyle, resolveFillHugStyle } from './auto-layout.utils';
28
28
  export const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');
29
29
  export const ParentContext = /*#__PURE__*/React.createContext(null);
30
30
  export class BaseComponentState {
@@ -421,6 +421,16 @@ export class BaseComponent extends React.Component {
421
421
  }
422
422
  }
423
423
  }
424
+
425
+ /**
426
+ * Whether this widget already resolves its own width/height 'fill'/'hug' tokens
427
+ * elsewhere (e.g. auto-layout containers calling getDimensionStyle on their own root).
428
+ * Overridden by those widgets specifically — must NOT be inferred from prop shape,
429
+ * since unrelated widgets can have their own props named direction/wrap/gap/alignment.
430
+ */
431
+ hasOwnFillHugResolution() {
432
+ return false;
433
+ }
424
434
  copyStyles(property, from, to) {
425
435
  if (!isUndefined(from[property])) {
426
436
  to[property] = from[property];
@@ -649,6 +659,17 @@ export class BaseComponent extends React.Component {
649
659
  }
650
660
  this.setBackground();
651
661
  this.isFixed = this.styles.root.position === 'fixed' || props.position === 'fixed';
662
+ if (!this.isFixed) {
663
+ const rootStyle = this.styles.root;
664
+ if (rootStyle.width === 'fill' || rootStyle.width === 'hug' || rootStyle.height === 'fill' || rootStyle.height === 'hug') {
665
+ var _this$parent5;
666
+ const parentProps = (_this$parent5 = this.parent) === null || _this$parent5 === void 0 || (_this$parent5 = _this$parent5.state) === null || _this$parent5 === void 0 ? void 0 : _this$parent5.props;
667
+ const hasOwnResolution = this.hasOwnFillHugResolution();
668
+ if (!hasOwnResolution) {
669
+ Object.assign(this.styles.root, resolveFillHugStyle(rootStyle.width, rootStyle.height, parentProps === null || parentProps === void 0 ? void 0 : parentProps.direction, Boolean(parentProps === null || parentProps === void 0 ? void 0 : parentProps.alignment)));
670
+ }
671
+ }
672
+ }
652
673
  const positionStyle = getPositionValueStyle(props.positionvalue);
653
674
  if (this.isFixed) {
654
675
  this.styles.root.position = undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["assign","isUndefined","isNil","isObject","isArray","isString","isEqual","React","AccessibilityInfo","Dimensions","InteractionManager","Platform","StyleSheet","View","Animatable","ThemeVariables","CalcExpression","StyleProps","getStyleName","BackgroundComponent","injector","ROOT_LOGGER","deepCopy","getPosition","setPosition","BASE_THEME","ThemeConsumer","ThemeEvent","EventNotifier","PropsProvider","assignIn","HideMode","AssetConsumer","FixedView","TextIdPrefixConsumer","isScreenReaderEnabled","TappableContext","WmComponentNode","getPositionValueStyle","WIDGET_LOGGER","extend","ParentContext","createContext","BaseComponentState","constructor","_defineProperty","undefined","defineStyles","styles","text","fontFamily","INSTANCE","baseFont","userSelect","BaseProps","args","BaseComponent","Component","markupProps","defaultClass","defaultProps","defaultState","ADD_TO_DOM","createElement","Fragment","I18nService","get","x","y","width","height","px","py","_this$parent$state","isPageContentWidget","isCurrentParentIsContent","parent","showSkeletonInPageContent","state","props","showskeleton","notifier","name","componentNode","instance","propertyProvider","show","$new","$old","debug","initialized","styleName","styleOverrides","setTimeout","cleanRefresh","onPropertyChange","_INSTANCE","_showView","deferload","check","proxy","Proxy","target","prop","receiver","propName","toString","has","Reflect","set","value","overrideProp","updateState","cleanup","push","updateStateTimeouts","forEach","v","clearTimeout","theme","subscribe","CHANGE","vw","vh","reestimateDimensions","forceUpdate","addEventListener","remove","destroyParentListeners","_this$parent","_this$parent2","_this$layout","_this$layout2","d","pw","layout","ph","w","h","dimensions","notify","event","fn","emitToParent","isRTL","i18nService","isRTLLocale","animate","setState","animationId","Date","now","animatableProps","setProp","setPropDefault","setDefault","getDefaultStyles","getStyle","reset","newPartialState","callback","destroyed","stateFn","oldState","oldProps","newState","Object","keys","k","onUpdateState","_this$props$listener","_this$props$listener2","listener","onComponentChange","timeoutId","splice","indexOf","shouldComponentUpdate","nextProps","nextState","nextContext","key","componentDidMount","onComponentInit","componentWillAttach","isFixed","isSticky","hide","componentWillDetach","componentWillUnmount","_this$parent3","onComponentDestroy","f","destroy","componentDidUpdate","prevProps","prevState","snapshot","invokeEventCallback","eventName","callBack","appConfig","map","a","apply","e","_appConfig$preference","console","error","preferences","enableGlobalErrorHandler","showView","isVisible","refresh","renderSkeleton","parentListenerDestroyers","setParent","add","hasStyleCalcExpression","getName","handleLayout","ref","_this$getName","call","newLayoutPosition","nativeEvent","componentRef","baseView","measure","updateLayout","runAfterInteractions","requestAnimationFrame","_event$nativeEvent","copyStyles","property","from","to","renderFixedContainer","style","root","hasFixedWidth","hasFixedHeight","mergeStyle","left","top","right","bottom","addAnimation","renderWidget","n","_extends","setBackground","bgStyle","_background","image","backgroundImage","position","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","borderRadius","highlight","onTouchStart","borderWidth","overflow","backgroundColor","borderColor","borderStyle","zIndex","absoluteFill","getTestId","suffix","id","testIdPrefix","getTestProps","OS","accessibilityLabel","testID","accessible","getStyleClassName","classname","getTestPropsForInput","getTestPropsForAction","getTestPropsForLabel","getLayoutOfWidget","getLayout","scrollToTop","scrollToEnd","scrollToPosition","widgetName","_this$getLayoutOfWidg","positionY","evaluateCalcStyles","result","i","startsWith","p","evaluate","getDependenciesFromContext","Consumer","tappable","closestTappable","loadAsset","_this$parent4","_showSkeleton","hideSkeletonInPageContentWhenDisabledInPage","Provider","render","selectedLocale","getSelectedLocale","info","hideMode","DONOT_ADD_TO_DOM","calcStyles","disabled","showindevice","join","childComponentStyleKeys","length","customStyles","hasOwnProperty","eleToRender","positionStyle","positionvalue"],"sources":["base.component.tsx"],"sourcesContent":["import { assign, isUndefined, isNil, isObject, isArray, isString, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { AccessibilityInfo, Dimensions, InteractionManager, LayoutChangeEvent, LayoutRectangle, Platform, StyleSheet, TextStyle, View, ViewStyle } from 'react-native';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport ThemeVariables from '@wavemaker-ai/app-rn-runtime/styles/theme.variables';\nimport { CalcExpression } from '@wavemaker-ai/app-rn-runtime/styles/calc';\nimport { StyleProps, getStyleName } from '@wavemaker-ai/app-rn-runtime/styles/style-props';\nimport { BackgroundComponent } from '@wavemaker-ai/app-rn-runtime/styles/background.component';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport { ROOT_LOGGER } from '@wavemaker-ai/app-rn-runtime/core/logger';\nimport { deepCopy, getPosition, setPosition } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport BASE_THEME, { NamedStyles, AllStyle, ThemeConsumer, ThemeEvent, Theme } from '../styles/theme';\nimport EventNotifier from './event-notifier';\nimport { PropsProvider } from './props.provider';\nimport { assignIn } from 'lodash-es';\nimport { HideMode } from './if.component';\nimport { AssetConsumer } from './asset.provider';\nimport { FixedView } from './fixed-view.component';\nimport { TextIdPrefixConsumer } from './testid.provider';\nimport { isScreenReaderEnabled } from './accessibility';\nimport { Tappable, TappableContext } from './tappable.component';\nimport { WmComponentNode } from './wm-component-tree';\nimport AppConfig from './AppConfig';\nimport { getPositionValueStyle } from './auto-layout.utils';\n\nexport const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');\n\nexport const ParentContext = React.createContext(null as any);\n\nexport class BaseComponentState<T extends BaseProps> {\n public animationId?: number = 0;\n public animatableProps?: AnimatableProps<ViewStyle> = undefined;\n public props = {} as T;\n public hide? = false;\n public highlight? = false;\n}\n\nexport type BaseStyles = NamedStyles<any> & {\n root: AllStyle,\n text: TextStyle & {userSelect?: 'none'| 'text'}\n}\n\nexport function defineStyles<T>(styles: T): T {\n return deepCopy({\n text: {\n fontFamily: ThemeVariables.INSTANCE.baseFont,\n userSelect: 'text'\n }\n }, styles);\n}\n\nexport interface LifecycleListener {\n onComponentChange?: (c: BaseComponent<any, any, any>) => void;\n onComponentInit?: (c: BaseComponent<any, any, any>) => void;\n onComponentDestroy?: (c: BaseComponent<any, any, any>) => void;\n}\n\ninterface Layout {\n x: number;\n y: number;\n width: number;\n height: number;\n px: number;\n py: number;\n}\n\nexport class BaseProps extends StyleProps {\n id?: string = null as any;\n name?: string = null as any;\n key?: any = null as any;\n disabled? = false;\n show? = true as Boolean | String | Number;\n styles?: any = null;\n classname?: string = null as any;\n listener?: LifecycleListener = null as any;\n showindevice?: ('xs'|'sm'|'md'|'lg'|'xl'|'xxl')[] = null as any;\n showskeleton?: boolean = undefined;\n deferload?: boolean = false;\n showskeletonchildren?: boolean = true;\n disabletoucheffect?:boolean = false;\n isdefault?: boolean = false;\n}\n\nexport abstract class BaseComponent<T extends BaseProps, S extends BaseComponentState<T>, L extends BaseStyles> extends React.Component<T, S> {\n private calcStyles: L = null as any;\n public styles: L = null as any;\n public hideMode = HideMode.ADD_TO_DOM;\n private propertyProvider: PropsProvider<T>;\n public proxy: BaseComponent<T, S, L>;\n public _INSTANCE: BaseComponent<T, S, L>;\n public initialized = false;\n public cleanup = [] as Function[];\n public theme = BASE_THEME;\n public updateStateTimeouts= [] as NodeJS.Timeout[];\n public parent: BaseComponent<any, any, any> = null as any;\n public destroyed = false;\n public _showSkeleton = false;\n public isFixed = false;\n public isSticky = false;\n public notifier = new EventNotifier();\n private parentListenerDestroyers = [] as Function[];\n public _background = <></>;\n private styleOverrides = {} as any;\n public loadAsset: (path: string) => number | string = null as any;\n private i18nService = injector.I18nService.get();\n public testIdPrefix = '';\n private _showView = true;\n public closestTappable?: Tappable;\n public componentNode: WmComponentNode;\n public layout: Layout = {\n x: 0, y:0, width:0, height:0, px:0, py:0\n };\n public baseView: any = View;\n private vw = Dimensions.get('window').width;\n private vh = Dimensions.get('window').height;\n private hasStyleCalcExpression = false;\n private dimensions: {\n vw?: number,\n vh?: number,\n pw?: number,\n ph?: number,\n w?: number,\n h?: number\n } = {} as any;\n protected childComponentStyleKeys: string[] = [];\n\n constructor(markupProps: T, public defaultClass: string, defaultProps?: T, defaultState?: S) {\n super(markupProps);\n this.state = (defaultState || {} as S);\n this.notifier.name = this.props.name || '';\n this.componentNode = new WmComponentNode({\n instance: this\n });\n this.propertyProvider = new PropsProvider<T>(\n assign({show: true}, defaultProps),\n assign({}, markupProps),\n (name: string, $new: any, $old: any) => {\n WIDGET_LOGGER.debug(() => `${this.props.name || this.constructor.name}: ${name} changed from ${$old} to ${$new}`);\n if (this.initialized) {\n const styleName = getStyleName(name);\n if (styleName) {\n if ($new === undefined) {\n delete this.styleOverrides[styleName];\n } else {\n this.styleOverrides[styleName] = $new;\n }\n }\n }\n if (name === 'showskeleton' && this.initialized) {\n setTimeout(() => this.cleanRefresh(), 100);\n }\n this.onPropertyChange(name, $new, $old);\n });\n //@ts-ignore\n this.state.props =this.propertyProvider.get();\n this._INSTANCE = this;\n //@ts-ignore\n this._showView = !this.props.deferload;\n this.propertyProvider.check();\n //@ts-ignore\n this.proxy = (new Proxy(this, {\n get: (target, prop, receiver): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n //@ts-ignore\n return this.state.props[propName];\n }\n return Reflect.get(target, prop, receiver);\n },\n set: (target: any, prop, value: any): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n // @ts-ignore\n const props = {} as any;\n this.propertyProvider.overrideProp(propName, value);\n props[propName] = value;\n this.updateState({\n props: props\n } as S);\n return true;\n } else {\n return Reflect.set(target, prop, value);\n }\n }\n }));\n this.cleanup.push(() => {\n this.updateStateTimeouts.forEach(v => clearTimeout(v));\n });\n this.cleanup.push(this.theme.subscribe(ThemeEvent.CHANGE, () => {\n this.vw = Dimensions.get('window').width;\n this.vh = Dimensions.get('window').height;\n if (this.reestimateDimensions) {\n this.reestimateDimensions();\n }\n this.forceUpdate();\n }));\n this.cleanup.push(AccessibilityInfo.addEventListener('screenReaderChanged',\n () => {\n setTimeout(() => {\n this.forceUpdate();\n }, 100);\n },\n ).remove);\n this.cleanup.push(() => {\n this.destroyParentListeners();\n });\n }\n\n public reestimateDimensions() {\n const d = {\n vw: this.vw,\n vh: this.vh,\n pw: this.parent?.layout?.width,\n ph: this.parent?.layout?.height,\n w: this.layout?.width,\n h: this.layout?.height\n }\n if (!isEqual(this.dimensions, d)) {\n this.dimensions = d;\n this.notify('layoutChange', []);\n return true;\n }\n return false;\n }\n\n public subscribe(event: string, fn: Function) {\n return this.notifier.subscribe(event, fn);\n }\n\n public notify(event: string, args: any[], emitToParent = false) {\n return this.notifier.notify(event, args, emitToParent);\n }\n\n public get isRTL(){\n return this.i18nService.isRTLLocale();\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.setState({\n animationId: Date.now(),\n animatableProps: props\n });\n }\n\n setProp(propName: string, value: any) {\n this.propertyProvider.set(propName, value);\n this.updateState({props: {}} as S);\n }\n\n setPropDefault(propName: string, value: any) {\n this.propertyProvider.setDefault(propName, value);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n }\n\n getDefaultStyles() {\n return this.theme.getStyle(this.defaultClass);\n }\n\n reset() {\n\n }\n\n updateState(newPartialState: S, callback?: ()=>void) {\n if (this.destroyed) {\n return;\n }\n const stateFn = (oldState: S) => {\n const oldProps = oldState.props;\n const newState = this.initialized ? assignIn({}, oldState, newPartialState) : assignIn(oldState, newPartialState);\n if (newPartialState.props) {\n Object.keys(newPartialState.props).forEach((k) => {\n //@ts-ignore\n oldProps[k] = newState.props[k];\n });\n newState.props = oldProps;\n }\n return newState;\n };\n const onUpdateState = () => {\n callback && callback();\n this.props.listener?.onComponentChange\n && this.props.listener?.onComponentChange(this);\n }\n if (!this.initialized) {\n this.state = stateFn(this.state);\n onUpdateState();\n } else {\n const timeoutId = setTimeout(() => {\n this.setState(stateFn, onUpdateState);\n this.updateStateTimeouts.splice(this.updateStateTimeouts.indexOf(timeoutId), 1);\n });\n this.updateStateTimeouts.push(timeoutId);\n }\n }\n\n shouldComponentUpdate(nextProps: T, nextState: S, nextContext: any) {\n if (this.propertyProvider.check(nextProps)) {\n return true;\n }\n for(let key in nextState) {\n if(key !== 'props' && (!(key in this.state) || nextState[key] !== this.state[key])) {\n return true;\n }\n }\n\n for(let key in this.state) {\n if(key !== 'props' && (!(key in nextState) || this.state[key] !== nextState[key])) {\n return true;\n }\n }\n return false;\n }\n\n componentDidMount() {\n if (this.props.listener && this.props.listener.onComponentInit) {\n this.props.listener.onComponentInit(this.proxy);\n }\n this.initialized = true;\n }\n\n componentWillAttach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: false});\n }\n }\n\n componentWillDetach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: true});\n }\n }\n\n componentWillUnmount() {\n this.destroyed = true;\n if (this.props.listener && this.props.listener.onComponentDestroy) {\n this.props.listener.onComponentDestroy(this.proxy);\n }\n this.cleanup.forEach(f => f && f());\n this.parent?.componentNode?.remove(this.componentNode);\n this.notifier.destroy();\n this.notifier.notify('destroy', []);\n }\n\n componentDidUpdate(prevProps: Readonly<T>, prevState: Readonly<S>, snapshot?: any): void {\n if (this.propertyProvider.check(this.props)) {\n this.forceUpdate();\n }\n }\n\n invokeEventCallback(eventName: string, args: any[]) {\n //@ts-ignore\n const callBack: Function = this.props[eventName];\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n args = args && args.map(a => (a === this) ? this.proxy : a)\n if (callBack) {\n try {\n return callBack.apply(this.proxy, args);\n } catch(e) {\n console.error(e);\n if(appConfig?.preferences?.enableGlobalErrorHandler === true){\n throw e; // Re-throwing error to let ErrorBoundary or Global Handler catch it\n }\n }\n }\n }\n\n showView() {\n return this.isVisible();\n }\n\n isVisible() {\n const show = this.state.props.show;\n return show !== false && show !== 'false' && show !== '0' && !isNil(show) && show !== \"\";\n }\n\n protected abstract renderWidget(props: T): ReactNode;\n\n public refresh() {\n this.forceUpdate();\n }\n\n public cleanRefresh() {\n this.forceUpdate(() => this.notifier.notify('forceUpdate', []));\n }\n\n public renderSkeleton (props: T): ReactNode {\n return null;\n }\n\n public destroyParentListeners() {\n this.parentListenerDestroyers.map(fn => fn());\n }\n\n protected setParent(parent: BaseComponent<any, any, any>) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n this.parent.componentNode.add(this.componentNode);\n this.notifier.setParent(parent.notifier);\n this.destroyParentListeners();\n this.parentListenerDestroyers = [\n this.parent.subscribe('forceUpdate', () => {\n this.forceUpdate();\n }),\n this.parent.subscribe('layoutChange', () => {\n if (this.reestimateDimensions && this.reestimateDimensions() && this.hasStyleCalcExpression) {\n this.forceUpdate();\n }\n return false;\n }),\n this.parent.subscribe('destroy', () => {\n this.destroyParentListeners();\n })\n ];\n }\n }\n\n protected getName() {\n return this.props.name;\n }\n\n public handleLayout(event: LayoutChangeEvent, ref: React.RefObject<View> | null = null) {\n const key = this?.getName?.();\n if(key){\n const newLayoutPosition = {\n [key as string]: {\n y: event.nativeEvent.layout.y,\n x: event.nativeEvent.layout.x\n }\n }\n setPosition(newLayoutPosition);\n const componentRef = ref !== null ? ref : this.baseView\n // Layout values by measure\n if(componentRef?.measure){\n const updateLayout = ()=>{\n componentRef.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n this.layout = { x, y, width, height, px, py }\n if (this.reestimateDimensions && this.reestimateDimensions() && this.hasStyleCalcExpression) {\n this.forceUpdate();\n }\n });\n }\n updateLayout();\n InteractionManager.runAfterInteractions(() => {\n requestAnimationFrame(updateLayout);\n })\n }\n } else {\n this.layout = event.nativeEvent?.layout as any;\n if (this.reestimateDimensions && this.reestimateDimensions() && this.hasStyleCalcExpression) {\n this.forceUpdate();\n }\n }\n }\n\n copyStyles(property: string, from: any, to: any) {\n if (!isUndefined(from[property])) {\n to[property] = from[property];\n }\n }\n\n renderFixedContainer(props: T) {\n const style = {} as ViewStyle;\n this.copyStyles('left', this.styles.root, style);\n this.copyStyles('top', this.styles.root, style);\n this.copyStyles('right', this.styles.root, style);\n this.copyStyles('bottom', this.styles.root, style);\n this.copyStyles('width', this.styles.root, style);\n this.copyStyles('height', this.styles.root, style);\n if ((style.width as any) === 'fill') {\n style.width = '100%';\n } else if ((style.width as any) === 'hug') {\n style.width = undefined;\n }\n if ((style.height as any) === 'fill') {\n style.height = '100%';\n } else if ((style.height as any) === 'hug') {\n style.height = undefined;\n }\n const hasFixedWidth = !isUndefined(style.width);\n const hasFixedHeight = !isUndefined(style.height);\n this.styles = this.theme.mergeStyle(this.styles, {\n root: {\n left: undefined,\n top: undefined,\n right: undefined,\n bottom: undefined,\n width: hasFixedWidth ? \"100%\" : undefined,\n height: hasFixedHeight ? \"100%\" : undefined\n } as ViewStyle\n });\n return (<FixedView style={style} theme={this.theme}>{this.addAnimation(this.renderWidget(props))}</FixedView>);\n }\n\n private addAnimation(n: ReactNode) {\n if (!this.state.animatableProps) {\n return (\n <>\n {n}\n </>\n )\n }\n return (\n <Animatable.View\n key={this.state.animationId}\n {...this.state.animatableProps}\n >\n {n}\n </Animatable.View>);\n }\n\n private setBackground() {\n const bgStyle = this.styles.root as any;\n this._background = (\n <>\n <BackgroundComponent\n image={bgStyle.backgroundImage}\n position={bgStyle.backgroundPosition}\n size={bgStyle.backgroundSize}\n repeat={bgStyle.backgroundRepeat}\n resizeMode={bgStyle.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}>\n </BackgroundComponent>\n {this.state.highlight ? (<View onTouchStart={() => {\n this.setState({\n highlight: false\n })\n }} style={[{\n borderWidth: 2,\n overflow: 'hidden',\n backgroundColor: '#FFFF0033',\n borderColor: 'orange',\n borderStyle: 'dashed',\n zIndex: 1000,\n borderRadius: 0,\n }, StyleSheet.absoluteFill]}></View>) : null}\n </>\n );\n delete (this.styles.root as any)['backgroundImage'];\n delete (this.styles.root as any)['backgroundPosition'];\n delete (this.styles.root as any)['backgroundResizeMode'];\n delete (this.styles.root as any)['backgroundSize'];\n delete (this.styles.root as any)['backgroundRepeat'];\n }\n\n public getTestId(suffix?: string) {\n let id = this.props.id || this.props.name;\n if (this.testIdPrefix) {\n id = this.testIdPrefix + '_' + id;\n }\n if (suffix) {\n id = id + '_' + suffix;\n }\n return id;\n }\n\n public getTestProps(suffix?: string) {\n let id = this.getTestId(suffix);\n if (isScreenReaderEnabled()) {\n return {};\n }\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n public getStyleClassName() {\n return this.state.props.classname;\n }\n\n public getTestPropsForInput(suffix?: string) {\n return this.getTestProps(suffix || 'i');\n }\n\n public getTestPropsForAction(suffix?: string) {\n return this.getTestProps(suffix || 'a');\n }\n\n public getTestPropsForLabel(suffix?: string) {\n return this.getTestProps(suffix || 'l');\n }\n\n public getLayoutOfWidget(name: string): {x: number, y: number} | undefined {\n return getPosition(name)\n }\n\n public getLayout() {\n return this.layout ;\n }\n\n public scrollToTop(){\n this.notify('scrollToPosition', [{\n x: 0,\n y: 0\n }]);\n }\n\n public scrollToEnd() {\n this.notify('scrollToEnd', []);\n }\n\n scrollToPosition(widgetName: string) {\n const positionY = this.getLayoutOfWidget(widgetName)?.y; // Safe access\n this.notify('scrollToPosition', [{\n x: 0,\n y: positionY,\n }]);\n }\n\n public hideSkeletonInPageContentWhenDisabledInPage = () => {\n const isPageContentWidget = this.defaultClass && this.defaultClass === 'app-page-content'\n const isCurrentParentIsContent = this.parent && this.parent.defaultClass && this.parent.defaultClass === 'app-content'\n const showSkeletonInPageContent = this.parent && this.parent.state?.props?.showskeleton === false\n\n if(isPageContentWidget && isCurrentParentIsContent && showSkeletonInPageContent) {\n return false;\n }\n return undefined;\n }\n\n private evaluateCalcStyles(styles: any) {\n const result = {} as any;\n Object.keys(styles).forEach(k => {\n const value = styles[k];\n if (isArray(value)) {\n result[k] = value.map((v, i) => {\n return this.evaluateCalcStyles(v);\n });\n } else if (isObject(value)) {\n result[k] = this.evaluateCalcStyles(value);\n } else if (isString(value) && value.startsWith('calc(')) {\n result[k] = new CalcExpression(value, {\n vw: this.dimensions.vw || 0,\n vh: this.dimensions.vh || 0,\n p: (k === 'height' ? this.dimensions.ph : this.dimensions.pw) || 0,\n }).evaluate();\n } else {\n result[k] = value;\n }\n });\n return result;\n }\n\n private getDependenciesFromContext(fn: () => ReactNode) {\n return (\n <TappableContext.Consumer>{(tappable) => {\n this.closestTappable = tappable;\n return (\n <TextIdPrefixConsumer>\n {(testIdPrefix) => {\n this.testIdPrefix = testIdPrefix || '';\n return (<AssetConsumer>\n {(loadAsset) => {\n this.loadAsset = loadAsset;\n return (<ParentContext.Consumer>\n {(parent) => {\n this.setParent(parent);\n this._showSkeleton = this.state.props.showskeleton !== false\n && (this.parent?._showSkeleton || this.state.props.showskeleton === true) && this.hideSkeletonInPageContentWhenDisabledInPage() === undefined\n return (\n <ParentContext.Provider value={this}>\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme || BASE_THEME;\n return fn();\n }}\n </ThemeConsumer>\n </ParentContext.Provider>);\n }}\n </ParentContext.Consumer>);\n }}\n </AssetConsumer>);\n }}\n </TextIdPrefixConsumer>)}}\n </TappableContext.Consumer>);\n }\n\n public render(): ReactNode {\n const props = this.state.props;\n const selectedLocale = this.i18nService.getSelectedLocale();\n return this.getDependenciesFromContext(() => {\n WIDGET_LOGGER.info(() => `${this.props.name || this.constructor.name} is rendering.`);\n this._showView = this._showView || this.showView();\n if (this.state.hide\n || (!this.isVisible() && this.hideMode === HideMode.DONOT_ADD_TO_DOM)\n || !this._showView) {\n return null;\n }\n this.isFixed = false;\n const classname = this.getStyleClassName();\n this.calcStyles = this.theme.mergeStyle(\n this.getDefaultStyles(),\n {text: this.theme.getStyle('app-' + selectedLocale)},\n {text: this.theme.getStyle(this.defaultClass + '-' + selectedLocale)},\n props.disabled ? this.theme.getStyle(this.defaultClass + '-disabled') : null,\n this.isRTL ? this.theme.getStyle(this.defaultClass + '-rtl') : null,\n classname && this.theme.getStyle(classname),\n classname && props.disabled ? this.theme.getStyle(`${classname}.${this.defaultClass}-disabled`) : null,\n this.isRTL && classname ? this.theme.getStyle(classname + '-rtl') : null,\n props.showindevice && this.theme.getStyle('d-all-none ' + props.showindevice.map(d => `d-${d}-flex`).join(' ')),\n this.props.styles,\n {\n root: this.styleOverrides,\n text: this.styleOverrides\n }\n );\n // Merge child component styles from custom classes\n if (classname && this.childComponentStyleKeys.length > 0) {\n const customStyles = this.theme.getStyle(classname);\n this.childComponentStyleKeys.forEach(key => {\n if (customStyles && this.calcStyles && (this.calcStyles as any)[key]) {\n (this.calcStyles as any)[key] = this.theme.mergeStyle((this.calcStyles as any)[key], customStyles);\n }\n });\n }\n\n this.hasStyleCalcExpression = false;\n\n this.styles = this.evaluateCalcStyles(this.calcStyles);\n if (this.styles.root.hasOwnProperty('_background')) {\n delete this.styles.root.backgroundColor;\n }\n if (!this.isVisible()) {\n assign(this.styles, this.theme.getStyle('hidden'))\n }\n let eleToRender = (this._showSkeleton && this.renderSkeleton(props));\n if (eleToRender) {\n return eleToRender;\n }\n this.setBackground();\n this.isFixed = (this.styles.root.position as any) === 'fixed' || (props.position as any) === 'fixed';\n const positionStyle = getPositionValueStyle(props.positionvalue);\n if (this.isFixed) {\n this.styles.root.position = undefined;\n this.styles.root.top = positionStyle.top;\n this.styles.root.right = positionStyle.right;\n this.styles.root.bottom = positionStyle.bottom;\n this.styles.root.left = positionStyle.left;\n return this.renderFixedContainer(props);\n }\n return this.addAnimation(this.renderWidget(this.state.props));\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["assign","isUndefined","isNil","isObject","isArray","isString","isEqual","React","AccessibilityInfo","Dimensions","InteractionManager","Platform","StyleSheet","View","Animatable","ThemeVariables","CalcExpression","StyleProps","getStyleName","BackgroundComponent","injector","ROOT_LOGGER","deepCopy","getPosition","setPosition","BASE_THEME","ThemeConsumer","ThemeEvent","EventNotifier","PropsProvider","assignIn","HideMode","AssetConsumer","FixedView","TextIdPrefixConsumer","isScreenReaderEnabled","TappableContext","WmComponentNode","getPositionValueStyle","resolveFillHugStyle","WIDGET_LOGGER","extend","ParentContext","createContext","BaseComponentState","constructor","_defineProperty","undefined","defineStyles","styles","text","fontFamily","INSTANCE","baseFont","userSelect","BaseProps","args","BaseComponent","Component","markupProps","defaultClass","defaultProps","defaultState","ADD_TO_DOM","createElement","Fragment","I18nService","get","x","y","width","height","px","py","_this$parent$state","isPageContentWidget","isCurrentParentIsContent","parent","showSkeletonInPageContent","state","props","showskeleton","notifier","name","componentNode","instance","propertyProvider","show","$new","$old","debug","initialized","styleName","styleOverrides","setTimeout","cleanRefresh","onPropertyChange","_INSTANCE","_showView","deferload","check","proxy","Proxy","target","prop","receiver","propName","toString","has","Reflect","set","value","overrideProp","updateState","cleanup","push","updateStateTimeouts","forEach","v","clearTimeout","theme","subscribe","CHANGE","vw","vh","reestimateDimensions","forceUpdate","addEventListener","remove","destroyParentListeners","_this$parent","_this$parent2","_this$layout","_this$layout2","d","pw","layout","ph","w","h","dimensions","notify","event","fn","emitToParent","isRTL","i18nService","isRTLLocale","animate","setState","animationId","Date","now","animatableProps","setProp","setPropDefault","setDefault","getDefaultStyles","getStyle","reset","newPartialState","callback","destroyed","stateFn","oldState","oldProps","newState","Object","keys","k","onUpdateState","_this$props$listener","_this$props$listener2","listener","onComponentChange","timeoutId","splice","indexOf","shouldComponentUpdate","nextProps","nextState","nextContext","key","componentDidMount","onComponentInit","componentWillAttach","isFixed","isSticky","hide","componentWillDetach","componentWillUnmount","_this$parent3","onComponentDestroy","f","destroy","componentDidUpdate","prevProps","prevState","snapshot","invokeEventCallback","eventName","callBack","appConfig","map","a","apply","e","_appConfig$preference","console","error","preferences","enableGlobalErrorHandler","showView","isVisible","refresh","renderSkeleton","parentListenerDestroyers","setParent","add","hasStyleCalcExpression","getName","handleLayout","ref","_this$getName","call","newLayoutPosition","nativeEvent","componentRef","baseView","measure","updateLayout","runAfterInteractions","requestAnimationFrame","_event$nativeEvent","hasOwnFillHugResolution","copyStyles","property","from","to","renderFixedContainer","style","root","hasFixedWidth","hasFixedHeight","mergeStyle","left","top","right","bottom","addAnimation","renderWidget","n","_extends","setBackground","bgStyle","_background","image","backgroundImage","position","backgroundPosition","size","backgroundSize","repeat","backgroundRepeat","resizeMode","backgroundResizeMode","borderRadius","highlight","onTouchStart","borderWidth","overflow","backgroundColor","borderColor","borderStyle","zIndex","absoluteFill","getTestId","suffix","id","testIdPrefix","getTestProps","OS","accessibilityLabel","testID","accessible","getStyleClassName","classname","getTestPropsForInput","getTestPropsForAction","getTestPropsForLabel","getLayoutOfWidget","getLayout","scrollToTop","scrollToEnd","scrollToPosition","widgetName","_this$getLayoutOfWidg","positionY","evaluateCalcStyles","result","i","startsWith","p","evaluate","getDependenciesFromContext","Consumer","tappable","closestTappable","loadAsset","_this$parent4","_showSkeleton","hideSkeletonInPageContentWhenDisabledInPage","Provider","render","selectedLocale","getSelectedLocale","info","hideMode","DONOT_ADD_TO_DOM","calcStyles","disabled","showindevice","join","childComponentStyleKeys","length","customStyles","hasOwnProperty","eleToRender","rootStyle","_this$parent5","parentProps","hasOwnResolution","direction","Boolean","alignment","positionStyle","positionvalue"],"sources":["base.component.tsx"],"sourcesContent":["import { assign, isUndefined, isNil, isObject, isArray, isString, isEqual } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport { AccessibilityInfo, Dimensions, InteractionManager, LayoutChangeEvent, LayoutRectangle, Platform, StyleSheet, TextStyle, View, ViewStyle } from 'react-native';\nimport { AnimatableProps } from 'react-native-animatable';\nimport * as Animatable from 'react-native-animatable';\nimport ThemeVariables from '@wavemaker-ai/app-rn-runtime/styles/theme.variables';\nimport { CalcExpression } from '@wavemaker-ai/app-rn-runtime/styles/calc';\nimport { StyleProps, getStyleName } from '@wavemaker-ai/app-rn-runtime/styles/style-props';\nimport { BackgroundComponent } from '@wavemaker-ai/app-rn-runtime/styles/background.component';\nimport injector from '@wavemaker-ai/app-rn-runtime/core/injector';\nimport { ROOT_LOGGER } from '@wavemaker-ai/app-rn-runtime/core/logger';\nimport { deepCopy, getPosition, setPosition } from '@wavemaker-ai/app-rn-runtime/core/utils';\nimport BASE_THEME, { NamedStyles, AllStyle, ThemeConsumer, ThemeEvent, Theme } from '../styles/theme';\nimport EventNotifier from './event-notifier';\nimport { PropsProvider } from './props.provider';\nimport { assignIn } from 'lodash-es';\nimport { HideMode } from './if.component';\nimport { AssetConsumer } from './asset.provider';\nimport { FixedView } from './fixed-view.component';\nimport { TextIdPrefixConsumer } from './testid.provider';\nimport { isScreenReaderEnabled } from './accessibility';\nimport { Tappable, TappableContext } from './tappable.component';\nimport { WmComponentNode } from './wm-component-tree';\nimport AppConfig from './AppConfig';\nimport { getPositionValueStyle, resolveFillHugStyle } from './auto-layout.utils';\n\nexport const WIDGET_LOGGER = ROOT_LOGGER.extend('widget');\n\nexport const ParentContext = React.createContext(null as any);\n\nexport class BaseComponentState<T extends BaseProps> {\n public animationId?: number = 0;\n public animatableProps?: AnimatableProps<ViewStyle> = undefined;\n public props = {} as T;\n public hide? = false;\n public highlight? = false;\n}\n\nexport type BaseStyles = NamedStyles<any> & {\n root: AllStyle,\n text: TextStyle & {userSelect?: 'none'| 'text'}\n}\n\nexport function defineStyles<T>(styles: T): T {\n return deepCopy({\n text: {\n fontFamily: ThemeVariables.INSTANCE.baseFont,\n userSelect: 'text'\n }\n }, styles);\n}\n\nexport interface LifecycleListener {\n onComponentChange?: (c: BaseComponent<any, any, any>) => void;\n onComponentInit?: (c: BaseComponent<any, any, any>) => void;\n onComponentDestroy?: (c: BaseComponent<any, any, any>) => void;\n}\n\ninterface Layout {\n x: number;\n y: number;\n width: number;\n height: number;\n px: number;\n py: number;\n}\n\nexport class BaseProps extends StyleProps {\n id?: string = null as any;\n name?: string = null as any;\n key?: any = null as any;\n disabled? = false;\n show? = true as Boolean | String | Number;\n styles?: any = null;\n classname?: string = null as any;\n listener?: LifecycleListener = null as any;\n showindevice?: ('xs'|'sm'|'md'|'lg'|'xl'|'xxl')[] = null as any;\n showskeleton?: boolean = undefined;\n deferload?: boolean = false;\n showskeletonchildren?: boolean = true;\n disabletoucheffect?:boolean = false;\n isdefault?: boolean = false;\n}\n\nexport abstract class BaseComponent<T extends BaseProps, S extends BaseComponentState<T>, L extends BaseStyles> extends React.Component<T, S> {\n private calcStyles: L = null as any;\n public styles: L = null as any;\n public hideMode = HideMode.ADD_TO_DOM;\n private propertyProvider: PropsProvider<T>;\n public proxy: BaseComponent<T, S, L>;\n public _INSTANCE: BaseComponent<T, S, L>;\n public initialized = false;\n public cleanup = [] as Function[];\n public theme = BASE_THEME;\n public updateStateTimeouts= [] as NodeJS.Timeout[];\n public parent: BaseComponent<any, any, any> = null as any;\n public destroyed = false;\n public _showSkeleton = false;\n public isFixed = false;\n public isSticky = false;\n public notifier = new EventNotifier();\n private parentListenerDestroyers = [] as Function[];\n public _background = <></>;\n private styleOverrides = {} as any;\n public loadAsset: (path: string) => number | string = null as any;\n private i18nService = injector.I18nService.get();\n public testIdPrefix = '';\n private _showView = true;\n public closestTappable?: Tappable;\n public componentNode: WmComponentNode;\n public layout: Layout = {\n x: 0, y:0, width:0, height:0, px:0, py:0\n };\n public baseView: any = View;\n private vw = Dimensions.get('window').width;\n private vh = Dimensions.get('window').height;\n private hasStyleCalcExpression = false;\n private dimensions: {\n vw?: number,\n vh?: number,\n pw?: number,\n ph?: number,\n w?: number,\n h?: number\n } = {} as any;\n protected childComponentStyleKeys: string[] = [];\n\n constructor(markupProps: T, public defaultClass: string, defaultProps?: T, defaultState?: S) {\n super(markupProps);\n this.state = (defaultState || {} as S);\n this.notifier.name = this.props.name || '';\n this.componentNode = new WmComponentNode({\n instance: this\n });\n this.propertyProvider = new PropsProvider<T>(\n assign({show: true}, defaultProps),\n assign({}, markupProps),\n (name: string, $new: any, $old: any) => {\n WIDGET_LOGGER.debug(() => `${this.props.name || this.constructor.name}: ${name} changed from ${$old} to ${$new}`);\n if (this.initialized) {\n const styleName = getStyleName(name);\n if (styleName) {\n if ($new === undefined) {\n delete this.styleOverrides[styleName];\n } else {\n this.styleOverrides[styleName] = $new;\n }\n }\n }\n if (name === 'showskeleton' && this.initialized) {\n setTimeout(() => this.cleanRefresh(), 100);\n }\n this.onPropertyChange(name, $new, $old);\n });\n //@ts-ignore\n this.state.props =this.propertyProvider.get();\n this._INSTANCE = this;\n //@ts-ignore\n this._showView = !this.props.deferload;\n this.propertyProvider.check();\n //@ts-ignore\n this.proxy = (new Proxy(this, {\n get: (target, prop, receiver): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n //@ts-ignore\n return this.state.props[propName];\n }\n return Reflect.get(target, prop, receiver);\n },\n set: (target: any, prop, value: any): any => {\n const propName = prop.toString();\n if (this.propertyProvider.has(propName)) {\n // @ts-ignore\n const props = {} as any;\n this.propertyProvider.overrideProp(propName, value);\n props[propName] = value;\n this.updateState({\n props: props\n } as S);\n return true;\n } else {\n return Reflect.set(target, prop, value);\n }\n }\n }));\n this.cleanup.push(() => {\n this.updateStateTimeouts.forEach(v => clearTimeout(v));\n });\n this.cleanup.push(this.theme.subscribe(ThemeEvent.CHANGE, () => {\n this.vw = Dimensions.get('window').width;\n this.vh = Dimensions.get('window').height;\n if (this.reestimateDimensions) {\n this.reestimateDimensions();\n }\n this.forceUpdate();\n }));\n this.cleanup.push(AccessibilityInfo.addEventListener('screenReaderChanged',\n () => {\n setTimeout(() => {\n this.forceUpdate();\n }, 100);\n },\n ).remove);\n this.cleanup.push(() => {\n this.destroyParentListeners();\n });\n }\n\n public reestimateDimensions() {\n const d = {\n vw: this.vw,\n vh: this.vh,\n pw: this.parent?.layout?.width,\n ph: this.parent?.layout?.height,\n w: this.layout?.width,\n h: this.layout?.height\n }\n if (!isEqual(this.dimensions, d)) {\n this.dimensions = d;\n this.notify('layoutChange', []);\n return true;\n }\n return false;\n }\n\n public subscribe(event: string, fn: Function) {\n return this.notifier.subscribe(event, fn);\n }\n\n public notify(event: string, args: any[], emitToParent = false) {\n return this.notifier.notify(event, args, emitToParent);\n }\n\n public get isRTL(){\n return this.i18nService.isRTLLocale();\n }\n\n public animate(props: AnimatableProps<ViewStyle>) {\n this.setState({\n animationId: Date.now(),\n animatableProps: props\n });\n }\n\n setProp(propName: string, value: any) {\n this.propertyProvider.set(propName, value);\n this.updateState({props: {}} as S);\n }\n\n setPropDefault(propName: string, value: any) {\n this.propertyProvider.setDefault(propName, value);\n }\n\n onPropertyChange(name: string, $new: any, $old: any) {\n }\n\n getDefaultStyles() {\n return this.theme.getStyle(this.defaultClass);\n }\n\n reset() {\n\n }\n\n updateState(newPartialState: S, callback?: ()=>void) {\n if (this.destroyed) {\n return;\n }\n const stateFn = (oldState: S) => {\n const oldProps = oldState.props;\n const newState = this.initialized ? assignIn({}, oldState, newPartialState) : assignIn(oldState, newPartialState);\n if (newPartialState.props) {\n Object.keys(newPartialState.props).forEach((k) => {\n //@ts-ignore\n oldProps[k] = newState.props[k];\n });\n newState.props = oldProps;\n }\n return newState;\n };\n const onUpdateState = () => {\n callback && callback();\n this.props.listener?.onComponentChange\n && this.props.listener?.onComponentChange(this);\n }\n if (!this.initialized) {\n this.state = stateFn(this.state);\n onUpdateState();\n } else {\n const timeoutId = setTimeout(() => {\n this.setState(stateFn, onUpdateState);\n this.updateStateTimeouts.splice(this.updateStateTimeouts.indexOf(timeoutId), 1);\n });\n this.updateStateTimeouts.push(timeoutId);\n }\n }\n\n shouldComponentUpdate(nextProps: T, nextState: S, nextContext: any) {\n if (this.propertyProvider.check(nextProps)) {\n return true;\n }\n for(let key in nextState) {\n if(key !== 'props' && (!(key in this.state) || nextState[key] !== this.state[key])) {\n return true;\n }\n }\n\n for(let key in this.state) {\n if(key !== 'props' && (!(key in nextState) || this.state[key] !== nextState[key])) {\n return true;\n }\n }\n return false;\n }\n\n componentDidMount() {\n if (this.props.listener && this.props.listener.onComponentInit) {\n this.props.listener.onComponentInit(this.proxy);\n }\n this.initialized = true;\n }\n\n componentWillAttach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: false});\n }\n }\n\n componentWillDetach() {\n if (this.isFixed || this.isSticky) {\n this.setState({hide: true});\n }\n }\n\n componentWillUnmount() {\n this.destroyed = true;\n if (this.props.listener && this.props.listener.onComponentDestroy) {\n this.props.listener.onComponentDestroy(this.proxy);\n }\n this.cleanup.forEach(f => f && f());\n this.parent?.componentNode?.remove(this.componentNode);\n this.notifier.destroy();\n this.notifier.notify('destroy', []);\n }\n\n componentDidUpdate(prevProps: Readonly<T>, prevState: Readonly<S>, snapshot?: any): void {\n if (this.propertyProvider.check(this.props)) {\n this.forceUpdate();\n }\n }\n\n invokeEventCallback(eventName: string, args: any[]) {\n //@ts-ignore\n const callBack: Function = this.props[eventName];\n const appConfig = injector.get<AppConfig>('APP_CONFIG');\n\n args = args && args.map(a => (a === this) ? this.proxy : a)\n if (callBack) {\n try {\n return callBack.apply(this.proxy, args);\n } catch(e) {\n console.error(e);\n if(appConfig?.preferences?.enableGlobalErrorHandler === true){\n throw e; // Re-throwing error to let ErrorBoundary or Global Handler catch it\n }\n }\n }\n }\n\n showView() {\n return this.isVisible();\n }\n\n isVisible() {\n const show = this.state.props.show;\n return show !== false && show !== 'false' && show !== '0' && !isNil(show) && show !== \"\";\n }\n\n protected abstract renderWidget(props: T): ReactNode;\n\n public refresh() {\n this.forceUpdate();\n }\n\n public cleanRefresh() {\n this.forceUpdate(() => this.notifier.notify('forceUpdate', []));\n }\n\n public renderSkeleton (props: T): ReactNode {\n return null;\n }\n\n public destroyParentListeners() {\n this.parentListenerDestroyers.map(fn => fn());\n }\n\n protected setParent(parent: BaseComponent<any, any, any>) {\n if (parent && this.parent !== parent) {\n this.parent = parent;\n this.parent.componentNode.add(this.componentNode);\n this.notifier.setParent(parent.notifier);\n this.destroyParentListeners();\n this.parentListenerDestroyers = [\n this.parent.subscribe('forceUpdate', () => {\n this.forceUpdate();\n }),\n this.parent.subscribe('layoutChange', () => {\n if (this.reestimateDimensions && this.reestimateDimensions() && this.hasStyleCalcExpression) {\n this.forceUpdate();\n }\n return false;\n }),\n this.parent.subscribe('destroy', () => {\n this.destroyParentListeners();\n })\n ];\n }\n }\n\n protected getName() {\n return this.props.name;\n }\n\n public handleLayout(event: LayoutChangeEvent, ref: React.RefObject<View> | null = null) {\n const key = this?.getName?.();\n if(key){\n const newLayoutPosition = {\n [key as string]: {\n y: event.nativeEvent.layout.y,\n x: event.nativeEvent.layout.x\n }\n }\n setPosition(newLayoutPosition);\n const componentRef = ref !== null ? ref : this.baseView\n // Layout values by measure\n if(componentRef?.measure){\n const updateLayout = ()=>{\n componentRef.measure((x = 0, y = 0, width = 0, height = 0, px = 0, py = 0) => {\n this.layout = { x, y, width, height, px, py }\n if (this.reestimateDimensions && this.reestimateDimensions() && this.hasStyleCalcExpression) {\n this.forceUpdate();\n }\n });\n }\n updateLayout();\n InteractionManager.runAfterInteractions(() => {\n requestAnimationFrame(updateLayout);\n })\n }\n } else {\n this.layout = event.nativeEvent?.layout as any;\n if (this.reestimateDimensions && this.reestimateDimensions() && this.hasStyleCalcExpression) {\n this.forceUpdate();\n }\n }\n }\n\n /**\n * Whether this widget already resolves its own width/height 'fill'/'hug' tokens\n * elsewhere (e.g. auto-layout containers calling getDimensionStyle on their own root).\n * Overridden by those widgets specifically — must NOT be inferred from prop shape,\n * since unrelated widgets can have their own props named direction/wrap/gap/alignment.\n */\n protected hasOwnFillHugResolution(): boolean {\n return false;\n }\n\n copyStyles(property: string, from: any, to: any) {\n if (!isUndefined(from[property])) {\n to[property] = from[property];\n }\n }\n\n renderFixedContainer(props: T) {\n const style = {} as ViewStyle;\n this.copyStyles('left', this.styles.root, style);\n this.copyStyles('top', this.styles.root, style);\n this.copyStyles('right', this.styles.root, style);\n this.copyStyles('bottom', this.styles.root, style);\n this.copyStyles('width', this.styles.root, style);\n this.copyStyles('height', this.styles.root, style);\n if ((style.width as any) === 'fill') {\n style.width = '100%';\n } else if ((style.width as any) === 'hug') {\n style.width = undefined;\n }\n if ((style.height as any) === 'fill') {\n style.height = '100%';\n } else if ((style.height as any) === 'hug') {\n style.height = undefined;\n }\n const hasFixedWidth = !isUndefined(style.width);\n const hasFixedHeight = !isUndefined(style.height);\n this.styles = this.theme.mergeStyle(this.styles, {\n root: {\n left: undefined,\n top: undefined,\n right: undefined,\n bottom: undefined,\n width: hasFixedWidth ? \"100%\" : undefined,\n height: hasFixedHeight ? \"100%\" : undefined\n } as ViewStyle\n });\n return (<FixedView style={style} theme={this.theme}>{this.addAnimation(this.renderWidget(props))}</FixedView>);\n }\n\n private addAnimation(n: ReactNode) {\n if (!this.state.animatableProps) {\n return (\n <>\n {n}\n </>\n )\n }\n return (\n <Animatable.View\n key={this.state.animationId}\n {...this.state.animatableProps}\n >\n {n}\n </Animatable.View>);\n }\n\n private setBackground() {\n const bgStyle = this.styles.root as any;\n this._background = (\n <>\n <BackgroundComponent\n image={bgStyle.backgroundImage}\n position={bgStyle.backgroundPosition}\n size={bgStyle.backgroundSize}\n repeat={bgStyle.backgroundRepeat}\n resizeMode={bgStyle.backgroundResizeMode}\n style={{borderRadius: this.styles.root.borderRadius}}>\n </BackgroundComponent>\n {this.state.highlight ? (<View onTouchStart={() => {\n this.setState({\n highlight: false\n })\n }} style={[{\n borderWidth: 2,\n overflow: 'hidden',\n backgroundColor: '#FFFF0033',\n borderColor: 'orange',\n borderStyle: 'dashed',\n zIndex: 1000,\n borderRadius: 0,\n }, StyleSheet.absoluteFill]}></View>) : null}\n </>\n );\n delete (this.styles.root as any)['backgroundImage'];\n delete (this.styles.root as any)['backgroundPosition'];\n delete (this.styles.root as any)['backgroundResizeMode'];\n delete (this.styles.root as any)['backgroundSize'];\n delete (this.styles.root as any)['backgroundRepeat'];\n }\n\n public getTestId(suffix?: string) {\n let id = this.props.id || this.props.name;\n if (this.testIdPrefix) {\n id = this.testIdPrefix + '_' + id;\n }\n if (suffix) {\n id = id + '_' + suffix;\n }\n return id;\n }\n\n public getTestProps(suffix?: string) {\n let id = this.getTestId(suffix);\n if (isScreenReaderEnabled()) {\n return {};\n }\n if (Platform.OS === 'android' || Platform.OS === 'web') {\n return {\n accessibilityLabel: id,\n testID: id\n };\n }\n return {\n accessible: false,\n testID: id\n };\n }\n\n public getStyleClassName() {\n return this.state.props.classname;\n }\n\n public getTestPropsForInput(suffix?: string) {\n return this.getTestProps(suffix || 'i');\n }\n\n public getTestPropsForAction(suffix?: string) {\n return this.getTestProps(suffix || 'a');\n }\n\n public getTestPropsForLabel(suffix?: string) {\n return this.getTestProps(suffix || 'l');\n }\n\n public getLayoutOfWidget(name: string): {x: number, y: number} | undefined {\n return getPosition(name)\n }\n\n public getLayout() {\n return this.layout ;\n }\n\n public scrollToTop(){\n this.notify('scrollToPosition', [{\n x: 0,\n y: 0\n }]);\n }\n\n public scrollToEnd() {\n this.notify('scrollToEnd', []);\n }\n\n scrollToPosition(widgetName: string) {\n const positionY = this.getLayoutOfWidget(widgetName)?.y; // Safe access\n this.notify('scrollToPosition', [{\n x: 0,\n y: positionY,\n }]);\n }\n\n public hideSkeletonInPageContentWhenDisabledInPage = () => {\n const isPageContentWidget = this.defaultClass && this.defaultClass === 'app-page-content'\n const isCurrentParentIsContent = this.parent && this.parent.defaultClass && this.parent.defaultClass === 'app-content'\n const showSkeletonInPageContent = this.parent && this.parent.state?.props?.showskeleton === false\n\n if(isPageContentWidget && isCurrentParentIsContent && showSkeletonInPageContent) {\n return false;\n }\n return undefined;\n }\n\n private evaluateCalcStyles(styles: any) {\n const result = {} as any;\n Object.keys(styles).forEach(k => {\n const value = styles[k];\n if (isArray(value)) {\n result[k] = value.map((v, i) => {\n return this.evaluateCalcStyles(v);\n });\n } else if (isObject(value)) {\n result[k] = this.evaluateCalcStyles(value);\n } else if (isString(value) && value.startsWith('calc(')) {\n result[k] = new CalcExpression(value, {\n vw: this.dimensions.vw || 0,\n vh: this.dimensions.vh || 0,\n p: (k === 'height' ? this.dimensions.ph : this.dimensions.pw) || 0,\n }).evaluate();\n } else {\n result[k] = value;\n }\n });\n return result;\n }\n\n private getDependenciesFromContext(fn: () => ReactNode) {\n return (\n <TappableContext.Consumer>{(tappable) => {\n this.closestTappable = tappable;\n return (\n <TextIdPrefixConsumer>\n {(testIdPrefix) => {\n this.testIdPrefix = testIdPrefix || '';\n return (<AssetConsumer>\n {(loadAsset) => {\n this.loadAsset = loadAsset;\n return (<ParentContext.Consumer>\n {(parent) => {\n this.setParent(parent);\n this._showSkeleton = this.state.props.showskeleton !== false\n && (this.parent?._showSkeleton || this.state.props.showskeleton === true) && this.hideSkeletonInPageContentWhenDisabledInPage() === undefined\n return (\n <ParentContext.Provider value={this}>\n <ThemeConsumer>\n {(theme) => {\n this.theme = theme || BASE_THEME;\n return fn();\n }}\n </ThemeConsumer>\n </ParentContext.Provider>);\n }}\n </ParentContext.Consumer>);\n }}\n </AssetConsumer>);\n }}\n </TextIdPrefixConsumer>)}}\n </TappableContext.Consumer>);\n }\n\n public render(): ReactNode {\n const props = this.state.props;\n const selectedLocale = this.i18nService.getSelectedLocale();\n return this.getDependenciesFromContext(() => {\n WIDGET_LOGGER.info(() => `${this.props.name || this.constructor.name} is rendering.`);\n this._showView = this._showView || this.showView();\n if (this.state.hide\n || (!this.isVisible() && this.hideMode === HideMode.DONOT_ADD_TO_DOM)\n || !this._showView) {\n return null;\n }\n this.isFixed = false;\n const classname = this.getStyleClassName();\n this.calcStyles = this.theme.mergeStyle(\n this.getDefaultStyles(),\n {text: this.theme.getStyle('app-' + selectedLocale)},\n {text: this.theme.getStyle(this.defaultClass + '-' + selectedLocale)},\n props.disabled ? this.theme.getStyle(this.defaultClass + '-disabled') : null,\n this.isRTL ? this.theme.getStyle(this.defaultClass + '-rtl') : null,\n classname && this.theme.getStyle(classname),\n classname && props.disabled ? this.theme.getStyle(`${classname}.${this.defaultClass}-disabled`) : null,\n this.isRTL && classname ? this.theme.getStyle(classname + '-rtl') : null,\n props.showindevice && this.theme.getStyle('d-all-none ' + props.showindevice.map(d => `d-${d}-flex`).join(' ')),\n this.props.styles,\n {\n root: this.styleOverrides,\n text: this.styleOverrides\n }\n );\n // Merge child component styles from custom classes\n if (classname && this.childComponentStyleKeys.length > 0) {\n const customStyles = this.theme.getStyle(classname);\n this.childComponentStyleKeys.forEach(key => {\n if (customStyles && this.calcStyles && (this.calcStyles as any)[key]) {\n (this.calcStyles as any)[key] = this.theme.mergeStyle((this.calcStyles as any)[key], customStyles);\n }\n });\n }\n\n this.hasStyleCalcExpression = false;\n\n this.styles = this.evaluateCalcStyles(this.calcStyles);\n if (this.styles.root.hasOwnProperty('_background')) {\n delete this.styles.root.backgroundColor;\n }\n if (!this.isVisible()) {\n assign(this.styles, this.theme.getStyle('hidden'))\n }\n let eleToRender = (this._showSkeleton && this.renderSkeleton(props));\n if (eleToRender) {\n return eleToRender;\n }\n this.setBackground();\n this.isFixed = (this.styles.root.position as any) === 'fixed' || (props.position as any) === 'fixed';\n if (!this.isFixed) {\n const rootStyle = this.styles.root as any;\n if (rootStyle.width === 'fill' || rootStyle.width === 'hug' || rootStyle.height === 'fill' || rootStyle.height === 'hug') {\n const parentProps = this.parent?.state?.props as any;\n const hasOwnResolution = this.hasOwnFillHugResolution();\n if (!hasOwnResolution) {\n Object.assign(this.styles.root, resolveFillHugStyle(\n rootStyle.width,\n rootStyle.height,\n parentProps?.direction,\n Boolean(parentProps?.alignment)\n ));\n }\n }\n }\n const positionStyle = getPositionValueStyle(props.positionvalue);\n if (this.isFixed) {\n this.styles.root.position = undefined;\n this.styles.root.top = positionStyle.top;\n this.styles.root.right = positionStyle.right;\n this.styles.root.bottom = positionStyle.bottom;\n this.styles.root.left = positionStyle.left;\n return this.renderFixedContainer(props);\n }\n return this.addAnimation(this.renderWidget(this.state.props));\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["axios","clone","isEqual","noop","Network","NetInfo","StorageService","EventNotifier","getAbortableDefer","isWebPreviewMode","retryIfFails","NetworkState","constructor","_defineProperty","AUTO_CONNECT_KEY","IS_CONNECTED_KEY","excludedList","RegExp","networkState","blockUrl","url","isConnected","startsWith","findIndex","regExp","test","interceptors","request","use","noServiceRequired","urlSplits","split","pathIndex","indexOf","substr","join","NetworkService","setAutoConnect","checkForNetworkStateChange","isConnecting","connect","silent","tryToConnect","disconnect","p","tryToDisconnect","disableAutoConnect","isAvailable","pingServer","isServiceAvailable","then","onConnect","defer","cancelSubscription","Promise","resolve","notifier","subscribe","promise","catch","retryIfNetworkFails","fn","onConnectPromise","abort","reject","start","appConfig","getItem","_autoConnect","state","getNetworkStateAsync","isNetworkAvailable","addEventListener","data","_isCheckingServer","checkForServiceAvailiblity","getServiceName","SERVICE_NAME","unblock","urlRegex","push","getState","_lastKnownNetworkState","notify","maxTimeout","intervalId","setInterval","available","clearInterval","response","baseURL","endsWith","get","Date","now","responseType","timeout","res","status","flag","setItem","silentMode","setTimeout"],"sources":["network.service.ts"],"sourcesContent":["import axios from 'axios';\nimport { clone, isEqual, noop } from 'lodash-es';\nimport * as Network from 'expo-network';\nimport NetInfo from '@react-native-community/netinfo';\n\nimport AppConfig from './AppConfig';\nimport StorageService from './storage.service';\nimport EventNotifier from './event-notifier';\nimport { getAbortableDefer, isWebPreviewMode, retryIfFails } from './utils';\n\nexport class NetworkState {\n isConnecting = false;\n isConnected = true;\n isNetworkAvailable = true;\n isServiceAvailable = true;\n noServiceRequired = false;\n}\n\nconst AUTO_CONNECT_KEY = 'WM.NetworkService._autoConnect',\n IS_CONNECTED_KEY = 'WM.NetworkService.isConnected',\n excludedList = [new RegExp('/wmProperties.js')],\n networkState = new NetworkState();\n\n/**\n * If server is not connected and url does not match the unblock list of regular expressions,\n * then this function return true. Otherwise, return false.\n * @param url\n * @returns {boolean}\n */\nconst blockUrl = (url: string) => {\n return !networkState.isConnected\n && url.startsWith('http')\n && excludedList.findIndex(regExp => regExp.test(url)) < 0;\n};\n\naxios.interceptors.request.use((request) => {\n if (!networkState.noServiceRequired && request.url && blockUrl(request.url)) {\n const url = request.url;\n const urlSplits = url.split('://');\n const pathIndex = urlSplits[1].indexOf('/');\n urlSplits[1] = 'localhost' + (pathIndex > 0 ? urlSplits[1].substr(pathIndex) : '/');\n request.url = urlSplits.join('://');\n }\n return request;\n});\n\nclass NetworkService {\n static readonly SERVICE_NAME = 'NetworkService';\n\n private _autoConnect = true;\n private _lastKnownNetworkState: any;\n private _isCheckingServer = false;\n private appConfig: AppConfig = null as any;\n public readonly notifier: EventNotifier = new EventNotifier();\n\n constructor() {}\n\n /**\n * This method attempts to connect app to the server and returns a promise that will be resolved with\n * a boolean value based on the operation result.\n *\n * @returns {object} promise\n */\n public connect(silent = false): Promise<boolean> {\n this.setAutoConnect(true);\n return this.tryToConnect(silent);\n }\n\n /**\n * When the auto connect is enabled, then app is automatically connected whenever server is available.\n * Every time when app goes offline, auto connect is enabled. Before app coming to online, one can disable\n * the auto connection flow using this method.\n */\n public disableAutoConnect = () => this.setAutoConnect(false);\n\n /**\n * This method disconnects the app from the server and returns a promise that will be resolved with\n * a boolean value based on the operation result. Use connect method to reconnect.\n *\n * @returns {object} promise\n */\n public disconnect(): Promise<boolean> {\n const p = this.tryToDisconnect();\n this.disableAutoConnect();\n return p;\n }\n\n /**\n * If pingServer is true, then it returns a promise that will be resolved with boolean based on service availability\n * check.If pingServer is false, returns a boolean value based on the last known service availability.\n *\n * @returns {boolean} if pingServer is true, then a promise is returned. Otherwise, a boolean value.\n */\n public isAvailable(pingServer = false): boolean | Promise<boolean> {\n if (pingServer) {\n return this.isServiceAvailable().then(() => {\n this.checkForNetworkStateChange();\n return networkState.isServiceAvailable;\n });\n }\n return networkState.isServiceAvailable;\n }\n\n /**\n * Returns true, if app is connected to server. Otherwise, returns false.\n *\n * @returns {boolean} Returns true, if app is connected to server. Otherwise, returns false.\n */\n public isConnected = () => {\n this.checkForNetworkStateChange();\n return networkState.isConnected;\n }\n\n /**\n * Returns true if app is trying to connect to server. Otherwise, returns false.\n *\n * @returns {boolean} Returns true if app is trying to connect to server. Otherwise, returns false.\n */\n public isConnecting = () => networkState.isConnecting;\n\n /**\n * This method returns a promise that is resolved when connection is established with server.\n *\n * @returns {object} promise a promise that is resolved with the returned object of fn\n */\n public onConnect() {\n let defer = getAbortableDefer(),\n cancelSubscription: Function;\n if (this.isConnected()) {\n return Promise.resolve();\n }\n cancelSubscription = this.notifier.subscribe('onNetworkStateChange', () => {\n if (this.isConnected()) {\n defer.resolve(true);\n cancelSubscription();\n }\n });\n defer.promise.catch(function () {\n cancelSubscription();\n });\n return defer.promise;\n }\n\n /**\n * This is a util method. If fn cannot execute successfully and network lost connection, then the fn will\n * be invoked when network is back. The returned can also be aborted.\n *\n * @param {function()} fn method to invoke.\n * @returns {object} promise a promise that is resolved with the returned object of fn\n */\n public retryIfNetworkFails(fn: Function) {\n const defer = getAbortableDefer();\n retryIfFails(fn, 0, 0, () => {\n let onConnectPromise: any;\n if (!this.isConnected()) {\n onConnectPromise = this.onConnect();\n defer.promise.catch(function () {\n onConnectPromise.abort();\n });\n return onConnectPromise;\n }\n return false;\n }).then(defer.resolve, defer.reject);\n return defer.promise;\n }\n\n public async start(appConfig: AppConfig): Promise<any> {\n this.appConfig = appConfig;\n networkState.noServiceRequired = !appConfig.url;\n networkState.isConnected = (await StorageService.getItem(IS_CONNECTED_KEY)) !== 'false';\n this._autoConnect = (await StorageService.getItem(AUTO_CONNECT_KEY)) !== 'false';\n const state = await Network.getNetworkStateAsync();\n networkState.isNetworkAvailable = !!state.isConnected;\n networkState.isConnected = networkState.isNetworkAvailable && networkState.isConnected;\n !isWebPreviewMode() && NetInfo.addEventListener(state => {\n if (state.isConnected !== networkState.isConnected) {\n if (state.isConnected) {\n networkState.isNetworkAvailable = !!state.isConnected;\n this.tryToConnect().catch(noop);\n } else {\n networkState.isNetworkAvailable = false;\n networkState.isServiceAvailable = false;\n networkState.isConnected = false;\n this.tryToDisconnect();\n }\n }\n });\n this.notifier.subscribe('onNetworkStateChange', (data: NetworkState) => {\n /**\n * If network is available and server is not available,then\n * try to connect when server is available.\n */\n if (data.isNetworkAvailable && !data.isServiceAvailable && !this._isCheckingServer && !data.noServiceRequired) {\n this._isCheckingServer = true;\n this.checkForServiceAvailiblity().then(() => {\n this._isCheckingServer = false;\n this.connect();\n }, () => {\n this._isCheckingServer = false;\n });\n }\n });\n // to set the default n/w connection values.\n return this.tryToConnect(true).catch(noop);\n }\n\n public getServiceName() {\n return NetworkService.SERVICE_NAME;\n }\n\n /**\n * This function adds the given regular expression to the unblockList. Even app is in offline mode,\n * the urls matching with the given regular expression are not blocked by NetworkService.\n *\n * @param {string} urlRegex regular expression\n */\n public unblock(urlRegex: string) {\n excludedList.push(new RegExp(urlRegex));\n }\n\n public getState() {\n return clone(networkState);\n }\n\n private checkForNetworkStateChange() {\n if (!isEqual(this._lastKnownNetworkState, networkState)) {\n this._lastKnownNetworkState = clone(networkState);\n this.notifier.notify('onNetworkStateChange', [this._lastKnownNetworkState]);\n }\n }\n\n /**\n * Returns a promise that is resolved when server is available.\n * @returns {*}\n */\n private checkForServiceAvailiblity(): Promise<void> {\n const maxTimeout = 4500;\n return new Promise<void>(resolve => {\n const intervalId = setInterval(() => {\n if (networkState.isNetworkAvailable) {\n this.isServiceAvailable(maxTimeout).then(available => {\n if (available) {\n clearInterval(intervalId);\n resolve();\n }\n });\n }\n }, 5000);\n });\n }\n\n /**\n * Pings server to check whether server is available. Based on ping response network state is modified.\n * @returns {*} a promise that resolved with true, if server responds with valid status.\n * Otherwise, the promise is resolved with false.\n */\n private isServiceAvailable(maxTimeout?: number): Promise<boolean> {\n if (networkState.noServiceRequired) {\n networkState.isServiceAvailable = false;\n networkState.noServiceRequired = true;\n return Promise.resolve(false);\n }\n return this.pingServer(maxTimeout).then(response => {\n networkState.isServiceAvailable = response;\n if (!networkState.isServiceAvailable) {\n networkState.isConnecting = false;\n networkState.isConnected = false;\n }\n return response;\n });\n }\n\n /**\n * Pings server\n * @returns {*} a promise that resolved with true, if server responds with valid status.\n * Otherwise, the promise is resolved with false.\n * default timeout value is 1min.\n */\n private pingServer(maxTimeout = 60000): Promise<boolean> {\n let baseURL = this.appConfig.url;\n if (baseURL && !baseURL.endsWith('/')) {\n baseURL += '/';\n } else {\n baseURL = baseURL || '';\n }\n return axios.get(baseURL + 'services/application/wmProperties.js?t=' + Date.now(), {\n responseType: 'text',\n timeout: maxTimeout\n }).then((res) => res.status === 200, () => false);\n }\n\n private setAutoConnect(flag: boolean): void {\n this._autoConnect = flag;\n StorageService.setItem(AUTO_CONNECT_KEY, '' + flag);\n }\n\n /**\n * Tries to connect to remote server. Network State will be changed based on the success of connection\n * operation and emits an event notifying the network state change.\n *\n * @param silentMode {boolean} if true and connection is successful, then no event is emitted. Otherwise,\n * events are emitted for network status change.\n * @returns {*} a promise\n */\n private tryToConnect(silentMode = false): Promise<boolean> {\n return new Promise<boolean>((resolve, reject) => {\n this.isServiceAvailable(5000).then(() => {\n if (networkState.isServiceAvailable && this._autoConnect) {\n networkState.isConnecting = true;\n if (!silentMode) {\n this.checkForNetworkStateChange();\n }\n setTimeout(() => {\n networkState.isConnecting = false;\n networkState.isConnected = true;\n StorageService.setItem(IS_CONNECTED_KEY, '' + true);\n if (!silentMode) {\n this.checkForNetworkStateChange();\n }\n resolve(true);\n }, silentMode ? 0 : 5000);\n } else {\n networkState.isConnecting = false;\n networkState.isConnected = false;\n StorageService.setItem(IS_CONNECTED_KEY, '' + false);\n reject();\n this.checkForNetworkStateChange();\n }\n });\n });\n }\n\n private tryToDisconnect(): Promise<boolean> {\n networkState.isConnected = false;\n networkState.isConnecting = false;\n this.checkForNetworkStateChange();\n StorageService.setItem(IS_CONNECTED_KEY, '' + networkState.isConnected);\n return Promise.resolve(networkState.isConnected);\n }\n}\n\nexport default new NetworkService();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["axios","clone","isEqual","noop","Network","NetInfo","StorageService","EventNotifier","getAbortableDefer","isWebPreviewMode","retryIfFails","NetworkState","constructor","_defineProperty","AUTO_CONNECT_KEY","IS_CONNECTED_KEY","excludedList","RegExp","networkState","blockUrl","url","isConnected","startsWith","findIndex","regExp","test","interceptors","request","use","noServiceRequired","urlSplits","split","pathIndex","indexOf","substr","join","NetworkService","setAutoConnect","checkForNetworkStateChange","isConnecting","connect","silent","tryToConnect","disconnect","p","tryToDisconnect","disableAutoConnect","isAvailable","pingServer","isServiceAvailable","then","onConnect","defer","cancelSubscription","Promise","resolve","notifier","subscribe","promise","catch","retryIfNetworkFails","fn","onConnectPromise","abort","reject","start","appConfig","getItem","_autoConnect","state","getNetworkStateAsync","isNetworkAvailable","addEventListener","data","_isCheckingServer","checkForServiceAvailiblity","getServiceName","SERVICE_NAME","unblock","urlRegex","push","getState","_lastKnownNetworkState","notify","maxTimeout","intervalId","setInterval","available","clearInterval","response","baseURL","endsWith","get","Date","now","responseType","timeout","res","status","flag","setItem","silentMode","setTimeout"],"sources":["network.service.ts"],"sourcesContent":["import axios from 'axios';\nimport { clone, isEqual, noop } from 'lodash-es';\nimport * as Network from 'expo-network';\nimport NetInfo from '@react-native-community/netinfo';\n\nimport AppConfig from './AppConfig';\nimport StorageService from './storage.service';\nimport EventNotifier from './event-notifier';\nimport { getAbortableDefer, isWebPreviewMode, retryIfFails } from './utils';\n\nexport class NetworkState {\n isConnecting = false;\n isConnected = true;\n isNetworkAvailable = true;\n isServiceAvailable = true;\n noServiceRequired = false;\n}\n\nconst AUTO_CONNECT_KEY = 'WM.NetworkService._autoConnect',\n IS_CONNECTED_KEY = 'WM.NetworkService.isConnected',\n excludedList = [new RegExp('/wmProperties.js')],\n networkState = new NetworkState();\n\n/**\n * If server is not connected and url does not match the unblock list of regular expressions,\n * then this function return true. Otherwise, return false.\n * @param url\n * @returns {boolean}\n */\nconst blockUrl = (url: string) => {\n return !networkState.isConnected\n && url.startsWith('http')\n && excludedList.findIndex(regExp => regExp.test(url)) < 0;\n};\n\naxios.interceptors.request.use((request) => {\n if (!networkState.noServiceRequired && request.url && blockUrl(request.url)) {\n const url = request.url;\n const urlSplits = url.split('://');\n const pathIndex = urlSplits[1].indexOf('/');\n urlSplits[1] = 'localhost' + (pathIndex > 0 ? urlSplits[1].substr(pathIndex) : '/');\n request.url = urlSplits.join('://');\n }\n return request;\n});\n\nclass NetworkService {\n static readonly SERVICE_NAME = 'NetworkService';\n\n private _autoConnect = true;\n private _lastKnownNetworkState: any;\n private _isCheckingServer = false;\n private appConfig: AppConfig = null as any;\n public readonly notifier: EventNotifier = new EventNotifier();\n\n constructor() {}\n\n /**\n * This method attempts to connect app to the server and returns a promise that will be resolved with\n * a boolean value based on the operation result.\n *\n * @returns {object} promise\n */\n public connect(silent = false): Promise<boolean> {\n this.setAutoConnect(true);\n return this.tryToConnect(silent);\n }\n\n /**\n * When the auto connect is enabled, then app is automatically connected whenever server is available.\n * Every time when app goes offline, auto connect is enabled. Before app coming to online, one can disable\n * the auto connection flow using this method.\n */\n public disableAutoConnect = () => this.setAutoConnect(false);\n\n /**\n * This method disconnects the app from the server and returns a promise that will be resolved with\n * a boolean value based on the operation result. Use connect method to reconnect.\n *\n * @returns {object} promise\n */\n public disconnect(): Promise<boolean> {\n const p = this.tryToDisconnect();\n this.disableAutoConnect();\n return p;\n }\n\n /**\n * If pingServer is true, then it returns a promise that will be resolved with boolean based on service availability\n * check.If pingServer is false, returns a boolean value based on the last known service availability.\n *\n * @returns {boolean} if pingServer is true, then a promise is returned. Otherwise, a boolean value.\n */\n public isAvailable(pingServer = false): boolean | Promise<boolean> {\n if (pingServer) {\n return this.isServiceAvailable().then(() => {\n this.checkForNetworkStateChange();\n return networkState.isServiceAvailable;\n });\n }\n return networkState.isServiceAvailable;\n }\n\n /**\n * Returns true, if app is connected to server. Otherwise, returns false.\n *\n * @returns {boolean} Returns true, if app is connected to server. Otherwise, returns false.\n */\n public isConnected = () => {\n this.checkForNetworkStateChange();\n return networkState.isConnected;\n }\n\n /**\n * Returns true if app is trying to connect to server. Otherwise, returns false.\n *\n * @returns {boolean} Returns true if app is trying to connect to server. Otherwise, returns false.\n */\n public isConnecting = () => networkState.isConnecting;\n\n /**\n * This method returns a promise that is resolved when connection is established with server.\n *\n * @returns {object} promise a promise that is resolved with the returned object of fn\n */\n public onConnect() {\n let defer = getAbortableDefer(),\n cancelSubscription: Function;\n if (this.isConnected()) {\n return Promise.resolve();\n }\n cancelSubscription = this.notifier.subscribe('onNetworkStateChange', () => {\n if (this.isConnected()) {\n defer.resolve(true);\n cancelSubscription();\n }\n });\n defer.promise.catch(function () {\n cancelSubscription();\n });\n return defer.promise;\n }\n\n /**\n * This is a util method. If fn cannot execute successfully and network lost connection, then the fn will\n * be invoked when network is back. The returned can also be aborted.\n *\n * @param {function()} fn method to invoke.\n * @returns {object} promise a promise that is resolved with the returned object of fn\n */\n public retryIfNetworkFails(fn: Function) {\n const defer = getAbortableDefer();\n retryIfFails(fn, 0, 0, () => {\n let onConnectPromise: any;\n if (!this.isConnected()) {\n onConnectPromise = this.onConnect();\n defer.promise.catch(function () {\n onConnectPromise.abort();\n });\n return onConnectPromise;\n }\n return false;\n }).then(defer.resolve, defer.reject);\n return defer.promise;\n }\n\n public async start(appConfig: AppConfig): Promise<any> {\n this.appConfig = appConfig;\n networkState.noServiceRequired = !appConfig.url;\n networkState.isConnected = (await StorageService.getItem(IS_CONNECTED_KEY)) !== 'false';\n this._autoConnect = (await StorageService.getItem(AUTO_CONNECT_KEY)) !== 'false';\n const state = await Network.getNetworkStateAsync();\n networkState.isNetworkAvailable = !!state.isConnected;\n networkState.isConnected = networkState.isNetworkAvailable && networkState.isConnected;\n !isWebPreviewMode() && NetInfo.addEventListener(state => {\n if (state.isConnected !== networkState.isConnected) {\n if (state.isConnected) {\n networkState.isNetworkAvailable = !!state.isConnected;\n this.tryToConnect().catch(noop);\n } else {\n networkState.isNetworkAvailable = false;\n networkState.isServiceAvailable = false;\n networkState.isConnected = false;\n this.tryToDisconnect();\n }\n }\n });\n this.notifier.subscribe('onNetworkStateChange', (data: NetworkState) => {\n /**\n * If network is available and server is not available,then\n * try to connect when server is available.\n */\n if (data.isNetworkAvailable && !data.isServiceAvailable && !this._isCheckingServer && !data.noServiceRequired) {\n this._isCheckingServer = true;\n this.checkForServiceAvailiblity().then(() => {\n this._isCheckingServer = false;\n this.connect();\n }, () => {\n this._isCheckingServer = false;\n });\n }\n });\n // to set the default n/w connection values.\n return this.tryToConnect(true).catch(noop);\n }\n\n public getServiceName() {\n return NetworkService.SERVICE_NAME;\n }\n\n /**\n * This function adds the given regular expression to the unblockList. Even app is in offline mode,\n * the urls matching with the given regular expression are not blocked by NetworkService.\n *\n * @param {string} urlRegex regular expression\n */\n public unblock(urlRegex: string) {\n excludedList.push(new RegExp(urlRegex));\n }\n\n public getState() {\n return clone(networkState);\n }\n\n private checkForNetworkStateChange() {\n if (!isEqual(this._lastKnownNetworkState, networkState)) {\n this._lastKnownNetworkState = clone(networkState);\n this.notifier.notify('onNetworkStateChange', [this._lastKnownNetworkState]);\n }\n }\n\n /**\n * Returns a promise that is resolved when server is available.\n * @returns {*}\n */\n private checkForServiceAvailiblity(): Promise<void> {\n const maxTimeout = 4500;\n return new Promise<void>(resolve => {\n const intervalId = setInterval(() => {\n if (networkState.isNetworkAvailable) {\n this.isServiceAvailable(maxTimeout).then(available => {\n if (available) {\n clearInterval(intervalId);\n resolve();\n }\n });\n }\n }, 5000);\n });\n }\n\n /**\n * Pings server to check whether server is available. Based on ping response network state is modified.\n * @returns {*} a promise that resolved with true, if server responds with valid status.\n * Otherwise, the promise is resolved with false.\n */\n private isServiceAvailable(maxTimeout?: number): Promise<boolean> {\n if (networkState.noServiceRequired) {\n networkState.isServiceAvailable = false;\n networkState.noServiceRequired = true;\n return Promise.resolve(false);\n }\n return this.pingServer(maxTimeout).then(response => {\n networkState.isServiceAvailable = response;\n if (!networkState.isServiceAvailable) {\n networkState.isConnecting = false;\n networkState.isConnected = false;\n }\n return response;\n });\n }\n\n /**\n * Pings server\n * @returns {*} a promise that resolved with true, if server responds with valid status.\n * Otherwise, the promise is resolved with false.\n * default timeout value is 1min.\n */\n private pingServer(maxTimeout = 60000): Promise<boolean> {\n let baseURL = this.appConfig.url;\n if (baseURL && !baseURL.endsWith('/')) {\n baseURL += '/';\n } else {\n baseURL = baseURL || '';\n }\n return axios.get(baseURL + 'services/application/wmProperties.js?t=' + Date.now(), {\n responseType: 'text',\n timeout: maxTimeout\n }).then((res) => res.status === 200, () => false);\n }\n\n private setAutoConnect(flag: boolean): void {\n this._autoConnect = flag;\n StorageService.setItem(AUTO_CONNECT_KEY, '' + flag);\n }\n\n /**\n * Tries to connect to remote server. Network State will be changed based on the success of connection\n * operation and emits an event notifying the network state change.\n *\n * @param silentMode {boolean} if true and connection is successful, then no event is emitted. Otherwise,\n * events are emitted for network status change.\n * @returns {*} a promise\n */\n private tryToConnect(silentMode = false): Promise<boolean> {\n return new Promise<boolean>((resolve, reject) => {\n this.isServiceAvailable(5000).then(() => {\n if (networkState.isServiceAvailable && this._autoConnect) {\n networkState.isConnecting = true;\n if (!silentMode) {\n this.checkForNetworkStateChange();\n }\n setTimeout(() => {\n networkState.isConnecting = false;\n networkState.isConnected = true;\n StorageService.setItem(IS_CONNECTED_KEY, '' + true);\n if (!silentMode) {\n this.checkForNetworkStateChange();\n }\n resolve(true);\n }, silentMode ? 0 : 5000);\n } else {\n networkState.isConnecting = false;\n networkState.isConnected = false;\n StorageService.setItem(IS_CONNECTED_KEY, '' + false);\n reject();\n this.checkForNetworkStateChange();\n }\n });\n });\n }\n\n private tryToDisconnect(): Promise<boolean> {\n networkState.isConnected = false;\n networkState.isConnecting = false;\n this.checkForNetworkStateChange();\n StorageService.setItem(IS_CONNECTED_KEY, '' + networkState.isConnected);\n return Promise.resolve(networkState.isConnected);\n }\n}\n\nexport default new NetworkService();\n"],"mappings":"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","ignoreList":[]}