@codeleap/mobile 2.3.7 → 2.3.8

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 (229) hide show
  1. package/CodeLeap-Mobile-Packages.code-workspace +7 -7
  2. package/dist/components/ActionIcon/index.d.ts +13 -13
  3. package/dist/components/ActionIcon/index.js +54 -54
  4. package/dist/components/ActionIcon/styles.d.ts +65 -65
  5. package/dist/components/ActionIcon/styles.js +60 -60
  6. package/dist/components/ActivityIndicator/index.d.ts +15 -15
  7. package/dist/components/ActivityIndicator/index.js +58 -58
  8. package/dist/components/ActivityIndicator/styles.d.ts +59 -59
  9. package/dist/components/ActivityIndicator/styles.js +51 -51
  10. package/dist/components/Animated.d.ts +124 -124
  11. package/dist/components/Animated.js +58 -58
  12. package/dist/components/AutoComplete/index.d.ts +33 -33
  13. package/dist/components/AutoComplete/index.js +128 -128
  14. package/dist/components/AutoComplete/styles.d.ts +57 -57
  15. package/dist/components/AutoComplete/styles.js +24 -24
  16. package/dist/components/Backdrop/index.d.ts +14 -14
  17. package/dist/components/Backdrop/index.js +62 -62
  18. package/dist/components/Backdrop/styles.d.ts +53 -53
  19. package/dist/components/Backdrop/styles.js +27 -27
  20. package/dist/components/Button/index.d.ts +246 -246
  21. package/dist/components/Button/index.js +118 -118
  22. package/dist/components/Button/styles.d.ts +65 -65
  23. package/dist/components/Button/styles.js +60 -60
  24. package/dist/components/Calendar/index.d.ts +15 -15
  25. package/dist/components/Calendar/index.js +79 -79
  26. package/dist/components/Calendar/style.d.ts +4 -4
  27. package/dist/components/Calendar/style.js +35 -35
  28. package/dist/components/Calendar/types.d.ts +95 -95
  29. package/dist/components/Calendar/types.js +2 -2
  30. package/dist/components/Checkbox/index.d.ts +15 -15
  31. package/dist/components/Checkbox/index.js +84 -84
  32. package/dist/components/Checkbox/styles.d.ts +56 -56
  33. package/dist/components/Checkbox/styles.js +52 -52
  34. package/dist/components/ContentView/index.d.ts +12 -12
  35. package/dist/components/ContentView/index.js +65 -65
  36. package/dist/components/ContentView/styles.d.ts +53 -53
  37. package/dist/components/ContentView/styles.js +25 -25
  38. package/dist/components/Drawer/index.d.ts +7 -7
  39. package/dist/components/Drawer/index.js +69 -69
  40. package/dist/components/Drawer/styles.d.ts +56 -56
  41. package/dist/components/Drawer/styles.js +38 -38
  42. package/dist/components/EmptyPlaceholder/index.d.ts +22 -22
  43. package/dist/components/EmptyPlaceholder/index.js +77 -77
  44. package/dist/components/EmptyPlaceholder/styles.d.ts +55 -55
  45. package/dist/components/EmptyPlaceholder/styles.js +31 -31
  46. package/dist/components/FileInput/index.d.ts +24 -24
  47. package/dist/components/FileInput/index.js +182 -182
  48. package/dist/components/FileInput/styles.d.ts +53 -53
  49. package/dist/components/FileInput/styles.js +18 -18
  50. package/dist/components/Grid/index.d.ts +32 -32
  51. package/dist/components/Grid/index.js +83 -83
  52. package/dist/components/Grid/styles.d.ts +5 -5
  53. package/dist/components/Grid/styles.js +18 -18
  54. package/dist/components/Icon/index.d.ts +14 -14
  55. package/dist/components/Icon/index.js +78 -78
  56. package/dist/components/Icon/styles.d.ts +61 -61
  57. package/dist/components/Icon/styles.js +48 -48
  58. package/dist/components/Image/index.d.ts +20 -20
  59. package/dist/components/Image/index.js +90 -90
  60. package/dist/components/Image/styles.d.ts +54 -54
  61. package/dist/components/Image/styles.js +24 -24
  62. package/dist/components/ImageView/Spotlight.d.ts +25 -25
  63. package/dist/components/ImageView/Spotlight.js +153 -153
  64. package/dist/components/ImageView/component.d.ts +5 -5
  65. package/dist/components/ImageView/component.js +53 -53
  66. package/dist/components/ImageView/index.d.ts +2 -2
  67. package/dist/components/ImageView/index.js +18 -18
  68. package/dist/components/InputLabel/index.d.ts +12 -12
  69. package/dist/components/InputLabel/index.js +61 -61
  70. package/dist/components/InputLabel/styles.d.ts +4 -4
  71. package/dist/components/InputLabel/styles.js +25 -25
  72. package/dist/components/List/PaginationIndicator.d.ts +67 -67
  73. package/dist/components/List/PaginationIndicator.js +50 -50
  74. package/dist/components/List/index.d.ts +31 -31
  75. package/dist/components/List/index.js +80 -80
  76. package/dist/components/List/styles.d.ts +5 -5
  77. package/dist/components/List/styles.js +26 -26
  78. package/dist/components/Modal/index.d.ts +41 -41
  79. package/dist/components/Modal/index.js +143 -143
  80. package/dist/components/Modal/styles.d.ts +58 -58
  81. package/dist/components/Modal/styles.js +74 -74
  82. package/dist/components/MultiSelect/index.d.ts +6 -6
  83. package/dist/components/MultiSelect/index.js +117 -117
  84. package/dist/components/MultiSelect/styles.d.ts +58 -58
  85. package/dist/components/MultiSelect/styles.js +21 -21
  86. package/dist/components/MultiSelect/types.d.ts +35 -35
  87. package/dist/components/MultiSelect/types.js +2 -2
  88. package/dist/components/Navigation/Navigation.d.ts +3 -3
  89. package/dist/components/Navigation/Navigation.js +83 -83
  90. package/dist/components/Navigation/constants.d.ts +5 -5
  91. package/dist/components/Navigation/constants.js +10 -10
  92. package/dist/components/Navigation/index.d.ts +3 -3
  93. package/dist/components/Navigation/index.js +19 -19
  94. package/dist/components/Navigation/types.d.ts +26 -26
  95. package/dist/components/Navigation/types.js +7 -7
  96. package/dist/components/Navigation/utils.d.ts +3 -3
  97. package/dist/components/Navigation/utils.js +68 -68
  98. package/dist/components/Pager/index.d.ts +26 -26
  99. package/dist/components/Pager/index.js +87 -87
  100. package/dist/components/Pager/styles.d.ts +87 -87
  101. package/dist/components/Pager/styles.js +71 -71
  102. package/dist/components/RadioInput/index.d.ts +27 -27
  103. package/dist/components/RadioInput/index.js +75 -75
  104. package/dist/components/RadioInput/styles.d.ts +58 -58
  105. package/dist/components/RadioInput/styles.js +49 -49
  106. package/dist/components/Scroll/index.d.ts +20 -20
  107. package/dist/components/Scroll/index.js +100 -100
  108. package/dist/components/Scroll/styles.d.ts +4 -4
  109. package/dist/components/Scroll/styles.js +26 -26
  110. package/dist/components/Sections/index.d.ts +11 -11
  111. package/dist/components/Sections/index.js +79 -79
  112. package/dist/components/SegmentedControl/index.d.ts +52 -52
  113. package/dist/components/SegmentedControl/index.js +132 -132
  114. package/dist/components/SegmentedControl/styles.d.ts +60 -60
  115. package/dist/components/SegmentedControl/styles.js +42 -42
  116. package/dist/components/Select/index.d.ts +13 -13
  117. package/dist/components/Select/index.js +130 -130
  118. package/dist/components/Select/styles.d.ts +59 -59
  119. package/dist/components/Select/styles.js +31 -31
  120. package/dist/components/Select/types.d.ts +36 -36
  121. package/dist/components/Select/types.js +2 -2
  122. package/dist/components/Slider/Mark.d.ts +3 -3
  123. package/dist/components/Slider/Mark.js +31 -31
  124. package/dist/components/Slider/Thumb.d.ts +7 -7
  125. package/dist/components/Slider/Thumb.js +29 -29
  126. package/dist/components/Slider/index.d.ts +4 -4
  127. package/dist/components/Slider/index.js +102 -102
  128. package/dist/components/Slider/styles.d.ts +54 -54
  129. package/dist/components/Slider/styles.js +60 -60
  130. package/dist/components/Slider/types.d.ts +26 -26
  131. package/dist/components/Slider/types.js +2 -2
  132. package/dist/components/Switch/index.d.ts +14 -14
  133. package/dist/components/Switch/index.js +84 -84
  134. package/dist/components/Switch/styles.d.ts +55 -55
  135. package/dist/components/Switch/styles.js +33 -33
  136. package/dist/components/Text/index.d.ts +23 -23
  137. package/dist/components/Text/index.js +124 -124
  138. package/dist/components/Text/styles.d.ts +70 -70
  139. package/dist/components/Text/styles.js +30 -30
  140. package/dist/components/TextInput/index.d.ts +181 -181
  141. package/dist/components/TextInput/index.js +213 -213
  142. package/dist/components/TextInput/styles.d.ts +63 -63
  143. package/dist/components/TextInput/styles.js +64 -64
  144. package/dist/components/Touchable/index.d.ts +21 -21
  145. package/dist/components/Touchable/index.js +157 -157
  146. package/dist/components/Touchable/styles.d.ts +58 -58
  147. package/dist/components/Touchable/styles.js +23 -23
  148. package/dist/components/View/index.d.ts +132 -132
  149. package/dist/components/View/index.js +101 -101
  150. package/dist/components/View/styles.d.ts +54 -54
  151. package/dist/components/View/styles.js +28 -28
  152. package/dist/components/components.d.ts +38 -38
  153. package/dist/components/components.js +67 -67
  154. package/dist/components/defaultStyles.d.ts +1369 -1369
  155. package/dist/components/defaultStyles.js +64 -64
  156. package/dist/components/legacy/Modal/index.d.ts +28 -28
  157. package/dist/components/legacy/Modal/index.js +113 -113
  158. package/dist/components/legacy/Modal/styles.d.ts +64 -64
  159. package/dist/components/legacy/Modal/styles.js +59 -59
  160. package/dist/components/legacy/Pager/index.d.ts +20 -20
  161. package/dist/components/legacy/Pager/index.js +167 -167
  162. package/dist/components/legacy/Pager/styles.d.ts +54 -54
  163. package/dist/components/legacy/Pager/styles.js +43 -43
  164. package/dist/components/legacy/index.d.ts +2 -2
  165. package/dist/components/legacy/index.js +18 -18
  166. package/dist/index.d.ts +7 -7
  167. package/dist/index.js +42 -42
  168. package/dist/modules/documentPicker.d.ts +3 -3
  169. package/dist/modules/documentPicker.js +11 -11
  170. package/dist/modules/fastImage.d.ts +1 -1
  171. package/dist/modules/fastImage.js +9 -9
  172. package/dist/modules/reactNavigation.d.ts +5 -5
  173. package/dist/modules/reactNavigation.js +25 -25
  174. package/dist/modules/textInputMask.d.ts +10 -10
  175. package/dist/modules/textInputMask.js +22 -22
  176. package/dist/modules/types/fileTypes.d.ts +138 -138
  177. package/dist/modules/types/fileTypes.js +2 -2
  178. package/dist/modules/types/textInputMask.d.ts +7 -7
  179. package/dist/modules/types/textInputMask.js +2 -2
  180. package/dist/types/index.d.ts +1 -1
  181. package/dist/types/index.js +17 -17
  182. package/dist/types/utility.d.ts +8 -8
  183. package/dist/types/utility.js +2 -2
  184. package/dist/utils/KeyboardAware/context.d.ts +13 -13
  185. package/dist/utils/KeyboardAware/context.js +67 -67
  186. package/dist/utils/KeyboardAware/index.d.ts +8 -8
  187. package/dist/utils/KeyboardAware/index.js +32 -32
  188. package/dist/utils/KeyboardAware/keyboardHooks.d.ts +26 -26
  189. package/dist/utils/KeyboardAware/keyboardHooks.js +89 -89
  190. package/dist/utils/KeyboardAware/lib/KeyboardAwareFlatList.d.ts +3 -3
  191. package/dist/utils/KeyboardAware/lib/KeyboardAwareFlatList.js +8 -8
  192. package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.d.ts +67 -67
  193. package/dist/utils/KeyboardAware/lib/KeyboardAwareHOC.js +450 -450
  194. package/dist/utils/KeyboardAware/lib/KeyboardAwareInterface.d.ts +7 -7
  195. package/dist/utils/KeyboardAware/lib/KeyboardAwareInterface.js +3 -3
  196. package/dist/utils/KeyboardAware/lib/KeyboardAwareScrollView.d.ts +3 -3
  197. package/dist/utils/KeyboardAware/lib/KeyboardAwareScrollView.js +9 -9
  198. package/dist/utils/KeyboardAware/lib/KeyboardAwareSectionList.d.ts +3 -3
  199. package/dist/utils/KeyboardAware/lib/KeyboardAwareSectionList.js +9 -9
  200. package/dist/utils/KeyboardAware/types.d.ts +1 -1
  201. package/dist/utils/KeyboardAware/types.js +6 -6
  202. package/dist/utils/ModalManager/components.d.ts +20 -20
  203. package/dist/utils/ModalManager/components.js +117 -117
  204. package/dist/utils/ModalManager/context.d.ts +48 -48
  205. package/dist/utils/ModalManager/context.js +204 -204
  206. package/dist/utils/ModalManager/index.d.ts +11 -11
  207. package/dist/utils/ModalManager/index.js +12 -12
  208. package/dist/utils/OSAlert.d.ts +32 -32
  209. package/dist/utils/OSAlert.js +142 -142
  210. package/dist/utils/PermissionManager/context.d.ts +52 -52
  211. package/dist/utils/PermissionManager/context.js +315 -315
  212. package/dist/utils/PermissionManager/index.d.ts +4 -4
  213. package/dist/utils/PermissionManager/index.js +8 -8
  214. package/dist/utils/PermissionManager/types.d.ts +13 -13
  215. package/dist/utils/PermissionManager/types.js +2 -2
  216. package/dist/utils/hooks.d.ts +40 -40
  217. package/dist/utils/hooks.js +130 -130
  218. package/dist/utils/index.d.ts +10 -10
  219. package/dist/utils/index.js +39 -39
  220. package/dist/utils/input.d.ts +35 -35
  221. package/dist/utils/input.js +48 -48
  222. package/dist/utils/misc.d.ts +6 -6
  223. package/dist/utils/misc.js +86 -86
  224. package/dist/utils/notifications.d.ts +34 -34
  225. package/dist/utils/notifications.js +267 -267
  226. package/dist/utils/theme.d.ts +42 -42
  227. package/dist/utils/theme.js +52 -52
  228. package/package.json +54 -54
  229. package/src/index.ts +7 -7
