@plusscommunities/pluss-core-app 8.0.13-beta.4 → 8.0.14-beta.0

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 (140) hide show
  1. package/dist/module/components/AddButton.js +1 -1
  2. package/dist/module/components/AddButton.js.map +1 -1
  3. package/dist/module/components/Attachment.js +2 -1
  4. package/dist/module/components/Attachment.js.map +1 -1
  5. package/dist/module/components/BackButton.js +1 -1
  6. package/dist/module/components/BackButton.js.map +1 -1
  7. package/dist/module/components/CalendarPopup.js +1 -1
  8. package/dist/module/components/CalendarPopup.js.map +1 -1
  9. package/dist/module/components/CategoryTabs.js +2 -1
  10. package/dist/module/components/CategoryTabs.js.map +1 -1
  11. package/dist/module/components/CommentReply.js +1 -0
  12. package/dist/module/components/CommentReply.js.map +1 -1
  13. package/dist/module/components/CommentSection.js +2 -1
  14. package/dist/module/components/CommentSection.js.map +1 -1
  15. package/dist/module/components/ConfirmPopup.js +2 -1
  16. package/dist/module/components/ConfirmPopup.js.map +1 -1
  17. package/dist/module/components/ConfirmationPopup.js +2 -2
  18. package/dist/module/components/ConfirmationPopup.js.map +1 -1
  19. package/dist/module/components/DropDownItem.js +2 -1
  20. package/dist/module/components/DropDownItem.js.map +1 -1
  21. package/dist/module/components/EmptyStateMain.js +2 -1
  22. package/dist/module/components/EmptyStateMain.js.map +1 -1
  23. package/dist/module/components/EmptyStateWidget.js +2 -1
  24. package/dist/module/components/EmptyStateWidget.js.map +1 -1
  25. package/dist/module/components/FontScaleButton.js +2 -1
  26. package/dist/module/components/FontScaleButton.js.map +1 -1
  27. package/dist/module/components/FontScalePopup.js +2 -1
  28. package/dist/module/components/FontScalePopup.js.map +1 -1
  29. package/dist/module/components/Forbidden.js +3 -3
  30. package/dist/module/components/Forbidden.js.map +1 -1
  31. package/dist/module/components/FormCardSection.js +18 -17
  32. package/dist/module/components/FormCardSection.js.map +1 -1
  33. package/dist/module/components/FormCardSectionOptionLauncher.js +2 -1
  34. package/dist/module/components/FormCardSectionOptionLauncher.js.map +1 -1
  35. package/dist/module/components/FormattedText.js +2 -1
  36. package/dist/module/components/FormattedText.js.map +1 -1
  37. package/dist/module/components/GenericInput.js +4 -2
  38. package/dist/module/components/GenericInput.js.map +1 -1
  39. package/dist/module/components/GenericInputSection.js +2 -1
  40. package/dist/module/components/GenericInputSection.js.map +1 -1
  41. package/dist/module/components/Header.js +1 -1
  42. package/dist/module/components/Header.js.map +1 -1
  43. package/dist/module/components/ImagePopup.js +1 -1
  44. package/dist/module/components/ImagePopup.js.map +1 -1
  45. package/dist/module/components/ImageUploadProgress.js +2 -1
  46. package/dist/module/components/ImageUploadProgress.js.map +1 -1
  47. package/dist/module/components/InlineButton.js +2 -1
  48. package/dist/module/components/InlineButton.js.map +1 -1
  49. package/dist/module/components/Input.js +3 -1
  50. package/dist/module/components/Input.js.map +1 -1
  51. package/dist/module/components/PDFPopup.js +3 -2
  52. package/dist/module/components/PDFPopup.js.map +1 -1
  53. package/dist/module/components/PlussChat.js +4 -3
  54. package/dist/module/components/PlussChat.js.map +1 -1
  55. package/dist/module/components/PlussChatMessage.js +4 -4
  56. package/dist/module/components/PlussChatMessage.js.map +1 -1
  57. package/dist/module/components/PlussChatTime.js +2 -1
  58. package/dist/module/components/PlussChatTime.js.map +1 -1
  59. package/dist/module/components/Popup.js +2 -1
  60. package/dist/module/components/Popup.js.map +1 -1
  61. package/dist/module/components/Reaction.js +2 -1
  62. package/dist/module/components/Reaction.js.map +1 -1
  63. package/dist/module/components/SharingTools.js +2 -1
  64. package/dist/module/components/SharingTools.js.map +1 -1
  65. package/dist/module/components/{TextStyle.js → Text.js} +18 -6
  66. package/dist/module/components/Text.js.map +1 -0
  67. package/dist/module/components/TickIcon.js +1 -1
  68. package/dist/module/components/TickIcon.js.map +1 -1
  69. package/dist/module/components/Toggle.js +2 -1
  70. package/dist/module/components/Toggle.js.map +1 -1
  71. package/dist/module/components/TouchableSearchBar.js +3 -2
  72. package/dist/module/components/TouchableSearchBar.js.map +1 -1
  73. package/dist/module/components/UserListing.js +2 -1
  74. package/dist/module/components/UserListing.js.map +1 -1
  75. package/dist/module/components/VideoPopup.js +1 -1
  76. package/dist/module/components/VideoPopup.js.map +1 -1
  77. package/dist/module/components/WarningPopup.js +3 -2
  78. package/dist/module/components/WarningPopup.js.map +1 -1
  79. package/dist/module/components/index.js +1 -2
  80. package/dist/module/components/index.js.map +1 -1
  81. package/dist/module/helper.js +2 -1
  82. package/dist/module/helper.js.map +1 -1
  83. package/package.json +1 -1
  84. package/src/components/AddButton.js +1 -1
  85. package/src/components/Attachment.js +2 -1
  86. package/src/components/BackButton.js +1 -1
  87. package/src/components/CalendarPopup.js +1 -1
  88. package/src/components/CategoryTabs.js +2 -1
  89. package/src/components/CommentReply.js +1 -0
  90. package/src/components/CommentSection.js +2 -1
  91. package/src/components/ConfirmPopup.js +2 -1
  92. package/src/components/ConfirmationPopup.js +2 -2
  93. package/src/components/DropDownItem.js +2 -1
  94. package/src/components/EmptyStateMain.js +2 -1
  95. package/src/components/EmptyStateWidget.js +2 -1
  96. package/src/components/FontScaleButton.js +2 -1
  97. package/src/components/FontScalePopup.js +2 -1
  98. package/src/components/Forbidden.js +5 -5
  99. package/src/components/FormCardSection.js +96 -47
  100. package/src/components/FormCardSectionOptionLauncher.js +2 -1
  101. package/src/components/FormattedText.js +2 -1
  102. package/src/components/GenericInput.js +4 -2
  103. package/src/components/GenericInputSection.js +2 -1
  104. package/src/components/Header.js +1 -1
  105. package/src/components/ImagePopup.js +1 -1
  106. package/src/components/ImageUploadProgress.js +2 -1
  107. package/src/components/InlineButton.js +2 -1
  108. package/src/components/Input.js +3 -1
  109. package/src/components/PDFPopup.js +3 -2
  110. package/src/components/PlussChat.js +4 -4
  111. package/src/components/PlussChatMessage.js +6 -12
  112. package/src/components/PlussChatTime.js +2 -1
  113. package/src/components/Popup.js +2 -1
  114. package/src/components/Reaction.js +2 -1
  115. package/src/components/SharingTools.js +2 -1
  116. package/src/components/{TextStyle.js → Text.js} +19 -5
  117. package/src/components/TickIcon.js +1 -1
  118. package/src/components/Toggle.js +2 -1
  119. package/src/components/TouchableSearchBar.js +3 -2
  120. package/src/components/UserListing.js +2 -1
  121. package/src/components/VideoPopup.js +1 -1
  122. package/src/components/WarningPopup.js +3 -2
  123. package/src/components/index.js +1 -2
  124. package/src/helper.js +2 -1
  125. package/dist/module/assets/icons/fontawesome/fa-brands-400.ttf +0 -0
  126. package/dist/module/assets/icons/fontawesome/fa-light-300.ttf +0 -0
  127. package/dist/module/assets/icons/fontawesome/fa-regular-400.ttf +0 -0
  128. package/dist/module/assets/icons/fontawesome/fa-solid-900.ttf +0 -0
  129. package/dist/module/assets/icons/fontawesome/fa-thin-100.ttf +0 -0
  130. package/dist/module/assets/icons/fontawesome/fa7-glyphmap.json +0 -4205
  131. package/dist/module/components/Icon.js +0 -109
  132. package/dist/module/components/Icon.js.map +0 -1
  133. package/dist/module/components/TextStyle.js.map +0 -1
  134. package/src/assets/icons/fontawesome/fa-brands-400.ttf +0 -0
  135. package/src/assets/icons/fontawesome/fa-light-300.ttf +0 -0
  136. package/src/assets/icons/fontawesome/fa-regular-400.ttf +0 -0
  137. package/src/assets/icons/fontawesome/fa-solid-900.ttf +0 -0
  138. package/src/assets/icons/fontawesome/fa-thin-100.ttf +0 -0
  139. package/src/assets/icons/fontawesome/fa7-glyphmap.json +0 -4205
  140. package/src/components/Icon.js +0 -99
