{"_id":"@cookiespam/rn-tourguide","_rev":"4-030bce33e204292a85fe0f9a7e80cc76","name":"@cookiespam/rn-tourguide","dist-tags":{"latest":"2.7.4"},"versions":{"2.7.1":{"name":"@cookiespam/rn-tourguide","version":"2.7.1","description":"Make an interactive step by step tour guide for your react-native app (a rewrite of react-native-copilot)","main":"lib/index.js","types":"lib/index.d.ts","private":false,"scripts":{"start":"yarn config:dev && expo start -c","start:web":"yarn config:dev && expo start -c -w","test":"TZ=Europe/Paris jest --no-watchman","tsc":"tsc --noEmit","tsc:watch":"tsc --noEmit --watch","build":"rm -rf lib/ && node_modules/.bin/tsc","config:dev":"json -I -f package.json -e 'this.main=\"node_modules/expo/AppEntry.js\"'","config:npm":"json -I -f package.json -e 'this.main=\"lib/index.js\"'","lint":"tslint --project .","verify":"yarn test && yarn lint && yarn tsc && yarn build","prepublishOnly":"yarn verify && yarn config:npm","postpublish":"yarn config:dev","cleaning":"rm -rf node_modules && rm -f yarn.lock && yarn cache clean && yarn install && watchman watch-del-all && rm -fr $TMPDIR/react-*","deploy":"gh-pages -d web-build","predeploy":"yarn verify && expo build:web"},"repository":{"type":"git","url":"git+https://github.com/xcarpentier/rn-tourguide.git"},"keywords":["react-native","react-native-joyride","react","copilot","intro.js","intro"],"author":{"name":"Xavier Carpentier","email":"xcapetir@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/xcarpentier/rn-tourguide/issues"},"homepage":"https://xcarpentier.github.io/rn-tourguide/","devDependencies":{"@types/hoist-non-react-statics":"3.3.1","@types/jest":"25.2.3","@types/lodash.clamp":"4.0.6","@types/react":"^16.9.11","@types/react-dom":"16.9.4","@types/react-native":"^0.60.22","@types/react-test-renderer":"16.9.2","babel-preset-expo":"^8.1.0","expo":"^37.0.0","gh-pages":"2.2.0","jest":"^26.0.1","jest-react-native":"^18.0.0","json":"^9.0.6","react":"16.13.1","react-dom":"16.13.1","react-native":"https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz","react-native-svg":"11.0.1","react-native-web":"0.12.2","react-test-renderer":">=16.8.0","tslint":"^5.20.1","tslint-config-prettier":"^1.18.0","typescript":"^3.8.3"},"jest":{"preset":"react-native","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/react-native/jest/preprocessor.js"},"transformIgnorePatterns":["node_modules/(?!(jest-)?react-native|react-clone-referenced-element)"],"modulePathIgnorePatterns":["example"],"globals":{"__TEST__":true}},"dependencies":{"flubber":"~0.4.2","hoist-non-react-statics":"~3.0.1","lodash.clamp":"~4.0.3","memoize-one":"5.1.1","mitt":"~1.1.3"},"resolutions":{"logkitty":"^0.7.1","mem":"^4.0.0"},"gitHead":"74df3db39b3d0e00c31ed810d55a720139fa1324","_id":"@cookiespam/rn-tourguide@2.7.1","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-2PoJhGiPmSOwtbYFJ1v4tpfgahN/AUbDcrzOeUfc7qWOk6pjusFFiluDrurAo/lK0aVX2P8czYD7jnafmCcbLQ==","shasum":"c96b0698a25622706a32475fe9eaa5d233539423","tarball":"https://registry.npmjs.org/@cookiespam/rn-tourguide/-/rn-tourguide-2.7.1.tgz","fileCount":39,"unpackedSize":61822,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfydFECRA9TVsSAnZWagAAiKMP/1kHUfbPENjMmUA8tKr0\nCgGXTlRFtJm6NL66nFFFjmfAffAoa4/J7XzVQY03+jgM1StfEe7IYWHB7acQ\nN2qJHRHuVroqcV9xZuxhpoAIIzP3TW11TkcwiHYB2dJwnVjX3+SJZ5QELLag\n7uaazmQUvN1r022/yDrCOxIGA7HutbMdJuEIQ2teumO1EWLbl6thpWmOjbyD\nfXuEL9rm1DlbpEy0260QS3QOBEPckq8uscLx7bdVVUVaPKZKlPz84obl4gA+\nvqQZDyqHnHrZj6S9D/X0U8WFUSLHXgLNVD/+vWTgGe6bs5AVV5j+LT2H9x3A\ntGlhre3eFBtKcRtjvG7xngC4jgTF7GjUm/QseswqwG7/XQiTldUHVIFbmTQ0\nMAzuFaPGfuHcU5TYL3SwTKfrl1skpViPshnYzf81HLsFSacxIP+0Es1I4BnD\nVwiunecUewCUPI+mRIcN+rQFp/euG3m40Rm3JSfOm0DyGVW21UWtbIJTIYvZ\nDN7gSmtIjrEEZIsACiYTHoAxUvjGd+BeY0WSEgkztuJ+KYXWfkN2Sy6xC9iK\n7BtbwRIINesMI22c1ySMsIQdAMA6sKBSGX9+Pn/VTkbd9PvIRtXv2hR0RJZP\n10dXQ4EVmqs+ZK8hfrekybwc+BpBsPVk+hSAzHo4wb7TE0OI8x6/6J8bWWqU\nvfI2\r\n=0hk4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFUTJ4JTbHz7L+1Q8CzzoWycAfwCgIbr1RqRnUTu6Qj+AiArSiDWP4bkwnpYwdBDJ7oSKMqDzDawhBnkxvLcElNBXA=="}]},"_npmUser":{"name":"cookiespam","email":"liangsheng4@gmail.com"},"directories":{},"maintainers":[{"name":"cookiespam","email":"liangsheng4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rn-tourguide_2.7.1_1607061827984_0.23724246217328337"},"_hasShrinkwrap":false},"2.7.2":{"name":"@cookiespam/rn-tourguide","version":"2.7.2","description":"Make an interactive step by step tour guide for your react-native app (a rewrite of react-native-copilot)","main":"lib/index.js","types":"lib/index.d.ts","private":false,"scripts":{"start":"yarn config:dev && expo start -c","start:web":"yarn config:dev && expo start -c -w","test":"TZ=Europe/Paris jest --no-watchman","tsc":"tsc --noEmit","tsc:watch":"tsc --noEmit --watch","build":"rm -rf lib/ && node_modules/.bin/tsc","config:dev":"json -I -f package.json -e 'this.main=\"node_modules/expo/AppEntry.js\"'","config:npm":"json -I -f package.json -e 'this.main=\"lib/index.js\"'","lint":"tslint --project .","verify":"yarn test && yarn lint && yarn tsc && yarn build","prepublishOnly":"yarn verify && yarn config:npm","postpublish":"yarn config:dev","cleaning":"rm -rf node_modules && rm -f yarn.lock && yarn cache clean && yarn install && watchman watch-del-all && rm -fr $TMPDIR/react-*","deploy":"gh-pages -d web-build","predeploy":"yarn verify && expo build:web"},"repository":{"type":"git","url":"git+https://github.com/xcarpentier/rn-tourguide.git"},"keywords":["react-native","react-native-joyride","react","copilot","intro.js","intro"],"author":{"name":"Xavier Carpentier","email":"xcapetir@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/xcarpentier/rn-tourguide/issues"},"homepage":"https://xcarpentier.github.io/rn-tourguide/","devDependencies":{"@types/hoist-non-react-statics":"3.3.1","@types/jest":"25.2.3","@types/lodash.clamp":"4.0.6","@types/react":"^16.9.11","@types/react-dom":"16.9.4","@types/react-native":"^0.60.22","@types/react-test-renderer":"16.9.2","babel-preset-expo":"^8.1.0","expo":"^37.0.0","gh-pages":"2.2.0","jest":"^26.0.1","jest-react-native":"^18.0.0","json":"^9.0.6","react":"16.13.1","react-dom":"16.13.1","react-native":"https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz","react-native-svg":"^12.1.0","react-native-web":"0.12.2","react-test-renderer":">=16.8.0","tslint":"^5.20.1","tslint-config-prettier":"^1.18.0","typescript":"^3.8.3"},"jest":{"preset":"react-native","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/react-native/jest/preprocessor.js"},"transformIgnorePatterns":["node_modules/(?!(jest-)?react-native|react-clone-referenced-element)"],"modulePathIgnorePatterns":["example"],"globals":{"__TEST__":true}},"dependencies":{"flubber":"~0.4.2","hoist-non-react-statics":"~3.0.1","lodash.clamp":"~4.0.3","memoize-one":"5.1.1","mitt":"~1.1.3"},"resolutions":{"logkitty":"^0.7.1","mem":"^4.0.0"},"gitHead":"f43d75a6dc5813324ebaa670fd2cd24463dfbd67","_id":"@cookiespam/rn-tourguide@2.7.2","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-4v+7nFpUVfzdtzyBD1lYiWRPI8kLGYC4A0TpoIHKn0hPDJ9fGwegzQe7tfV+E7Y4AnIfUaizDrwrF9cXjv24IQ==","shasum":"f70a6c70a831171510d643a245ba903562fb2a2d","tarball":"https://registry.npmjs.org/@cookiespam/rn-tourguide/-/rn-tourguide-2.7.2.tgz","fileCount":39,"unpackedSize":62869,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfza4eCRA9TVsSAnZWagAArvkP/2InYkfPzkWL6ZgzjqMy\nzQvzvioe0jpLt/lMU0oy+yGaPw9HTmkh+W0uAyndiIMSleIDnYUfTb2J9P/B\nUSL6UlGLMrtglOWEgqmmNTjhbciNjh8Vcl8xZVQCRE6+6Lt2azYTcvwvSOl6\nfq03KUuXhJBL6MgIjXTJC/3VQoLvw44lElXooivJfUjyVXA6XdKYXB6n3ygY\n0BG7Nyk2b/ExeL4hKTFi1qnZBGEQzfI1/soCoWjfBPlDninU8v9eAf7nrYm4\nJLAAASghBuKEU+VFBpPfMvRtaeW7kPgS8BLAEZ+Dd6HYo3VIeDfFtZ0Mx5Gf\nwpfZl0h/7xv9XwdQ6Zmr+HhkJMXMzSB+kQiEAjdpSspHZzeJ7uKjFQGQjxae\n+mxrBX0BsDtQ6UXRBB9faYXMeE1h3NSCxQ9R/Qu5Icho/i1wOtcuZ+ckz3xO\nYdVjz589afZQH2X/ZXprSN5r0EWO2iQcBVB+v25RcvNcSC+bcnkcwOJJEHBh\nfUWciP6uZeOREWNraA8aqwlblLmUOBG4Ci8k90zuQt2tJK51UqvkmnctBIEg\nkeDDSbz0Jj7JlAvZflfhlLzvkeC9LMuYO1sIQqNF50dkhC5+0cMkdPmcocnK\nsC20JNg9CUL+27g7CunHfCKHV3L4EQCaYYyFRdJqWNh8biWmbbwUlN42Stq7\nqPjL\r\n=HGDJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAV//Fp561hGWR64G/OhAAiLz/YiRq1DEJA8HlIpuXXbAiA5DfyKEMV/bsN4G1cLqTdqiiWyLwcPnjVXTgXnFTcS8Q=="}]},"_npmUser":{"name":"cookiespam","email":"liangsheng4@gmail.com"},"directories":{},"maintainers":[{"name":"cookiespam","email":"liangsheng4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rn-tourguide_2.7.2_1607314974136_0.10356973915796663"},"_hasShrinkwrap":false},"2.7.3":{"name":"@cookiespam/rn-tourguide","version":"2.7.3","description":"Make an interactive step by step tour guide for your react-native app (a rewrite of react-native-copilot)","main":"lib/index.js","types":"lib/index.d.ts","private":false,"scripts":{"start":"yarn config:dev && expo start -c","start:web":"yarn config:dev && expo start -c -w","test":"TZ=Europe/Paris jest --no-watchman","tsc":"tsc --noEmit","tsc:watch":"tsc --noEmit --watch","build":"rm -rf lib/ && node_modules/.bin/tsc","config:dev":"json -I -f package.json -e 'this.main=\"node_modules/expo/AppEntry.js\"'","config:npm":"json -I -f package.json -e 'this.main=\"lib/index.js\"'","lint":"tslint --project .","verify":"yarn test && yarn lint && yarn tsc && yarn build","prepublishOnly":"yarn verify && yarn config:npm","postpublish":"yarn config:dev","cleaning":"rm -rf node_modules && rm -f yarn.lock && yarn cache clean && yarn install && watchman watch-del-all && rm -fr $TMPDIR/react-*","deploy":"gh-pages -d web-build","predeploy":"yarn verify && expo build:web"},"repository":{"type":"git","url":"git+https://github.com/xcarpentier/rn-tourguide.git"},"keywords":["react-native","react-native-joyride","react","copilot","intro.js","intro"],"author":{"name":"Xavier Carpentier","email":"xcapetir@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/xcarpentier/rn-tourguide/issues"},"homepage":"https://xcarpentier.github.io/rn-tourguide/","devDependencies":{"@types/hoist-non-react-statics":"3.3.1","@types/jest":"25.2.3","@types/lodash.clamp":"4.0.6","@types/react":"^16.9.11","@types/react-dom":"16.9.4","@types/react-native":"^0.60.22","@types/react-test-renderer":"16.9.2","babel-preset-expo":"^8.1.0","expo":"^37.0.0","gh-pages":"2.2.0","jest":"^26.0.1","jest-react-native":"^18.0.0","json":"^9.0.6","react":"16.13.1","react-dom":"16.13.1","react-native":"https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz","react-native-svg":"^12.1.0","react-native-web":"0.12.2","react-test-renderer":">=16.8.0","tslint":"^5.20.1","tslint-config-prettier":"^1.18.0","typescript":"^3.8.3"},"jest":{"preset":"react-native","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/react-native/jest/preprocessor.js"},"transformIgnorePatterns":["node_modules/(?!(jest-)?react-native|react-clone-referenced-element)"],"modulePathIgnorePatterns":["example"],"globals":{"__TEST__":true}},"dependencies":{"flubber":"~0.4.2","hoist-non-react-statics":"~3.0.1","lodash.clamp":"~4.0.3","memoize-one":"5.1.1","mitt":"~1.1.3"},"resolutions":{"logkitty":"^0.7.1","mem":"^4.0.0"},"gitHead":"fa5e1229fecff8b45af390b3cff1929b9b7bfcd1","_id":"@cookiespam/rn-tourguide@2.7.3","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-1wewN1fkaaK8mY1xEZBbNmAOU/mvcwvCOutczZRoBNWuyvRrYB8Gb/88lAs2825cCGIhku7GO1p8wj+sBLVUpQ==","shasum":"f015e7f363d4dc2d93684f4defc6c38e6c11a1a6","tarball":"https://registry.npmjs.org/@cookiespam/rn-tourguide/-/rn-tourguide-2.7.3.tgz","fileCount":39,"unpackedSize":63183,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzcKiCRA9TVsSAnZWagAAQUgP/01ShiKty7iyR8VDMtcG\nwCToVZgXsqzreCc/1/PSl4k9uhp+XPVpfnvRiagB5hZgnn/J5KTv1cvUqYTm\nqlGLDCOh6MtLJSRq7uU3T0YnADw/G2HxvGOOExvF5bv/P/YHLYg3vqHlgutX\nsbxlsHCqo2ayUuUrPgEB9n69kAeqh20HXOT2dlV7u3gm+x1QC0QBs+GW1tvQ\niqY52nqadMx61ATP2JoSEJLckE7No6dgIYF/Dlbhp57CioNo+9ZKEn66Q3e3\n0QnAUOkuZ/o+1T2JojPjB6MicxnBces29W9oqImRN5UFL5dOq8c6SZSvmFMQ\nNKcN78YKWJPdiF7jZsQDYZTjljoq2Cawv1lozBa56IGOBDKOwYZixwwRNpPT\n1UYseWEm0MgVz/NEGYYfh5egI2ZLrwzYaogvDxDVW5qjMRFEjr0D+c4+gzlu\nWvr+/PsMHZL6smaEAuWB39OY3fDMHBeug6ofar7AIZD64AAyA5Azfo2lIKz7\nZz9kAxUkYb0JSJmgeBiCH4N7dxG1lDo0Bf9tawaUOaLfTc1Y8Rb1PWQ9RxfY\nk9BZA9w+IXdeRaTQKteUymwBcLukTz2SKnnhhFkWi8gGH8J937L3cAaptkqn\n6TnmLJwXUNdR8R2VPczOkLoU6Ku2WlkwIPaIzL0oH0KF66SWgddKAhAUBN50\nbSWp\r\n=kciQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDfsBIZsvPl2zxYwIViUHnWj+xK4tvZzjWNHmRVR0DpeAiEAuiRMN8tbB9qvpxliQ9yd7sS0WJ7eocbNmJaKMOXjYbM="}]},"_npmUser":{"name":"cookiespam","email":"liangsheng4@gmail.com"},"directories":{},"maintainers":[{"name":"cookiespam","email":"liangsheng4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rn-tourguide_2.7.3_1607320226079_0.5438437592023169"},"_hasShrinkwrap":false},"2.7.4":{"name":"@cookiespam/rn-tourguide","version":"2.7.4","description":"Make an interactive step by step tour guide for your react-native app (a rewrite of react-native-copilot)","main":"lib/index.js","types":"lib/index.d.ts","private":false,"scripts":{"start":"yarn config:dev && expo start -c","start:web":"yarn config:dev && expo start -c -w","test":"TZ=Europe/Paris jest --no-watchman","tsc":"tsc --noEmit","tsc:watch":"tsc --noEmit --watch","build":"rm -rf lib/ && node_modules/.bin/tsc","config:dev":"json -I -f package.json -e 'this.main=\"node_modules/expo/AppEntry.js\"'","config:npm":"json -I -f package.json -e 'this.main=\"lib/index.js\"'","lint":"tslint --project .","verify":"yarn test && yarn lint && yarn tsc && yarn build","prepublishOnly":"yarn verify && yarn config:npm","postpublish":"yarn config:dev","cleaning":"rm -rf node_modules && rm -f yarn.lock && yarn cache clean && yarn install && watchman watch-del-all && rm -fr $TMPDIR/react-*","deploy":"gh-pages -d web-build","predeploy":"yarn verify && expo build:web"},"repository":{"type":"git","url":"git+https://github.com/xcarpentier/rn-tourguide.git"},"keywords":["react-native","react-native-joyride","react","copilot","intro.js","intro"],"author":{"name":"Xavier Carpentier","email":"xcapetir@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/xcarpentier/rn-tourguide/issues"},"homepage":"https://xcarpentier.github.io/rn-tourguide/","devDependencies":{"@types/hoist-non-react-statics":"3.3.1","@types/jest":"25.2.3","@types/lodash.clamp":"4.0.6","@types/react":"^16.9.11","@types/react-dom":"16.9.4","@types/react-native":"^0.60.22","@types/react-test-renderer":"16.9.2","babel-preset-expo":"^8.1.0","expo":"^37.0.0","gh-pages":"2.2.0","jest":"^26.0.1","jest-react-native":"^18.0.0","json":"^9.0.6","react":"16.13.1","react-dom":"16.13.1","react-native":"https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz","react-native-svg":"^12.1.0","react-native-web":"0.12.2","react-test-renderer":">=16.8.0","tslint":"^5.20.1","tslint-config-prettier":"^1.18.0","typescript":"^3.8.3"},"jest":{"preset":"react-native","transform":{"^.+\\.tsx?$":"<rootDir>/node_modules/react-native/jest/preprocessor.js"},"transformIgnorePatterns":["node_modules/(?!(jest-)?react-native|react-clone-referenced-element)"],"modulePathIgnorePatterns":["example"],"globals":{"__TEST__":true}},"dependencies":{"flubber":"~0.4.2","hoist-non-react-statics":"~3.0.1","lodash.clamp":"~4.0.3","memoize-one":"5.1.1","mitt":"~1.1.3"},"resolutions":{"logkitty":"^0.7.1","mem":"^4.0.0"},"gitHead":"876f21c7b902c60f1e4cd4697d4468683931d103","_id":"@cookiespam/rn-tourguide@2.7.4","_nodeVersion":"14.15.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-oGHycJT/C7vaID5MAktVJZlY/LUOTbRD/H35QDoBgWkad/6bQin6IXwnceBWq4UI7HaDN2rEDXnC3ZolnAq2kg==","shasum":"8e37f132e4eb017d642ff3b16d1540c11ef95172","tarball":"https://registry.npmjs.org/@cookiespam/rn-tourguide/-/rn-tourguide-2.7.4.tgz","fileCount":39,"unpackedSize":63181,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfzcdPCRA9TVsSAnZWagAAKs4QAJIsgO3RfVVS26+i2D+Q\nIuw1jcC3lZ/aLU6t3fr2O/asP6bAYqqFitJ6RI82ul8cA/WoBE5ffbX0SoPp\nkrcdFxZnXuVarg7kEqvQUiZUkBRblwCMBD2OyPx0hKeXQHgsRwyxd1IrGRrh\nideD5w29gnrcthQsDlMoBLEQxWJ6HIwxTvRzAH85/7J6wvuDxegnU9ki2lnu\n5jxQgazwe/oLdI+7LHNjGMVya46ZpggnJGgtl3nMmvPNHIDfTQZv0k+yAD95\n/tBccNld0NVRNndMgReX6Gi/JJW+tCg7qBPvlf6N0ziNxDq871gf/hJJN88A\n3LDIQrm/v8YyM+VAy5AuoYVusqxuA6U230ucxnyhJajprRxo4lY61Dac6RMx\nVkFb6t9KSVS9veIqeZ0oE+4Vv2HAW/4kvxmfhTnmLeut8atPYY/C1gMzGML5\nydVuyhROqtxCHQB28bfTGm91Vwg7uhOot73nHSavyqzdMNw8erUdKpiYqy3F\nw/U8E+dwrNG/+USAZg8VpctUkpw0SwmhLLNuJE/MJLXRtPxwabR9DyVW7ET9\nzHXYB53q8AJe1YDR9mwJf1CAwr7M87f3UDf4M5X71HElCp3vPaniWme6YTj9\nxgmpUIVpqMYlFqUEkEDQmS59CiqL/odTC2KRZGJ3MIMR0O7GeNpRDFq5J5ae\n9z4A\r\n=9sAq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICRM4cbC7+qNlUK0crkpmv8Em4fBkdW9SRe/GIpCopLRAiByUQmlICNbGzuu6rY2V2+wuzbsEvlwCl3Zyou3uoweYA=="}]},"_npmUser":{"name":"cookiespam","email":"liangsheng4@gmail.com"},"directories":{},"maintainers":[{"name":"cookiespam","email":"liangsheng4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rn-tourguide_2.7.4_1607321423295_0.11396382860774135"},"_hasShrinkwrap":false}},"time":{"created":"2020-12-04T06:03:47.951Z","2.7.1":"2020-12-04T06:03:48.105Z","modified":"2022-04-05T01:15:28.938Z","2.7.2":"2020-12-07T04:22:54.266Z","2.7.3":"2020-12-07T05:50:26.322Z","2.7.4":"2020-12-07T06:10:23.427Z"},"maintainers":[{"name":"cookiespam","email":"liangsheng4@gmail.com"}],"description":"Make an interactive step by step tour guide for your react-native app (a rewrite of react-native-copilot)","homepage":"https://xcarpentier.github.io/rn-tourguide/","keywords":["react-native","react-native-joyride","react","copilot","intro.js","intro"],"repository":{"type":"git","url":"git+https://github.com/xcarpentier/rn-tourguide.git"},"author":{"name":"Xavier Carpentier","email":"xcapetir@gmail.com"},"bugs":{"url":"https://github.com/xcarpentier/rn-tourguide/issues"},"license":"MIT","readme":"Forked this project to implement additional features/bug fixes.\n\n- title and content prop to show in tooltip (step)\n- gradient and opacity prop for svg mask\n<<<<<<< HEAD\n- disableMaskInput prop to disable touches outside of tooltip\n=======\n>>>>>>> f43d75a6dc5813324ebaa670fd2cd24463dfbd67\n\n<h1 align=\"center\">RN-TourGuide</h1>\n\n<p align=\"center\">\n  A flexible <strong>tourguide</strong> for your react native app!\n  <br/><small>🎉 Webable 🎉</small>\n  <br/><small>(a rewriting of react-native-copilot)</small>\n</p>\n\n<p align=\"center\">\n  <img width=\"250\" src=\"https://www.dropbox.com/s/9heua3qgd66125k/rn-tourguide.gif?dl=0&raw=1\" alt=\"RN Tourguide\" />\n</p>\n<p align=\"center\">\n    <a href=\"https://xcarpentier.github.io/rn-tourguide/\">\n      🎉DEMO WEB 🎉\n    </a>\n</p>\n\n<div align=\"center\">\n  <p align=\"center\">\n    <a href=\"https://www.npmjs.com/package/rn-tourguide\">\n      <img alt=\"npm downloads\" src=\"https://img.shields.io/npm/dm/rn-tourguide.svg\"/>\n    </a>\n    <a href=\"https://www.npmjs.com/package/rn-tourguide\">\n      <img src=\"https://img.shields.io/npm/v/rn-tourguide.svg\" alt=\"NPM Version\" />\n    </a>\n    <a href=\"http://reactnative.gallery/xcarpentier/rn-tourguide\">\n      <img src=\"https://img.shields.io/badge/reactnative.gallery-%F0%9F%8E%AC-green.svg\"/></a>\n    </a>\n    <a href=\"#hire-an-expert\">\n      <img src=\"https://img.shields.io/badge/%F0%9F%92%AA-hire%20an%20expert-brightgreen\"/>\n    </a>\n  </p>\n</div>\n\n## Installation\n\n```\nyarn add rn-tourguide\n```\n\n```\nyarn add react-native-svg\nreact-native link react-native-svg\n```\n\nIf you are using Expo:\n\n```\nexpo install react-native-svg\n```\n\n## Usage\n\n```tsx\nimport {\n  TourGuideProvider, // Main provider\n  TourGuideZone, // Main wrapper of highlight component\n  TourGuideZoneByPosition, // Component to use mask on overlay (ie, position absolute)\n  useTourGuideController, // hook to start, etc.\n} from 'rn-tourguide'\n\n// Add <TourGuideProvider/> at the root of you app!\nfunction App() {\n  return (\n    <TourGuideProvider {...{ borderRadius: 16 }}>\n      <AppContent />\n    </TourGuideProvider>\n  )\n}\n\nconst AppContent = () => {\n  const iconProps = { size: 40, color: '#888' }\n\n  // Use Hooks to control!\n  const {\n    canStart, // a boolean indicate if you can start tour guide\n    start, // a function to start the tourguide\n    stop, // a function  to stopping it\n    eventEmitter, // an object for listening some events\n  } = useTourGuideController()\n\n  // Can start at mount 🎉\n  // you need to wait until everything is registered 😁\n  React.useEffect(() => {\n    if (canStart) {\n      // 👈 test if you can start otherwise nothing will happen\n      start()\n    }\n  }, [canStart]) // 👈 don't miss it!\n\n  React.useEffect(() => {\n    eventEmitter.on('start', () => console.log('start'))\n    eventEmitter.on('stop', () => console.log('stop'))\n    eventEmitter.on('stepChange', () => console.log(`stepChange`))\n\n    return () => eventEmitter.off('*', null)\n  }, [])\n\n  return (\n    <View style={styles.container}>\n      {/*\n\n          Use TourGuideZone only to wrap your component\n\n      */}\n      <TourGuideZone\n        zone={2}\n        text={'A react-native-copilot remastered! 🎉'}\n        borderRadius={16}\n      >\n        <Text style={styles.title}>\n          {'Welcome to the demo of\\n\"rn-tourguide\"'}\n        </Text>\n      </TourGuideZone>\n      <View style={styles.middleView}>\n        <TouchableOpacity style={styles.button} onPress={() => start()}>\n          <Text style={styles.buttonText}>START THE TUTORIAL!</Text>\n        </TouchableOpacity>\n\n        <TourGuideZone zone={3} shape={'rectangle_and_keep'}>\n          <TouchableOpacity style={styles.button} onPress={() => start(4)}>\n            <Text style={styles.buttonText}>Step 4</Text>\n          </TouchableOpacity>\n        </TourGuideZone>\n        <TouchableOpacity style={styles.button} onPress={() => start(2)}>\n          <Text style={styles.buttonText}>Step 2</Text>\n        </TouchableOpacity>\n        <TouchableOpacity style={styles.button} onPress={stop}>\n          <Text style={styles.buttonText}>Stop</Text>\n        </TouchableOpacity>\n        <TourGuideZone\n          zone={1}\n          shape='circle'\n          text={'With animated SVG morphing with awesome flubber 🍮💯'}\n        >\n          <Image source={{ uri }} style={styles.profilePhoto} />\n        </TourGuideZone>\n      </View>\n      <View style={styles.row}>\n        <TourGuideZone zone={4} shape={'circle'}>\n          <Ionicons name='ios-contact' {...iconProps} />\n        </TourGuideZone>\n        <Ionicons name='ios-chatbubbles' {...iconProps} />\n        <Ionicons name='ios-globe' {...iconProps} />\n        <TourGuideZone zone={5}>\n          <Ionicons name='ios-navigate' {...iconProps} />\n        </TourGuideZone>\n        <TourGuideZone zone={6} shape={'circle'}>\n          <Ionicons name='ios-rainy' {...iconProps} />\n        </TourGuideZone>\n        <TourGuideZoneByPosition\n          zone={7}\n          shape={'circle'}\n          isTourGuide\n          bottom={30}\n          left={35}\n          width={300}\n          height={300}\n        />\n      </View>\n    </View>\n  )\n}\n```\n\n`TourGuide` props:\n\n```ts\ninterface TourGuideZoneProps {\n  zone: number // A positive number indicating the order of the step in the entire walkthrough.\n  isTourGuide?: boolean // return children without wrapping id false\n  title?: string\n  text?: string // text in tooltip\n  content?: any\n  shape?: Shape // which shape\n  maskOffset?: number // offset around zone\n  borderRadius?: number // round corner when rectangle\n  startAtMount?: boolean //  start at mount\n  keepTooltipPosition?: boolean\n  tooltipBottomOffset?: number\n  disableMaskInput:? boolean\n  gradient?: string[] // array of colors\n  opacity?: number\n  children: React.ReactNode\n}\n\ntype Shape = 'circle' | 'rectangle' | 'circle_and_keep' | 'rectangle_and_keep'\n\nexport interface TourGuideProviderProps {\n  tooltipComponent?: React.ComponentType<TooltipProps>\n  tooltipStyle?: StyleProp<ViewStyle>\n  labels?: Labels\n  androidStatusBarVisible?: boolean\n  backdropColor?: string\n  verticalOffset?: number\n  wrapperStyle?: StyleProp<ViewStyle>\n  maskOffset?: number\n  borderRadius?: number\n  animationDuration?: number\n  children: React.ReactNode\n}\n\ninterface TooltipProps {\n  isFirstStep?: boolean\n  isLastStep?: boolean\n  currentStep: Step\n  labels?: Labels\n  handleNext?(): void\n  handlePrev?(): void\n  handleStop?(): void\n}\n\ninterface Labels {\n  skip?: string\n  previous?: string\n  next?: string\n  finish?: string\n}\n```\n\nIn order to start the tutorial, you can call the `start` function from `useTourGuideController` hook:\n\n```js\nfunction HomeScreen() {\n  const { start } = useTourGuideController()\n\n  React.useEffect(() => {\n    start()\n  }, [])\n\n\n  render() {\n    // ...\n  }\n}\n\nexport default HomeScreen\n```\n\nIf you are looking for a working example, please check out [this link](https://github.com/xcarpentier/rn-tourguide/blob/master/App.tsx).\n\n### Custom tooltip component\n\nYou can customize the tooltip by passing a component to the `copilot` HOC maker. If you are looking for an example tooltip component, take a look at [the default tooltip implementation](https://github.com/xcarpentier/rn-tourguide/blob/master/src/components/Tooltip.tsx).\n\n```js\nconst TooltipComponent = ({\n  isFirstStep,\n  isLastStep,\n  handleNext,\n  handlePrev,\n  handleStop,\n  currentStep,\n}) => (\n  // ...\n);\n\n<TourGuideProvider {...{tooltipComponent: TooltipComponent}}>\n// ...\n</TourGuideProvider>\n```\n\n### Custom tooltip styling\n\nYou can customize tooltips style:\n\n```tsx\nconst style = {\n  backgroundColor: '#9FA8DA',\n  borderRadius: 10,\n  paddingTop: 5,\n}\n\n<TourGuideProvider {...{ tooltipStyle: style }}>\n// ...\n</TourGuideProvider>\n```\n\n### Custom mask color\n\nYou can customize the mask color - default is `rgba(0, 0, 0, 0.4)`, by passing a color string to the `copilot` HOC maker.\n\n```tsx\n<TourGuideProvider {...{ backdropColor: 'rgba(50, 50, 100, 0.9)' }}>\n  // ...\n</TourGuideProvider>\n```\n\n### Custom labels (for i18n)\n\nYou can localize labels:\n\n```tsx\n<TourGuideProvider\n  {...{\n    labels: {\n      previous: 'Vorheriger',\n      next: 'Nächster',\n      skip: 'Überspringen',\n      finish: 'Beenden',\n    },\n  }}\n>\n  // ...\n</TourGuideProvider>\n```\n\n### Listening to the events\n\nAlong with `start()`, `useTourGuideController` passes `copilotEvents` function to the component to help you with tracking of tutorial progress. It utilizes [mitt](https://github.com/developit/mitt) under the hood, you can see how full API there.\n\nList of available events is:\n\n- `start` — Copilot tutorial has started.\n- `stop` — Copilot tutorial has ended or skipped.\n- `stepChange` — Next step is triggered. Passes [`Step`](https://github.com/mohebifar/react-native-copilot/blob/master/src/types.js#L2) instance as event handler argument.\n\n## Contributing\n\nIssues and Pull Requests are always welcome.\n\n## Hire an expert!\n\nLooking for a ReactNative freelance expert with more than 14 years experience? Contact me from my [website](https://xaviercarpentier.com)!\n\n## License\n\n- [MIT](LICENSE) © 2020 Xavier CARPENTIER SAS, https://xaviercarpentier.com.\n- [MIT](LICENSE) © 2017 OK GROW!, https://www.okgrow.com.\n","readmeFilename":"README.md"}