@codeleap/mobile 5.8.21 → 6.1.2

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 (326) hide show
  1. package/dist/Registry.js.map +1 -1
  2. package/dist/components/ActionIcon/index.d.ts +2 -3
  3. package/dist/components/ActionIcon/index.js +5 -11
  4. package/dist/components/ActionIcon/index.js.map +1 -1
  5. package/dist/components/ActivityIndicator/index.d.ts +2 -2
  6. package/dist/components/ActivityIndicator/index.js +2 -2
  7. package/dist/components/ActivityIndicator/index.js.map +1 -1
  8. package/dist/components/ActivityIndicator/types.d.ts +0 -1
  9. package/dist/components/Autocomplete/index.d.ts +2 -3
  10. package/dist/components/Autocomplete/index.js +15 -18
  11. package/dist/components/Autocomplete/index.js.map +1 -1
  12. package/dist/components/Autocomplete/types.d.ts +1 -2
  13. package/dist/components/Avatar/components/Badge.d.ts +1 -2
  14. package/dist/components/Avatar/components/Badge.js +2 -2
  15. package/dist/components/Avatar/components/Badge.js.map +1 -1
  16. package/dist/components/Avatar/components/Content.d.ts +1 -1
  17. package/dist/components/Avatar/components/Content.js +3 -7
  18. package/dist/components/Avatar/components/Content.js.map +1 -1
  19. package/dist/components/Avatar/components/Illustration.d.ts +1 -2
  20. package/dist/components/Avatar/components/Illustration.js +2 -5
  21. package/dist/components/Avatar/components/Illustration.js.map +1 -1
  22. package/dist/components/Avatar/components/OverlayIcon.d.ts +1 -2
  23. package/dist/components/Avatar/components/OverlayIcon.js +2 -3
  24. package/dist/components/Avatar/components/OverlayIcon.js.map +1 -1
  25. package/dist/components/Avatar/components/Text.d.ts +1 -2
  26. package/dist/components/Avatar/components/Text.js +2 -1
  27. package/dist/components/Avatar/components/Text.js.map +1 -1
  28. package/dist/components/Avatar/components/Wrapper.d.ts +1 -2
  29. package/dist/components/Avatar/components/Wrapper.js +3 -6
  30. package/dist/components/Avatar/components/Wrapper.js.map +1 -1
  31. package/dist/components/Avatar/context.d.ts +108 -111
  32. package/dist/components/Avatar/context.js.map +1 -1
  33. package/dist/components/Avatar/index.d.ts +6 -7
  34. package/dist/components/Avatar/index.js +2 -6
  35. package/dist/components/Avatar/index.js.map +1 -1
  36. package/dist/components/AvatarGroup/index.d.ts +2 -3
  37. package/dist/components/AvatarGroup/index.js +2 -4
  38. package/dist/components/AvatarGroup/index.js.map +1 -1
  39. package/dist/components/Backdrop/index.d.ts +2 -3
  40. package/dist/components/Backdrop/index.js +4 -8
  41. package/dist/components/Backdrop/index.js.map +1 -1
  42. package/dist/components/Badge/index.d.ts +2 -3
  43. package/dist/components/Badge/index.js +5 -9
  44. package/dist/components/Badge/index.js.map +1 -1
  45. package/dist/components/Badge/types.d.ts +1 -2
  46. package/dist/components/Button/index.js +3 -9
  47. package/dist/components/Button/index.js.map +1 -1
  48. package/dist/components/Calendar/index.d.ts +2 -3
  49. package/dist/components/Calendar/index.js +5 -4
  50. package/dist/components/Calendar/index.js.map +1 -1
  51. package/dist/components/CalendarInput/index.d.ts +2 -3
  52. package/dist/components/CalendarInput/index.js +11 -12
  53. package/dist/components/CalendarInput/index.js.map +1 -1
  54. package/dist/components/Checkbox/index.d.ts +2 -3
  55. package/dist/components/Checkbox/index.js +9 -15
  56. package/dist/components/Checkbox/index.js.map +1 -1
  57. package/dist/components/Collapse/index.d.ts +6 -0
  58. package/dist/components/Collapse/index.js +42 -0
  59. package/dist/components/Collapse/index.js.map +1 -0
  60. package/dist/components/Collapse/types.d.ts +14 -0
  61. package/dist/components/Collapse/types.js.map +1 -0
  62. package/dist/components/DatePickerModal/index.d.ts +2 -3
  63. package/dist/components/DatePickerModal/index.js +13 -21
  64. package/dist/components/DatePickerModal/index.js.map +1 -1
  65. package/dist/components/EmptyPlaceholder/components/Button.d.ts +1 -2
  66. package/dist/components/EmptyPlaceholder/components/Button.js +2 -2
  67. package/dist/components/EmptyPlaceholder/components/Button.js.map +1 -1
  68. package/dist/components/EmptyPlaceholder/components/Content.d.ts +1 -1
  69. package/dist/components/EmptyPlaceholder/components/Content.js +6 -8
  70. package/dist/components/EmptyPlaceholder/components/Content.js.map +1 -1
  71. package/dist/components/EmptyPlaceholder/components/Illustration.d.ts +1 -2
  72. package/dist/components/EmptyPlaceholder/components/Illustration.js +2 -5
  73. package/dist/components/EmptyPlaceholder/components/Illustration.js.map +1 -1
  74. package/dist/components/EmptyPlaceholder/components/Info.d.ts +1 -2
  75. package/dist/components/EmptyPlaceholder/components/Info.js +2 -5
  76. package/dist/components/EmptyPlaceholder/components/Info.js.map +1 -1
  77. package/dist/components/EmptyPlaceholder/components/Loading.d.ts +1 -2
  78. package/dist/components/EmptyPlaceholder/components/Loading.js +3 -4
  79. package/dist/components/EmptyPlaceholder/components/Loading.js.map +1 -1
  80. package/dist/components/EmptyPlaceholder/context.d.ts +4 -5
  81. package/dist/components/EmptyPlaceholder/context.js.map +1 -1
  82. package/dist/components/EmptyPlaceholder/index.d.ts +5 -6
  83. package/dist/components/EmptyPlaceholder/index.js +2 -6
  84. package/dist/components/EmptyPlaceholder/index.js.map +1 -1
  85. package/dist/components/FileInput/index.d.ts +1 -1
  86. package/dist/components/FileInput/index.js +1 -1
  87. package/dist/components/FileInput/index.js.map +1 -1
  88. package/dist/components/Grid/index.js +11 -10
  89. package/dist/components/Grid/index.js.map +1 -1
  90. package/dist/components/Grid/types.d.ts +0 -1
  91. package/dist/components/Icon/index.d.ts +1 -2
  92. package/dist/components/Icon/index.js +3 -5
  93. package/dist/components/Icon/index.js.map +1 -1
  94. package/dist/components/Image/index.js +9 -15
  95. package/dist/components/Image/index.js.map +1 -1
  96. package/dist/components/Image/types.d.ts +1 -2
  97. package/dist/components/ImageView/Spotlight.d.ts +4 -4
  98. package/dist/components/ImageView/Spotlight.js +4 -5
  99. package/dist/components/ImageView/Spotlight.js.map +1 -1
  100. package/dist/components/ImageView/component.d.ts +1 -2
  101. package/dist/components/ImageView/component.js +4 -2
  102. package/dist/components/ImageView/component.js.map +1 -1
  103. package/dist/components/InputBase/index.js +3 -16
  104. package/dist/components/InputBase/index.js.map +1 -1
  105. package/dist/components/InputBase/types.d.ts +3 -4
  106. package/dist/components/InputBase/useInputBase.d.ts +2 -3
  107. package/dist/components/InputBase/useInputBase.js +1 -1
  108. package/dist/components/InputBase/useInputBase.js.map +1 -1
  109. package/dist/components/InputBase/useInputBasePartialStyles.js.map +1 -1
  110. package/dist/components/InputOverlay/index.d.ts +3 -4
  111. package/dist/components/InputOverlay/index.js +6 -21
  112. package/dist/components/InputOverlay/index.js.map +1 -1
  113. package/dist/components/InputOverlay/store.js.map +1 -1
  114. package/dist/components/List/index.js +5 -4
  115. package/dist/components/List/index.js.map +1 -1
  116. package/dist/components/List/types.d.ts +0 -1
  117. package/dist/components/LoadingOverlay/index.d.ts +2 -3
  118. package/dist/components/LoadingOverlay/index.js +5 -7
  119. package/dist/components/LoadingOverlay/index.js.map +1 -1
  120. package/dist/components/Modal/index.d.ts +2 -3
  121. package/dist/components/Modal/index.js +13 -39
  122. package/dist/components/Modal/index.js.map +1 -1
  123. package/dist/components/Modal/types.d.ts +0 -1
  124. package/dist/components/NumberIncrement/index.js +5 -7
  125. package/dist/components/NumberIncrement/index.js.map +1 -1
  126. package/dist/components/NumberIncrement/useNumberIncrement.d.ts +3 -4
  127. package/dist/components/NumberIncrement/useNumberIncrement.js.map +1 -1
  128. package/dist/components/Pager/PagerDots.d.ts +1 -2
  129. package/dist/components/Pager/PagerDots.js +3 -6
  130. package/dist/components/Pager/PagerDots.js.map +1 -1
  131. package/dist/components/Pager/PagerItem.d.ts +1 -2
  132. package/dist/components/Pager/PagerItem.js +3 -2
  133. package/dist/components/Pager/PagerItem.js.map +1 -1
  134. package/dist/components/Pager/index.d.ts +2 -3
  135. package/dist/components/Pager/index.js +9 -16
  136. package/dist/components/Pager/index.js.map +1 -1
  137. package/dist/components/Pager/types.d.ts +2 -2
  138. package/dist/components/PaginationIndicator/index.d.ts +2 -3
  139. package/dist/components/PaginationIndicator/index.js +3 -3
  140. package/dist/components/PaginationIndicator/index.js.map +1 -1
  141. package/dist/components/PaginationIndicator/types.d.ts +2 -3
  142. package/dist/components/PlacesAutocomplete/index.d.ts +6 -7
  143. package/dist/components/PlacesAutocomplete/index.js +11 -17
  144. package/dist/components/PlacesAutocomplete/index.js.map +1 -1
  145. package/dist/components/PlacesAutocomplete/types.d.ts +3 -4
  146. package/dist/components/RadioInput/index.d.ts +2 -3
  147. package/dist/components/RadioInput/index.js +4 -22
  148. package/dist/components/RadioInput/index.js.map +1 -1
  149. package/dist/components/RefreshControl/index.d.ts +2 -3
  150. package/dist/components/RefreshControl/index.js +2 -2
  151. package/dist/components/RefreshControl/index.js.map +1 -1
  152. package/dist/components/Scroll/index.d.ts +2 -3
  153. package/dist/components/Scroll/index.js +9 -12
  154. package/dist/components/Scroll/index.js.map +1 -1
  155. package/dist/components/SearchInput/index.d.ts +7 -4
  156. package/dist/components/SearchInput/index.js +4 -3
  157. package/dist/components/SearchInput/index.js.map +1 -1
  158. package/dist/components/SectionFilters/context.d.ts +3 -24
  159. package/dist/components/SectionFilters/index.d.ts +1 -2
  160. package/dist/components/SectionFilters/index.js +5 -7
  161. package/dist/components/SectionFilters/index.js.map +1 -1
  162. package/dist/components/SectionFilters/useSectionFilters.js.map +1 -1
  163. package/dist/components/Sections/index.d.ts +2 -3
  164. package/dist/components/Sections/index.js +5 -4
  165. package/dist/components/Sections/index.js.map +1 -1
  166. package/dist/components/Sections/types.d.ts +0 -1
  167. package/dist/components/SegmentedControl/Option.d.ts +1 -1
  168. package/dist/components/SegmentedControl/Option.js +7 -13
  169. package/dist/components/SegmentedControl/Option.js.map +1 -1
  170. package/dist/components/SegmentedControl/index.js +16 -26
  171. package/dist/components/SegmentedControl/index.js.map +1 -1
  172. package/dist/components/SegmentedControl/types.d.ts +2 -3
  173. package/dist/components/Select/index.d.ts +2 -3
  174. package/dist/components/Select/index.js +20 -25
  175. package/dist/components/Select/index.js.map +1 -1
  176. package/dist/components/Select/types.d.ts +2 -3
  177. package/dist/components/Slider/index.d.ts +2 -3
  178. package/dist/components/Slider/index.js +23 -38
  179. package/dist/components/Slider/index.js.map +1 -1
  180. package/dist/components/Slider/types.d.ts +0 -1
  181. package/dist/components/SortablePhotos/index.d.ts +2 -3
  182. package/dist/components/SortablePhotos/index.js +7 -18
  183. package/dist/components/SortablePhotos/index.js.map +1 -1
  184. package/dist/components/SortablePhotos/useSortablePhotos.d.ts +0 -2
  185. package/dist/components/SortablePhotos/useSortablePhotos.js.map +1 -1
  186. package/dist/components/Switch/index.d.ts +2 -3
  187. package/dist/components/Switch/index.js +9 -13
  188. package/dist/components/Switch/index.js.map +1 -1
  189. package/dist/components/Tabs/Context.d.ts +2 -3
  190. package/dist/components/Tabs/Context.js +2 -1
  191. package/dist/components/Tabs/Context.js.map +1 -1
  192. package/dist/components/Tabs/Panel.d.ts +1 -1
  193. package/dist/components/Tabs/Panel.js +3 -5
  194. package/dist/components/Tabs/Panel.js.map +1 -1
  195. package/dist/components/Tabs/Tab.d.ts +1 -2
  196. package/dist/components/Tabs/Tab.js +12 -16
  197. package/dist/components/Tabs/Tab.js.map +1 -1
  198. package/dist/components/Tabs/TabList.d.ts +1 -2
  199. package/dist/components/Tabs/TabList.js +2 -1
  200. package/dist/components/Tabs/TabList.js.map +1 -1
  201. package/dist/components/Tabs/index.d.ts +197 -192
  202. package/dist/components/Tabs/index.js +2 -6
  203. package/dist/components/Tabs/index.js.map +1 -1
  204. package/dist/components/Text/index.js +5 -7
  205. package/dist/components/Text/index.js.map +1 -1
  206. package/dist/components/Text/types.d.ts +2 -2
  207. package/dist/components/TextInput/index.js +13 -14
  208. package/dist/components/TextInput/index.js.map +1 -1
  209. package/dist/components/TextInput/types.d.ts +0 -1
  210. package/dist/components/TextInput/useTextInput.d.ts +2 -3
  211. package/dist/components/TimeInput/index.d.ts +2 -3
  212. package/dist/components/TimeInput/index.js +8 -12
  213. package/dist/components/TimeInput/index.js.map +1 -1
  214. package/dist/components/Touchable/index.js +5 -10
  215. package/dist/components/Touchable/index.js.map +1 -1
  216. package/dist/components/Touchable/types.d.ts +0 -1
  217. package/dist/components/View/index.d.ts +4 -6
  218. package/dist/components/View/index.js +4 -3
  219. package/dist/components/View/index.js.map +1 -1
  220. package/dist/components/View/types.d.ts +2 -3
  221. package/dist/components/components.d.ts +1 -0
  222. package/dist/components/components.js +1 -0
  223. package/dist/components/components.js.map +1 -1
  224. package/dist/index.d.ts +0 -1
  225. package/dist/index.js +0 -1
  226. package/dist/index.js.map +1 -1
  227. package/dist/modules/PressableRipple/ripple.d.ts +2 -2
  228. package/dist/modules/PressableRipple/ripple.js +4 -11
  229. package/dist/modules/PressableRipple/ripple.js.map +1 -1
  230. package/dist/modules/PressableRipple/styles.d.ts +5 -5
  231. package/dist/modules/backgroundTimer.js.map +1 -1
  232. package/dist/modules/reactNavigation.js.map +1 -1
  233. package/dist/modules/scroll.d.ts +3 -3
  234. package/dist/modules/scroll.js +3 -4
  235. package/dist/modules/scroll.js.map +1 -1
  236. package/dist/modules/textInputMask.d.ts +1 -2
  237. package/dist/types/index.d.ts +2 -3
  238. package/dist/types/utility.d.ts +2 -2
  239. package/dist/utils/NotificationManager/index.js.map +1 -1
  240. package/dist/utils/OSAlert.js.map +1 -1
  241. package/dist/utils/StorageManager.js.map +1 -1
  242. package/dist/utils/Subscription.js.map +1 -1
  243. package/dist/utils/hooks.d.ts +3 -3
  244. package/dist/utils/hooks.js.map +1 -1
  245. package/dist/utils/input.d.ts +1 -1
  246. package/dist/utils/input.js.map +1 -1
  247. package/dist/utils/misc.d.ts +0 -1
  248. package/dist/utils/misc.js.map +1 -1
  249. package/dist/utils/useQueryListRefresh.js.map +1 -1
  250. package/package.json +30 -32
  251. package/package.json.bak +14 -16
  252. package/src/components/Autocomplete/types.ts +1 -1
  253. package/src/components/Badge/types.ts +1 -1
  254. package/src/components/Collapse/index.tsx +70 -0
  255. package/src/components/Collapse/types.ts +16 -0
  256. package/src/components/FileInput/index.tsx +2 -2
  257. package/src/components/Image/types.ts +1 -1
  258. package/src/components/ImageView/Spotlight.tsx +2 -2
  259. package/src/components/ImageView/component.tsx +1 -0
  260. package/src/components/InputBase/types.ts +3 -3
  261. package/src/components/InputBase/useInputBase.ts +1 -1
  262. package/src/components/Pager/PagerItem.tsx +1 -1
  263. package/src/components/Pager/index.tsx +1 -0
  264. package/src/components/Pager/types.ts +1 -1
  265. package/src/components/PaginationIndicator/types.ts +2 -2
  266. package/src/components/PlacesAutocomplete/types.ts +3 -3
  267. package/src/components/Scroll/index.tsx +1 -1
  268. package/src/components/SearchInput/index.tsx +7 -3
  269. package/src/components/SectionFilters/index.tsx +1 -1
  270. package/src/components/SegmentedControl/types.ts +2 -2
  271. package/src/components/Select/types.ts +2 -2
  272. package/src/components/Slider/index.tsx +1 -0
  273. package/src/components/Text/types.ts +2 -2
  274. package/src/components/View/index.tsx +1 -1
  275. package/src/components/View/types.ts +2 -2
  276. package/src/components/components.ts +2 -1
  277. package/src/index.ts +0 -1
  278. package/src/modules/scroll.tsx +1 -1
  279. package/src/types/index.ts +2 -2
  280. package/src/types/utility.ts +2 -2
  281. package/src/utils/hooks.ts +3 -3
  282. package/dist/deprecated/index.d.ts +0 -2
  283. package/dist/deprecated/index.js +0 -5
  284. package/dist/deprecated/index.js.map +0 -1
  285. package/dist/deprecated/modals/Context.d.ts +0 -48
  286. package/dist/deprecated/modals/Context.js +0 -187
  287. package/dist/deprecated/modals/Context.js.map +0 -1
  288. package/dist/deprecated/modals/components.d.ts +0 -15
  289. package/dist/deprecated/modals/components.js +0 -53
  290. package/dist/deprecated/modals/components.js.map +0 -1
  291. package/dist/deprecated/modals/index.d.ts +0 -10
  292. package/dist/deprecated/modals/index.js +0 -9
  293. package/dist/deprecated/modals/index.js.map +0 -1
  294. package/dist/deprecated/permissions/Context.d.ts +0 -53
  295. package/dist/deprecated/permissions/Context.js +0 -208
  296. package/dist/deprecated/permissions/Context.js.map +0 -1
  297. package/dist/deprecated/permissions/index.d.ts +0 -5
  298. package/dist/deprecated/permissions/index.js +0 -4
  299. package/dist/deprecated/permissions/index.js.map +0 -1
  300. package/dist/deprecated/permissions/package/Manager.d.ts +0 -23
  301. package/dist/deprecated/permissions/package/Manager.js +0 -84
  302. package/dist/deprecated/permissions/package/Manager.js.map +0 -1
  303. package/dist/deprecated/permissions/package/Permission.d.ts +0 -19
  304. package/dist/deprecated/permissions/package/Permission.js +0 -65
  305. package/dist/deprecated/permissions/package/Permission.js.map +0 -1
  306. package/dist/deprecated/permissions/package/index.d.ts +0 -3
  307. package/dist/deprecated/permissions/package/index.js +0 -5
  308. package/dist/deprecated/permissions/package/index.js.map +0 -1
  309. package/dist/deprecated/permissions/package/types.d.ts +0 -31
  310. package/dist/deprecated/permissions/package/types.js +0 -2
  311. package/dist/deprecated/permissions/package/types.js.map +0 -1
  312. package/dist/deprecated/permissions/types.d.ts +0 -16
  313. package/dist/deprecated/permissions/types.js.map +0 -1
  314. package/mobile-packages.code-workspace +0 -27
  315. package/src/deprecated/index.ts +0 -2
  316. package/src/deprecated/modals/Context.tsx +0 -259
  317. package/src/deprecated/modals/components.tsx +0 -84
  318. package/src/deprecated/modals/index.ts +0 -13
  319. package/src/deprecated/permissions/Context.tsx +0 -316
  320. package/src/deprecated/permissions/index.ts +0 -16
  321. package/src/deprecated/permissions/package/Manager.ts +0 -123
  322. package/src/deprecated/permissions/package/Permission.ts +0 -79
  323. package/src/deprecated/permissions/package/index.ts +0 -3
  324. package/src/deprecated/permissions/package/types.ts +0 -43
  325. package/src/deprecated/permissions/types.ts +0 -27
  326. /package/dist/{deprecated/permissions → components/Collapse}/types.js +0 -0