@@ -1 +1 @@
1
- {"version":3,"names":["_","React","Platform","StatusBar","Dimensions","Text","Constants","Config","LINEGREY","getSessionTokenAWS","detectFaces","findLandmarkRange","getScaledOffset","getSiteLevelFromState","isTVEnabled","TIMESTAMP_FORMAT","DATE_FORMAT","getUrl","baseAction","action","query","baseAPIUrl","baseStage","env","queryPart","keys","forEach","key","index","encodeURIComponent","getAuthTokenHeader","Promise","resolve","reject","then","idToken","getShadowStyle","OS","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","backgroundColor","borderColor","elevation","StatusBarHeight","size","getStatusBarHeight","statusBarHeight","currentHeight","getSiteSettingFromState","state","defaultValue","user","siteSettings","isUndefined","getValueOrDefault","value","def","getExtension","url","fileSplit","split","length","toLowerCase","getFileName","noExtension","name","isVideo","extension","includes","isVideoUrl","urlToCheck","getValidUrl","isYoutube","isVimeo","isStockImage","indexOf","getThumb300","replace","baseUploadsUrl","urlToUse","substring","get1400","get300","getMimeType","getCompressed","imageExists","fetch","method","cache","response","status","catch","formatTime","hours","minutes","period","adjustedHours","adjustedMinutes","String","padStart","minutesToString","isTimeOfDay","Math","floor","remainingMinutes","hoursString","minutesString","getPluralS","count","getPluralOptions","singular","plural","isEmail","email","isEmpty","atpos","dotpos","lastIndexOf","randomString","c","r","random","v","toString","generateImageName","source","result","last","getSite","site","preferredSite","getTakeoverThumb","uri","filename","pop","getTakeoverImage","getImageSource","isThumb","getFirstName","usersToSearchResult","contacts","excludedUserIds","push","displayName","id","objectID","ID","userId","Id","profilePic","photoURL","unit","contact","searchUsers","term","filter","some","part","getTabSettingsFromState","tabSettings","interface","getEnabledTabsFromState","tab","isEnabled","getReactions","icon","require","hasReacted","reactions","isTablet","get","getVimeoEmbed","vimeoId","regExp","match","getYoutubeEmbed","newUrl","decodeURIComponent","trim","test","getUserPreview","uid","allowComments","canComment","defaultAllowComments","toParagraphed","text","style","textSplit","map","t","i","createElement"],"sources":["helper.js"],"sourcesContent":["import _ from \"lodash\";\nimport React from \"react\";\nimport { Platform, StatusBar, Dimensions, Text } from \"react-native\";\nimport Constants from \"expo-constants\";\nimport Config from \"./config\";\nimport { LINEGREY } from \"./colours\";\nimport { getSessionTokenAWS } from \"./session\";\n\n// seperated files to export\nimport detectFaces from \"./js/images/detectFaces\";\nimport findLandmarkRange from \"./js/images/findLandmarkRange\";\nimport getScaledOffset from \"./js/images/getScaledOffset\";\n\nimport getSiteLevelFromState from \"./js/site/getSiteLevelFromState\";\nimport isTVEnabled from \"./js/site/isTVEnabled\";\n\nconst TIMESTAMP_FORMAT = \"D MMM • h:mma\";\nconst DATE_FORMAT = \"D MMM YYYY\";\n\nconst getUrl = (baseAction, action, query) => {\n\tconst { baseAPIUrl, baseStage } = Config.env;\n\tlet queryPart = \"\";\n\tif (query) {\n\t\t_.keys(query).forEach((key, index) => {\n\t\t\tqueryPart += `${index === 0 ? \"?\" : \"&\"}${key}=${encodeURIComponent(query[key])}`;\n\t\t});\n\t}\n\treturn `${baseAPIUrl}/${baseAction}-${baseStage}/${action}${queryPart}`;\n};\n\nconst getAuthTokenHeader = () => {\n\treturn new Promise((resolve, reject) => {\n\t\tgetSessionTokenAWS().then((idToken) => {\n\t\t\tresolve(`Bearer ${idToken}`);\n\t\t});\n\t});\n};\n\nconst getShadowStyle = () => {\n\tif (Platform.OS === \"ios\") {\n\t\treturn {\n\t\t\tshadowColor: \"#000\",\n\t\t\tshadowOffset: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 1,\n\t\t\t},\n\t\t\tshadowOpacity: 0.1,\n\t\t\tshadowRadius: 3,\n\t\t\tbackgroundColor: \"#fff\",\n\t\t};\n\t}\n\treturn {\n\t\tborderColor: LINEGREY,\n\t\tbackgroundColor: \"#fff\",\n\t\televation: 8,\n\t};\n};\n\nconst StatusBarHeight = (size) => {\n\treturn getStatusBarHeight() + size;\n};\n\nconst getStatusBarHeight = () => {\n\treturn Platform.OS === \"ios\"\n\t\t? Constants.statusBarHeight\n\t\t: StatusBar.currentHeight;\n};\n\nconst getSiteSettingFromState = (state, key, defaultValue) => {\n\tif (\n\t\tstate &&\n\t\tstate.user &&\n\t\tstate.user.siteSettings &&\n\t\t!_.isUndefined(state.user.siteSettings[key])\n\t) {\n\t\treturn state.user.siteSettings[key];\n\t}\n\treturn defaultValue || null;\n};\n\nconst getValueOrDefault = (value, def) => {\n\treturn !_.isUndefined(value) ? value : def;\n};\n\nconst getExtension = (url) => {\n\tif (!url) {\n\t\treturn null;\n\t}\n\tconst fileSplit = url.split(\".\");\n\treturn fileSplit[fileSplit.length - 1].toLowerCase();\n};\n\nconst getFileName = (url, noExtension) => {\n\tif (!url) {\n\t\treturn null;\n\t}\n\tconst fileSplit = url.split(\"/\");\n\tconst name = fileSplit[fileSplit.length - 1].toLowerCase();\n\tif (!noExtension) {\n\t\treturn name;\n\t}\n\treturn name.split(\".\")[0];\n};\n\nconst isVideo = (url) => {\n\tconst extension = getExtension(url);\n\treturn [\"mov\", \"mp4\"].includes(extension);\n};\n\nconst isVideoUrl = (url) => {\n\tconst urlToCheck = getValidUrl(url);\n\tif (isVideo(urlToCheck)) {\n\t\treturn true;\n\t}\n\tif (isYoutube(urlToCheck)) {\n\t\treturn true;\n\t}\n\tif (isVimeo(urlToCheck)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nconst isStockImage = (url) => {\n\treturn (\n\t\turl.indexOf(\n\t\t\t\"https://pluss60-dev-uploads.s3.ap-southeast-2.amazonaws.com/uploads/library\",\n\t\t) !== -1\n\t);\n};\n\nconst getThumb300 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (isVideo(url)) {\n\t\treturn \"https://pluss60-demo-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:97769b56-25ec-41c0-a73c-6c2c4140f629/public/9d0bbec64614b1ed654a03f7e7/movie.jpg\";\n\t}\n\tif (url.indexOf(\"https://plussprdstorage.blob.core.windows.net/\") !== -1) {\n\t\treturn url.replace(\n\t\t\t\"https://plussprdstorage.blob.core.windows.net/\",\n\t\t\t\"https://plusscdn.azureedge.net/\",\n\t\t);\n\t}\n\tif (url.indexOf(\"https://plusscdn.azureedge.net/\") !== -1) {\n\t\treturn url\n\t\t\t.replace(\"/uploads/\", \"/uploads-thumb/\")\n\t\t\t.replace(\"/general/\", \"/general300/\")\n\t\t\t.replace(\"/uploads1400/\", \"/uploads-thumb/\")\n\t\t\t.replace(\"/general1400/\", \"/general300/\");\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse\n\t\t\t.replace(\"/1400/\", \"/thumb300/\")\n\t\t\t.replace(\"/uploads/\", \"/thumb300/\");\n\t}\n\treturn url;\n};\n\nconst get1400 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (url.indexOf(\"https://plussprdstorage.blob.core.windows.net/\") !== -1) {\n\t\treturn url.replace(\n\t\t\t\"https://plussprdstorage.blob.core.windows.net/\",\n\t\t\t\"https://plusscdn.azureedge.net/\",\n\t\t);\n\t}\n\tif (url.indexOf(\"https://plusscdn.azureedge.net/\") !== -1) {\n\t\treturn url\n\t\t\t.replace(\"/uploads/\", \"/uploads1400/\")\n\t\t\t.replace(\"/general/\", \"/general1400/\");\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse.replace(\"/uploads/\", \"/1400/\");\n\t}\n\treturn url;\n};\n\nconst get300 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse.replace(\"/uploads/\", \"/300/\").replace(\"/1400/\", \"/300/\");\n\t}\n\treturn url;\n};\n\nconst getMimeType = (url) => {\n\tconst extension = getExtension(url);\n\tswitch (extension) {\n\t\tcase \"mov\":\n\t\t\treturn \"video/quicktime\";\n\t\tcase \"mp4\":\n\t\t\treturn \"video/mp4\";\n\t\tdefault:\n\t\t\treturn \"image/jpeg\";\n\t}\n};\n\nconst getCompressed = (url) => {\n\tif (!url || typeof url !== \"string\") return \"\";\n\treturn url.replace(\"/uploads/\", \"/compressed/\");\n};\n\nconst imageExists = (url) => {\n\treturn new Promise((resolve) => {\n\t\tfetch(url, { method: \"HEAD\", cache: \"no-cache\" })\n\t\t\t.then((response) => {\n\t\t\t\tresolve(response.status === 200);\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tresolve(false);\n\t\t\t});\n\t});\n};\n\nconst formatTime = (hours, minutes) => {\n\tconst period = hours >= 12 ? \"pm\" : \"am\";\n\n\t// Convert 24-hour format to 12-hour format\n\tconst adjustedHours = hours > 12 ? hours - 12 : hours === 0 ? 12 : hours;\n\n\t// Ensure minutes are two digits\n\tconst adjustedMinutes = String(minutes).padStart(2, \"0\");\n\n\treturn `${adjustedHours}:${adjustedMinutes}${period}`;\n};\n\nconst minutesToString = (minutes, isTimeOfDay) => {\n\tconst hours = Math.floor(minutes / 60);\n\tconst remainingMinutes = minutes % 60;\n\n\tif (isTimeOfDay) {\n\t\treturn formatTime(hours, remainingMinutes);\n\t}\n\n\tconst hoursString = hours > 1 ? `${hours} hours` : `${hours} hour`;\n\tconst minutesString =\n\t\tremainingMinutes > 1\n\t\t\t? `${remainingMinutes} minutes`\n\t\t\t: `${remainingMinutes} minute`;\n\n\tif (hours && remainingMinutes) {\n\t\treturn `${hoursString} ${minutesString}`;\n\t}\n\tif (hours) {\n\t\treturn hoursString;\n\t}\n\tif (remainingMinutes) {\n\t\treturn minutesString;\n\t}\n\treturn \"0 minutes\";\n};\n\nconst getPluralS = (count) => {\n\treturn count === 1 ? \"\" : \"s\";\n};\n\nconst getPluralOptions = (count, singular, plural) => {\n\tif (count === 1) {\n\t\treturn singular;\n\t}\n\treturn plural;\n};\n\nconst isEmail = (email) => {\n\tif (_.isEmpty(email)) {\n\t\treturn false;\n\t}\n\tconst atpos = email.indexOf(\"@\");\n\tconst dotpos = email.lastIndexOf(\".\");\n\tif (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nconst randomString = (name = \"\") => {\n\treturn `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, (c) => {\n\t\t// eslint-disable-next-line\n\t\tvar r = (Math.random() * 16) | 0,\n\t\t\tv = c === \"x\" ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n};\n\nconst generateImageName = (name, source) => {\n\tlet result = randomString(name);\n\tif (source) {\n\t\tresult += `.${_.last(source.split(\".\"))}`;\n\t}\n\treturn result;\n};\n\nconst getSite = (site) => {\n\treturn site === \"plussSpace\" || site === \"hq\"\n\t\t? Config.env.preferredSite\n\t\t: site;\n};\n\nconst getTakeoverThumb = (uri) => {\n\tconst filename = uri.split(\"/\").pop();\n\tswitch (filename) {\n\t\tdefault:\n\t\t\treturn { uri };\n\t}\n};\n\nconst getTakeoverImage = (uri) => {\n\tconst filename = uri.split(\"/\").pop();\n\tswitch (filename) {\n\t\tdefault:\n\t\t\treturn { uri };\n\t}\n};\n\nconst getImageSource = (uri, isThumb) => {\n\tif (uri == null) return null;\n\tif (isThumb) return getTakeoverThumb(uri);\n\treturn getTakeoverImage(uri);\n};\n\nconst getFirstName = (name) => {\n\tif (_.isEmpty(name)) {\n\t\treturn name;\n\t}\n\treturn name.split(\" \")[0];\n};\n\nconst usersToSearchResult = (contacts, excludedUserIds) => {\n\tlet result = [];\n\tcontacts.forEach((user) => {\n\t\tresult.push({\n\t\t\tdisplayName: user.displayName,\n\t\t\tid: user.objectID || user.id || user.ID || user.userId || user.Id,\n\t\t\tprofilePic: user.profilePic || user.photoURL || null,\n\t\t\tunit: user.unit,\n\t\t});\n\t});\n\tresult = _.reject(result, (contact) => {\n\t\treturn _.includes(excludedUserIds, contact.id);\n\t});\n\treturn result;\n};\n\nconst searchUsers = (source, term) => {\n\tif (_.isEmpty(term)) {\n\t\treturn source;\n\t}\n\treturn _.filter(source, (user) => {\n\t\tconst split = user.displayName.split(\" \");\n\t\treturn _.some(split, (part) => {\n\t\t\treturn part.toLowerCase().indexOf(term.toLowerCase()) === 0;\n\t\t});\n\t});\n};\n\nconst getTabSettingsFromState = (state) => {\n\tconst tabSettings =\n\t\t(state.user && state.user.interface) ||\n\t\tgetSiteSettingFromState(state, \"TabSettings\", null);\n\treturn tabSettings;\n};\n\nconst getEnabledTabsFromState = (state) => {\n\tconst tabSettings = getTabSettingsFromState(state);\n\treturn tabSettings ? tabSettings.filter((tab) => tab.isEnabled) : [];\n};\n\nconst getReactions = () => {\n\treturn [\n\t\t{\n\t\t\tkey: \"heart\",\n\t\t\ticon: require(\"./assets/icons/reactions/heart.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"smile\",\n\t\t\ticon: require(\"./assets/icons/reactions/smile.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"sad\",\n\t\t\ticon: require(\"./assets/icons/reactions/sad.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"party\",\n\t\t\ticon: require(\"./assets/icons/reactions/party.png\"),\n\t\t},\n\t];\n};\n\nconst hasReacted = (reactions, userId) => {\n\treturn _.some(reactions, (r) => {\n\t\treturn !!r[userId];\n\t});\n};\n\nconst isTablet = () => {\n\treturn Dimensions.get(\"screen\").width > 600;\n};\n\nconst isVimeo = (url) => {\n\tif (_.isEmpty(url)) {\n\t\treturn false;\n\t}\n\tif (url.indexOf(\"https://vimeo.com/\") === 0) {\n\t\treturn true;\n\t}\n\tif (url.indexOf(\"https://player.vimeo.com/video/\") === 0) {\n\t\treturn true;\n\t}\n};\n\nconst getVimeoEmbed = (url) => {\n\tif (_.isEmpty(url)) {\n\t\treturn \"\";\n\t}\n\tif (url.indexOf(\"https://vimeo.com/\") === 0) {\n\t\tconst vimeoId = \"lol\"; //TODO\n\t\treturn `https://player.vimeo.com/video/${vimeoId}`;\n\t}\n\treturn url; //TODO\n};\n\nconst isYoutube = (url) => {\n\tif (_.isUndefined(url) || _.isEmpty(url)) {\n\t\treturn false;\n\t}\n\tconst regExp =\n\t\t/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n\tconst match = url.match(regExp);\n\tif (match && match[2].length === 11) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nconst getYoutubeEmbed = (url) => {\n\tconst regExp =\n\t\t/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n\tconst match = url.match(regExp);\n\treturn `https://www.youtube.com/embed/${match[2]}?autoplay=0`;\n};\n\nconst getValidUrl = (url = \"\") => {\n\tlet newUrl = decodeURIComponent(url);\n\tnewUrl = newUrl.trim().replace(/\\s/g, \"\");\n\n\tif (/^(:\\/\\/)/.test(newUrl)) {\n\t\treturn `https${newUrl}`;\n\t}\n\tif (!/^(f|ht)tps?:\\/\\//i.test(newUrl)) {\n\t\treturn `https://${newUrl}`;\n\t}\n\n\treturn newUrl;\n};\n\nconst getUserPreview = (user) => {\n\treturn {\n\t\tid: user.uid,\n\t\tdisplayName: user.displayName,\n\t\tprofilePic: user.profilePic || null,\n\t};\n};\n\nconst allowComments = (canComment) => {\n\tif (canComment === false) {\n\t\treturn false;\n\t}\n\tif (canComment === true) {\n\t\treturn true;\n\t}\n\treturn Config.env.defaultAllowComments;\n};\n\nconst toParagraphed = (text, style) => {\n\tif (!text) {\n\t\treturn text;\n\t}\n\tconst textSplit = text.split(\"\\n\");\n\treturn _.map(textSplit, (t, i) => {\n\t\treturn (\n\t\t\t<Text key={`paragraph_${i}`} style={style}>\n\t\t\t\t{t}\n\t\t\t</Text>\n\t\t);\n\t});\n};\n\nexport {\n\tTIMESTAMP_FORMAT,\n\tDATE_FORMAT,\n\tgetUrl,\n\tgetAuthTokenHeader,\n\tgetShadowStyle,\n\tStatusBarHeight,\n\tgetStatusBarHeight,\n\tgetSiteSettingFromState,\n\tgetValueOrDefault,\n\tgetExtension,\n\tgetFileName,\n\tisVideo,\n\tget300,\n\tgetThumb300,\n\tget1400,\n\tgetMimeType,\n\tgetCompressed,\n\timageExists,\n\tgetPluralS,\n\tgetPluralOptions,\n\tisEmail,\n\tformatTime,\n\tminutesToString,\n\trandomString,\n\tgenerateImageName,\n\tgetSite,\n\tgetImageSource,\n\tgetFirstName,\n\tusersToSearchResult,\n\tsearchUsers,\n\tgetEnabledTabsFromState,\n\tgetReactions,\n\thasReacted,\n\tisTablet,\n\tisYoutube,\n\tgetYoutubeEmbed,\n\tgetValidUrl,\n\tgetUserPreview,\n\tallowComments,\n\ttoParagraphed,\n\tisVideoUrl,\n\tdetectFaces,\n\tfindLandmarkRange,\n\tgetScaledOffset,\n\tgetSiteLevelFromState,\n\tisTVEnabled,\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_","React","Platform","StatusBar","Dimensions","Text","Constants","Config","LINEGREY","getSessionTokenAWS","detectFaces","findLandmarkRange","getScaledOffset","getSiteLevelFromState","isTVEnabled","TIMESTAMP_FORMAT","DATE_FORMAT","getUrl","baseAction","action","query","baseAPIUrl","baseStage","env","queryPart","keys","forEach","key","index","encodeURIComponent","getAuthTokenHeader","Promise","resolve","reject","then","idToken","getShadowStyle","OS","shadowColor","shadowOffset","width","height","shadowOpacity","shadowRadius","backgroundColor","borderColor","elevation","StatusBarHeight","size","getStatusBarHeight","statusBarHeight","currentHeight","getSiteSettingFromState","state","defaultValue","user","siteSettings","isUndefined","getValueOrDefault","value","def","getExtension","url","fileSplit","split","length","toLowerCase","getFileName","noExtension","name","isVideo","extension","includes","isVideoUrl","urlToCheck","getValidUrl","isYoutube","isVimeo","isStockImage","indexOf","getThumb300","replace","baseUploadsUrl","urlToUse","substring","get1400","get300","getMimeType","getCompressed","imageExists","fetch","method","cache","response","status","catch","formatTime","hours","minutes","period","adjustedHours","adjustedMinutes","String","padStart","minutesToString","isTimeOfDay","Math","floor","remainingMinutes","hoursString","minutesString","getPluralS","count","getPluralOptions","singular","plural","isEmail","email","isEmpty","atpos","dotpos","lastIndexOf","randomString","c","r","random","v","toString","generateImageName","source","result","last","getSite","site","preferredSite","getTakeoverThumb","uri","filename","pop","getTakeoverImage","getImageSource","isThumb","getFirstName","usersToSearchResult","contacts","excludedUserIds","push","displayName","id","objectID","ID","userId","Id","profilePic","photoURL","unit","contact","searchUsers","term","filter","some","part","getTabSettingsFromState","tabSettings","interface","getEnabledTabsFromState","tab","isEnabled","getReactions","icon","require","hasReacted","reactions","isTablet","get","getVimeoEmbed","vimeoId","regExp","match","getYoutubeEmbed","newUrl","decodeURIComponent","trim","test","getUserPreview","uid","allowComments","canComment","defaultAllowComments","toParagraphed","text","style","textSplit","map","t","i","createElement"],"sources":["helper.js"],"sourcesContent":["import _ from \"lodash\";\nimport React from \"react\";\nimport { Platform, StatusBar, Dimensions } from \"react-native\";\nimport { Text } from \"./components/Text\";\nimport Constants from \"expo-constants\";\nimport Config from \"./config\";\nimport { LINEGREY } from \"./colours\";\nimport { getSessionTokenAWS } from \"./session\";\n\n// seperated files to export\nimport detectFaces from \"./js/images/detectFaces\";\nimport findLandmarkRange from \"./js/images/findLandmarkRange\";\nimport getScaledOffset from \"./js/images/getScaledOffset\";\n\nimport getSiteLevelFromState from \"./js/site/getSiteLevelFromState\";\nimport isTVEnabled from \"./js/site/isTVEnabled\";\n\nconst TIMESTAMP_FORMAT = \"D MMM • h:mma\";\nconst DATE_FORMAT = \"D MMM YYYY\";\n\nconst getUrl = (baseAction, action, query) => {\n\tconst { baseAPIUrl, baseStage } = Config.env;\n\tlet queryPart = \"\";\n\tif (query) {\n\t\t_.keys(query).forEach((key, index) => {\n\t\t\tqueryPart += `${index === 0 ? \"?\" : \"&\"}${key}=${encodeURIComponent(query[key])}`;\n\t\t});\n\t}\n\treturn `${baseAPIUrl}/${baseAction}-${baseStage}/${action}${queryPart}`;\n};\n\nconst getAuthTokenHeader = () => {\n\treturn new Promise((resolve, reject) => {\n\t\tgetSessionTokenAWS().then((idToken) => {\n\t\t\tresolve(`Bearer ${idToken}`);\n\t\t});\n\t});\n};\n\nconst getShadowStyle = () => {\n\tif (Platform.OS === \"ios\") {\n\t\treturn {\n\t\t\tshadowColor: \"#000\",\n\t\t\tshadowOffset: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 1,\n\t\t\t},\n\t\t\tshadowOpacity: 0.1,\n\t\t\tshadowRadius: 3,\n\t\t\tbackgroundColor: \"#fff\",\n\t\t};\n\t}\n\treturn {\n\t\tborderColor: LINEGREY,\n\t\tbackgroundColor: \"#fff\",\n\t\televation: 8,\n\t};\n};\n\nconst StatusBarHeight = (size) => {\n\treturn getStatusBarHeight() + size;\n};\n\nconst getStatusBarHeight = () => {\n\treturn Platform.OS === \"ios\"\n\t\t? Constants.statusBarHeight\n\t\t: StatusBar.currentHeight;\n};\n\nconst getSiteSettingFromState = (state, key, defaultValue) => {\n\tif (\n\t\tstate &&\n\t\tstate.user &&\n\t\tstate.user.siteSettings &&\n\t\t!_.isUndefined(state.user.siteSettings[key])\n\t) {\n\t\treturn state.user.siteSettings[key];\n\t}\n\treturn defaultValue || null;\n};\n\nconst getValueOrDefault = (value, def) => {\n\treturn !_.isUndefined(value) ? value : def;\n};\n\nconst getExtension = (url) => {\n\tif (!url) {\n\t\treturn null;\n\t}\n\tconst fileSplit = url.split(\".\");\n\treturn fileSplit[fileSplit.length - 1].toLowerCase();\n};\n\nconst getFileName = (url, noExtension) => {\n\tif (!url) {\n\t\treturn null;\n\t}\n\tconst fileSplit = url.split(\"/\");\n\tconst name = fileSplit[fileSplit.length - 1].toLowerCase();\n\tif (!noExtension) {\n\t\treturn name;\n\t}\n\treturn name.split(\".\")[0];\n};\n\nconst isVideo = (url) => {\n\tconst extension = getExtension(url);\n\treturn [\"mov\", \"mp4\"].includes(extension);\n};\n\nconst isVideoUrl = (url) => {\n\tconst urlToCheck = getValidUrl(url);\n\tif (isVideo(urlToCheck)) {\n\t\treturn true;\n\t}\n\tif (isYoutube(urlToCheck)) {\n\t\treturn true;\n\t}\n\tif (isVimeo(urlToCheck)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nconst isStockImage = (url) => {\n\treturn (\n\t\turl.indexOf(\n\t\t\t\"https://pluss60-dev-uploads.s3.ap-southeast-2.amazonaws.com/uploads/library\",\n\t\t) !== -1\n\t);\n};\n\nconst getThumb300 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (isVideo(url)) {\n\t\treturn \"https://pluss60-demo-uploads.s3.ap-southeast-2.amazonaws.com/uploads/users/ap-southeast-2:97769b56-25ec-41c0-a73c-6c2c4140f629/public/9d0bbec64614b1ed654a03f7e7/movie.jpg\";\n\t}\n\tif (url.indexOf(\"https://plussprdstorage.blob.core.windows.net/\") !== -1) {\n\t\treturn url.replace(\n\t\t\t\"https://plussprdstorage.blob.core.windows.net/\",\n\t\t\t\"https://plusscdn.azureedge.net/\",\n\t\t);\n\t}\n\tif (url.indexOf(\"https://plusscdn.azureedge.net/\") !== -1) {\n\t\treturn url\n\t\t\t.replace(\"/uploads/\", \"/uploads-thumb/\")\n\t\t\t.replace(\"/general/\", \"/general300/\")\n\t\t\t.replace(\"/uploads1400/\", \"/uploads-thumb/\")\n\t\t\t.replace(\"/general1400/\", \"/general300/\");\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse\n\t\t\t.replace(\"/1400/\", \"/thumb300/\")\n\t\t\t.replace(\"/uploads/\", \"/thumb300/\");\n\t}\n\treturn url;\n};\n\nconst get1400 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (url.indexOf(\"https://plussprdstorage.blob.core.windows.net/\") !== -1) {\n\t\treturn url.replace(\n\t\t\t\"https://plussprdstorage.blob.core.windows.net/\",\n\t\t\t\"https://plusscdn.azureedge.net/\",\n\t\t);\n\t}\n\tif (url.indexOf(\"https://plusscdn.azureedge.net/\") !== -1) {\n\t\treturn url\n\t\t\t.replace(\"/uploads/\", \"/uploads1400/\")\n\t\t\t.replace(\"/general/\", \"/general1400/\");\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse.replace(\"/uploads/\", \"/1400/\");\n\t}\n\treturn url;\n};\n\nconst get300 = (url) => {\n\tif (!url) {\n\t\treturn url;\n\t}\n\tif (isStockImage(url) || url.indexOf(Config.env.baseUploadsUrl) !== -1) {\n\t\tconst extension = getExtension(url);\n\t\tlet urlToUse = url;\n\t\tif (extension !== \"jpg\") {\n\t\t\turlToUse = `${url.substring(0, url.length - extension.length)}jpg`;\n\t\t}\n\t\treturn urlToUse.replace(\"/uploads/\", \"/300/\").replace(\"/1400/\", \"/300/\");\n\t}\n\treturn url;\n};\n\nconst getMimeType = (url) => {\n\tconst extension = getExtension(url);\n\tswitch (extension) {\n\t\tcase \"mov\":\n\t\t\treturn \"video/quicktime\";\n\t\tcase \"mp4\":\n\t\t\treturn \"video/mp4\";\n\t\tdefault:\n\t\t\treturn \"image/jpeg\";\n\t}\n};\n\nconst getCompressed = (url) => {\n\tif (!url || typeof url !== \"string\") return \"\";\n\treturn url.replace(\"/uploads/\", \"/compressed/\");\n};\n\nconst imageExists = (url) => {\n\treturn new Promise((resolve) => {\n\t\tfetch(url, { method: \"HEAD\", cache: \"no-cache\" })\n\t\t\t.then((response) => {\n\t\t\t\tresolve(response.status === 200);\n\t\t\t})\n\t\t\t.catch(() => {\n\t\t\t\tresolve(false);\n\t\t\t});\n\t});\n};\n\nconst formatTime = (hours, minutes) => {\n\tconst period = hours >= 12 ? \"pm\" : \"am\";\n\n\t// Convert 24-hour format to 12-hour format\n\tconst adjustedHours = hours > 12 ? hours - 12 : hours === 0 ? 12 : hours;\n\n\t// Ensure minutes are two digits\n\tconst adjustedMinutes = String(minutes).padStart(2, \"0\");\n\n\treturn `${adjustedHours}:${adjustedMinutes}${period}`;\n};\n\nconst minutesToString = (minutes, isTimeOfDay) => {\n\tconst hours = Math.floor(minutes / 60);\n\tconst remainingMinutes = minutes % 60;\n\n\tif (isTimeOfDay) {\n\t\treturn formatTime(hours, remainingMinutes);\n\t}\n\n\tconst hoursString = hours > 1 ? `${hours} hours` : `${hours} hour`;\n\tconst minutesString =\n\t\tremainingMinutes > 1\n\t\t\t? `${remainingMinutes} minutes`\n\t\t\t: `${remainingMinutes} minute`;\n\n\tif (hours && remainingMinutes) {\n\t\treturn `${hoursString} ${minutesString}`;\n\t}\n\tif (hours) {\n\t\treturn hoursString;\n\t}\n\tif (remainingMinutes) {\n\t\treturn minutesString;\n\t}\n\treturn \"0 minutes\";\n};\n\nconst getPluralS = (count) => {\n\treturn count === 1 ? \"\" : \"s\";\n};\n\nconst getPluralOptions = (count, singular, plural) => {\n\tif (count === 1) {\n\t\treturn singular;\n\t}\n\treturn plural;\n};\n\nconst isEmail = (email) => {\n\tif (_.isEmpty(email)) {\n\t\treturn false;\n\t}\n\tconst atpos = email.indexOf(\"@\");\n\tconst dotpos = email.lastIndexOf(\".\");\n\tif (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= email.length) {\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nconst randomString = (name = \"\") => {\n\treturn `xxxxxxxx4xxxyxxxxxxxxxxxxx${name}`.replace(/[xy]/g, (c) => {\n\t\t// eslint-disable-next-line\n\t\tvar r = (Math.random() * 16) | 0,\n\t\t\tv = c === \"x\" ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n};\n\nconst generateImageName = (name, source) => {\n\tlet result = randomString(name);\n\tif (source) {\n\t\tresult += `.${_.last(source.split(\".\"))}`;\n\t}\n\treturn result;\n};\n\nconst getSite = (site) => {\n\treturn site === \"plussSpace\" || site === \"hq\"\n\t\t? Config.env.preferredSite\n\t\t: site;\n};\n\nconst getTakeoverThumb = (uri) => {\n\tconst filename = uri.split(\"/\").pop();\n\tswitch (filename) {\n\t\tdefault:\n\t\t\treturn { uri };\n\t}\n};\n\nconst getTakeoverImage = (uri) => {\n\tconst filename = uri.split(\"/\").pop();\n\tswitch (filename) {\n\t\tdefault:\n\t\t\treturn { uri };\n\t}\n};\n\nconst getImageSource = (uri, isThumb) => {\n\tif (uri == null) return null;\n\tif (isThumb) return getTakeoverThumb(uri);\n\treturn getTakeoverImage(uri);\n};\n\nconst getFirstName = (name) => {\n\tif (_.isEmpty(name)) {\n\t\treturn name;\n\t}\n\treturn name.split(\" \")[0];\n};\n\nconst usersToSearchResult = (contacts, excludedUserIds) => {\n\tlet result = [];\n\tcontacts.forEach((user) => {\n\t\tresult.push({\n\t\t\tdisplayName: user.displayName,\n\t\t\tid: user.objectID || user.id || user.ID || user.userId || user.Id,\n\t\t\tprofilePic: user.profilePic || user.photoURL || null,\n\t\t\tunit: user.unit,\n\t\t});\n\t});\n\tresult = _.reject(result, (contact) => {\n\t\treturn _.includes(excludedUserIds, contact.id);\n\t});\n\treturn result;\n};\n\nconst searchUsers = (source, term) => {\n\tif (_.isEmpty(term)) {\n\t\treturn source;\n\t}\n\treturn _.filter(source, (user) => {\n\t\tconst split = user.displayName.split(\" \");\n\t\treturn _.some(split, (part) => {\n\t\t\treturn part.toLowerCase().indexOf(term.toLowerCase()) === 0;\n\t\t});\n\t});\n};\n\nconst getTabSettingsFromState = (state) => {\n\tconst tabSettings =\n\t\t(state.user && state.user.interface) ||\n\t\tgetSiteSettingFromState(state, \"TabSettings\", null);\n\treturn tabSettings;\n};\n\nconst getEnabledTabsFromState = (state) => {\n\tconst tabSettings = getTabSettingsFromState(state);\n\treturn tabSettings ? tabSettings.filter((tab) => tab.isEnabled) : [];\n};\n\nconst getReactions = () => {\n\treturn [\n\t\t{\n\t\t\tkey: \"heart\",\n\t\t\ticon: require(\"./assets/icons/reactions/heart.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"smile\",\n\t\t\ticon: require(\"./assets/icons/reactions/smile.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"sad\",\n\t\t\ticon: require(\"./assets/icons/reactions/sad.png\"),\n\t\t},\n\t\t{\n\t\t\tkey: \"party\",\n\t\t\ticon: require(\"./assets/icons/reactions/party.png\"),\n\t\t},\n\t];\n};\n\nconst hasReacted = (reactions, userId) => {\n\treturn _.some(reactions, (r) => {\n\t\treturn !!r[userId];\n\t});\n};\n\nconst isTablet = () => {\n\treturn Dimensions.get(\"screen\").width > 600;\n};\n\nconst isVimeo = (url) => {\n\tif (_.isEmpty(url)) {\n\t\treturn false;\n\t}\n\tif (url.indexOf(\"https://vimeo.com/\") === 0) {\n\t\treturn true;\n\t}\n\tif (url.indexOf(\"https://player.vimeo.com/video/\") === 0) {\n\t\treturn true;\n\t}\n};\n\nconst getVimeoEmbed = (url) => {\n\tif (_.isEmpty(url)) {\n\t\treturn \"\";\n\t}\n\tif (url.indexOf(\"https://vimeo.com/\") === 0) {\n\t\tconst vimeoId = \"lol\"; //TODO\n\t\treturn `https://player.vimeo.com/video/${vimeoId}`;\n\t}\n\treturn url; //TODO\n};\n\nconst isYoutube = (url) => {\n\tif (_.isUndefined(url) || _.isEmpty(url)) {\n\t\treturn false;\n\t}\n\tconst regExp =\n\t\t/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n\tconst match = url.match(regExp);\n\tif (match && match[2].length === 11) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nconst getYoutubeEmbed = (url) => {\n\tconst regExp =\n\t\t/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=|\\?v=)([^#\\&\\?]*).*/;\n\tconst match = url.match(regExp);\n\treturn `https://www.youtube.com/embed/${match[2]}?autoplay=0`;\n};\n\nconst getValidUrl = (url = \"\") => {\n\tlet newUrl = decodeURIComponent(url);\n\tnewUrl = newUrl.trim().replace(/\\s/g, \"\");\n\n\tif (/^(:\\/\\/)/.test(newUrl)) {\n\t\treturn `https${newUrl}`;\n\t}\n\tif (!/^(f|ht)tps?:\\/\\//i.test(newUrl)) {\n\t\treturn `https://${newUrl}`;\n\t}\n\n\treturn newUrl;\n};\n\nconst getUserPreview = (user) => {\n\treturn {\n\t\tid: user.uid,\n\t\tdisplayName: user.displayName,\n\t\tprofilePic: user.profilePic || null,\n\t};\n};\n\nconst allowComments = (canComment) => {\n\tif (canComment === false) {\n\t\treturn false;\n\t}\n\tif (canComment === true) {\n\t\treturn true;\n\t}\n\treturn Config.env.defaultAllowComments;\n};\n\nconst toParagraphed = (text, style) => {\n\tif (!text) {\n\t\treturn text;\n\t}\n\tconst textSplit = text.split(\"\\n\");\n\treturn _.map(textSplit, (t, i) => {\n\t\treturn (\n\t\t\t<Text key={`paragraph_${i}`} style={style}>\n\t\t\t\t{t}\n\t\t\t</Text>\n\t\t);\n\t});\n};\n\nexport {\n\tTIMESTAMP_FORMAT,\n\tDATE_FORMAT,\n\tgetUrl,\n\tgetAuthTokenHeader,\n\tgetShadowStyle,\n\tStatusBarHeight,\n\tgetStatusBarHeight,\n\tgetSiteSettingFromState,\n\tgetValueOrDefault,\n\tgetExtension,\n\tgetFileName,\n\tisVideo,\n\tget300,\n\tgetThumb300,\n\tget1400,\n\tgetMimeType,\n\tgetCompressed,\n\timageExists,\n\tgetPluralS,\n\tgetPluralOptions,\n\tisEmail,\n\tformatTime,\n\tminutesToString,\n\trandomString,\n\tgenerateImageName,\n\tgetSite,\n\tgetImageSource,\n\tgetFirstName,\n\tusersToSearchResult,\n\tsearchUsers,\n\tgetEnabledTabsFromState,\n\tgetReactions,\n\thasReacted,\n\tisTablet,\n\tisYoutube,\n\tgetYoutubeEmbed,\n\tgetValidUrl,\n\tgetUserPreview,\n\tallowComments,\n\ttoParagraphed,\n\tisVideoUrl,\n\tdetectFaces,\n\tfindLandmarkRange,\n\tgetScaledOffset,\n\tgetSiteLevelFromState,\n\tisTVEnabled,\n};\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-core-app",
3
- "version": "8.0.13-beta.4",
3
+ "version": "8.0.14-beta.0",
4
4
  "description": "Core extension package for Pluss Communities platform",
5
5
  "main": "dist/module/index.js",
6
6
  "module": "dist/module/index.js",
@@ -2,7 +2,7 @@ import React, { PureComponent } from "react";
2
2
  import { TouchableOpacity } from "react-native";
3
3
  import { connect } from "react-redux";
4
4
  import Styles from "../styles";
5
- import { FontAwesome } from "./Icon";
5
+ import { FontAwesome } from "@expo/vector-icons";
6
6
  import { getMainBrandingColourFromState } from "../colours";
7
7
 
8
8
  /*
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { TouchableOpacity, View, Text } from "react-native";
2
+ import { TouchableOpacity, View } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import { connect } from "react-redux";
4
5
  import { Icon } from "@rneui/themed";
5
6
  import {
@@ -2,7 +2,7 @@ import React, { PureComponent } from "react";
2
2
  import { View, TouchableOpacity } from "react-native";
3
3
  import { connect } from "react-redux";
4
4
  import stylez from "../styles";
5
- import { FontAwesome } from "./Icon";
5
+ import { FontAwesome } from "@expo/vector-icons";
6
6
  import { getMainBrandingColourFromState } from "../colours";
7
7
 
8
8
  /*
@@ -3,7 +3,7 @@ import React, { Component } from "react";
3
3
  import { Modal, View, TouchableOpacity, StyleSheet } from "react-native";
4
4
  import { Calendar } from "react-native-calendars";
5
5
  import { StatusBarHeight } from "../helper";
6
- import { FontAwesome } from "./Icon";
6
+ import { FontAwesome } from "@expo/vector-icons";
7
7
  import { hexToRGBAstring, COLOUR_RED, TEXT_DARK } from "../colours";
8
8
 
9
9
  class CalendarPopup extends Component {
@@ -1,6 +1,7 @@
1
1
  import React, { Component } from "react";
2
2
  import _ from "lodash";
3
- import { Text, TouchableOpacity, View, ScrollView } from "react-native";
3
+ import { TouchableOpacity, View, ScrollView } from "react-native";
4
+ import { Text } from "./Text";
4
5
  import { connect } from "react-redux";
5
6
  import {
6
7
  TEXT_LIGHT,
@@ -233,6 +233,7 @@ class CommentReply extends Component {
233
233
  ]}
234
234
  >
235
235
  <TextInput
236
+ maxFontSizeMultiplier={1.2}
236
237
  ref={this.replyInputRef}
237
238
  placeholder="Enter your comment here"
238
239
  value={this.state.commentInput}
@@ -1,5 +1,6 @@
1
1
  import React, { Component } from "react";
2
- import { View, Text, TouchableOpacity, Image, StyleSheet } from "react-native";
2
+ import { View, TouchableOpacity, Image, StyleSheet } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import _ from "lodash";
4
5
  import moment from "moment";
5
6
  import { connect } from "react-redux";
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { Text, View } from "react-native";
2
+ import { View } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import _ from "lodash";
4
5
  import { connect } from "react-redux";
5
6
  import { getMainBrandingColourFromState, TEXT_DARK } from "../colours";
@@ -1,7 +1,7 @@
1
1
  import React, { PureComponent } from "react";
2
- import { Text } from "react-native";
2
+ import { Text } from "./Text";
3
3
  import { connect } from "react-redux";
4
- import { FontAwesome } from "./Icon";
4
+ import { FontAwesome } from "@expo/vector-icons";
5
5
  import {
6
6
  COLOUR_GREEN,
7
7
  TEXT_DARK,
@@ -1,6 +1,7 @@
1
1
  import React, { Component } from "react";
2
2
  import _ from "lodash";
3
- import { Text, TouchableOpacity } from "react-native";
3
+ import { TouchableOpacity } from "react-native";
4
+ import { Text } from "./Text";
4
5
  import { Icon } from "@rneui/themed";
5
6
  import { connect } from "react-redux";
6
7
  import { TEXT_DARK, getMainBrandingColourFromState } from "../colours";
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { Text, View, ScrollView, StyleSheet } from "react-native";
2
+ import { View, ScrollView, StyleSheet } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import _ from "lodash";
4
5
  import { TEXT_BLUEGREY } from "../colours";
5
6
 
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { Text, View, ScrollView, StyleSheet } from "react-native";
2
+ import { View, ScrollView, StyleSheet } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import { TEXT_BLUEGREY } from "../colours";
4
5
 
5
6
  class EmptyStateWidget extends PureComponent {
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { TouchableOpacity, Text } from "react-native";
2
+ import { TouchableOpacity } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import { TEXT_DARK } from "../colours";
4
5
 
5
6
  /*
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { TouchableOpacity, Text, View } from "react-native";
2
+ import { TouchableOpacity, View } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import { TEXT_DARK, LINEGREY } from "../colours";
4
5
 
5
6
  /*
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import _ from "lodash";
3
3
  import { View } from "react-native";
4
- import { TextStyle } from "./TextStyle";
4
+ import { Text } from "./Text";
5
5
  import { getMainBrandingColourFromState } from "../colours";
6
6
  import { InlineButton } from "./InlineButton";
7
7
  import { Services } from "../config";
@@ -26,14 +26,14 @@ const Forbidden = ({ colourBrandingMain, title, description }) => {
26
26
  padding: 16,
27
27
  }}
28
28
  >
29
- <TextStyle type="pageHeading" style={{ color: colourBrandingMain }}>
29
+ <Text type="pageHeading" style={{ color: colourBrandingMain }}>
30
30
  {!_.isEmpty(title) ? title : "Oops!"}
31
- </TextStyle>
32
- <TextStyle type="body" style={{ marginTop: 10 }}>
31
+ </Text>
32
+ <Text type="body" style={{ marginTop: 10 }}>
33
33
  {!_.isEmpty(description)
34
34
  ? description
35
35
  : "It seems this item is no longer accessible. It may have been removed or your access might have changed."}
36
- </TextStyle>
36
+ </Text>
37
37
  <View style={{ marginTop: 20 }}>
38
38
  <InlineButton onPress={goBack} color={colourBrandingMain}>
39
39
  Go back
@@ -1,7 +1,14 @@
1
- import React, { Component } from 'react';
2
- import _ from 'lodash';
3
- import { View, Text, TextInput, TouchableOpacity, StyleSheet } from 'react-native';
4
- import { connect } from 'react-redux';
1
+ import React, { Component } from "react";
2
+ import _ from "lodash";
3
+ import {
4
+ View,
5
+ Text,
6
+ TextInput,
7
+ TouchableOpacity,
8
+ StyleSheet,
9
+ } from "react-native";
10
+ import { connect } from "react-redux";
11
+ import { FontAwesome } from "@expo/vector-icons";
5
12
  import {
6
13
  TEXT_LIGHTER,
7
14
  TEXT_DARK,
@@ -11,9 +18,8 @@ import {
11
18
  COLOUR_GRAPEFRUIT,
12
19
  getMainBrandingColourFromState,
13
20
  getDarkBrandingColourFromState,
14
- } from '../colours';
15
- import { getValueOrDefault } from '../helper';
16
- import { FontAwesome } from './Icon';
21
+ } from "../colours";
22
+ import { getValueOrDefault } from "../helper";
17
23
 
18
24
  class FormCardSection extends Component {
19
25
  constructor(props) {
@@ -42,7 +48,10 @@ class FormCardSection extends Component {
42
48
 
43
49
  onGrow(event) {
44
50
  this.setState({
45
- height: Math.max(event.nativeEvent.contentSize.height, this.props.minHeight),
51
+ height: Math.max(
52
+ event.nativeEvent.contentSize.height,
53
+ this.props.minHeight,
54
+ ),
46
55
  });
47
56
  }
48
57
 
@@ -52,7 +61,10 @@ class FormCardSection extends Component {
52
61
  }
53
62
 
54
63
  showSecure() {
55
- if (!_.isUndefined(this.props.secureTextToggle) && this.props.secureTextToggle) {
64
+ if (
65
+ !_.isUndefined(this.props.secureTextToggle) &&
66
+ this.props.secureTextToggle
67
+ ) {
56
68
  return this.state.isSecure;
57
69
  }
58
70
  return this.props.secureTextEntry;
@@ -95,7 +107,9 @@ class FormCardSection extends Component {
95
107
  style={[
96
108
  styles.labelText,
97
109
  this.state.focused && { color: this.props.colourBrandingMain },
98
- !this.isValid() && !_.isEmpty(this.props.textValue) && styles.labelError,
110
+ !this.isValid() &&
111
+ !_.isEmpty(this.props.textValue) &&
112
+ styles.labelError,
99
113
  this.props.labelStyle,
100
114
  ]}
101
115
  >
@@ -108,58 +122,82 @@ class FormCardSection extends Component {
108
122
 
109
123
  renderInput() {
110
124
  return (
111
- <View style={{ flexDirection: 'row' }}>
125
+ <View style={{ flexDirection: "row" }}>
112
126
  <View style={{ flex: 1 }}>
113
127
  <TextInput
128
+ maxFontSizeMultiplier={1.2}
114
129
  value={this.props.textValue}
115
130
  onChangeText={this.props.onChangeText}
116
131
  keyboardType={this.props.keyboardType}
117
132
  /* Main Styling Props */
118
133
  selectionColor={this.props.colourBrandingDark}
119
134
  placeholder={this.props.placeholder}
120
- placeholderTextColor={this.props.placeholderTextColor || TEXT_LIGHTER}
135
+ placeholderTextColor={
136
+ this.props.placeholderTextColor || TEXT_LIGHTER
137
+ }
121
138
  style={[
122
139
  styles.inputStyle,
123
140
  {
124
- textAlignVertical: this.props.autoGrow ? 'top' : 'center',
141
+ textAlignVertical: this.props.autoGrow ? "top" : "center",
125
142
  color: this.props.textColour || TEXT_DARK,
126
143
  minHeight: this.props.minHeight || 20,
127
144
  },
128
145
  this.props.textStyle,
129
146
  ]}
130
- underlineColorAndroid={'rgba(0,0,0,0)'}
147
+ underlineColorAndroid={"rgba(0,0,0,0)"}
131
148
  /* Other Props */
132
- autoFocus={_.isUndefined(this.props.autoFocus) ? false : this.props.autoFocus}
133
- editable={_.isUndefined(this.props.editable) ? true : this.props.editable}
134
- secureTextEntry={_.isUndefined(this.props.secureTextEntry) ? false : this.showSecure()}
135
- autoCorrect={_.isUndefined(this.props.autoCorrect) ? false : this.props.autoCorrect}
136
- multiline={_.isUndefined(this.props.multiline) ? false : this.props.multiline}
137
- autoGrow={_.isUndefined(this.props.autoGrow) ? false : this.props.autoGrow}
138
- autoCapitalize={_.isUndefined(this.props.autoCapitalize) ? 'sentences' : this.props.autoCapitalize}
149
+ autoFocus={
150
+ _.isUndefined(this.props.autoFocus) ? false : this.props.autoFocus
151
+ }
152
+ editable={
153
+ _.isUndefined(this.props.editable) ? true : this.props.editable
154
+ }
155
+ secureTextEntry={
156
+ _.isUndefined(this.props.secureTextEntry)
157
+ ? false
158
+ : this.showSecure()
159
+ }
160
+ autoCorrect={
161
+ _.isUndefined(this.props.autoCorrect)
162
+ ? false
163
+ : this.props.autoCorrect
164
+ }
165
+ multiline={
166
+ _.isUndefined(this.props.multiline) ? false : this.props.multiline
167
+ }
168
+ autoGrow={
169
+ _.isUndefined(this.props.autoGrow) ? false : this.props.autoGrow
170
+ }
171
+ autoCapitalize={
172
+ _.isUndefined(this.props.autoCapitalize)
173
+ ? "sentences"
174
+ : this.props.autoCapitalize
175
+ }
139
176
  onContentSizeChange={this.onGrow.bind(this)}
140
177
  /* Focus Props */
141
178
  onFocus={this.onFocus.bind(this)}
142
179
  onBlur={this.onBlur.bind(this)}
143
180
  />
144
181
  </View>
145
- {!_.isUndefined(this.props.secureTextToggle) && this.props.secureTextToggle && (
146
- <TouchableOpacity onPress={this.toggleSecure.bind(this)}>
147
- {/* <Icon
182
+ {!_.isUndefined(this.props.secureTextToggle) &&
183
+ this.props.secureTextToggle && (
184
+ <TouchableOpacity onPress={this.toggleSecure.bind(this)}>
185
+ {/* <Icon
148
186
  name={this.state.isSecure ? 'eye' : 'eye-slash'}
149
187
  type='font-awesome'
150
188
  iconStyle={{ fontSize: 16, color: TEXT_MID, paddingLeft: 16 }}
151
189
  /> */}
152
- <FontAwesome
153
- name={this.state.isSecure ? 'eye' : 'eye-slash'}
154
- style={{
155
- fontSize: 21,
156
- lineHeight: 20,
157
- color: TEXT_LIGHT,
158
- paddingLeft: 16,
159
- }}
160
- />
161
- </TouchableOpacity>
162
- )}
190
+ <FontAwesome
191
+ name={this.state.isSecure ? "eye" : "eye-slash"}
192
+ style={{
193
+ fontSize: 21,
194
+ lineHeight: 20,
195
+ color: TEXT_LIGHT,
196
+ paddingLeft: 16,
197
+ }}
198
+ />
199
+ </TouchableOpacity>
200
+ )}
163
201
  </View>