@@ -1,316 +1,316 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (_) try {
52
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
71
- };
72
- Object.defineProperty(exports, "__esModule", { value: true });
73
- exports.createTypedPermissionHooks = exports.usePermissionModal = exports.usePermissions = exports.Provider = void 0;
74
- var react_1 = __importStar(require("react"));
75
- var mobile_1 = require("@codeleap/mobile");
76
- var common_1 = require("@codeleap/common");
77
- var react_native_1 = require("react-native");
78
- var PermissionContext = react_1.default.createContext({});
79
- function getStatuses(state) {
80
- var statuses = Object.entries(state).map(function (_a) {
81
- var k = _a[0], v = _a[1];
82
- return [k, v.status];
83
- });
84
- return Object.fromEntries(statuses);
85
- }
86
- function Provider(_a) {
87
- var children = _a.children, AppPermissions = _a.AppPermissions, modalConfig = _a.modalConfig;
88
- var _b = (0, react_1.useState)(function () { return getStatuses(AppPermissions.values); }), state = _b[0], setState = _b[1];
89
- (0, common_1.onMount)(function () {
90
- react_native_1.AppState.addEventListener('change', function (state) {
91
- if (state === 'active') {
92
- AppPermissions.update().then(function (vals) {
93
- var statuses = getStatuses(vals);
94
- if (!(0, common_1.deepEqual)(statuses, state)) {
95
- setState(__assign({}, statuses));
96
- }
97
- });
98
- }
99
- });
100
- });
101
- return <PermissionContext.Provider value={{
102
- state: state,
103
- modalConfig: modalConfig,
104
- manager: AppPermissions,
105
- }}>
106
- {children}
107
- </PermissionContext.Provider>;
108
- }
109
- exports.Provider = Provider;
110
- var usePermissions = function () {
111
- var modalCtx = mobile_1.ModalManager.useModalContext();
112
- var permissionCtx = (0, react_1.useContext)(PermissionContext);
113
- function askPermission(name, onResolve) {
114
- return new Promise(function (resolve, reject) {
115
- permissionCtx.manager.get(name, {
116
- ask: false,
117
- askOnDenied: false,
118
- askOnPending: false,
119
- }).then(function (status) {
120
- var permissionModalName = "permissions.".concat(name);
121
- if (!status.isGranted) {
122
- modalCtx.toggleModal(permissionModalName, true, {
123
- onPermissionResolve: function (status) {
124
- modalCtx.toggleModal(permissionModalName, false, {});
125
- setTimeout(function () {
126
- onResolve === null || onResolve === void 0 ? void 0 : onResolve(status, permissionModalName);
127
- resolve(status);
128
- }, modalCtx.transitionDuration);
129
- },
130
- });
131
- }
132
- else {
133
- onResolve === null || onResolve === void 0 ? void 0 : onResolve(status.status);
134
- resolve(status);
135
- }
136
- });
137
- });
138
- }
139
- var askMany = function (perms, onResolve, options) { return __awaiter(void 0, void 0, void 0, function () {
140
- var prevModal, results, _loop_1, _i, perms_1, _permission, state_1, res;
141
- return __generator(this, function (_a) {
142
- switch (_a.label) {
143
- case 0:
144
- prevModal = null;
145
- results = {};
146
- _loop_1 = function (_permission) {
147
- var permission, status, permissionModalName, onOpen, _b, _c;
148
- return __generator(this, function (_d) {
149
- switch (_d.label) {
150
- case 0:
151
- permission = _permission.replace('?', '');
152
- return [4 /*yield*/, permissionCtx.manager.get(permission, {
153
- ask: false,
154
- askOnDenied: false,
155
- askOnPending: false,
156
- })];
157
- case 1:
158
- status = _d.sent();
159
- results[permission] = status.status;
160
- permissionModalName = "permissions.".concat(permission);
161
- if (!!status.isGranted) return [3 /*break*/, 3];
162
- onOpen = null;
163
- if (prevModal) {
164
- onOpen = function () { return new Promise(function (resolve) {
165
- setTimeout(function () {
166
- modalCtx.transition(prevModal, permissionModalName, {
167
- props: {
168
- onPermissionResolve: function (status) {
169
- resolve(status);
170
- },
171
- },
172
- });
173
- });
174
- }); };
175
- }
176
- else {
177
- onOpen = function () { return new Promise(function (resolve) {
178
- setTimeout(function () {
179
- modalCtx.toggleModal(permissionModalName, true, {
180
- onPermissionResolve: function (status) {
181
- resolve(status);
182
- },
183
- });
184
- });
185
- }); };
186
- }
187
- _b = results;
188
- _c = permission;
189
- return [4 /*yield*/, onOpen()];
190
- case 2:
191
- _b[_c] = _d.sent();
192
- prevModal = permissionModalName;
193
- if (!_permission.endsWith('?') && results[permission] !== 'granted') {
194
- return [2 /*return*/, "break"];
195
- }
196
- _d.label = 3;
197
- case 3: return [2 /*return*/];
198
- }
199
- });
200
- };
201
- _i = 0, perms_1 = perms;
202
- _a.label = 1;
203
- case 1:
204
- if (!(_i < perms_1.length)) return [3 /*break*/, 4];
205
- _permission = perms_1[_i];
206
- return [5 /*yield**/, _loop_1(_permission)];
207
- case 2:
208
- state_1 = _a.sent();
209
- if (state_1 === "break")
210
- return [3 /*break*/, 4];
211
- _a.label = 3;
212
- case 3:
213
- _i++;
214
- return [3 /*break*/, 1];
215
- case 4:
216
- if (prevModal) {
217
- setTimeout(function () {
218
- modalCtx.toggleModal(prevModal, false, {});
219
- });
220
- }
221
- res = __assign(__assign({}, results), { overall: Object.values(results).every(function (x) { return x === 'granted'; }) ? 'granted' : 'denied' });
222
- onResolve(res);
223
- return [2 /*return*/, res];
224
- }
225
- });
226
- }); };
227
- return __assign({ askPermission: askPermission, askMany: askMany }, permissionCtx);
228
- };
229
- exports.usePermissions = usePermissions;
230
- function usePermissionModal(permissionName) {
231
- var modalId = "permissions.".concat(permissionName);
232
- var modals = mobile_1.ModalManager.useModalContext();
233
- var permissionCtx = (0, exports.usePermissions)();
234
- var modalState = modals.state[modalId];
235
- var currentState = permissionCtx.state[permissionName];
236
- var status = currentState;
237
- var _a = (0, common_1.useDebounce)(status, modals.transitionDuration * 0.5), debouncedStatus = _a[0], reset = _a[1];
238
- function getConfig(withStatus) {
239
- var _a;
240
- return __assign(__assign({}, permissionCtx.modalConfig[permissionName]), (_a = permissionCtx.modalConfig[permissionName]) === null || _a === void 0 ? void 0 : _a[withStatus]);
241
- }
242
- var config = getConfig(debouncedStatus);
243
- function onPermissionResolve(_status) {
244
- var _a, _b;
245
- (_b = (_a = modalState === null || modalState === void 0 ? void 0 : modalState.props) === null || _a === void 0 ? void 0 : _a.onPermissionResolve) === null || _b === void 0 ? void 0 : _b.call(_a, _status || status);
246
- }
247
- (0, common_1.onUpdate)(function () {
248
- if ((modalState === null || modalState === void 0 ? void 0 : modalState.visible) && !!status) {
249
- if (status === 'granted') {
250
- reset();
251
- onPermissionResolve();
252
- }
253
- else {
254
- if (!(0, common_1.deepEqual)(config, getConfig(status))) {
255
- modals.transition(modalId, modalId, {
256
- props: modalState === null || modalState === void 0 ? void 0 : modalState.props,
257
- });
258
- }
259
- }
260
- }
261
- }, [status, modalState === null || modalState === void 0 ? void 0 : modalState.visible]);
262
- function onAllow() {
263
- return __awaiter(this, void 0, void 0, function () {
264
- var _a, newStatus;
265
- return __generator(this, function (_b) {
266
- switch (_b.label) {
267
- case 0:
268
- _a = config.onAllow;
269
- switch (_a) {
270
- case 'ask': return [3 /*break*/, 1];
271
- case 'openSettings': return [3 /*break*/, 3];
272
- }
273
- return [3 /*break*/, 3];
274
- case 1: return [4 /*yield*/, permissionCtx.manager.get(permissionName, {
275
- ask: true,
276
- askOnDenied: true,
277
- askOnPending: true,
278
- })];
279
- case 2:
280
- newStatus = _b.sent();
281
- if (!newStatus.isGranted) {
282
- onPermissionResolve(newStatus.status);
283
- }
284
- return [3 /*break*/, 4];
285
- case 3:
286
- react_native_1.Linking.openSettings();
287
- return [3 /*break*/, 4];
288
- case 4: return [2 /*return*/];
289
- }
290
- });
291
- });
292
- }
293
- function onDeny() {
294
- onPermissionResolve();
295
- }
296
- return {
297
- onAllow: onAllow,
298
- onDeny: onDeny,
299
- modalId: modalId,
300
- permissionName: permissionName,
301
- modalState: __assign({}, modalState),
302
- currentState: currentState,
303
- config: config,
304
- };
305
- }
306
- exports.usePermissionModal = usePermissionModal;
307
- function createTypedPermissionHooks(configuration) {
308
- var _usePermissions = exports.usePermissions;
309
- var _usePermissionModal = usePermissionModal;
310
- return {
311
- usePermissions: _usePermissions,
312
- usePermissionModal: _usePermissionModal,
313
- };
314
- }
315
- exports.createTypedPermissionHooks = createTypedPermissionHooks;
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (_) try {
52
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
72
+ Object.defineProperty(exports, "__esModule", { value: true });
73
+ exports.createTypedPermissionHooks = exports.usePermissionModal = exports.usePermissions = exports.Provider = void 0;
74
+ var react_1 = __importStar(require("react"));
75
+ var mobile_1 = require("@codeleap/mobile");
76
+ var common_1 = require("@codeleap/common");
77
+ var react_native_1 = require("react-native");
78
+ var PermissionContext = react_1.default.createContext({});
79
+ function getStatuses(state) {
80
+ var statuses = Object.entries(state).map(function (_a) {
81
+ var k = _a[0], v = _a[1];
82
+ return [k, v.status];
83
+ });
84
+ return Object.fromEntries(statuses);
85
+ }
86
+ function Provider(_a) {
87
+ var children = _a.children, AppPermissions = _a.AppPermissions, modalConfig = _a.modalConfig;
88
+ var _b = (0, react_1.useState)(function () { return getStatuses(AppPermissions.values); }), state = _b[0], setState = _b[1];
89
+ (0, common_1.onMount)(function () {
90
+ react_native_1.AppState.addEventListener('change', function (state) {
91
+ if (state === 'active') {
92
+ AppPermissions.update().then(function (vals) {
93
+ var statuses = getStatuses(vals);
94
+ if (!(0, common_1.deepEqual)(statuses, state)) {
95
+ setState(__assign({}, statuses));
96
+ }
97
+ });
98
+ }
99
+ });
100
+ });
101
+ return <PermissionContext.Provider value={{
102
+ state: state,
103
+ modalConfig: modalConfig,
104
+ manager: AppPermissions,
105
+ }}>
106
+ {children}
107
+ </PermissionContext.Provider>;
108
+ }
109
+ exports.Provider = Provider;
110
+ var usePermissions = function () {
111
+ var modalCtx = mobile_1.ModalManager.useModalContext();
112
+ var permissionCtx = (0, react_1.useContext)(PermissionContext);
113
+ function askPermission(name, onResolve) {
114
+ return new Promise(function (resolve, reject) {
115
+ permissionCtx.manager.get(name, {
116
+ ask: false,
117
+ askOnDenied: false,
118
+ askOnPending: false,
119
+ }).then(function (status) {
120
+ var permissionModalName = "permissions.".concat(name);
121
+ if (!status.isGranted) {
122
+ modalCtx.toggleModal(permissionModalName, true, {
123
+ onPermissionResolve: function (status) {
124
+ modalCtx.toggleModal(permissionModalName, false, {});
125
+ setTimeout(function () {
126
+ onResolve === null || onResolve === void 0 ? void 0 : onResolve(status, permissionModalName);
127
+ resolve(status);
128
+ }, modalCtx.transitionDuration);
129
+ },
130
+ });
131
+ }
132
+ else {
133
+ onResolve === null || onResolve === void 0 ? void 0 : onResolve(status.status);
134
+ resolve(status);
135
+ }
136
+ });
137
+ });
138
+ }
139
+ var askMany = function (perms, onResolve, options) { return __awaiter(void 0, void 0, void 0, function () {
140
+ var prevModal, results, _loop_1, _i, perms_1, _permission, state_1, res;
141
+ return __generator(this, function (_a) {
142
+ switch (_a.label) {
143
+ case 0:
144
+ prevModal = null;
145
+ results = {};
146
+ _loop_1 = function (_permission) {
147
+ var permission, status, permissionModalName, onOpen, _b, _c;
148
+ return __generator(this, function (_d) {
149
+ switch (_d.label) {
150
+ case 0:
151
+ permission = _permission.replace('?', '');
152
+ return [4 /*yield*/, permissionCtx.manager.get(permission, {
153
+ ask: false,
154
+ askOnDenied: false,
155
+ askOnPending: false,
156
+ })];
157
+ case 1:
158
+ status = _d.sent();
159
+ results[permission] = status.status;
160
+ permissionModalName = "permissions.".concat(permission);
161
+ if (!!status.isGranted) return [3 /*break*/, 3];
162
+ onOpen = null;
163
+ if (prevModal) {
164
+ onOpen = function () { return new Promise(function (resolve) {
165
+ setTimeout(function () {
166
+ modalCtx.transition(prevModal, permissionModalName, {
167
+ props: {
168
+ onPermissionResolve: function (status) {
169
+ resolve(status);
170
+ },
171
+ },
172
+ });
173
+ });
174
+ }); };
175
+ }
176
+ else {
177
+ onOpen = function () { return new Promise(function (resolve) {
178
+ setTimeout(function () {
179
+ modalCtx.toggleModal(permissionModalName, true, {
180
+ onPermissionResolve: function (status) {
181
+ resolve(status);
182
+ },
183
+ });
184
+ });
185
+ }); };
186
+ }
187
+ _b = results;
188
+ _c = permission;
189
+ return [4 /*yield*/, onOpen()];
190
+ case 2:
191
+ _b[_c] = _d.sent();
192
+ prevModal = permissionModalName;
193
+ if (!_permission.endsWith('?') && results[permission] !== 'granted') {
194
+ return [2 /*return*/, "break"];
195
+ }
196
+ _d.label = 3;
197
+ case 3: return [2 /*return*/];
198
+ }
199
+ });
200
+ };
201
+ _i = 0, perms_1 = perms;
202
+ _a.label = 1;
203
+ case 1:
204
+ if (!(_i < perms_1.length)) return [3 /*break*/, 4];
205
+ _permission = perms_1[_i];
206
+ return [5 /*yield**/, _loop_1(_permission)];
207
+ case 2:
208
+ state_1 = _a.sent();
209
+ if (state_1 === "break")
210
+ return [3 /*break*/, 4];
211
+ _a.label = 3;
212
+ case 3:
213
+ _i++;
214
+ return [3 /*break*/, 1];
215
+ case 4:
216
+ if (prevModal) {
217
+ setTimeout(function () {
218
+ modalCtx.toggleModal(prevModal, false, {});
219
+ });
220
+ }
221
+ res = __assign(__assign({}, results), { overall: Object.values(results).every(function (x) { return x === 'granted'; }) ? 'granted' : 'denied' });
222
+ onResolve(res);
223
+ return [2 /*return*/, res];
224
+ }
225
+ });
226
+ }); };
227
+ return __assign({ askPermission: askPermission, askMany: askMany }, permissionCtx);
228
+ };
229
+ exports.usePermissions = usePermissions;
230
+ function usePermissionModal(permissionName) {
231
+ var modalId = "permissions.".concat(permissionName);
232
+ var modals = mobile_1.ModalManager.useModalContext();
233
+ var permissionCtx = (0, exports.usePermissions)();
234
+ var modalState = modals.state[modalId];
235
+ var currentState = permissionCtx.state[permissionName];
236
+ var status = currentState;
237
+ var _a = (0, common_1.useDebounce)(status, modals.transitionDuration * 0.5), debouncedStatus = _a[0], reset = _a[1];
238
+ function getConfig(withStatus) {
239
+ var _a;
240
+ return __assign(__assign({}, permissionCtx.modalConfig[permissionName]), (_a = permissionCtx.modalConfig[permissionName]) === null || _a === void 0 ? void 0 : _a[withStatus]);
241
+ }
242
+ var config = getConfig(debouncedStatus);
243
+ function onPermissionResolve(_status) {
244
+ var _a, _b;
245
+ (_b = (_a = modalState === null || modalState === void 0 ? void 0 : modalState.props) === null || _a === void 0 ? void 0 : _a.onPermissionResolve) === null || _b === void 0 ? void 0 : _b.call(_a, _status || status);
246
+ }
247
+ (0, common_1.onUpdate)(function () {
248
+ if ((modalState === null || modalState === void 0 ? void 0 : modalState.visible) && !!status) {
249
+ if (status === 'granted') {
250
+ reset();
251
+ onPermissionResolve();
252
+ }
253
+ else {
254
+ if (!(0, common_1.deepEqual)(config, getConfig(status))) {
255
+ modals.transition(modalId, modalId, {
256
+ props: modalState === null || modalState === void 0 ? void 0 : modalState.props,
257
+ });
258
+ }
259
+ }
260
+ }
261
+ }, [status, modalState === null || modalState === void 0 ? void 0 : modalState.visible]);
262
+ function onAllow() {
263
+ return __awaiter(this, void 0, void 0, function () {
264
+ var _a, newStatus;
265
+ return __generator(this, function (_b) {
266
+ switch (_b.label) {
267
+ case 0:
268
+ _a = config.onAllow;
269
+ switch (_a) {
270
+ case 'ask': return [3 /*break*/, 1];
271
+ case 'openSettings': return [3 /*break*/, 3];
272
+ }
273
+ return [3 /*break*/, 3];
274
+ case 1: return [4 /*yield*/, permissionCtx.manager.get(permissionName, {
275
+ ask: true,
276
+ askOnDenied: true,
277
+ askOnPending: true,
278
+ })];
279
+ case 2:
280
+ newStatus = _b.sent();
281
+ if (!newStatus.isGranted) {
282
+ onPermissionResolve(newStatus.status);
283
+ }
284
+ return [3 /*break*/, 4];
285
+ case 3:
286
+ react_native_1.Linking.openSettings();
287
+ return [3 /*break*/, 4];
288
+ case 4: return [2 /*return*/];
289
+ }
290
+ });
291
+ });
292
+ }
293
+ function onDeny() {
294
+ onPermissionResolve();
295
+ }
296
+ return {
297
+ onAllow: onAllow,
298
+ onDeny: onDeny,
299
+ modalId: modalId,
300
+ permissionName: permissionName,
301
+ modalState: __assign({}, modalState),
302
+ currentState: currentState,
303
+ config: config,
304
+ };
305
+ }
306
+ exports.usePermissionModal = usePermissionModal;
307
+ function createTypedPermissionHooks(configuration) {
308
+ var _usePermissions = exports.usePermissions;
309
+ var _usePermissionModal = usePermissionModal;
310
+ return {
311
+ usePermissions: _usePermissions,
312
+ usePermissionModal: _usePermissionModal,
313
+ };
314
+ }
315
+ exports.createTypedPermissionHooks = createTypedPermissionHooks;
316
316
  //# sourceMappingURL=context.js.map
@@ -1,4 +1,4 @@
1
- import { usePermissions, Provider, createTypedPermissionHooks, usePermissionModal } from './context';
2
- import { PermissionConfig, PermissionModalsConfig } from './types';
3
- export { usePermissions, Provider, usePermissionModal, createTypedPermissionHooks, };
4
- export type { PermissionConfig, PermissionModalsConfig, };
1
+ import { usePermissions, Provider, createTypedPermissionHooks, usePermissionModal } from './context';
2
+ import { PermissionConfig, PermissionModalsConfig } from './types';
3
+ export { usePermissions, Provider, usePermissionModal, createTypedPermissionHooks, };
4
+ export type { PermissionConfig, PermissionModalsConfig, };