bx-rest 0.4.18 → 0.5.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 (455) hide show
  1. package/README.md +15 -26
  2. package/consts/part-name-methods.d.ts +98 -98
  3. package/consts/time.d.ts +3 -3
  4. package/esm2022/bx-rest.mjs +4 -4
  5. package/esm2022/consts/part-name-methods.mjs +99 -99
  6. package/esm2022/consts/time.mjs +3 -3
  7. package/esm2022/functions/mapResult.mjs +10 -10
  8. package/esm2022/map/app.mjs +18 -18
  9. package/esm2022/map/base.mjs +13 -13
  10. package/esm2022/map/calendar/event.mjs +54 -54
  11. package/esm2022/map/calendar.mjs +17 -17
  12. package/esm2022/map/department.mjs +34 -34
  13. package/esm2022/map/disk/attachedObject.mjs +26 -26
  14. package/esm2022/map/disk/base.mjs +77 -77
  15. package/esm2022/map/disk/file.mjs +19 -19
  16. package/esm2022/map/disk/folder.mjs +16 -16
  17. package/esm2022/map/disk/storage.mjs +19 -19
  18. package/esm2022/map/lists/element.mjs +23 -23
  19. package/esm2022/map/lists/field.mjs +15 -15
  20. package/esm2022/map/lists.mjs +74 -75
  21. package/esm2022/map/log/blogpost.mjs +82 -82
  22. package/esm2022/map/log.mjs +17 -17
  23. package/esm2022/map/rest.mjs +16 -16
  24. package/esm2022/map/server.mjs +16 -16
  25. package/esm2022/map/sonet_group.mjs +33 -33
  26. package/esm2022/map/task/commentitem.mjs +54 -54
  27. package/esm2022/map/task/elapseditem.mjs +33 -34
  28. package/esm2022/map/task/item/userfield.mjs +37 -37
  29. package/esm2022/map/task/planner.mjs +16 -16
  30. package/esm2022/map/task/stages.mjs +20 -20
  31. package/esm2022/map/task.mjs +21 -21
  32. package/esm2022/map/tasks/task/result.mjs +25 -25
  33. package/esm2022/map/tasks/task.mjs +145 -146
  34. package/esm2022/map/tasks.mjs +17 -17
  35. package/esm2022/map/timeman.mjs +37 -37
  36. package/esm2022/map/user.mjs +95 -99
  37. package/esm2022/map.mjs +33 -33
  38. package/esm2022/provide.mjs +14 -0
  39. package/esm2022/public-api.mjs +17 -15
  40. package/esm2022/request/app.mjs +24 -24
  41. package/esm2022/request/bizproc/activity.mjs +12 -12
  42. package/esm2022/request/bizproc/event.mjs +12 -12
  43. package/esm2022/request/bizproc/robot.mjs +12 -12
  44. package/esm2022/request/bizproc/task.mjs +12 -12
  45. package/esm2022/request/bizproc/workflow/instance.mjs +12 -12
  46. package/esm2022/request/bizproc/workflow/template.mjs +13 -13
  47. package/esm2022/request/bizproc/workflow.mjs +28 -26
  48. package/esm2022/request/bizproc.mjs +25 -25
  49. package/esm2022/request/calendar/event.mjs +22 -22
  50. package/esm2022/request/calendar.mjs +17 -17
  51. package/esm2022/request/department.mjs +36 -36
  52. package/esm2022/request/disk/attachedObject.mjs +22 -22
  53. package/esm2022/request/disk/file.mjs +25 -25
  54. package/esm2022/request/disk/folder.mjs +114 -114
  55. package/esm2022/request/disk/storage.mjs +45 -45
  56. package/esm2022/request/disk.mjs +21 -21
  57. package/esm2022/request/im/chat.mjs +22 -22
  58. package/esm2022/request/im.mjs +17 -17
  59. package/esm2022/request/lists/element.mjs +25 -25
  60. package/esm2022/request/lists/field.mjs +22 -22
  61. package/esm2022/request/lists.mjs +29 -26
  62. package/esm2022/request/log/blogcomment.mjs +12 -12
  63. package/esm2022/request/log/blogpost.mjs +25 -25
  64. package/esm2022/request/log.mjs +19 -19
  65. package/esm2022/request/server.mjs +22 -22
  66. package/esm2022/request/sonet_group.mjs +32 -32
  67. package/esm2022/request/task/commentitem.mjs +42 -42
  68. package/esm2022/request/task/elapseditem.mjs +44 -44
  69. package/esm2022/request/task/item/userfield.mjs +22 -22
  70. package/esm2022/request/task/item.mjs +17 -17
  71. package/esm2022/request/task/planner.mjs +21 -21
  72. package/esm2022/request/task.mjs +23 -23
  73. package/esm2022/request/tasks/task/result.mjs +28 -28
  74. package/esm2022/request/tasks/task.mjs +110 -110
  75. package/esm2022/request/tasks.mjs +17 -17
  76. package/esm2022/request/timeman.mjs +22 -22
  77. package/esm2022/request/user/userfield.mjs +22 -22
  78. package/esm2022/request/user.mjs +42 -42
  79. package/esm2022/request-navvy/app.mjs +27 -27
  80. package/esm2022/request-navvy/bizproc/workflow.mjs +25 -22
  81. package/esm2022/request-navvy/bizproc.mjs +62 -61
  82. package/esm2022/request-navvy/calendar/event.mjs +24 -24
  83. package/esm2022/request-navvy/calendar.mjs +52 -52
  84. package/esm2022/request-navvy/department.mjs +34 -34
  85. package/esm2022/request-navvy/disk/attachedObject.mjs +24 -24
  86. package/esm2022/request-navvy/disk/file.mjs +27 -27
  87. package/esm2022/request-navvy/disk/folder.mjs +116 -116
  88. package/esm2022/request-navvy/disk/interlayer/storage.mjs +60 -60
  89. package/esm2022/request-navvy/disk/operation.mjs +84 -84
  90. package/esm2022/request-navvy/disk/storage.mjs +51 -51
  91. package/esm2022/request-navvy/disk.mjs +23 -23
  92. package/esm2022/request-navvy/im/chat.mjs +22 -22
  93. package/esm2022/request-navvy/im.mjs +17 -17
  94. package/esm2022/request-navvy/lists/element.mjs +27 -27
  95. package/esm2022/request-navvy/lists/field.mjs +24 -24
  96. package/esm2022/request-navvy/lists.mjs +28 -28
  97. package/esm2022/request-navvy/log/blogcomment.mjs +18 -18
  98. package/esm2022/request-navvy/log/blogpost.mjs +29 -38
  99. package/esm2022/request-navvy/log.mjs +19 -19
  100. package/esm2022/request-navvy/server.mjs +24 -24
  101. package/esm2022/request-navvy/sonet_group.mjs +24 -24
  102. package/esm2022/request-navvy/task/commentitem.mjs +52 -52
  103. package/esm2022/request-navvy/task/delegate/elapseditem.mjs +37 -37
  104. package/esm2022/request-navvy/task/elapseditem.mjs +211 -211
  105. package/esm2022/request-navvy/task/item/userfield.mjs +24 -24
  106. package/esm2022/request-navvy/task/item.mjs +17 -17
  107. package/esm2022/request-navvy/task/operation/elapseditem.mjs +172 -159
  108. package/esm2022/request-navvy/task/planner.mjs +24 -24
  109. package/esm2022/request-navvy/task.mjs +23 -23
  110. package/esm2022/request-navvy/tasks/task/result.mjs +30 -30
  111. package/esm2022/request-navvy/tasks/task.mjs +128 -128
  112. package/esm2022/request-navvy/tasks.mjs +17 -17
  113. package/esm2022/request-navvy/timeman.mjs +24 -24
  114. package/esm2022/request-navvy/user/userfield.mjs +22 -22
  115. package/esm2022/request-navvy/user.mjs +161 -161
  116. package/esm2022/rest/base.mjs +51 -51
  117. package/esm2022/rest/map.mjs +17 -17
  118. package/esm2022/rest/navvy.mjs +62 -62
  119. package/esm2022/services/Navvy/NavvyAlternativePaginationNavigation.mjs +57 -57
  120. package/esm2022/services/Navvy/NavvyPagNav.mjs +40 -45
  121. package/esm2022/services/Navvy/NavvyPagNavTasks.mjs +40 -40
  122. package/esm2022/services/Navvy/NavvyPagNavWithUselessKey.mjs +58 -58
  123. package/esm2022/services/Navvy/NavvySimple.mjs +15 -15
  124. package/esm2022/services/Navvy/NavvySupport.mjs +16 -16
  125. package/esm2022/services/Navvy/extends/NavvyPagNavBase.mjs +30 -30
  126. package/esm2022/services/base.mjs +121 -173
  127. package/esm2022/services/http/HttpBX.mjs +121 -121
  128. package/esm2022/services/http/HttpData.mjs +116 -118
  129. package/esm2022/services/http/base/base.mjs +14 -27
  130. package/esm2022/services/http/http.mjs +61 -61
  131. package/esm2022/services/http/httpNavvy.mjs +24 -0
  132. package/esm2022/services/http/sessionKey.mjs +127 -216
  133. package/esm2022/services/navvy.mjs +29 -29
  134. package/esm2022/services/vanilla/localStorage.mjs +35 -35
  135. package/esm2022/services/vanilla/sessionStorage.mjs +23 -23
  136. package/esm2022/services/vanilla//321/201ookies.mjs +43 -43
  137. package/esm2022/settings.mjs +14 -15
  138. package/esm2022/typification/auth/save.mjs +2 -2
  139. package/esm2022/typification/base/all-key-free.mjs +1 -1
  140. package/esm2022/typification/base/answers.mjs +438 -0
  141. package/esm2022/typification/base/methods.mjs +664 -656
  142. package/esm2022/typification/base/modyfy.mjs +2 -2
  143. package/esm2022/typification/base/params.mjs +525 -0
  144. package/esm2022/typification/base/upper-case-keys.mjs +1 -1
  145. package/esm2022/typification/base/workpiece/methods-list.mjs +2 -2
  146. package/esm2022/typification/base/workpiece/methods.mjs +2 -2
  147. package/esm2022/typification/rest/app/info.mjs +1 -1
  148. package/esm2022/typification/rest/base/ApiPaginationBX.mjs +1 -1
  149. package/esm2022/typification/rest/base/OrderOptions.mjs +1 -1
  150. package/esm2022/typification/rest/base/YesNo.mjs +1 -1
  151. package/esm2022/typification/rest/base/answer.mjs +1 -1
  152. package/esm2022/typification/rest/base/filterGenerator.mjs +1 -1
  153. package/esm2022/typification/rest/base/sort.mjs +1 -1
  154. package/esm2022/typification/rest/batch/batchRequestParam.mjs +1 -1
  155. package/esm2022/typification/rest/batch.mjs +1 -1
  156. package/esm2022/typification/rest/bizproc/workflow/start.mjs +1 -1
  157. package/esm2022/typification/rest/calendar/base/type.mjs +1 -1
  158. package/esm2022/typification/rest/calendar/get/answer.mjs +1 -1
  159. package/esm2022/typification/rest/calendar/get/param.mjs +1 -1
  160. package/esm2022/typification/rest/department/add.mjs +1 -1
  161. package/esm2022/typification/rest/department/del.mjs +1 -1
  162. package/esm2022/typification/rest/department/department.mjs +1 -1
  163. package/esm2022/typification/rest/department/get.mjs +1 -1
  164. package/esm2022/typification/rest/department/update.mjs +1 -1
  165. package/esm2022/typification/rest/disk/AttachedObject.mjs +1 -1
  166. package/esm2022/typification/rest/disk/file.mjs +1 -1
  167. package/esm2022/typification/rest/disk/folder/addSubFolder.mjs +1 -1
  168. package/esm2022/typification/rest/disk/folder/copyTo.mjs +1 -1
  169. package/esm2022/typification/rest/disk/folder/getFields.mjs +1 -1
  170. package/esm2022/typification/rest/disk/folder/moveTo.mjs +1 -1
  171. package/esm2022/typification/rest/disk/folder/rename.mjs +1 -1
  172. package/esm2022/typification/rest/disk/folder/uploadFile.mjs +1 -1
  173. package/esm2022/typification/rest/disk/folder.mjs +1 -1
  174. package/esm2022/typification/rest/disk/map.mjs +1 -1
  175. package/esm2022/typification/rest/disk/storage/getchildren.mjs +1 -1
  176. package/esm2022/typification/rest/disk/storage/uploadfile.mjs +1 -1
  177. package/esm2022/typification/rest/im/chat/add.mjs +1 -1
  178. package/esm2022/typification/rest/lists/element/add.mjs +1 -1
  179. package/esm2022/typification/rest/lists/element/get.mjs +1 -1
  180. package/esm2022/typification/rest/lists/field/get.mjs +2 -2
  181. package/esm2022/typification/rest/lists/get.mjs +2 -2
  182. package/esm2022/typification/rest/log/blogpost/add.mjs +2 -2
  183. package/esm2022/typification/rest/log/blogpost/essence.mjs +1 -1
  184. package/esm2022/typification/rest/log/blogpost/get.mjs +2 -2
  185. package/esm2022/typification/rest/profile.mjs +1 -1
  186. package/esm2022/typification/rest/settings.mjs +1 -1
  187. package/esm2022/typification/rest/sonet_group/base.mjs +1 -1
  188. package/esm2022/typification/rest/sonet_group/get.mjs +2 -2
  189. package/esm2022/typification/rest/support/param.mjs +1 -1
  190. package/esm2022/typification/rest/task/access/getaccess.mjs +1 -1
  191. package/esm2022/typification/rest/task/commentitem/add.mjs +1 -1
  192. package/esm2022/typification/rest/task/commentitem/commentitem.mjs +1 -1
  193. package/esm2022/typification/rest/task/commentitem/delete.mjs +1 -1
  194. package/esm2022/typification/rest/task/commentitem/get.mjs +1 -1
  195. package/esm2022/typification/rest/task/commentitem/getlist.mjs +1 -1
  196. package/esm2022/typification/rest/task/commentitem/update.mjs +1 -1
  197. package/esm2022/typification/rest/task/elapseditem/add.mjs +1 -1
  198. package/esm2022/typification/rest/task/elapseditem/del.mjs +1 -1
  199. package/esm2022/typification/rest/task/elapseditem/get.mjs +1 -1
  200. package/esm2022/typification/rest/task/elapseditem/isActionAllowedParam.mjs +1 -1
  201. package/esm2022/typification/rest/task/elapseditem/item.mjs +1 -1
  202. package/esm2022/typification/rest/task/elapseditem/update.mjs +1 -1
  203. package/esm2022/typification/rest/task/item/userfield/getlist.mjs +2 -2
  204. package/esm2022/typification/rest/task/stages/stage.mjs +1 -1
  205. package/esm2022/typification/rest/tasks/base/fieldsName.mjs +2 -2
  206. package/esm2022/typification/rest/tasks/base/filterGenerator.mjs +1 -1
  207. package/esm2022/typification/rest/tasks/base/people.mjs +1 -1
  208. package/esm2022/typification/rest/tasks/result/list.mjs +1 -1
  209. package/esm2022/typification/rest/tasks/task/add.mjs +1 -1
  210. package/esm2022/typification/rest/tasks/task/approve.mjs +1 -1
  211. package/esm2022/typification/rest/tasks/task/base.mjs +1 -1
  212. package/esm2022/typification/rest/tasks/task/complete.mjs +1 -1
  213. package/esm2022/typification/rest/tasks/task/defer.mjs +1 -1
  214. package/esm2022/typification/rest/tasks/task/get.mjs +2 -2
  215. package/esm2022/typification/rest/tasks/task/getFields.mjs +1 -1
  216. package/esm2022/typification/rest/tasks/task/list.mjs +2 -2
  217. package/esm2022/typification/rest/tasks/task/result/result.mjs +1 -1
  218. package/esm2022/typification/rest/tasks/task/update.mjs +1 -1
  219. package/esm2022/typification/rest/tasks/task.mjs +1 -1
  220. package/esm2022/typification/rest/timeman/status.mjs +1 -1
  221. package/esm2022/typification/rest/user/get.mjs +2 -2
  222. package/esm2022/typification/rest/user/search.mjs +1 -1
  223. package/esm2022/typification/rest/user/user.mjs +1 -1
  224. package/esm2022/typification/rest/user/userfield/list.mjs +1 -1
  225. package/esm2022/typification/settings.mjs +2 -2
  226. package/fesm2022/bx-rest.mjs +5274 -5399
  227. package/fesm2022/bx-rest.mjs.map +1 -1
  228. package/functions/mapResult.d.ts +5 -5
  229. package/index.d.ts +5 -5
  230. package/map/app.d.ts +8 -8
  231. package/map/base.d.ts +6 -6
  232. package/map/calendar/event.d.ts +9 -9
  233. package/map/calendar.d.ts +7 -8
  234. package/map/department.d.ts +7 -7
  235. package/map/disk/attachedObject.d.ts +9 -9
  236. package/map/disk/base.d.ts +13 -13
  237. package/map/disk/file.d.ts +9 -9
  238. package/map/disk/folder.d.ts +9 -9
  239. package/map/disk/storage.d.ts +10 -10
  240. package/map/lists/element.d.ts +8 -8
  241. package/map/lists/field.d.ts +9 -9
  242. package/map/lists.d.ts +13 -15
  243. package/map/log/blogpost.d.ts +10 -10
  244. package/map/log.d.ts +7 -8
  245. package/map/rest.d.ts +8 -8
  246. package/map/server.d.ts +7 -7
  247. package/map/sonet_group.d.ts +9 -9
  248. package/map/task/commentitem.d.ts +10 -10
  249. package/map/task/elapseditem.d.ts +10 -10
  250. package/map/task/item/userfield.d.ts +8 -8
  251. package/map/task/planner.d.ts +7 -7
  252. package/map/task/stages.d.ts +8 -8
  253. package/map/task.d.ts +11 -12
  254. package/map/tasks/task/result.d.ts +10 -10
  255. package/map/tasks/task.d.ts +22 -24
  256. package/map/tasks.d.ts +7 -8
  257. package/map/timeman.d.ts +7 -7
  258. package/map/user.d.ts +14 -16
  259. package/map.d.ts +23 -24
  260. package/package.json +3 -3
  261. package/provide.d.ts +3 -0
  262. package/public-api.d.ts +16 -14
  263. package/request/app.d.ts +11 -13
  264. package/request/bizproc/activity.d.ts +5 -5
  265. package/request/bizproc/event.d.ts +5 -5
  266. package/request/bizproc/robot.d.ts +5 -5
  267. package/request/bizproc/task.d.ts +5 -5
  268. package/request/bizproc/workflow/instance.d.ts +5 -5
  269. package/request/bizproc/workflow/template.d.ts +5 -5
  270. package/request/bizproc/workflow.d.ts +16 -15
  271. package/request/bizproc.d.ts +15 -16
  272. package/request/calendar/event.d.ts +10 -12
  273. package/request/calendar.d.ts +7 -8
  274. package/request/department.d.ts +21 -23
  275. package/request/disk/attachedObject.d.ts +9 -11
  276. package/request/disk/file.d.ts +10 -12
  277. package/request/disk/folder.d.ts +86 -88
  278. package/request/disk/storage.d.ts +30 -32
  279. package/request/disk.d.ts +11 -12
  280. package/request/im/chat.d.ts +9 -11
  281. package/request/im.d.ts +7 -8
  282. package/request/lists/element.d.ts +11 -13
  283. package/request/lists/field.d.ts +9 -11
  284. package/request/lists.d.ts +13 -15
  285. package/request/log/blogcomment.d.ts +5 -5
  286. package/request/log/blogpost.d.ts +11 -13
  287. package/request/log.d.ts +9 -10
  288. package/request/server.d.ts +8 -10
  289. package/request/sonet_group.d.ts +9 -11
  290. package/request/task/commentitem.d.ts +26 -28
  291. package/request/task/elapseditem.d.ts +28 -30
  292. package/request/task/item/userfield.d.ts +9 -11
  293. package/request/task/item.d.ts +7 -8
  294. package/request/task/planner.d.ts +7 -9
  295. package/request/task.d.ts +13 -14
  296. package/request/tasks/task/result.d.ts +12 -14
  297. package/request/tasks/task.d.ts +30 -32
  298. package/request/tasks.d.ts +7 -8
  299. package/request/timeman.d.ts +9 -11
  300. package/request/user/userfield.d.ts +9 -11
  301. package/request/user.d.ts +19 -21
  302. package/request-navvy/app.d.ts +14 -16
  303. package/request-navvy/bizproc/workflow.d.ts +13 -11
  304. package/request-navvy/bizproc.d.ts +24 -25
  305. package/request-navvy/calendar/event.d.ts +12 -13
  306. package/request-navvy/calendar.d.ts +7 -8
  307. package/request-navvy/department.d.ts +18 -19
  308. package/request-navvy/disk/attachedObject.d.ts +12 -13
  309. package/request-navvy/disk/file.d.ts +13 -14
  310. package/request-navvy/disk/folder.d.ts +88 -89
  311. package/request-navvy/disk/interlayer/storage.d.ts +19 -21
  312. package/request-navvy/disk/operation.d.ts +21 -23
  313. package/request-navvy/disk/storage.d.ts +21 -22
  314. package/request-navvy/disk.d.ts +13 -14
  315. package/request-navvy/im/chat.d.ts +10 -11
  316. package/request-navvy/im.d.ts +7 -8
  317. package/request-navvy/lists/element.d.ts +14 -15
  318. package/request-navvy/lists/field.d.ts +12 -13
  319. package/request-navvy/lists.d.ts +17 -18
  320. package/request-navvy/log/blogcomment.d.ts +8 -8
  321. package/request-navvy/log/blogpost.d.ts +15 -22
  322. package/request-navvy/log.d.ts +9 -10
  323. package/request-navvy/server.d.ts +11 -13
  324. package/request-navvy/sonet_group.d.ts +12 -13
  325. package/request-navvy/task/commentitem.d.ts +20 -22
  326. package/request-navvy/task/delegate/elapseditem.d.ts +12 -13
  327. package/request-navvy/task/elapseditem.d.ts +39 -41
  328. package/request-navvy/task/item/userfield.d.ts +12 -14
  329. package/request-navvy/task/item.d.ts +7 -8
  330. package/request-navvy/task/operation/elapseditem.d.ts +35 -27
  331. package/request-navvy/task/planner.d.ts +11 -12
  332. package/request-navvy/task.d.ts +13 -14
  333. package/request-navvy/tasks/task/result.d.ts +15 -16
  334. package/request-navvy/tasks/task.d.ts +30 -31
  335. package/request-navvy/tasks.d.ts +7 -8
  336. package/request-navvy/timeman.d.ts +13 -14
  337. package/request-navvy/user/userfield.d.ts +9 -10
  338. package/request-navvy/user.d.ts +27 -28
  339. package/rest/base.d.ts +38 -40
  340. package/rest/map.d.ts +7 -8
  341. package/rest/navvy.d.ts +43 -45
  342. package/services/Navvy/NavvyAlternativePaginationNavigation.d.ts +14 -14
  343. package/services/Navvy/NavvyPagNav.d.ts +8 -8
  344. package/services/Navvy/NavvyPagNavTasks.d.ts +10 -10
  345. package/services/Navvy/NavvyPagNavWithUselessKey.d.ts +8 -8
  346. package/services/Navvy/NavvySimple.d.ts +10 -10
  347. package/services/Navvy/NavvySupport.d.ts +12 -12
  348. package/services/Navvy/extends/NavvyPagNavBase.d.ts +16 -16
  349. package/services/base.d.ts +22 -34
  350. package/services/http/HttpBX.d.ts +37 -38
  351. package/services/http/HttpData.d.ts +11 -11
  352. package/services/http/base/base.d.ts +10 -15
  353. package/services/http/http.d.ts +14 -15
  354. package/services/http/httpNavvy.d.ts +13 -0
  355. package/services/http/sessionKey.d.ts +23 -27
  356. package/services/navvy.d.ts +27 -27
  357. package/services/vanilla/localStorage.d.ts +10 -10
  358. package/services/vanilla/sessionStorage.d.ts +7 -7
  359. package/services/vanilla//321/201ookies.d.ts +9 -9
  360. package/settings.d.ts +4 -12
  361. package/typification/auth/save.d.ts +14 -14
  362. package/typification/base/all-key-free.d.ts +3 -3
  363. package/typification/base/answers.d.ts +12 -0
  364. package/typification/base/methods.d.ts +2 -2
  365. package/typification/base/modyfy.d.ts +9 -9
  366. package/typification/base/params.d.ts +17 -0
  367. package/typification/base/upper-case-keys.d.ts +6 -6
  368. package/typification/base/workpiece/methods-list.d.ts +219 -209
  369. package/typification/base/workpiece/methods.d.ts +19 -19
  370. package/typification/rest/app/info.d.ts +17 -17
  371. package/typification/rest/base/ApiPaginationBX.d.ts +11 -11
  372. package/typification/rest/base/OrderOptions.d.ts +1 -1
  373. package/typification/rest/base/YesNo.d.ts +1 -1
  374. package/typification/rest/base/answer.d.ts +19 -19
  375. package/typification/rest/base/filterGenerator.d.ts +5 -5
  376. package/typification/rest/base/sort.d.ts +1 -1
  377. package/typification/rest/batch/batchRequestParam.d.ts +15 -15
  378. package/typification/rest/batch.d.ts +40 -40
  379. package/typification/rest/bizproc/workflow/start.d.ts +5 -5
  380. package/typification/rest/calendar/base/type.d.ts +1 -1
  381. package/typification/rest/calendar/get/answer.d.ts +126 -126
  382. package/typification/rest/calendar/get/param.d.ts +8 -8
  383. package/typification/rest/department/add.d.ts +6 -6
  384. package/typification/rest/department/del.d.ts +3 -3
  385. package/typification/rest/department/department.d.ts +14 -14
  386. package/typification/rest/department/get.d.ts +10 -10
  387. package/typification/rest/department/update.d.ts +7 -7
  388. package/typification/rest/disk/AttachedObject.d.ts +26 -26
  389. package/typification/rest/disk/file.d.ts +20 -20
  390. package/typification/rest/disk/folder/addSubFolder.d.ts +6 -6
  391. package/typification/rest/disk/folder/copyTo.d.ts +4 -4
  392. package/typification/rest/disk/folder/getFields.d.ts +9 -9
  393. package/typification/rest/disk/folder/moveTo.d.ts +4 -4
  394. package/typification/rest/disk/folder/rename.d.ts +4 -4
  395. package/typification/rest/disk/folder/uploadFile.d.ts +13 -13
  396. package/typification/rest/disk/folder.d.ts +62 -62
  397. package/typification/rest/disk/map.d.ts +6 -6
  398. package/typification/rest/disk/storage/getchildren.d.ts +4 -4
  399. package/typification/rest/disk/storage/uploadfile.d.ts +9 -9
  400. package/typification/rest/im/chat/add.d.ts +12 -12
  401. package/typification/rest/lists/element/add.d.ts +9 -9
  402. package/typification/rest/lists/element/get.d.ts +37 -37
  403. package/typification/rest/lists/field/get.d.ts +38 -37
  404. package/typification/rest/lists/get.d.ts +95 -95
  405. package/typification/rest/log/blogpost/add.d.ts +12 -12
  406. package/typification/rest/log/blogpost/essence.d.ts +51 -51
  407. package/typification/rest/log/blogpost/get.d.ts +71 -71
  408. package/typification/rest/profile.d.ts +16 -16
  409. package/typification/rest/settings.d.ts +6 -6
  410. package/typification/rest/sonet_group/base.d.ts +8 -8
  411. package/typification/rest/sonet_group/get.d.ts +35 -35
  412. package/typification/rest/support/param.d.ts +5 -5
  413. package/typification/rest/task/access/getaccess.d.ts +40 -40
  414. package/typification/rest/task/commentitem/add.d.ts +18 -18
  415. package/typification/rest/task/commentitem/commentitem.d.ts +36 -36
  416. package/typification/rest/task/commentitem/delete.d.ts +4 -4
  417. package/typification/rest/task/commentitem/get.d.ts +4 -4
  418. package/typification/rest/task/commentitem/getlist.d.ts +20 -20
  419. package/typification/rest/task/commentitem/update.d.ts +4 -4
  420. package/typification/rest/task/elapseditem/add.d.ts +10 -10
  421. package/typification/rest/task/elapseditem/del.d.ts +4 -4
  422. package/typification/rest/task/elapseditem/get.d.ts +23 -23
  423. package/typification/rest/task/elapseditem/isActionAllowedParam.d.ts +5 -5
  424. package/typification/rest/task/elapseditem/item.d.ts +25 -25
  425. package/typification/rest/task/elapseditem/update.d.ts +10 -10
  426. package/typification/rest/task/item/userfield/getlist.d.ts +91 -91
  427. package/typification/rest/task/stages/stage.d.ts +19 -19
  428. package/typification/rest/tasks/base/fieldsName.d.ts +19 -19
  429. package/typification/rest/tasks/base/filterGenerator.d.ts +6 -6
  430. package/typification/rest/tasks/base/people.d.ts +12 -12
  431. package/typification/rest/tasks/result/list.d.ts +4 -4
  432. package/typification/rest/tasks/task/add.d.ts +254 -254
  433. package/typification/rest/tasks/task/approve.d.ts +144 -144
  434. package/typification/rest/tasks/task/base.d.ts +3 -3
  435. package/typification/rest/tasks/task/complete.d.ts +6 -6
  436. package/typification/rest/tasks/task/defer.d.ts +6 -6
  437. package/typification/rest/tasks/task/get.d.ts +52 -52
  438. package/typification/rest/tasks/task/getFields.d.ts +19 -19
  439. package/typification/rest/tasks/task/list.d.ts +119 -119
  440. package/typification/rest/tasks/task/result/result.d.ts +23 -23
  441. package/typification/rest/tasks/task/update.d.ts +47 -47
  442. package/typification/rest/tasks/task.d.ts +121 -121
  443. package/typification/rest/timeman/status.d.ts +28 -28
  444. package/typification/rest/user/get.d.ts +74 -74
  445. package/typification/rest/user/search.d.ts +66 -66
  446. package/typification/rest/user/user.d.ts +62 -62
  447. package/typification/rest/user/userfield/list.d.ts +56 -56
  448. package/typification/settings.d.ts +11 -10
  449. package/esm2022/index.mjs +0 -13
  450. package/esm2022/rest.mjs +0 -123
  451. package/esm2022/typification/rest/api-lib.mjs +0 -21
  452. package/esm2022/typification/rest/lib.mjs +0 -2
  453. package/rest.d.ts +0 -89
  454. package/typification/rest/api-lib.d.ts +0 -9
  455. package/typification/rest/lib.d.ts +0 -18