@@ -1,123 +0,0 @@
1
- import { Permission } from './Permission'
2
- import * as PermissionTypes from './types'
3
-
4
- export class PermissionManager<
5
- T extends PermissionTypes.PermissionActionRecord,
6
- I extends PermissionTypes.IPermissionManager<T> = PermissionTypes.IPermissionManager<T>
7
- > implements PermissionTypes.IPermissionManager<T> {
8
- private _permissions: Record<keyof T, Permission>
9
-
10
- subscriberArgs: Parameters<PermissionTypes.ChangeListener<T>>
11
-
12
- private subscribers: PermissionTypes.ChangeListener<T>[]
13
-
14
- private permSubscribers: Record<keyof T, PermissionTypes.PermissionSubscriber[]>
15
-
16
- public _perms: T
17
-
18
- public opts: I
19
-
20
- private params: T
21
-
22
- public permissions: {
23
- [Property in keyof T as Uppercase<string & Property>]: Property
24
- }
25
-
26
- logger
27
-
28
- constructor(perms: T, options?: PermissionTypes.PermissionManagerOptions) {
29
- this.params = perms
30
- // @ts-ignore
31
- this._permissions = {}
32
- // @ts-ignore
33
- this.permissions = {}
34
-
35
- this.logger = options?.logger
36
- this.permSubscribers = {} as typeof this.permSubscribers
37
-
38
- for (const [permName, actions] of Object.entries(this.params)) {
39
- const name = permName as keyof T
40
- this._permissions[name] = new Permission({ ...actions, log: this.logger?.log || (() => null) }, permName)
41
-
42
- this.permSubscribers[name] = []
43
-
44
- // @ts-ignore
45
- this.permissions[(name as string).toUpperCase()] = name
46
- }
47
-
48
- this.subscribers = []
49
- }
50
-
51
- get values() {
52
- return this._permissions as unknown as Record<keyof T, PermissionTypes.PermissionState>
53
- }
54
-
55
- private async check(name: keyof T, options?: PermissionTypes.CheckOptions): Promise<PermissionTypes.PermissionState> {
56
- const previousStatus = this._permissions[name].status
57
-
58
- await this._permissions[name].check(options)
59
-
60
- if (this._permissions[name].status !== previousStatus) {
61
- this.permSubscribers[name].forEach(sub => sub(this._permissions[name]))
62
- this.subscribers.forEach(sub => sub(name, this._permissions[name]))
63
- }
64
- return this._permissions[name]
65
- }
66
-
67
- getMany: I['getMany'] = async (perms, options) => {
68
-
69
- const results = []
70
-
71
- for (const p of perms) {
72
- const isArray = Array.isArray(p)
73
- const name = isArray ? p[0] : p
74
- const opts = isArray ? p[1] : options
75
-
76
- results.push(await this.check(name, opts))
77
- }
78
-
79
- return results
80
- }
81
-
82
- // @ts-ignore
83
- get: I['get'] = async (name, options) => {
84
- return await this.check(name, options)
85
- }
86
-
87
- onPermissionChange(name: keyof T, callback: PermissionTypes.PermissionSubscriber) {
88
- const subIdx = this.permSubscribers[name].push(callback) - 1
89
-
90
- return () => {
91
- this.permSubscribers[name].splice(subIdx, 1)
92
- }
93
- }
94
-
95
- onChange(callback: PermissionTypes.ChangeListener<T>) {
96
- const subIdx = this.subscribers.push(callback) - 1
97
-
98
- return () => {
99
- this.subscribers.splice(subIdx, 1)
100
- }
101
- }
102
-
103
- getState() {
104
- const state = {}
105
-
106
- for (const [p, { ask: _ig2, check: _ig1, ...values }] of Object.entries(this._permissions)) {
107
- state[p] = { ...values }
108
- }
109
-
110
- return state as Record<keyof T, PermissionTypes.PermissionState>
111
- }
112
-
113
- async update() {
114
- const res = {} as Record<keyof T, PermissionTypes.PermissionState>
115
- for (const p of Object.keys(this._permissions)) {
116
- res[p as keyof T] = await this.check(p, {
117
- ask: false,
118
- })
119
- }
120
- return res
121
- }
122
-
123
- }
@@ -1,79 +0,0 @@
1
- import { AnyFunction } from '@codeleap/types'
2
- import * as PermissionTypes from './types'
3
-
4
- const SCOPE = 'Permissions'
5
-
6
- export class Permission implements PermissionTypes.IPermission {
7
- status: PermissionTypes.PermissionStatus
8
-
9
- shouldAsk: boolean
10
-
11
- constructor(private actions: PermissionTypes.PermissionActions & { log?: AnyFunction }, public name = '') {
12
- this.actions = actions
13
- this.shouldAsk = true
14
- this.status = 'pending'
15
-
16
- }
17
-
18
- async ask(): Promise<void> {
19
- const newState = await this.actions.onAsk()
20
- this.actions.log(`Request for permission ${this.name} returned`, newState, SCOPE)
21
- this.status = newState
22
-
23
- if (newState === 'blocked') {
24
- this.shouldAsk = false
25
- }
26
- }
27
-
28
- async check(options?: PermissionTypes.CheckOptions): Promise<void> {
29
- const _options: PermissionTypes.CheckOptions = {
30
- askOnPending: true,
31
- askOnDenied: false,
32
- ask: true,
33
- ...options,
34
- }
35
-
36
- this.status = await this.actions.onCheck()
37
- this.actions.log(`Check for permission ${this.name} returned`, this.status, SCOPE)
38
- if (!_options.ask) return
39
-
40
- switch (this.status) {
41
- case 'denied':
42
- if (_options.askOnDenied) {
43
- await this.ask()
44
- }
45
- break
46
- case 'pending':
47
- if (_options.askOnPending) {
48
- await this.ask()
49
- }
50
- break
51
- }
52
- }
53
-
54
- get isGranted() {
55
- return this.status === 'granted'
56
- }
57
-
58
- get isDenied() {
59
- return this.status === 'denied'
60
- }
61
-
62
- get isPending() {
63
- return this.status === 'pending'
64
- }
65
-
66
- get isBlocked() {
67
- return this.status === 'blocked'
68
- }
69
-
70
- get isUnavailable() {
71
- return this.status === 'unavailable'
72
-
73
- }
74
-
75
- get isLimited() {
76
- return this.status === 'limited'
77
-
78
- }
79
- }
@@ -1,3 +0,0 @@
1
- export * as PermissionTypes from './types'
2
- export * from './Permission'
3
- export * from './Manager'
@@ -1,43 +0,0 @@
1
- import { FunctionType } from '@codeleap/types'
2
-
3
- export const permissionStatuses = ['unavailable', 'pending', 'denied', 'limited', 'granted', 'blocked'] as const
4
- export type PermissionStatus = typeof permissionStatuses[number]
5
-
6
- export type PermissionState = {
7
- status: PermissionStatus
8
- shouldAsk: boolean
9
-
10
- } & Record<`is${Capitalize<PermissionStatus>}`, boolean>
11
-
12
- export type CheckOptions = {
13
- askOnPending?: boolean
14
- askOnDenied?: boolean
15
- ask?: boolean
16
-
17
- }
18
-
19
- export type IPermission = {
20
- ask(): Promise<void>
21
- check(options?: CheckOptions): Promise<void>
22
-
23
- } & PermissionState
24
-
25
- export type PermFunction = FunctionType<[], Promise<PermissionStatus>>
26
-
27
- export type PermissionActions = Record<'onAsk' | 'onCheck', PermFunction> & { init?: 'check' | PermissionState }
28
-
29
- export type PermissionActionRecord = Record<string, PermissionActions>
30
-
31
- export interface IPermissionManager<T extends PermissionActionRecord> {
32
- getMany(perms: PermissionArray<T>, options?: CheckOptions): Promise<PermissionState[]>
33
- get(name: keyof T, options?: CheckOptions): Promise<PermissionState>
34
- }
35
-
36
- export type ChangeListener<T> = FunctionType<[keyof T, PermissionState], any>
37
- export type PermissionSubscriber = FunctionType<[PermissionState], any>
38
-
39
- export type PermissionArray<T> = ([name: keyof T, options: CheckOptions])[] | (keyof T)[]
40
-
41
- export type PermissionManagerOptions = {
42
- logger?: any
43
- }
@@ -1,27 +0,0 @@
1
- import { ImageProps } from '../../components/Image'
2
- import { PermissionTypes } from './package'
3
- type NonGrantedPermissionTypes = Exclude<PermissionTypes.PermissionStatus, 'granted'>
4
-
5
- export type BasePermissionConfig = {
6
- fullscreenModal?: boolean
7
- dismissable?: boolean
8
- title: string
9
- onAllow: 'openSettings' | 'ask'
10
-
11
- description: string[]
12
- icon?: string
13
- image?: ImageProps['source']
14
- imageProps?: Omit<ImageProps, 'source'>
15
- }
16
-
17
- export type PermissionConfig = BasePermissionConfig &
18
- Partial<
19
- Record<
20
- NonGrantedPermissionTypes,
21
- Partial<BasePermissionConfig>
22
- >
23
- >
24
-
25
- export type PermissionModalsConfig<PermissionNames extends string | number | symbol> = Partial<
26
- Record<PermissionNames, PermissionConfig>
27
- >