164
202
  );
165
203
  }
@@ -169,7 +207,11 @@ class FormCardSection extends Component {
169
207
  return this.props.children;
170
208
  }
171
209
  if (this.props.pointerEvents) {
172
- return <View pointerEvents={this.props.pointerEvents}>{this.renderInput()}</View>;
210
+ return (
211
+ <View pointerEvents={this.props.pointerEvents}>
212
+ {this.renderInput()}
213
+ </View>
214
+ );
173
215
  }
174
216
  return this.renderInput();
175
217
  }
@@ -185,17 +227,24 @@ class FormCardSection extends Component {
185
227
  this.state.focused && {
186
228
  borderBottomColor: this.props.colourBrandingMain,
187
229
  },
188
- !this.isValid() && !_.isEmpty(this.props.textValue) && styles.inputError,
189
- !_.isUndefined(this.props.showError) && this.props.showError === true && !this.isValid() && styles.inputError,
230
+ !this.isValid() &&
231
+ !_.isEmpty(this.props.textValue) &&
232
+ styles.inputError,
233
+ !_.isUndefined(this.props.showError) &&
234
+ this.props.showError === true &&
235
+ !this.isValid() &&
236
+ styles.inputError,
190
237
  this.props.sectionStyle,
191
238
  ]}
192
239
  >