@@ -1,211 +1,211 @@
1
- import { Injectable } from '@angular/core';
2
- import { mergeMap, throwError } from 'rxjs';
3
- import { Navvy } from '../../services/navvy';
4
- import { NavvySimple } from '../../services/Navvy/NavvySimple';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../request/task/elapseditem";
7
- import * as i2 from "../../map/task/elapseditem";
8
- import * as i3 from "./delegate/elapseditem";
9
- import * as i4 from "./operation/elapseditem";
10
- export class BXRestNavvyElapsedItem {
11
- constructor(BXRestElapsedItem, BXRestMapElapsedItem, delegate, operation) {
12
- this.BXRestElapsedItem = BXRestElapsedItem;
13
- this.BXRestMapElapsedItem = BXRestMapElapsedItem;
14
- this.delegate = delegate;
15
- this.operation = operation;
16
- this.Navvy = new Navvy(this.BXRestElapsedItem, this.BXRestMapElapsedItem);
17
- }
18
- /*
19
- call(methodName: string, ...args: any[]){
20
- if (typeof this[methodName] === 'function') {
21
- return this[methodName](...args);
22
- }
23
- return this[methodName](...args);
24
- }
25
- */
26
- getList(param = {}) {
27
- return this.delegate.getList(param);
28
- }
29
- add(param) {
30
- return new NavvySimple(this, this.BXRestMapElapsedItem, this.addBase.call(this, param));
31
- // return this.Navvy.simpleWithArg(this.addBase.bind(this), param)
32
- }
33
- addBase(param) {
34
- return this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
35
- if (allowedReadTask) {
36
- return this.operation.checkPermissionAddElapsedTimeToTask(param.TASKID).pipe(mergeMap(allowed => {
37
- if (allowed) {
38
- return this.BXRestElapsedItem.add(param);
39
- }
40
- else {
41
- return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'));
42
- }
43
- }));
44
- }
45
- else {
46
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
47
- }
48
- }));
49
- }
50
- /**
51
- * Обновление записи рабочего времени
52
- *
53
- * @param param
54
- */
55
- update(param) {
56
- const func = () => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap((allowedReadTask) => {
57
- if (allowedReadTask) {
58
- return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
59
- if (allowed) {
60
- return this.BXRestElapsedItem.update(param);
61
- }
62
- return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'));
63
- }));
64
- }
65
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
66
- }));
67
- return new NavvySimple(this, this.BXRestMapElapsedItem, func.call(this), this.BXRestMapElapsedItem.update);
68
- }
69
- /*
70
- getAll(
71
- params: RequestParamsElapsedGetList | undefined = undefined,
72
- cache = false
73
- ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {
74
- return this.get(params, cache)
75
- .pipe(
76
- mergeMap(items => {
77
- if (items && items.result) {
78
- if (items.next) {
79
- params = (params) ? params : {}
80
- params.PARAMS = {
81
- NAV_PARAMS: {
82
- nPageSize: this.pageSize,
83
- iNumPage: items.next / this.pageSize + 1
84
- }
85
- }
86
- return this.getAll(params, cache).pipe(
87
- map(vEnd => {
88
- if (vEnd && vEnd.result && items.result) {
89
- return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})
90
- }
91
- return items
92
- })
93
- )
94
- }
95
- return of(items)
96
- } else {
97
- return of(undefined)
98
- }
99
- })
100
- )
101
- }
102
- */
103
- /*
104
- getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {
105
- return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>
106
- (this.url.getlist, params, 'не удалось получить время по задачам')
107
- .pipe(
108
- map(v => {
109
- if (v && v.result) {
110
- const newResult: BXRestElapsed[] = []
111
- for (let task of v.result) {
112
- newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))
113
- }
114
- return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>
115
- }
116
- return undefined
117
- }),
118
- tap(v => {
119
- if (v && params) {
120
- this.store.dispatch(saveHttpTaskTime({
121
- filter: clone(params),
122
- time: v
123
- }))
124
- }
125
- })
126
- )
127
- }
128
- */
129
- // TODO: разобраться что это за ебатня в комментах и вписать нормальной комент если она нужна
130
- isAllowedModify(idTask, idItem) {
131
- // let permission = Permission.get()
132
- // if (permission?.tasks?.length) {
133
- // let findTask = permission.tasks.find(i => i.id === idTask)
134
- // if (findTask) {
135
- // let find = findTask.elapsedItem.find(i => i.id === idItem)
136
- // if (find && find.verified.edit) {
137
- // return of(find.edit)
138
- // }
139
- // }
140
- // }
141
- return this.isActionAllowed({
142
- TASKID: idTask,
143
- ITEMID: idItem,
144
- ACTIONID: 2
145
- }).result();
146
- // .pipe(
147
- // tap(v => {
148
- // if (v !== undefined) {
149
- // Permission.setTaskElapsedItem(idTask,
150
- // {
151
- // id: idItem,
152
- // edit: v,
153
- // del: false,
154
- // verified: {
155
- // edit: true,
156
- // del: false,
157
- // }
158
- // })
159
- // }
160
- // })
161
- // )
162
- }
163
- isAllowedRemove(idTask, idItem) {
164
- return this.isActionAllowed({
165
- TASKID: idTask,
166
- ITEMID: idItem,
167
- ACTIONID: 3
168
- }).result();
169
- }
170
- /**
171
- * idAction:
172
- * 1 - ACTION_ELAPSED_TIME_ADD
173
- * 2 - ACTION_ELAPSED_TIME_MODIFY
174
- * 3 - ACTION_ELAPSED_TIME_REMOVE
175
- * @param param
176
- */
177
- isActionAllowed(param) {
178
- return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(canRead => {
179
- if (canRead) {
180
- return this.BXRestElapsedItem.isActionAllowed(param);
181
- }
182
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
183
- })));
184
- }
185
- del(param) {
186
- return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
187
- if (allowedReadTask) {
188
- return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
189
- if (allowed) {
190
- return this.BXRestElapsedItem.del(param);
191
- }
192
- else {
193
- return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'));
194
- }
195
- }));
196
- }
197
- else {
198
- return throwError(() => new Error('Отсутствуют права на чтение задачи'));
199
- }
200
- })), v => (v === null));
201
- }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapsedItem, deps: [{ token: i1.BXRestTaskElapsedItem }, { token: i2.BXRestMapTaskElapsedItem }, { token: i3.BXRestNavvyDelegateElapsedItem }, { token: i4.BXRestNavvyOperationElapsedItem }], target: i0.ɵɵFactoryTarget.Injectable }); }
203
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapsedItem, providedIn: 'root' }); }
204
- }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyElapsedItem, decorators: [{
206
- type: Injectable,
207
- args: [{
208
- providedIn: 'root'
209
- }]
210
- }], ctorParameters: function () { return [{ type: i1.BXRestTaskElapsedItem }, { type: i2.BXRestMapTaskElapsedItem }, { type: i3.BXRestNavvyDelegateElapsedItem }, { type: i4.BXRestNavvyOperationElapsedItem }]; } });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svZWxhcHNlZGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQU8zQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFJNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFBOzs7Ozs7QUFLOUQsTUFBTSxPQUFPLHNCQUFzQjtJQUlqQyxZQUNVLGlCQUF3QyxFQUN4QyxvQkFBOEMsRUFDOUMsUUFBd0MsRUFDekMsU0FBMEM7UUFIekMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtRQUN4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBQzlDLGFBQVEsR0FBUixRQUFRLENBQWdDO1FBQ3pDLGNBQVMsR0FBVCxTQUFTLENBQWlDO1FBRWpELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO0lBQzNFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBRUgsT0FBTyxDQUNMLFFBQW9DLEVBQUU7UUFFdEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQWlDO1FBQ25DLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUN2RixrRUFBa0U7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UUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUNqQixJQUFJLE9BQU8sRUFBRTt3QkFDWCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7cUJBQ3pDO3lCQUFNO3dCQUNMLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUMsQ0FBQTtxQkFDaEc7Z0JBQ0gsQ0FBQyxDQUFDLENBQUMsQ0FBQTthQUNOO2lCQUFNO2dCQUNMLE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQTthQUN6RTtRQUNILENBQUMsQ0FBQyxDQUNILEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7K0dBdk5VLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vZ2V0J1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrRWxhcHNlZEl0ZW0gfSBmcm9tICcuLi8uLi9yZXF1ZXN0L3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9hZGQnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS91cGRhdGUnXHJcbmltcG9ydCB7IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXNBY3Rpb25BbGxvd2VkUGFyYW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9kZWwnXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tFbGFwc2VkSXRlbSB9IGZyb20gJy4uLy4uL21hcC90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRJdGVtIH0gZnJvbSAnLi9vcGVyYXRpb24vZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSB9IGZyb20gJy4vZGVsZWdhdGUvZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IE5hdnZ5U2ltcGxlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvTmF2dnkvTmF2dnlTaW1wbGUnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUVsYXBzZWRJdGVtIHtcclxuXHJcbiAgcHJpdmF0ZSBOYXZ2eTogTmF2dnk8QlhSZXN0VGFza0VsYXBzZWRJdGVtLCBCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0+XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBCWFJlc3RFbGFwc2VkSXRlbTogQlhSZXN0VGFza0VsYXBzZWRJdGVtLFxyXG4gICAgcHJpdmF0ZSBCWFJlc3RNYXBFbGFwc2VkSXRlbTogQlhSZXN0TWFwVGFza0VsYXBzZWRJdGVtLFxyXG4gICAgcHJpdmF0ZSBkZWxlZ2F0ZTogQlhSZXN0TmF2dnlEZWxlZ2F0ZUVsYXBzZWRJdGVtLFxyXG4gICAgcHVibGljIG9wZXJhdGlvbjogQlhSZXN0TmF2dnlPcGVyYXRpb25FbGFwc2VkSXRlbVxyXG4gICkge1xyXG4gICAgdGhpcy5OYXZ2eSA9IG5ldyBOYXZ2eSh0aGlzLkJYUmVzdEVsYXBzZWRJdGVtLCB0aGlzLkJYUmVzdE1hcEVsYXBzZWRJdGVtKVxyXG4gIH1cclxuXHJcbiAgLypcclxuICBjYWxsKG1ldGhvZE5hbWU6IHN0cmluZywgLi4uYXJnczogYW55W10pe1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzW21ldGhvZE5hbWVdID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIHJldHVybiB0aGlzW21ldGhvZE5hbWVdKC4uLmFyZ3MpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXNbbWV0aG9kTmFtZV0oLi4uYXJncyk7XHJcbiAgfVxyXG4gICAqL1xyXG5cclxuICBnZXRMaXN0KFxyXG4gICAgcGFyYW06IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0ID0ge31cclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLmdldExpc3QocGFyYW0pXHJcbiAgfVxyXG5cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gbmV3IE5hdnZ5U2ltcGxlKHRoaXMsIHRoaXMuQlhSZXN0TWFwRWxhcHNlZEl0ZW0sIHRoaXMuYWRkQmFzZS5jYWxsKHRoaXMsIHBhcmFtKSlcclxuICAgIC8vIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcodGhpcy5hZGRCYXNlLmJpbmQodGhpcyksIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRCYXNlKHBhcmFtOiBpQlhSZXN0UGFyYW1BZGRFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoYWxsb3dlZFJlYWRUYXNrID0+IHtcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0uYWRkKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQtNC+0LHQsNCy0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCe0LHQvdC+0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDRgNCw0LHQvtGH0LXQs9C+INCy0YDQtdC80LXQvdC4XHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtKSB7XHJcbiAgICBjb25zdCBmdW5jID0gKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoYWxsb3dlZFJlYWRUYXNrKSA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbGxvd2VkTW9kaWZ5KHBhcmFtLlRBU0tJRCwgcGFyYW0uSVRFTUlEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0udXBkYXRlKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINC40LfQvNC10L3QtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSkpXHJcbiAgICByZXR1cm4gbmV3IE5hdnZ5U2ltcGxlKHRoaXMsIHRoaXMuQlhSZXN0TWFwRWxhcHNlZEl0ZW0sIGZ1bmMuY2FsbCh0aGlzKSwgdGhpcy5CWFJlc3RNYXBFbGFwc2VkSXRlbS51cGRhdGUpXHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIGdldEFsbChcclxuICAgIHBhcmFtczogUmVxdWVzdFBhcmFtc0VsYXBzZWRHZXRMaXN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxyXG4gICAgY2FjaGUgPSBmYWxzZVxyXG4gICk6IE9ic2VydmFibGU8aUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkW10+IHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQocGFyYW1zLCBjYWNoZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoaXRlbXMgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLnJlc3VsdCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xyXG4gICAgICAgICAgICAgIHBhcmFtcyA9IChwYXJhbXMpID8gcGFyYW1zIDoge31cclxuICAgICAgICAgICAgICBwYXJhbXMuUEFSQU1TID0ge1xyXG4gICAgICAgICAgICAgICAgTkFWX1BBUkFNUzoge1xyXG4gICAgICAgICAgICAgICAgICBuUGFnZVNpemU6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgICAgICAgICAgICAgIGlOdW1QYWdlOiBpdGVtcy5uZXh0IC8gdGhpcy5wYWdlU2l6ZSArIDFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKHBhcmFtcywgY2FjaGUpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAodkVuZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh2RW5kICYmIHZFbmQucmVzdWx0ICYmIGl0ZW1zLnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXJnZShjbG9uZSh2RW5kKSwge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXNcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihpdGVtcylcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAgKi9cclxuXHJcbiAgLypcclxuICBnZXRDYWNoZU9mZihwYXJhbXM6IFJlcXVlc3RQYXJhbXNFbGFwc2VkR2V0TGlzdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8QlhSZXN0RWxhcHNlZEh0dHBbXT4gfCB1bmRlZmluZWQ+XHJcbiAgICAodGhpcy51cmwuZ2V0bGlzdCwgcGFyYW1zLCAn0L3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINCy0YDQtdC80Y8g0L/QviDQt9Cw0LTQsNGH0LDQvCcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc3VsdDogQlhSZXN0RWxhcHNlZFtdID0gW11cclxuICAgICAgICAgICAgZm9yIChsZXQgdGFzayBvZiB2LnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgIG5ld1Jlc3VsdC5wdXNoKHRoaXMuZWxhcHNlZEJYTWFwLkFuc3dlckVsYXBzZWRHZXRIdHRwVG9BbnN3ZXJFbGFwc2VkR2V0KHRhc2spKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBleHRlbmQodiwge3Jlc3VsdDogbmV3UmVzdWx0fSkgYXMgaUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkW10+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUh0dHBUYXNrVGltZSh7XHJcbiAgICAgICAgICAgICAgZmlsdGVyOiBjbG9uZShwYXJhbXMpLFxyXG4gICAgICAgICAgICAgIHRpbWU6IHZcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAqL1xyXG5cclxuICAvLyBUT0RPOiDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINGH0YLQviDRjdGC0L4g0LfQsCDQtdCx0LDRgtC90Y8g0LIg0LrQvtC80LzQtdC90YLQsNGFINC4INCy0L/QuNGB0LDRgtGMINC90L7RgNC80LDQu9GM0L3QvtC5INC60L7QvNC10L3RgiDQtdGB0LvQuCDQvtC90LAg0L3Rg9C20L3QsFxyXG4gIGlzQWxsb3dlZE1vZGlmeShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIC8vIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgLy8gaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgIC8vICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgLy8gICBpZiAoZmluZFRhc2spIHtcclxuICAgIC8vICAgICBsZXQgZmluZCA9IGZpbmRUYXNrLmVsYXBzZWRJdGVtLmZpbmQoaSA9PiBpLmlkID09PSBpZEl0ZW0pXHJcbiAgICAvLyAgICAgaWYgKGZpbmQgJiYgZmluZC52ZXJpZmllZC5lZGl0KSB7XHJcbiAgICAvLyAgICAgICByZXR1cm4gb2YoZmluZC5lZGl0KVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZCh7XHJcbiAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICBJVEVNSUQ6IGlkSXRlbSxcclxuICAgICAgQUNUSU9OSUQ6IDJcclxuICAgIH0pLnJlc3VsdCgpXHJcbiAgICAvLyAgIC5waXBlKFxyXG4gICAgLy8gICB0YXAodiA9PiB7XHJcbiAgICAvLyAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgLy8gICAgICAgUGVybWlzc2lvbi5zZXRUYXNrRWxhcHNlZEl0ZW0oaWRUYXNrLFxyXG4gICAgLy8gICAgICAgICB7XHJcbiAgICAvLyAgICAgICAgICAgaWQ6IGlkSXRlbSxcclxuICAgIC8vICAgICAgICAgICBlZGl0OiB2LFxyXG4gICAgLy8gICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAvLyAgICAgICAgICAgdmVyaWZpZWQ6IHtcclxuICAgIC8vICAgICAgICAgICAgIGVkaXQ6IHRydWUsXHJcbiAgICAvLyAgICAgICAgICAgICBkZWw6IGZhbHNlLFxyXG4gICAgLy8gICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgfSlcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0pXHJcbiAgICAvLyApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQWxsb3dlZFJlbW92ZShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZChcclxuICAgICAge1xyXG4gICAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICAgIElURU1JRDogaWRJdGVtLFxyXG4gICAgICAgIEFDVElPTklEOiAzXHJcbiAgICAgIH0pLnJlc3VsdCgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpZEFjdGlvbjpcclxuICAgKiAxIC0gQUNUSU9OX0VMQVBTRURfVElNRV9BRERcclxuICAgKiAyIC0gQUNUSU9OX0VMQVBTRURfVElNRV9NT0RJRllcclxuICAgKiAzIC0gQUNUSU9OX0VMQVBTRURfVElNRV9SRU1PVkVcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBpc0FjdGlvbkFsbG93ZWQocGFyYW06IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKCgpID0+IHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoY2FuUmVhZCA9PiB7XHJcbiAgICAgICAgaWYgKGNhblJlYWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdEVsYXBzZWRJdGVtLmlzQWN0aW9uQWxsb3dlZChwYXJhbSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgIH0pXHJcbiAgICApKVxyXG4gIH1cclxuXHJcbiAgZGVsKHBhcmFtOiBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKCgpID0+IHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoYWxsb3dlZFJlYWRUYXNrID0+IHtcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FsbG93ZWRSZW1vdmUocGFyYW0uVEFTS0lELCBwYXJhbS5JVEVNSUQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKGFsbG93ZWQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhbGxvd2VkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3RFbGFwc2VkSXRlbS5kZWwocGFyYW0pXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YPQtNCw0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKSwgdiA9PiAodiA9PT0gbnVsbCkpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { mergeMap, throwError } from 'rxjs';
3
+ import { BXRestTaskElapsedItem } from '../../request/task/elapseditem';
4
+ import { Navvy } from '../../services/navvy';
5
+ import { BXRestMapTaskElapsedItem } from '../../map/task/elapseditem';
6
+ import { BXRestNavvyOperationElapsedItem } from './operation/elapseditem';
7
+ import { BXRestNavvyDelegateElapsedItem } from './delegate/elapseditem';
8
+ import { NavvySimple } from '../../services/Navvy/NavvySimple';
9
+ import * as i0 from "@angular/core";
10
+ export class BXRestNavvyElapsedItem {
11
+ constructor() {
12
+ this.BXRestElapsedItem = inject(BXRestTaskElapsedItem);
13
+ this.BXRestMapElapsedItem = inject(BXRestMapTaskElapsedItem);
14
+ this.delegate = inject(BXRestNavvyDelegateElapsedItem);
15
+ this.operation = inject(BXRestNavvyOperationElapsedItem);
16
+ this.Navvy = new Navvy(this.BXRestElapsedItem, this.BXRestMapElapsedItem);
17
+ }
18
+ /*
19
+ call(methodName: string, ...args: any[]){
20
+ if (typeof this[methodName] === 'function') {
21
+ return this[methodName](...args)
22
+ }
23
+ return this[methodName](...args)
24
+ }
25
+ */
26
+ getList(param = {}) {
27
+ return this.delegate.getList(param);
28
+ }
29
+ add(param) {
30
+ return new NavvySimple(this, this.BXRestMapElapsedItem, this.addBase.call(this, param));
31
+ // return this.Navvy.simpleWithArg(this.addBase.bind(this), param)
32
+ }
33
+ addBase(param) {
34
+ return this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
35
+ if (allowedReadTask) {
36
+ return this.operation.checkPermissionAddElapsedTimeToTask(param.TASKID).pipe(mergeMap(allowed => {
37
+ if (allowed) {
38
+ return this.BXRestElapsedItem.add(param);
39
+ }
40
+ else {
41
+ return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'));
42
+ }
43
+ }));
44
+ }
45
+ else {
46
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
47
+ }
48
+ }));
49
+ }
50
+ /**
51
+ * Обновление записи рабочего времени
52
+ *
53
+ * @param param
54
+ */
55
+ update(param) {
56
+ const func = () => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap((allowedReadTask) => {
57
+ if (allowedReadTask) {
58
+ return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
59
+ if (allowed) {
60
+ return this.BXRestElapsedItem.update(param);
61
+ }
62
+ return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'));
63
+ }));
64
+ }
65
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
66
+ }));
67
+ return new NavvySimple(this, this.BXRestMapElapsedItem, func.call(this), this.BXRestMapElapsedItem.update);
68
+ }
69
+ /*
70
+ getAll(
71
+ params: RequestParamsElapsedGetList | undefined = undefined,
72
+ cache = false
73
+ ): Observable<iHttpAnswerBX<BXRestElapsed[]> | undefined> {
74
+ return this.get(params, cache)
75
+ .pipe(
76
+ mergeMap(items => {
77
+ if (items && items.result) {
78
+ if (items.next) {
79
+ params = (params) ? params : {}
80
+ params.PARAMS = {
81
+ NAV_PARAMS: {
82
+ nPageSize: this.pageSize,
83
+ iNumPage: items.next / this.pageSize + 1
84
+ }
85
+ }
86
+ return this.getAll(params, cache).pipe(
87
+ map(vEnd => {
88
+ if (vEnd && vEnd.result && items.result) {
89
+ return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})
90
+ }
91
+ return items
92
+ })
93
+ )
94
+ }
95
+ return of(items)
96
+ } else {
97
+ return of(undefined)
98
+ }
99
+ })
100
+ )
101
+ }
102
+ */
103
+ /*
104
+ getCacheOff(params: RequestParamsElapsedGetList | undefined = undefined) {
105
+ return this.http.post<iHttpAnswerBX<BXRestElapsedHttp[]> | undefined>
106
+ (this.url.getlist, params, 'не удалось получить время по задачам')
107
+ .pipe(
108
+ map(v => {
109
+ if (v && v.result) {
110
+ const newResult: BXRestElapsed[] = []
111
+ for (let task of v.result) {
112
+ newResult.push(this.elapsedBXMap.AnswerElapsedGetHttpToAnswerElapsedGet(task))
113
+ }
114
+ return extend(v, {result: newResult}) as iHttpAnswerBX<BXRestElapsed[]>
115
+ }
116
+ return undefined
117
+ }),
118
+ tap(v => {
119
+ if (v && params) {
120
+ this.store.dispatch(saveHttpTaskTime({
121
+ filter: clone(params),
122
+ time: v
123
+ }))
124
+ }
125
+ })
126
+ )
127
+ }
128
+ */
129
+ // TODO: разобраться что это за ебатня в комментах и вписать нормальной комент если она нужна
130
+ isAllowedModify(idTask, idItem) {
131
+ // let permission = Permission.get()
132
+ // if (permission?.tasks?.length) {
133
+ // let findTask = permission.tasks.find(i => i.id === idTask)
134
+ // if (findTask) {
135
+ // let find = findTask.elapsedItem.find(i => i.id === idItem)
136
+ // if (find && find.verified.edit) {
137
+ // return of(find.edit)
138
+ // }
139
+ // }
140
+ // }
141
+ return this.isActionAllowed({
142
+ TASKID: idTask,
143
+ ITEMID: idItem,
144
+ ACTIONID: 2
145
+ }).result();
146
+ // .pipe(
147
+ // tap(v => {
148
+ // if (v !== undefined) {
149
+ // Permission.setTaskElapsedItem(idTask,
150
+ // {
151
+ // id: idItem,
152
+ // edit: v,
153
+ // del: false,
154
+ // verified: {
155
+ // edit: true,
156
+ // del: false,
157
+ // }
158
+ // })
159
+ // }
160
+ // })
161
+ // )
162
+ }
163
+ isAllowedRemove(idTask, idItem) {
164
+ return this.isActionAllowed({
165
+ TASKID: idTask,
166
+ ITEMID: idItem,
167
+ ACTIONID: 3
168
+ }).result();
169
+ }
170
+ /**
171
+ * idAction:
172
+ * 1 - ACTION_ELAPSED_TIME_ADD
173
+ * 2 - ACTION_ELAPSED_TIME_MODIFY
174
+ * 3 - ACTION_ELAPSED_TIME_REMOVE
175
+ * @param param
176
+ */
177
+ isActionAllowed(param) {
178
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(canRead => {
179
+ if (canRead) {
180
+ return this.BXRestElapsedItem.isActionAllowed(param);
181
+ }
182
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
183
+ })));
184
+ }
185
+ del(param) {
186
+ return this.Navvy.simple(() => this.operation.checkPermissionReadTask(param.TASKID).pipe(mergeMap(allowedReadTask => {
187
+ if (allowedReadTask) {
188
+ return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(mergeMap(allowed => {
189
+ if (allowed) {
190
+ return this.BXRestElapsedItem.del(param);
191
+ }
192
+ else {
193
+ return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'));
194
+ }
195
+ }));
196
+ }
197
+ else {
198
+ return throwError(() => new Error('Отсутствуют права на чтение задачи'));
199
+ }
200
+ })), v => (v === null));
201
+ }
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyElapsedItem, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
203
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyElapsedItem, providedIn: 'root' }); }
204
+ }
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyElapsedItem, decorators: [{
206
+ type: Injectable,
207
+ args: [{
208
+ providedIn: 'root'
209
+ }]
210
+ }] });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxhcHNlZGl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ieC1yZXN0L3NyYy9yZXF1ZXN0LW5hdnZ5L3Rhc2svZWxhcHNlZGl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFFM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFLdEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQzVDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3JFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTs7QUFLOUQsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUttQixzQkFBaUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQTtRQUNqRCx5QkFBb0IsR0FBRyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQTtRQUN2RCxhQUFRLEdBQUcsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7UUFDbEQsY0FBUyxHQUFHLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO1FBRWxELFVBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7S0ErTXRGO0lBNU1DOzs7Ozs7O09BT0c7SUFFSCxPQUFPLENBQ0wsUUFBb0MsRUFBRTtRQUV0QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxD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T0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RGLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUN6QixJQUFJLGVBQWUsRUFBRSxDQUFDO2dCQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUMxRCxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ2pCLElBQUksT0FBTyxFQUFFLENBQUM7d0JBQ1osT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO29CQUMxQyxDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQyxDQUFBO29CQUNqRyxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFBO1lBQzFFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FDSCxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUN2QixDQUFDOytHQXBOVSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBpQlhSZXN0UGFyYW1FbGFwc2VkaXRlbUdldCB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vZ2V0J1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrRWxhcHNlZEl0ZW0gfSBmcm9tICcuLi8uLi9yZXF1ZXN0L3Rhc2svZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9hZGQnXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS91cGRhdGUnXHJcbmltcG9ydCB7IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSB9IGZyb20gJy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svZWxhcHNlZGl0ZW0vaXNBY3Rpb25BbGxvd2VkUGFyYW0nXHJcbmltcG9ydCB7IGlCWFJlc3RQYXJhbURlbEVsYXBzZWRpdGVtIH0gZnJvbSAnLi4vLi4vdHlwaWZpY2F0aW9uL3Jlc3QvdGFzay9lbGFwc2VkaXRlbS9kZWwnXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tFbGFwc2VkSXRlbSB9IGZyb20gJy4uLy4uL21hcC90YXNrL2VsYXBzZWRpdGVtJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRJdGVtIH0gZnJvbSAnLi9vcGVyYXRpb24vZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IEJYUmVzdE5hdnZ5RGVsZWdhdGVFbGFwc2VkSXRlbSB9IGZyb20gJy4vZGVsZWdhdGUvZWxhcHNlZGl0ZW0nXHJcbmltcG9ydCB7IE5hdnZ5U2ltcGxlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvTmF2dnkvTmF2dnlTaW1wbGUnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eUVsYXBzZWRJdGVtIHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBCWFJlc3RFbGFwc2VkSXRlbSA9IGluamVjdChCWFJlc3RUYXNrRWxhcHNlZEl0ZW0pXHJcbiAgcHJpdmF0ZSByZWFkb25seSBCWFJlc3RNYXBFbGFwc2VkSXRlbSA9IGluamVjdChCWFJlc3RNYXBUYXNrRWxhcHNlZEl0ZW0pXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZWxlZ2F0ZSA9IGluamVjdChCWFJlc3ROYXZ2eURlbGVnYXRlRWxhcHNlZEl0ZW0pXHJcbiAgcHVibGljIHJlYWRvbmx5IG9wZXJhdGlvbiA9IGluamVjdChCWFJlc3ROYXZ2eU9wZXJhdGlvbkVsYXBzZWRJdGVtKVxyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IE5hdnZ5ID0gbmV3IE5hdnZ5KHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0sIHRoaXMuQlhSZXN0TWFwRWxhcHNlZEl0ZW0pXHJcblxyXG5cclxuICAvKlxyXG4gIGNhbGwobWV0aG9kTmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSl7XHJcbiAgICBpZiAodHlwZW9mIHRoaXNbbWV0aG9kTmFtZV0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXNbbWV0aG9kTmFtZV0oLi4uYXJncylcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzW21ldGhvZE5hbWVdKC4uLmFyZ3MpXHJcbiAgfVxyXG4gICAqL1xyXG5cclxuICBnZXRMaXN0KFxyXG4gICAgcGFyYW06IGlCWFJlc3RQYXJhbUVsYXBzZWRpdGVtR2V0ID0ge31cclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmRlbGVnYXRlLmdldExpc3QocGFyYW0pXHJcbiAgfVxyXG5cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbUFkZEVsYXBzZWRpdGVtKSB7XHJcbiAgICByZXR1cm4gbmV3IE5hdnZ5U2ltcGxlKHRoaXMsIHRoaXMuQlhSZXN0TWFwRWxhcHNlZEl0ZW0sIHRoaXMuYWRkQmFzZS5jYWxsKHRoaXMsIHBhcmFtKSlcclxuICAgIC8vIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZVdpdGhBcmcodGhpcy5hZGRCYXNlLmJpbmQodGhpcyksIHBhcmFtKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRCYXNlKHBhcmFtOiBpQlhSZXN0UGFyYW1BZGRFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoYWxsb3dlZFJlYWRUYXNrID0+IHtcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uQWRkRWxhcHNlZFRpbWVUb1Rhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0uYWRkKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQtNC+0LHQsNCy0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCe0LHQvdC+0LLQu9C10L3QuNC1INC30LDQv9C40YHQuCDRgNCw0LHQvtGH0LXQs9C+INCy0YDQtdC80LXQvdC4XHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICB1cGRhdGUocGFyYW06IGlCWFJlc3RQYXJhbVVwZGF0ZUVsYXBzZWRpdGVtKSB7XHJcbiAgICBjb25zdCBmdW5jID0gKCkgPT4gdGhpcy5vcGVyYXRpb24uY2hlY2tQZXJtaXNzaW9uUmVhZFRhc2socGFyYW0uVEFTS0lEKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgoYWxsb3dlZFJlYWRUYXNrKSA9PiB7XHJcbiAgICAgICAgaWYgKGFsbG93ZWRSZWFkVGFzaykge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNBbGxvd2VkTW9kaWZ5KHBhcmFtLlRBU0tJRCwgcGFyYW0uSVRFTUlEKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhbGxvd2VkID0+IHtcclxuICAgICAgICAgICAgICBpZiAoYWxsb3dlZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuQlhSZXN0RWxhcHNlZEl0ZW0udXBkYXRlKHBhcmFtKVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINC40LfQvNC10L3QtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgIH0pKVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ9Ce0YLRgdGD0YLRgdGC0LLRg9GO0YIg0L/RgNCw0LLQsCDQvdCwINGH0YLQtdC90LjQtSDQt9Cw0LTQsNGH0LgnKSlcclxuICAgICAgfSkpXHJcbiAgICByZXR1cm4gbmV3IE5hdnZ5U2ltcGxlKHRoaXMsIHRoaXMuQlhSZXN0TWFwRWxhcHNlZEl0ZW0sIGZ1bmMuY2FsbCh0aGlzKSwgdGhpcy5CWFJlc3RNYXBFbGFwc2VkSXRlbS51cGRhdGUpXHJcbiAgfVxyXG5cclxuICAvKlxyXG4gIGdldEFsbChcclxuICAgIHBhcmFtczogUmVxdWVzdFBhcmFtc0VsYXBzZWRHZXRMaXN0IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxyXG4gICAgY2FjaGUgPSBmYWxzZVxyXG4gICk6IE9ic2VydmFibGU8aUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkW10+IHwgdW5kZWZpbmVkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXQocGFyYW1zLCBjYWNoZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWVyZ2VNYXAoaXRlbXMgPT4ge1xyXG4gICAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLnJlc3VsdCkge1xyXG4gICAgICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xyXG4gICAgICAgICAgICAgIHBhcmFtcyA9IChwYXJhbXMpID8gcGFyYW1zIDoge31cclxuICAgICAgICAgICAgICBwYXJhbXMuUEFSQU1TID0ge1xyXG4gICAgICAgICAgICAgICAgTkFWX1BBUkFNUzoge1xyXG4gICAgICAgICAgICAgICAgICBuUGFnZVNpemU6IHRoaXMucGFnZVNpemUsXHJcbiAgICAgICAgICAgICAgICAgIGlOdW1QYWdlOiBpdGVtcy5uZXh0IC8gdGhpcy5wYWdlU2l6ZSArIDFcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0QWxsKHBhcmFtcywgY2FjaGUpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAodkVuZCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh2RW5kICYmIHZFbmQucmVzdWx0ICYmIGl0ZW1zLnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXJnZShjbG9uZSh2RW5kKSwge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXNcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBvZihpdGVtcylcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAgKi9cclxuXHJcbiAgLypcclxuICBnZXRDYWNoZU9mZihwYXJhbXM6IFJlcXVlc3RQYXJhbXNFbGFwc2VkR2V0TGlzdCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGlIdHRwQW5zd2VyQlg8QlhSZXN0RWxhcHNlZEh0dHBbXT4gfCB1bmRlZmluZWQ+XHJcbiAgICAodGhpcy51cmwuZ2V0bGlzdCwgcGFyYW1zLCAn0L3QtSDRg9C00LDQu9C+0YHRjCDQv9C+0LvRg9GH0LjRgtGMINCy0YDQtdC80Y8g0L/QviDQt9Cw0LTQsNGH0LDQvCcpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCh2ID0+IHtcclxuICAgICAgICAgIGlmICh2ICYmIHYucmVzdWx0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc3VsdDogQlhSZXN0RWxhcHNlZFtdID0gW11cclxuICAgICAgICAgICAgZm9yIChsZXQgdGFzayBvZiB2LnJlc3VsdCkge1xyXG4gICAgICAgICAgICAgIG5ld1Jlc3VsdC5wdXNoKHRoaXMuZWxhcHNlZEJYTWFwLkFuc3dlckVsYXBzZWRHZXRIdHRwVG9BbnN3ZXJFbGFwc2VkR2V0KHRhc2spKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBleHRlbmQodiwge3Jlc3VsdDogbmV3UmVzdWx0fSkgYXMgaUh0dHBBbnN3ZXJCWDxCWFJlc3RFbGFwc2VkW10+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFwKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgJiYgcGFyYW1zKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goc2F2ZUh0dHBUYXNrVGltZSh7XHJcbiAgICAgICAgICAgICAgZmlsdGVyOiBjbG9uZShwYXJhbXMpLFxyXG4gICAgICAgICAgICAgIHRpbWU6IHZcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAqL1xyXG5cclxuICAvLyBUT0RPOiDRgNCw0LfQvtCx0YDQsNGC0YzRgdGPINGH0YLQviDRjdGC0L4g0LfQsCDQtdCx0LDRgtC90Y8g0LIg0LrQvtC80LzQtdC90YLQsNGFINC4INCy0L/QuNGB0LDRgtGMINC90L7RgNC80LDQu9GM0L3QvtC5INC60L7QvNC10L3RgiDQtdGB0LvQuCDQvtC90LAg0L3Rg9C20L3QsFxyXG4gIGlzQWxsb3dlZE1vZGlmeShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIC8vIGxldCBwZXJtaXNzaW9uID0gUGVybWlzc2lvbi5nZXQoKVxyXG4gICAgLy8gaWYgKHBlcm1pc3Npb24/LnRhc2tzPy5sZW5ndGgpIHtcclxuICAgIC8vICAgbGV0IGZpbmRUYXNrID0gcGVybWlzc2lvbi50YXNrcy5maW5kKGkgPT4gaS5pZCA9PT0gaWRUYXNrKVxyXG4gICAgLy8gICBpZiAoZmluZFRhc2spIHtcclxuICAgIC8vICAgICBsZXQgZmluZCA9IGZpbmRUYXNrLmVsYXBzZWRJdGVtLmZpbmQoaSA9PiBpLmlkID09PSBpZEl0ZW0pXHJcbiAgICAvLyAgICAgaWYgKGZpbmQgJiYgZmluZC52ZXJpZmllZC5lZGl0KSB7XHJcbiAgICAvLyAgICAgICByZXR1cm4gb2YoZmluZC5lZGl0KVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZCh7XHJcbiAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICBJVEVNSUQ6IGlkSXRlbSxcclxuICAgICAgQUNUSU9OSUQ6IDJcclxuICAgIH0pLnJlc3VsdCgpXHJcbiAgICAvLyAgIC5waXBlKFxyXG4gICAgLy8gICB0YXAodiA9PiB7XHJcbiAgICAvLyAgICAgaWYgKHYgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgLy8gICAgICAgUGVybWlzc2lvbi5zZXRUYXNrRWxhcHNlZEl0ZW0oaWRUYXNrLFxyXG4gICAgLy8gICAgICAgICB7XHJcbiAgICAvLyAgICAgICAgICAgaWQ6IGlkSXRlbSxcclxuICAgIC8vICAgICAgICAgICBlZGl0OiB2LFxyXG4gICAgLy8gICAgICAgICAgIGRlbDogZmFsc2UsXHJcbiAgICAvLyAgICAgICAgICAgdmVyaWZpZWQ6IHtcclxuICAgIC8vICAgICAgICAgICAgIGVkaXQ6IHRydWUsXHJcbiAgICAvLyAgICAgICAgICAgICBkZWw6IGZhbHNlLFxyXG4gICAgLy8gICAgICAgICAgIH1cclxuICAgIC8vICAgICAgICAgfSlcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH0pXHJcbiAgICAvLyApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzQWxsb3dlZFJlbW92ZShpZFRhc2s6IG51bWJlciwgaWRJdGVtOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQWN0aW9uQWxsb3dlZChcclxuICAgICAge1xyXG4gICAgICAgIFRBU0tJRDogaWRUYXNrLFxyXG4gICAgICAgIElURU1JRDogaWRJdGVtLFxyXG4gICAgICAgIEFDVElPTklEOiAzXHJcbiAgICAgIH0pLnJlc3VsdCgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBpZEFjdGlvbjpcclxuICAgKiAxIC0gQUNUSU9OX0VMQVBTRURfVElNRV9BRERcclxuICAgKiAyIC0gQUNUSU9OX0VMQVBTRURfVElNRV9NT0RJRllcclxuICAgKiAzIC0gQUNUSU9OX0VMQVBTRURfVElNRV9SRU1PVkVcclxuICAgKiBAcGFyYW0gcGFyYW1cclxuICAgKi9cclxuICBpc0FjdGlvbkFsbG93ZWQocGFyYW06IGlJc0FjdGlvbkFsbG93ZWRQYXJhbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKCgpID0+IHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoY2FuUmVhZCA9PiB7XHJcbiAgICAgICAgaWYgKGNhblJlYWQpIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLkJYUmVzdEVsYXBzZWRJdGVtLmlzQWN0aW9uQWxsb3dlZChwYXJhbSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgIH0pXHJcbiAgICApKVxyXG4gIH1cclxuXHJcbiAgZGVsKHBhcmFtOiBpQlhSZXN0UGFyYW1EZWxFbGFwc2VkaXRlbSkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKCgpID0+IHRoaXMub3BlcmF0aW9uLmNoZWNrUGVybWlzc2lvblJlYWRUYXNrKHBhcmFtLlRBU0tJRCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoYWxsb3dlZFJlYWRUYXNrID0+IHtcclxuICAgICAgICBpZiAoYWxsb3dlZFJlYWRUYXNrKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5pc0FsbG93ZWRSZW1vdmUocGFyYW0uVEFTS0lELCBwYXJhbS5JVEVNSUQpLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKGFsbG93ZWQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChhbGxvd2VkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5CWFJlc3RFbGFwc2VkSXRlbS5kZWwocGFyYW0pXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcign0J7RgtGB0YPRgtGB0YLQstGD0Y7RgiDQv9GA0LDQstCwINC90LAg0YPQtNCw0LvQtdC90LjQtSDQt9Cw0L/QuNGB0Lgg0LfQsNGC0YDQsNGH0LXQvdC90L7Qs9C+INCy0YDQtdC80LXQvdC4JykpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSlcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCfQntGC0YHRg9GC0YHRgtCy0YPRjtGCINC/0YDQsNCy0LAg0L3QsCDRh9GC0LXQvdC40LUg0LfQsNC00LDRh9C4JykpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKSwgdiA9PiAodiA9PT0gbnVsbCkpXHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,24 +1,24 @@
1
- import { Injectable } from '@angular/core';
2
- import { Navvy } from '../../../services/navvy';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../../request/task/item/userfield";
5
- import * as i2 from "../../../map/task/item/userfield";
6
- export class BXRestNavvyTaskItemUserField {
7
- constructor(userField, map) {
8
- this.userField = userField;
9
- this.map = map;
10
- this.Navvy = new Navvy(userField, map);
11
- }
12
- getList(param = {}) {
13
- return this.Navvy.PagNav(this.userField.getList, param, this.map.getList);
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTaskItemUserField, deps: [{ token: i1.BXRestTaskItemUserField }, { token: i2.BXRestMapTaskUserField }], target: i0.ɵɵFactoryTarget.Injectable }); }
16
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTaskItemUserField, providedIn: 'root' }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTaskItemUserField, decorators: [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root'
22
- }]
23
- }], ctorParameters: function () { return [{ type: i1.BXRestTaskItemUserField }, { type: i2.BXRestMapTaskUserField }]; } });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC1uYXZ2eS90YXNrL2l0ZW0vdXNlcmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7O0FBUy9DLE1BQU0sT0FBTyw0QkFBNEI7SUFJdkMsWUFDVSxTQUFrQyxFQUNsQyxHQUEyQjtRQUQzQixjQUFTLEdBQVQsU0FBUyxDQUF5QjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUVuQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQThDLEVBQUU7UUFDdEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQ3RCLEtBQUssRUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FDakIsQ0FBQTtJQUNILENBQUM7K0dBakJVLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07OzRGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0VGFza0l0ZW1Vc2VyRmllbGQgfSBmcm9tICcuLi8uLi8uLi9yZXF1ZXN0L3Rhc2svaXRlbS91c2VyZmllbGQnXHJcbmltcG9ydCB7IE5hdnZ5IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2dnknXHJcbmltcG9ydCB7IEJYUmVzdE1hcFRhc2tVc2VyRmllbGQgfSBmcm9tICcuLi8uLi8uLi9tYXAvdGFzay9pdGVtL3VzZXJmaWVsZCdcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0UGFyYW1UYXNrSXRlbVVzZXJGaWVsZEdldGxpc3RcclxufSBmcm9tICcuLi8uLi8uLi90eXBpZmljYXRpb24vcmVzdC90YXNrL2l0ZW0vdXNlcmZpZWxkL2dldGxpc3QnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVRhc2tJdGVtVXNlckZpZWxkIHtcclxuXHJcbiAgcHJvdGVjdGVkIE5hdnZ5OiBOYXZ2eTxCWFJlc3RUYXNrSXRlbVVzZXJGaWVsZCwgQlhSZXN0TWFwVGFza1VzZXJGaWVsZD5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHVzZXJGaWVsZDogQlhSZXN0VGFza0l0ZW1Vc2VyRmllbGQsXHJcbiAgICBwcml2YXRlIG1hcDogQlhSZXN0TWFwVGFza1VzZXJGaWVsZFxyXG4gICkge1xyXG4gICAgdGhpcy5OYXZ2eSA9IG5ldyBOYXZ2eSh1c2VyRmllbGQsIG1hcClcclxuICB9XHJcblxyXG4gIGdldExpc3QocGFyYW06IGlCWFJlc3RQYXJhbVRhc2tJdGVtVXNlckZpZWxkR2V0bGlzdCA9IHt9KXtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LlBhZ05hdihcclxuICAgICAgdGhpcy51c2VyRmllbGQuZ2V0TGlzdCxcclxuICAgICAgcGFyYW0sXHJcbiAgICAgIHRoaXMubWFwLmdldExpc3RcclxuICAgIClcclxuICB9XHJcbn0iXX0=
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { BXRestTaskItemUserField } from '../../../request/task/item/userfield';
3
+ import { Navvy } from '../../../services/navvy';
4
+ import { BXRestMapTaskUserField } from '../../../map/task/item/userfield';
5
+ import * as i0 from "@angular/core";
6
+ export class BXRestNavvyTaskItemUserField {
7
+ constructor() {
8
+ this.userField = inject(BXRestTaskItemUserField);
9
+ this.map = inject(BXRestMapTaskUserField);
10
+ this.Navvy = new Navvy(this.userField, this.map);
11
+ }
12
+ getList(param = {}) {
13
+ return this.Navvy.PagNav(this.userField.getList, param, this.map.getList);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyTaskItemUserField, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyTaskItemUserField, providedIn: 'root' }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyTaskItemUserField, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: 'root'
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvcmVxdWVzdC1uYXZ2eS90YXNrL2l0ZW0vdXNlcmZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQzlFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTs7QUFRekUsTUFBTSxPQUFPLDRCQUE0QjtJQUh6QztRQUttQixjQUFTLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUE7UUFDM0MsUUFBRyxHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFBO1FBQ3BDLFVBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtLQVM3RDtJQVBDLE9BQU8sQ0FBQyxRQUE4QyxFQUFFO1FBQ3RELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUN0QixLQUFLLEVBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQ2pCLENBQUE7SUFDSCxDQUFDOytHQVpVLDRCQUE0QjttSEFBNUIsNEJBQTRCLGNBRjNCLE1BQU07OzRGQUVQLDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3RUYXNrSXRlbVVzZXJGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3JlcXVlc3QvdGFzay9pdGVtL3VzZXJmaWVsZCdcclxuaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHsgQlhSZXN0TWFwVGFza1VzZXJGaWVsZCB9IGZyb20gJy4uLy4uLy4uL21hcC90YXNrL2l0ZW0vdXNlcmZpZWxkJ1xyXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbVRhc2tJdGVtVXNlckZpZWxkR2V0bGlzdFxyXG59IGZyb20gJy4uLy4uLy4uL3R5cGlmaWNhdGlvbi9yZXN0L3Rhc2svaXRlbS91c2VyZmllbGQvZ2V0bGlzdCdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza0l0ZW1Vc2VyRmllbGQge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJGaWVsZCA9IGluamVjdChCWFJlc3RUYXNrSXRlbVVzZXJGaWVsZClcclxuICBwcml2YXRlIHJlYWRvbmx5IG1hcCA9IGluamVjdChCWFJlc3RNYXBUYXNrVXNlckZpZWxkKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTmF2dnkgPSBuZXcgTmF2dnkodGhpcy51c2VyRmllbGQsIHRoaXMubWFwKVxyXG5cclxuICBnZXRMaXN0KHBhcmFtOiBpQlhSZXN0UGFyYW1UYXNrSXRlbVVzZXJGaWVsZEdldGxpc3QgPSB7fSl7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5QYWdOYXYoXHJcbiAgICAgIHRoaXMudXNlckZpZWxkLmdldExpc3QsXHJcbiAgICAgIHBhcmFtLFxyXG4gICAgICB0aGlzLm1hcC5nZXRMaXN0XHJcbiAgICApXHJcbiAgfVxyXG59Il19
@@ -1,17 +1,17 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./item/userfield";
4
- export class BXRestNavvyTaskItem {
5
- constructor(userField) {
6
- this.userField = userField;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTaskItem, deps: [{ token: i1.BXRestNavvyTaskItemUserField }], target: i0.ɵɵFactoryTarget.Injectable }); }
9
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTaskItem, providedIn: 'root' }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BXRestNavvyTaskItem, decorators: [{
12
- type: Injectable,
13
- args: [{
14
- providedIn: 'root'
15
- }]
16
- }], ctorParameters: function () { return [{ type: i1.BXRestNavvyTaskItemUserField }]; } });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFzay9pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7OztBQU0xQyxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQW1CLFNBQXVDO1FBQXZDLGNBQVMsR0FBVCxTQUFTLENBQThCO0lBQzFELENBQUM7K0dBSFUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVRhc2tJdGVtVXNlckZpZWxkIH0gZnJvbSAnLi9pdGVtL3VzZXJmaWVsZCdcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VGFza0l0ZW0ge1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdXNlckZpZWxkOiBCWFJlc3ROYXZ2eVRhc2tJdGVtVXNlckZpZWxkKSB7XHJcbiAgfVxyXG5cclxufSJdfQ==
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { BXRestNavvyTaskItemUserField } from './item/userfield';
3
+ import * as i0 from "@angular/core";
4
+ export class BXRestNavvyTaskItem {
5
+ constructor() {
6
+ this.userField = inject(BXRestNavvyTaskItemUserField);
7
+ }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyTaskItem, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
9
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyTaskItem, providedIn: 'root' }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: BXRestNavvyTaskItem, decorators: [{
12
+ type: Injectable,
13
+ args: [{
14
+ providedIn: 'root'
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdGFzay9pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2xELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGtCQUFrQixDQUFBOztBQUsvRCxNQUFNLE9BQU8sbUJBQW1CO0lBSGhDO1FBSWtCLGNBQVMsR0FBRyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQTtLQUNqRTsrR0FGWSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlUYXNrSXRlbVVzZXJGaWVsZCB9IGZyb20gJy4vaXRlbS91c2VyZmllbGQnXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVRhc2tJdGVtIHtcclxuICBwdWJsaWMgcmVhZG9ubHkgdXNlckZpZWxkID0gaW5qZWN0KEJYUmVzdE5hdnZ5VGFza0l0ZW1Vc2VyRmllbGQpXHJcbn0iXX0=