193
240
  {this.renderLabel()}
194
241
  <View>{this.renderContent()}</View>
195
242
  </View>
196
- {!_.isUndefined(this.props.showError) && this.props.showError === true && !this.isValid() && (
197
- <Text style={styles.errorText}>{this.props.errorText}</Text>
198
- )}
243
+ {!_.isUndefined(this.props.showError) &&
244
+ this.props.showError === true &&
245
+ !this.isValid() && (
246
+ <Text style={styles.errorText}>{this.props.errorText}</Text>
247
+ )}
199
248
  </View>
200
249
  );
201
250
  }
@@ -218,12 +267,12 @@ const styles = StyleSheet.create({
218
267
  borderBottomColor: COLOUR_GRAPEFRUIT,
219
268
  },
220
269
  labelContainer: {
221
- flexDirection: 'row',
222
- alignItems: 'center',
270
+ flexDirection: "row",
271
+ alignItems: "center",
223
272
  marginBottom: 6,
224
273
  },
225
274
  labelText: {
226
- fontFamily: 'sf-regular',
275
+ fontFamily: "sf-regular",
227
276
  fontSize: 13,
228
277
  color: TEXT_LIGHT,
229
278
  },
@@ -244,7 +293,7 @@ const styles = StyleSheet.create({
244
293
  backgroundColor: COLOUR_GREEN,
245
294
  },
246
295
  inputStyle: {
247
- fontFamily: 'sf-regular',
296
+ fontFamily: "sf-regular",
248
297
  fontSize: 17,
249
298
  margin: 0,
250
299
  padding: 0,
@@ -252,12 +301,12 @@ const styles = StyleSheet.create({
252
301
  errorText: {
253
302
  paddingTop: 8,
254
303
  fontSize: 13,
255
- fontFamily: 'sf-regular',
304
+ fontFamily: "sf-regular",
256
305
  color: COLOUR_GRAPEFRUIT,
257
306
  },
258
307
  });
259
308
 
260
- const mapStateToProps = state => {
309
+ const mapStateToProps = (state) => {
261
310
  return {
262
311
  colourBrandingMain: getMainBrandingColourFromState(state),
263
312
  colourBrandingDark: getDarkBrandingColourFromState(state),
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { View, Text, TouchableOpacity } from "react-native";
2
+ import { View, TouchableOpacity } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import { Icon } from "@rneui/themed";
4
5
  import { connect } from "react-redux";
5
6
  import {
@@ -1,7 +1,8 @@
1
1
  import React, { Component } from "react";
2
2
  import { Linking } from "react-native";
3
3
  import { connect } from "react-redux";
4
- import ParsedText from "react-native-parsed-text";
4
+ import Parsed from "react-native-parsed-text";
5
+ import { Text } from "./Text";
5
6
  import { getMainBrandingColourFromState, TEXT_DARKEST } from "../colours";
6
7
  import { getValidUrl } from "../helper";
7
8
  import { analyticsActions } from "../apis";
@@ -1,9 +1,10 @@
1
1
  import React, { Component } from "react";
2
2
  import _ from "lodash";
3
- import { TextInput, View, TouchableWithoutFeedback } from "react-native";
3
+ import { Input, View, TouchableWithoutFeedback } from "react-native";
4
+ import { Text } from "./Text";
4
5
  import { Icon } from "@rneui/themed";
5
6
  import { TEXT_LIGHT, TEXT_DARK, TEXT_DARKEST } from "../colours";
6
- import { FontAwesome } from "./Icon";
7
+ import { FontAwesome } from "@expo/vector-icons";
7
8
 
8
9
  class GenericInput extends Component {
9
10
  constructor(props) {
@@ -99,6 +100,7 @@ class GenericInput extends Component {
99
100
  >
100
101
  {this.renderLeftIcon()}
101
102
  <TextInput
103
+ maxFontSizeMultiplier={1.2}
102
104
  ref={this.inputRef}
103
105
  placeholder={this.props.placeholder}
104
106
  placeholderTextColor={TEXT_LIGHT}
@@ -1,5 +1,6 @@
1
1
  import React, { PureComponent } from "react";
2
- import { View, Text, TouchableOpacity } from "react-native";
2
+ import { View, TouchableOpacity } from "react-native";
3
+ import { Text } from "./Text";
3
4
  import { Icon } from "@rneui/themed";
4
5
  import { connect } from "react-redux";
5
6
  import { GenericInput } from "./GenericInput";