@bitrix24/b24jssdk 0.4.10 → 1.0.1

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 (258) hide show
  1. package/README-AI.md +2 -1
  2. package/dist/esm/_virtual/_commonjsHelpers.mjs +16 -0
  3. package/dist/esm/_virtual/_commonjsHelpers.mjs.map +1 -0
  4. package/dist/esm/_virtual/protobuf.mjs +16 -0
  5. package/dist/esm/_virtual/protobuf.mjs.map +1 -0
  6. package/dist/esm/_virtual/protobuf2.mjs +12 -0
  7. package/dist/esm/_virtual/protobuf2.mjs.map +1 -0
  8. package/dist/esm/core/abstract-b24.mjs +355 -0
  9. package/dist/esm/core/abstract-b24.mjs.map +1 -0
  10. package/dist/esm/core/actions/abstract-action.mjs +24 -0
  11. package/dist/esm/core/actions/abstract-action.mjs.map +1 -0
  12. package/dist/esm/core/actions/abstract-batch.mjs +95 -0
  13. package/dist/esm/core/actions/abstract-batch.mjs.map +1 -0
  14. package/dist/esm/core/actions/manager.mjs +53 -0
  15. package/dist/esm/core/actions/manager.mjs.map +1 -0
  16. package/dist/esm/core/actions/v2/batch-by-chunk.mjs +92 -0
  17. package/dist/esm/core/actions/v2/batch-by-chunk.mjs.map +1 -0
  18. package/dist/esm/core/actions/v2/batch.mjs +126 -0
  19. package/dist/esm/core/actions/v2/batch.mjs.map +1 -0
  20. package/dist/esm/core/actions/v2/call-list.mjs +131 -0
  21. package/dist/esm/core/actions/v2/call-list.mjs.map +1 -0
  22. package/dist/esm/core/actions/v2/call.mjs +68 -0
  23. package/dist/esm/core/actions/v2/call.mjs.map +1 -0
  24. package/dist/esm/core/actions/v2/fetch-list.mjs +132 -0
  25. package/dist/esm/core/actions/v2/fetch-list.mjs.map +1 -0
  26. package/dist/esm/core/actions/v2/manager-v2.mjs +74 -0
  27. package/dist/esm/core/actions/v2/manager-v2.mjs.map +1 -0
  28. package/dist/esm/core/actions/v3/batch-by-chunk.mjs +91 -0
  29. package/dist/esm/core/actions/v3/batch-by-chunk.mjs.map +1 -0
  30. package/dist/esm/core/actions/v3/batch.mjs +129 -0
  31. package/dist/esm/core/actions/v3/batch.mjs.map +1 -0
  32. package/dist/esm/core/actions/v3/call-list.mjs +127 -0
  33. package/dist/esm/core/actions/v3/call-list.mjs.map +1 -0
  34. package/dist/esm/core/actions/v3/call.mjs +58 -0
  35. package/dist/esm/core/actions/v3/call.mjs.map +1 -0
  36. package/dist/esm/core/actions/v3/fetch-list.mjs +125 -0
  37. package/dist/esm/core/actions/v3/fetch-list.mjs.map +1 -0
  38. package/dist/esm/core/actions/v3/manager-v3.mjs +74 -0
  39. package/dist/esm/core/actions/v3/manager-v3.mjs.map +1 -0
  40. package/dist/esm/core/http/abstract-http.mjs +563 -0
  41. package/dist/esm/core/http/abstract-http.mjs.map +1 -0
  42. package/dist/esm/core/http/ajax-error.mjs +107 -0
  43. package/dist/esm/core/http/ajax-error.mjs.map +1 -0
  44. package/dist/esm/core/http/ajax-result.mjs +176 -0
  45. package/dist/esm/core/http/ajax-result.mjs.map +1 -0
  46. package/dist/esm/core/http/limiters/adaptive-delayer.mjs +135 -0
  47. package/dist/esm/core/http/limiters/adaptive-delayer.mjs.map +1 -0
  48. package/dist/esm/core/http/limiters/manager.mjs +308 -0
  49. package/dist/esm/core/http/limiters/manager.mjs.map +1 -0
  50. package/dist/esm/core/http/limiters/operating-limiter.mjs +171 -0
  51. package/dist/esm/core/http/limiters/operating-limiter.mjs.map +1 -0
  52. package/dist/esm/core/http/limiters/params-factory.mjs +121 -0
  53. package/dist/esm/core/http/limiters/params-factory.mjs.map +1 -0
  54. package/dist/esm/core/http/limiters/rate-limiter.mjs +402 -0
  55. package/dist/esm/core/http/limiters/rate-limiter.mjs.map +1 -0
  56. package/dist/esm/core/http/v2.mjs +100 -0
  57. package/dist/esm/core/http/v2.mjs.map +1 -0
  58. package/dist/esm/core/http/v3.mjs +94 -0
  59. package/dist/esm/core/http/v3.mjs.map +1 -0
  60. package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs +69 -0
  61. package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs.map +1 -0
  62. package/dist/esm/core/interaction/batch/parse-row.mjs +67 -0
  63. package/dist/esm/core/interaction/batch/parse-row.mjs.map +1 -0
  64. package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs +42 -0
  65. package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs.map +1 -0
  66. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs +121 -0
  67. package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs.map +1 -0
  68. package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs +32 -0
  69. package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs.map +1 -0
  70. package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs +32 -0
  71. package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs.map +1 -0
  72. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs +118 -0
  73. package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs.map +1 -0
  74. package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs +32 -0
  75. package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs.map +1 -0
  76. package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs +32 -0
  77. package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs.map +1 -0
  78. package/dist/esm/core/interaction/batch/v2.mjs +44 -0
  79. package/dist/esm/core/interaction/batch/v2.mjs.map +1 -0
  80. package/dist/esm/core/interaction/batch/v3.mjs +42 -0
  81. package/dist/esm/core/interaction/batch/v3.mjs.map +1 -0
  82. package/dist/esm/core/language/list.mjs +56 -0
  83. package/dist/esm/core/language/list.mjs.map +1 -0
  84. package/dist/esm/core/request-id-generator.mjs +42 -0
  85. package/dist/esm/core/request-id-generator.mjs.map +1 -0
  86. package/dist/esm/core/result.mjs +101 -0
  87. package/dist/esm/core/result.mjs.map +1 -0
  88. package/dist/esm/core/sdk-error.mjs +83 -0
  89. package/dist/esm/core/sdk-error.mjs.map +1 -0
  90. package/dist/esm/core/tools/abstract-tool.mjs +24 -0
  91. package/dist/esm/core/tools/abstract-tool.mjs.map +1 -0
  92. package/dist/esm/core/tools/healthcheck.mjs +48 -0
  93. package/dist/esm/core/tools/healthcheck.mjs.map +1 -0
  94. package/dist/esm/core/tools/manager.mjs +50 -0
  95. package/dist/esm/core/tools/manager.mjs.map +1 -0
  96. package/dist/esm/core/tools/ping.mjs +56 -0
  97. package/dist/esm/core/tools/ping.mjs.map +1 -0
  98. package/dist/esm/core/version-manager.mjs +116 -0
  99. package/dist/esm/core/version-manager.mjs.map +1 -0
  100. package/dist/esm/frame/auth.mjs +98 -0
  101. package/dist/esm/frame/auth.mjs.map +1 -0
  102. package/dist/esm/frame/b24.mjs +170 -0
  103. package/dist/esm/frame/b24.mjs.map +1 -0
  104. package/dist/esm/frame/dialog.mjs +78 -0
  105. package/dist/esm/frame/dialog.mjs.map +1 -0
  106. package/dist/esm/frame/frame.mjs +101 -0
  107. package/dist/esm/frame/frame.mjs.map +1 -0
  108. package/dist/esm/frame/message/commands.mjs +37 -0
  109. package/dist/esm/frame/message/commands.mjs.map +1 -0
  110. package/dist/esm/frame/message/controller.mjs +177 -0
  111. package/dist/esm/frame/message/controller.mjs.map +1 -0
  112. package/dist/esm/frame/options.mjs +106 -0
  113. package/dist/esm/frame/options.mjs.map +1 -0
  114. package/dist/esm/frame/parent.mjs +250 -0
  115. package/dist/esm/frame/parent.mjs.map +1 -0
  116. package/dist/esm/frame/placement.mjs +131 -0
  117. package/dist/esm/frame/placement.mjs.map +1 -0
  118. package/dist/esm/frame/slider.mjs +156 -0
  119. package/dist/esm/frame/slider.mjs.map +1 -0
  120. package/dist/esm/helper/abstract-helper.mjs +52 -0
  121. package/dist/esm/helper/abstract-helper.mjs.map +1 -0
  122. package/dist/esm/helper/app-manager.mjs +37 -0
  123. package/dist/esm/helper/app-manager.mjs.map +1 -0
  124. package/dist/esm/helper/currency-manager.mjs +207 -0
  125. package/dist/esm/helper/currency-manager.mjs.map +1 -0
  126. package/dist/esm/helper/helper-manager.mjs +388 -0
  127. package/dist/esm/helper/helper-manager.mjs.map +1 -0
  128. package/dist/esm/helper/license-manager.mjs +50 -0
  129. package/dist/esm/helper/license-manager.mjs.map +1 -0
  130. package/dist/esm/helper/options-manager.mjs +196 -0
  131. package/dist/esm/helper/options-manager.mjs.map +1 -0
  132. package/dist/esm/helper/payment-manager.mjs +33 -0
  133. package/dist/esm/helper/payment-manager.mjs.map +1 -0
  134. package/dist/esm/helper/profile-manager.mjs +33 -0
  135. package/dist/esm/helper/profile-manager.mjs.map +1 -0
  136. package/dist/esm/helper/use-b24-helper.mjs +84 -0
  137. package/dist/esm/helper/use-b24-helper.mjs.map +1 -0
  138. package/dist/esm/hook/auth.mjs +77 -0
  139. package/dist/esm/hook/auth.mjs.map +1 -0
  140. package/dist/esm/hook/b24.mjs +115 -0
  141. package/dist/esm/hook/b24.mjs.map +1 -0
  142. package/dist/esm/index.d.mts +2757 -525
  143. package/dist/esm/index.d.ts +2757 -525
  144. package/dist/esm/index.mjs +70 -14111
  145. package/dist/esm/index.mjs.map +1 -1
  146. package/dist/esm/loader-b24frame.mjs +101 -0
  147. package/dist/esm/loader-b24frame.mjs.map +1 -0
  148. package/dist/esm/logger/abstract-logger.mjs +69 -0
  149. package/dist/esm/logger/abstract-logger.mjs.map +1 -0
  150. package/dist/esm/logger/browser.mjs +162 -0
  151. package/dist/esm/logger/browser.mjs.map +1 -0
  152. package/dist/esm/logger/formatter/abstract-formatter.mjs +34 -0
  153. package/dist/esm/logger/formatter/abstract-formatter.mjs.map +1 -0
  154. package/dist/esm/logger/formatter/json-formatter.mjs +34 -0
  155. package/dist/esm/logger/formatter/json-formatter.mjs.map +1 -0
  156. package/dist/esm/logger/formatter/line-formatter.mjs +41 -0
  157. package/dist/esm/logger/formatter/line-formatter.mjs.map +1 -0
  158. package/dist/esm/logger/formatter/telegram-formatter.mjs +103 -0
  159. package/dist/esm/logger/formatter/telegram-formatter.mjs.map +1 -0
  160. package/dist/esm/logger/handler/abstract-handler.mjs +39 -0
  161. package/dist/esm/logger/handler/abstract-handler.mjs.map +1 -0
  162. package/dist/esm/logger/handler/consola-adapter.mjs +62 -0
  163. package/dist/esm/logger/handler/consola-adapter.mjs.map +1 -0
  164. package/dist/esm/logger/handler/console-handler.mjs +98 -0
  165. package/dist/esm/logger/handler/console-handler.mjs.map +1 -0
  166. package/dist/esm/logger/handler/console-v2-handler.mjs +51 -0
  167. package/dist/esm/logger/handler/console-v2-handler.mjs.map +1 -0
  168. package/dist/esm/logger/handler/memory-handler.mjs +48 -0
  169. package/dist/esm/logger/handler/memory-handler.mjs.map +1 -0
  170. package/dist/esm/logger/handler/stream-handler.mjs +73 -0
  171. package/dist/esm/logger/handler/stream-handler.mjs.map +1 -0
  172. package/dist/esm/logger/handler/telegram-handler.mjs +157 -0
  173. package/dist/esm/logger/handler/telegram-handler.mjs.map +1 -0
  174. package/dist/esm/logger/handler/winston-adapter.mjs +57 -0
  175. package/dist/esm/logger/handler/winston-adapter.mjs.map +1 -0
  176. package/dist/esm/logger/logger-factory.mjs +67 -0
  177. package/dist/esm/logger/logger-factory.mjs.map +1 -0
  178. package/dist/esm/logger/logger.mjs +76 -0
  179. package/dist/esm/logger/logger.mjs.map +1 -0
  180. package/dist/esm/logger/null-logger.mjs +32 -0
  181. package/dist/esm/logger/null-logger.mjs.map +1 -0
  182. package/dist/esm/logger/processor/memory-usage-processor.mjs +20 -0
  183. package/dist/esm/logger/processor/memory-usage-processor.mjs.map +1 -0
  184. package/dist/esm/logger/processor/pid-processor.mjs +20 -0
  185. package/dist/esm/logger/processor/pid-processor.mjs.map +1 -0
  186. package/dist/esm/oauth/auth.mjs +211 -0
  187. package/dist/esm/oauth/auth.mjs.map +1 -0
  188. package/dist/esm/oauth/b24.mjs +117 -0
  189. package/dist/esm/oauth/b24.mjs.map +1 -0
  190. package/dist/esm/oauth/refresh-token-error.mjs +20 -0
  191. package/dist/esm/oauth/refresh-token-error.mjs.map +1 -0
  192. package/dist/esm/pullClient/abstract-connector.mjs +78 -0
  193. package/dist/esm/pullClient/abstract-connector.mjs.map +1 -0
  194. package/dist/esm/pullClient/channel-manager.mjs +89 -0
  195. package/dist/esm/pullClient/channel-manager.mjs.map +1 -0
  196. package/dist/esm/pullClient/client.mjs +2064 -0
  197. package/dist/esm/pullClient/client.mjs.map +1 -0
  198. package/dist/esm/pullClient/errors.mjs +31 -0
  199. package/dist/esm/pullClient/errors.mjs.map +1 -0
  200. package/dist/esm/pullClient/json-rpc.mjs +210 -0
  201. package/dist/esm/pullClient/json-rpc.mjs.map +1 -0
  202. package/dist/esm/pullClient/long-polling-connector.mjs +157 -0
  203. package/dist/esm/pullClient/long-polling-connector.mjs.map +1 -0
  204. package/dist/esm/pullClient/protobuf/index.mjs +17 -0
  205. package/dist/esm/pullClient/protobuf/index.mjs.map +1 -0
  206. package/dist/esm/pullClient/protobuf/model.mjs +1058 -0
  207. package/dist/esm/pullClient/protobuf/model.mjs.map +1 -0
  208. package/dist/esm/pullClient/protobuf/protobuf.mjs +4653 -0
  209. package/dist/esm/pullClient/protobuf/protobuf.mjs.map +1 -0
  210. package/dist/esm/pullClient/shared-config.mjs +133 -0
  211. package/dist/esm/pullClient/shared-config.mjs.map +1 -0
  212. package/dist/esm/pullClient/storage-manager.mjs +72 -0
  213. package/dist/esm/pullClient/storage-manager.mjs.map +1 -0
  214. package/dist/esm/pullClient/web-socket-connector.mjs +129 -0
  215. package/dist/esm/pullClient/web-socket-connector.mjs.map +1 -0
  216. package/dist/esm/tools/browser.mjs +154 -0
  217. package/dist/esm/tools/browser.mjs.map +1 -0
  218. package/dist/esm/tools/environment.mjs +29 -0
  219. package/dist/esm/tools/environment.mjs.map +1 -0
  220. package/dist/esm/tools/formatters/iban.mjs +304 -0
  221. package/dist/esm/tools/formatters/iban.mjs.map +1 -0
  222. package/dist/esm/tools/formatters/numbers.mjs +64 -0
  223. package/dist/esm/tools/formatters/numbers.mjs.map +1 -0
  224. package/dist/esm/tools/index.mjs +37 -0
  225. package/dist/esm/tools/index.mjs.map +1 -0
  226. package/dist/esm/tools/scroll-size.mjs +25 -0
  227. package/dist/esm/tools/scroll-size.mjs.map +1 -0
  228. package/dist/esm/tools/text.mjs +208 -0
  229. package/dist/esm/tools/text.mjs.map +1 -0
  230. package/dist/esm/tools/type.mjs +337 -0
  231. package/dist/esm/tools/type.mjs.map +1 -0
  232. package/dist/esm/tools/use-formatters.mjs +460 -0
  233. package/dist/esm/tools/use-formatters.mjs.map +1 -0
  234. package/dist/esm/tools/uuidv7.mjs +54 -0
  235. package/dist/esm/tools/uuidv7.mjs.map +1 -0
  236. package/dist/esm/types/b24-helper.mjs +56 -0
  237. package/dist/esm/types/b24-helper.mjs.map +1 -0
  238. package/dist/esm/types/b24.mjs +16 -0
  239. package/dist/esm/types/b24.mjs.map +1 -0
  240. package/dist/esm/types/bizproc/index.mjs +187 -0
  241. package/dist/esm/types/bizproc/index.mjs.map +1 -0
  242. package/dist/esm/types/catalog/index.mjs +35 -0
  243. package/dist/esm/types/catalog/index.mjs.map +1 -0
  244. package/dist/esm/types/common.mjs +31 -0
  245. package/dist/esm/types/common.mjs.map +1 -0
  246. package/dist/esm/types/crm/entity-type.mjs +57 -0
  247. package/dist/esm/types/crm/entity-type.mjs.map +1 -0
  248. package/dist/esm/types/crm/productrow.mjs +17 -0
  249. package/dist/esm/types/crm/productrow.mjs.map +1 -0
  250. package/dist/esm/types/logger.mjs +22 -0
  251. package/dist/esm/types/logger.mjs.map +1 -0
  252. package/dist/esm/types/pull.mjs +83 -0
  253. package/dist/esm/types/pull.mjs.map +1 -0
  254. package/dist/umd/index.js +31216 -26905
  255. package/dist/umd/index.js.map +1 -1
  256. package/dist/umd/index.min.js +63 -40
  257. package/dist/umd/index.min.js.map +1 -1
  258. package/package.json +36 -31
@@ -0,0 +1,250 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.1
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import useScrollSize from '../tools/scroll-size.mjs';
10
+ import { MessageCommands } from './message/commands.mjs';
11
+
12
+ var __defProp = Object.defineProperty;
13
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
14
+ class ParentManager {
15
+ static {
16
+ __name(this, "ParentManager");
17
+ }
18
+ #messageManager;
19
+ constructor(messageManager) {
20
+ this.#messageManager = messageManager;
21
+ }
22
+ /**
23
+ * The method closes the open modal window with the application
24
+ *
25
+ * @return {Promise<void>}
26
+ *
27
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-close-application.html
28
+ */
29
+ async closeApplication() {
30
+ return this.#messageManager.send(MessageCommands.closeApplication, {
31
+ /**
32
+ * @memo There is no point - everything will be closed, and timeout will not be able to do anything
33
+ */
34
+ isSafely: false
35
+ });
36
+ }
37
+ /**
38
+ * Sets the size of the frame containing the application to the size of the frame's content.
39
+ *
40
+ * @return {Promise<void>}
41
+ *
42
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-fit-window.html
43
+ *
44
+ * @memo in certain situations it may not be executed (placement of the main window after installing the application), in this case isSafely mode will work
45
+ */
46
+ async fitWindow() {
47
+ const width = "100%";
48
+ const height = this.getScrollSize().scrollHeight;
49
+ return this.#messageManager.send(MessageCommands.resizeWindow, {
50
+ width,
51
+ height,
52
+ isSafely: true
53
+ });
54
+ }
55
+ /**
56
+ * Sets the size of the frame containing the application to the size of the frame's content.
57
+ *
58
+ * @param {number} width
59
+ * @param {number} height
60
+ *
61
+ * @return {Promise<void>}
62
+ *
63
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-resize-window.html
64
+ *
65
+ * @memo in certain situations it may not be executed, in this case isSafely mode will be triggered
66
+ */
67
+ async resizeWindow(width, height) {
68
+ if (width > 0 && height > 0) {
69
+ return this.#messageManager.send(MessageCommands.resizeWindow, {
70
+ width,
71
+ height,
72
+ isSafely: true
73
+ });
74
+ }
75
+ return Promise.reject(
76
+ new Error(`Wrong width:number = ${width} or height:number = ${height}`)
77
+ );
78
+ }
79
+ /**
80
+ * Automatically resize `document.body` of frame with application according to frame content dimensions
81
+ * If you pass appNode, the height will be calculated relative to it
82
+ *
83
+ * @param {HTMLElement|null} appNode
84
+ * @param {number} minHeight
85
+ * @param {number} minWidth
86
+ *
87
+ * @return {Promise<void>}
88
+ */
89
+ async resizeWindowAuto(appNode = null, minHeight = 0, minWidth = 0) {
90
+ const body = document.body;
91
+ let width = Math.max(
92
+ body.scrollWidth,
93
+ body.offsetWidth
94
+ // html.clientWidth,
95
+ // html.scrollWidth,
96
+ // html.offsetWidth
97
+ );
98
+ if (minWidth > 0) {
99
+ width = Math.max(minWidth, width);
100
+ }
101
+ let height = Math.max(
102
+ body.scrollHeight,
103
+ body.offsetHeight
104
+ // html.clientHeight,
105
+ // html.scrollHeight,
106
+ // html.offsetHeight
107
+ );
108
+ if (appNode) {
109
+ height = Math.max(appNode.scrollHeight, appNode.offsetHeight);
110
+ }
111
+ if (minHeight > 0) {
112
+ height = Math.max(minHeight, height);
113
+ }
114
+ return this.resizeWindow(width, height);
115
+ }
116
+ /**
117
+ * This function returns the inner dimensions of the application frame
118
+ *
119
+ * @return {Promise<{scrollWidth: number; scrollHeight: number}>}
120
+ *
121
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-scroll-size.html
122
+ */
123
+ getScrollSize() {
124
+ return useScrollSize();
125
+ }
126
+ /**
127
+ * Scrolls the parent window
128
+ *
129
+ * @param {number} scroll should specify the vertical scrollbar position (0 - scroll to the very top)
130
+ * @return {Promise<void>}
131
+ *
132
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-scroll-parent-window.html
133
+ */
134
+ async scrollParentWindow(scroll) {
135
+ if (!Number.isInteger(scroll)) {
136
+ return Promise.reject(new Error("Wrong scroll number"));
137
+ }
138
+ if (scroll < 0) {
139
+ scroll = 0;
140
+ }
141
+ return this.#messageManager.send(MessageCommands.setScroll, {
142
+ scroll,
143
+ isSafely: true
144
+ });
145
+ }
146
+ /**
147
+ * Reload the page with the application (the whole page, not just the frame).
148
+ *
149
+ * @return {Promise<void>}
150
+ *
151
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-reload-window.html
152
+ */
153
+ async reloadWindow() {
154
+ return this.#messageManager.send(MessageCommands.reloadWindow, {
155
+ isSafely: true
156
+ });
157
+ }
158
+ /**
159
+ * Set Page Title
160
+ *
161
+ * @param {string} title
162
+ *
163
+ * @return {Promise<void>}
164
+ *
165
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-set-title.html
166
+ */
167
+ async setTitle(title) {
168
+ return this.#messageManager.send(MessageCommands.setTitle, {
169
+ title: title.toString(),
170
+ isSafely: true
171
+ });
172
+ }
173
+ /**
174
+ * Initiates a call via internal communication
175
+ *
176
+ * @param {number} userId The identifier of the account user
177
+ * @param {boolean} isVideo true - video call, false - audio call. Optional parameter.
178
+ *
179
+ * @return {Promise<void>}
180
+ *
181
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-call-to.html
182
+ */
183
+ async imCallTo(userId, isVideo = true) {
184
+ return this.#messageManager.send(MessageCommands.imCallTo, {
185
+ userId,
186
+ video: isVideo,
187
+ isSafely: true
188
+ });
189
+ }
190
+ /**
191
+ * Makes a call to the phone number
192
+ *
193
+ * @param {string} phone Phone number. The number can be in the format: `+44 20 1234 5678` or `x (xxx) xxx-xx-xx`
194
+ *
195
+ * @return {Promise<void>}
196
+ *
197
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-phone-to.html
198
+ */
199
+ async imPhoneTo(phone) {
200
+ return this.#messageManager.send(MessageCommands.imPhoneTo, {
201
+ phone,
202
+ isSafely: true
203
+ });
204
+ }
205
+ /**
206
+ * Opens the messenger window
207
+ * userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.
208
+ * sgXXX - group chat, where XXX is the social network group number (the chat must be enabled in this group).
209
+ *
210
+ * XXXX** - open line, where XXX is the code obtained via the Rest method imopenlines.network.join.
211
+ *
212
+ * If nothing is passed, the chat interface will open with the last opened dialog.
213
+ *
214
+ * @param {number|`chat${number}`|`sg${number}`|`imol|${number}`|undefined} dialogId
215
+ *
216
+ * @return {Promise<void>}
217
+ *
218
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-messenger.html
219
+ * @link https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=20152&LESSON_PATH=7657.7883.8025.20150.20152
220
+ *
221
+ */
222
+ async imOpenMessenger(dialogId) {
223
+ return this.#messageManager.send(MessageCommands.imOpenMessenger, {
224
+ dialogId,
225
+ isSafely: true
226
+ });
227
+ }
228
+ /**
229
+ * Opens the history window
230
+ * Identifier of the dialog:
231
+ *
232
+ * userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.
233
+ * imol|XXXX - open line, where XXX is the session number of the open line.
234
+ *
235
+ * @param {number|`chat${number}`|`imol|${number}`} dialogId
236
+ *
237
+ * @return {Promise<void>}
238
+ *
239
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-history.html
240
+ */
241
+ async imOpenHistory(dialogId) {
242
+ return this.#messageManager.send(MessageCommands.imOpenHistory, {
243
+ dialogId,
244
+ isSafely: true
245
+ });
246
+ }
247
+ }
248
+
249
+ export { ParentManager };
250
+ //# sourceMappingURL=parent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent.mjs","sources":["../../../src/frame/parent.ts"],"sourcesContent":["import type { MessageManager } from './message'\nimport { MessageCommands } from './message'\nimport useScrollSize from '../tools/scroll-size'\n\n/**\n * Parent window manager\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/\n */\nexport class ParentManager {\n #messageManager: MessageManager\n\n constructor(messageManager: MessageManager) {\n this.#messageManager = messageManager\n }\n\n /**\n * The method closes the open modal window with the application\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-close-application.html\n */\n async closeApplication(): Promise<void> {\n return this.#messageManager.send(MessageCommands.closeApplication, {\n /**\n * @memo There is no point - everything will be closed, and timeout will not be able to do anything\n */\n isSafely: false\n })\n }\n\n /**\n * Sets the size of the frame containing the application to the size of the frame's content.\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-fit-window.html\n *\n * @memo in certain situations it may not be executed (placement of the main window after installing the application), in this case isSafely mode will work\n */\n async fitWindow(): Promise<any> {\n const width = '100%'\n const height = this.getScrollSize().scrollHeight\n\n return this.#messageManager.send(MessageCommands.resizeWindow, {\n width,\n height,\n isSafely: true\n })\n }\n\n /**\n * Sets the size of the frame containing the application to the size of the frame's content.\n *\n * @param {number} width\n * @param {number} height\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-resize-window.html\n *\n * @memo in certain situations it may not be executed, in this case isSafely mode will be triggered\n */\n async resizeWindow(width: number, height: number): Promise<void> {\n if (width > 0 && height > 0) {\n return this.#messageManager.send(MessageCommands.resizeWindow, {\n width,\n height,\n isSafely: true\n })\n }\n\n return Promise.reject(\n new Error(`Wrong width:number = ${width} or height:number = ${height}`)\n )\n }\n\n /**\n * Automatically resize `document.body` of frame with application according to frame content dimensions\n * If you pass appNode, the height will be calculated relative to it\n *\n * @param {HTMLElement|null} appNode\n * @param {number} minHeight\n * @param {number} minWidth\n *\n * @return {Promise<void>}\n */\n async resizeWindowAuto(\n appNode: null | HTMLElement = null,\n minHeight: number = 0,\n minWidth: number = 0\n ): Promise<void> {\n const body = document.body\n // const html = document.documentElement\n\n let width = Math.max(\n body.scrollWidth,\n body.offsetWidth\n\n // html.clientWidth,\n // html.scrollWidth,\n // html.offsetWidth\n )\n\n if (minWidth > 0) {\n width = Math.max(minWidth, width)\n }\n\n let height = Math.max(\n body.scrollHeight,\n body.offsetHeight\n\n // html.clientHeight,\n // html.scrollHeight,\n // html.offsetHeight\n )\n\n if (appNode) {\n height = Math.max(appNode.scrollHeight, appNode.offsetHeight)\n }\n\n if (minHeight > 0) {\n height = Math.max(minHeight, height)\n }\n\n return this.resizeWindow(width, height)\n }\n\n /**\n * This function returns the inner dimensions of the application frame\n *\n * @return {Promise<{scrollWidth: number; scrollHeight: number}>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-scroll-size.html\n */\n getScrollSize(): {\n scrollWidth: number\n scrollHeight: number\n } {\n return useScrollSize()\n }\n\n /**\n * Scrolls the parent window\n *\n * @param {number} scroll should specify the vertical scrollbar position (0 - scroll to the very top)\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-scroll-parent-window.html\n */\n async scrollParentWindow(scroll: number): Promise<void> {\n if (!Number.isInteger(scroll)) {\n return Promise.reject(new Error('Wrong scroll number'))\n }\n\n if (scroll < 0) {\n scroll = 0\n }\n\n return this.#messageManager.send(MessageCommands.setScroll, {\n scroll,\n isSafely: true\n })\n }\n\n /**\n * Reload the page with the application (the whole page, not just the frame).\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-reload-window.html\n */\n async reloadWindow(): Promise<void> {\n return this.#messageManager.send(MessageCommands.reloadWindow, {\n isSafely: true\n })\n }\n\n /**\n * Set Page Title\n *\n * @param {string} title\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-set-title.html\n */\n async setTitle(title: string): Promise<void> {\n return this.#messageManager.send(MessageCommands.setTitle, {\n title: title.toString(),\n isSafely: true\n })\n }\n\n /**\n * Initiates a call via internal communication\n *\n * @param {number} userId The identifier of the account user\n * @param {boolean} isVideo true - video call, false - audio call. Optional parameter.\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-call-to.html\n */\n async imCallTo(userId: number, isVideo: boolean = true): Promise<void> {\n return this.#messageManager.send(MessageCommands.imCallTo, {\n userId,\n video: isVideo,\n isSafely: true\n })\n }\n\n /**\n * Makes a call to the phone number\n *\n * @param {string} phone Phone number. The number can be in the format: `+44 20 1234 5678` or `x (xxx) xxx-xx-xx`\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-phone-to.html\n */\n async imPhoneTo(phone: string): Promise<void> {\n return this.#messageManager.send(MessageCommands.imPhoneTo, {\n phone,\n isSafely: true\n })\n }\n\n /**\n * Opens the messenger window\n * userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.\n * sgXXX - group chat, where XXX is the social network group number (the chat must be enabled in this group).\n *\n * XXXX** - open line, where XXX is the code obtained via the Rest method imopenlines.network.join.\n *\n * If nothing is passed, the chat interface will open with the last opened dialog.\n *\n * @param {number|`chat${number}`|`sg${number}`|`imol|${number}`|undefined} dialogId\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-messenger.html\n * @link https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&LESSON_ID=20152&LESSON_PATH=7657.7883.8025.20150.20152\n *\n */\n async imOpenMessenger(\n dialogId:\n | number\n | `chat${number}`\n | `sg${number}`\n | `imol|${number}`\n | undefined\n ): Promise<void> {\n return this.#messageManager.send(MessageCommands.imOpenMessenger, {\n dialogId: dialogId,\n isSafely: true\n })\n }\n\n /**\n * Opens the history window\n * Identifier of the dialog:\n *\n * userId or chatXXX - chat, where XXX is the chat identifier, which can simply be a number.\n * imol|XXXX - open line, where XXX is the session number of the open line.\n *\n * @param {number|`chat${number}`|`imol|${number}`} dialogId\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-im-open-history.html\n */\n async imOpenHistory(\n dialogId: number | `chat${number}` | `imol|${number}`\n ): Promise<void> {\n return this.#messageManager.send(MessageCommands.imOpenHistory, {\n dialogId: dialogId,\n isSafely: true\n })\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.1
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { Type } from '../tools/type.mjs';
10
+ import { MessageCommands } from './message/commands.mjs';
11
+
12
+ var __defProp = Object.defineProperty;
13
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
14
+ class PlacementManager {
15
+ static {
16
+ __name(this, "PlacementManager");
17
+ }
18
+ #messageManager;
19
+ #placement = "";
20
+ #options = {};
21
+ constructor(messageManager) {
22
+ this.#messageManager = messageManager;
23
+ }
24
+ /**
25
+ * Initializes the data received from the parent window message.
26
+ * @param data
27
+ */
28
+ initData(data) {
29
+ this.#placement = data.PLACEMENT || "DEFAULT";
30
+ this.#options = Object.freeze(data.PLACEMENT_OPTIONS);
31
+ return this;
32
+ }
33
+ /**
34
+ * Symlink on `placement`
35
+ * For backward compatibility
36
+ */
37
+ get title() {
38
+ return this.#placement;
39
+ }
40
+ get placement() {
41
+ return this.#placement;
42
+ }
43
+ get isDefault() {
44
+ return this.placement === "DEFAULT";
45
+ }
46
+ get options() {
47
+ return this.#options;
48
+ }
49
+ get isSliderMode() {
50
+ return this.options?.IFRAME === "Y";
51
+ }
52
+ /**
53
+ * Get Information About the JS Interface of the Current Embedding Location
54
+ *
55
+ * @return {Promise<any>}
56
+ *
57
+ * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-get-interface.html
58
+ */
59
+ async getInterface() {
60
+ return this.#messageManager.send(
61
+ MessageCommands.getInterface,
62
+ {
63
+ isSafely: true
64
+ }
65
+ );
66
+ }
67
+ /**
68
+ * Set Up the Interface Event Handler
69
+ * @param {string} eventName
70
+ * @param {(...args: any[]) => void} callBack
71
+ * @return {Promise<any>}
72
+ *
73
+ * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-bind-event.html
74
+ */
75
+ async bindEvent(eventName, callBack) {
76
+ return this.#messageManager.send(
77
+ MessageCommands.placementBindEvent,
78
+ {
79
+ event: eventName,
80
+ callBack,
81
+ isSafely: true
82
+ }
83
+ );
84
+ }
85
+ /**
86
+ * Call the Registered Interface Command
87
+ * @param { string } command
88
+ * @param { Record<string, any> } parameters
89
+ * @return { Promise<any> }
90
+ *
91
+ * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-call.html
92
+ * @memo For the `setValue` command, use the following parameters { value: string }
93
+ */
94
+ async call(command, parameters = {}) {
95
+ return this.#messageManager.send(
96
+ command,
97
+ {
98
+ ...parameters,
99
+ isSafely: true,
100
+ isRawValue: ["setValue"].includes(command)
101
+ }
102
+ );
103
+ }
104
+ /**
105
+ * Set Up the Interface Event Handler
106
+ * @param {string} command
107
+ * @param {null | string | Record<string, any>} parameters
108
+ * @param {(...args: any[]) => void} callBack
109
+ *
110
+ * @return {Promise<any>}
111
+ */
112
+ async callCustomBind(command, parameters = null, callBack) {
113
+ let options = {};
114
+ if (Type.isString(parameters)) {
115
+ options["singleOption"] = parameters;
116
+ } else if (Type.isObjectLike(parameters)) {
117
+ options = { ...parameters };
118
+ }
119
+ return this.#messageManager.send(
120
+ command,
121
+ {
122
+ ...options,
123
+ callBack,
124
+ isSafely: true
125
+ }
126
+ );
127
+ }
128
+ }
129
+
130
+ export { PlacementManager };
131
+ //# sourceMappingURL=placement.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.mjs","sources":["../../../src/frame/placement.ts"],"sourcesContent":["import type { MessageManager } from './message'\nimport type { MessageInitData } from '../types/auth'\nimport { MessageCommands } from './message'\nimport { Type } from '../tools/type'\n\n/**\n * Placement Manager\n *\n * @see https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/index.html\n */\nexport class PlacementManager {\n #messageManager: MessageManager\n #placement: string = ''\n #options: object = {}\n\n constructor(messageManager: MessageManager) {\n this.#messageManager = messageManager\n }\n\n /**\n * Initializes the data received from the parent window message.\n * @param data\n */\n initData(data: MessageInitData): PlacementManager {\n this.#placement = data.PLACEMENT || 'DEFAULT'\n this.#options = Object.freeze(data.PLACEMENT_OPTIONS)\n\n return this\n }\n\n /**\n * Symlink on `placement`\n * For backward compatibility\n */\n get title(): string {\n return this.#placement\n }\n\n get placement(): string {\n return this.#placement\n }\n\n get isDefault(): boolean {\n return this.placement === 'DEFAULT'\n }\n\n get options(): any {\n return this.#options\n }\n\n get isSliderMode(): boolean {\n return this.options?.IFRAME === 'Y'\n }\n\n /**\n * Get Information About the JS Interface of the Current Embedding Location\n *\n * @return {Promise<any>}\n *\n * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-get-interface.html\n */\n async getInterface(): Promise<any> {\n return this.#messageManager.send(\n MessageCommands.getInterface,\n {\n isSafely: true\n }\n )\n }\n\n /**\n * Set Up the Interface Event Handler\n * @param {string} eventName\n * @param {(...args: any[]) => void} callBack\n * @return {Promise<any>}\n *\n * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-bind-event.html\n */\n async bindEvent(\n eventName: string,\n callBack: (...args: any[]) => void\n ): Promise<any> {\n return this.#messageManager.send(\n MessageCommands.placementBindEvent,\n {\n event: eventName,\n callBack,\n isSafely: true\n }\n )\n }\n\n /**\n * Call the Registered Interface Command\n * @param { string } command\n * @param { Record<string, any> } parameters\n * @return { Promise<any> }\n *\n * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-call.html\n * @memo For the `setValue` command, use the following parameters { value: string }\n */\n async call(command: string, parameters: Record<string, any> = {}): Promise<any> {\n return this.#messageManager.send(\n command,\n {\n ...parameters,\n isSafely: true,\n isRawValue: ['setValue'].includes(command)\n }\n )\n }\n\n /**\n * Set Up the Interface Event Handler\n * @param {string} command\n * @param {null | string | Record<string, any>} parameters\n * @param {(...args: any[]) => void} callBack\n *\n * @return {Promise<any>}\n */\n async callCustomBind(\n command: string,\n parameters: null | string | Record<string, any> = null,\n callBack: (...args: any[]) => void\n ): Promise<any> {\n let options: Record<string, any> = {}\n if (Type.isString(parameters)) {\n options['singleOption'] = parameters\n } else if (Type.isObjectLike(parameters)) {\n options = { ...(parameters as object) }\n }\n\n return this.#messageManager.send(\n command,\n {\n ...options,\n callBack,\n isSafely: true\n }\n )\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.1
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { MessageCommands } from './message/commands.mjs';
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ class SliderManager {
14
+ static {
15
+ __name(this, "SliderManager");
16
+ }
17
+ #appFrame;
18
+ #messageManager;
19
+ constructor(appFrame, messageManager) {
20
+ this.#appFrame = appFrame;
21
+ this.#messageManager = messageManager;
22
+ }
23
+ /**
24
+ * Returns the URL relative to the domain name and path
25
+ */
26
+ getUrl(path = "/") {
27
+ return new URL(path, this.#appFrame.getTargetOrigin());
28
+ }
29
+ /**
30
+ * Get the account address BX24
31
+ */
32
+ getTargetOrigin() {
33
+ return this.#appFrame.getTargetOrigin();
34
+ }
35
+ /**
36
+ * When the method is called, a pop-up window with the application frame will be opened.
37
+ *
38
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-open-application.html
39
+ */
40
+ async openSliderAppPage(params = {}) {
41
+ return this.#messageManager.send(MessageCommands.openApplication, params);
42
+ }
43
+ /**
44
+ * The method closes the open modal window with the application
45
+ *
46
+ * @return {Promise<void>}
47
+ *
48
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-close-application.html
49
+ */
50
+ async closeSliderAppPage() {
51
+ return this.#messageManager.send(MessageCommands.closeApplication, {
52
+ /**
53
+ * @memo There is no point - everything will be closed, and timeout will not be able to do anything
54
+ */
55
+ isSafely: false
56
+ });
57
+ }
58
+ /**
59
+ * Defines the base path for width sampling.
60
+ *
61
+ * @param width
62
+ * @private
63
+ */
64
+ #getBaseUrlByWidth(width = 1640) {
65
+ if (width > 0) {
66
+ if (width > 1200 && width <= 1640) {
67
+ return "/crm/type/0/details/0/../../../../..";
68
+ } else if (width > 950 && width <= 1200) {
69
+ return "/company/personal/user/0/groups/create/../../../../../..";
70
+ } else if (width > 900 && width <= 950) {
71
+ return "/crm/company/requisite/0/../../../..";
72
+ } else if (width <= 900) {
73
+ return "/workgroups/group/0/card/../../../..";
74
+ } else {
75
+ return "/crm/deal/../..";
76
+ }
77
+ } else {
78
+ return "/crm/deal/../..";
79
+ }
80
+ }
81
+ /**
82
+ * Opens the specified path inside the portal in the slider.
83
+ * @param {URL} url
84
+ * @param {number} width - Number in the range from 1640 to 1200, from 1200 to 950, from 950 to 900, from 900 ...
85
+ * @return {Promise<StatusClose>}
86
+ *
87
+ * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-open-path.html
88
+ * @memo /^\/(crm\/(deal|lead|contact|company|type)|marketplace|company\/personal\/user\/[0-9]+|workgroups\/group\/[0-9]+)\//
89
+ */
90
+ async openPath(url, width = 1640) {
91
+ const openSliderUrl = new URL(url);
92
+ openSliderUrl.searchParams.set("IFRAME", "Y");
93
+ openSliderUrl.searchParams.set("IFRAME_TYPE", "SIDE_SLIDER");
94
+ return this.#messageManager.send(MessageCommands.openPath, {
95
+ path: [
96
+ this.#getBaseUrlByWidth(width),
97
+ openSliderUrl.pathname,
98
+ openSliderUrl.search
99
+ ].join("")
100
+ }).then((response) => {
101
+ if (response?.result === "error") {
102
+ if (response?.errorCode === "METHOD_NOT_SUPPORTED_ON_DEVICE") {
103
+ return new Promise((resolve, reject) => {
104
+ const windowObjectReference = window.open(url, "_blank");
105
+ if (!windowObjectReference) {
106
+ reject(new Error("Error open window"));
107
+ return;
108
+ }
109
+ let iterator = 0;
110
+ const iteratorMax = 1e3 * 60 * 5;
111
+ const waitCloseWindow = window.setInterval(() => {
112
+ iterator = iterator + 1;
113
+ if (windowObjectReference.closed) {
114
+ clearInterval(waitCloseWindow);
115
+ resolve({
116
+ isOpenAtNewWindow: true,
117
+ isClose: true
118
+ });
119
+ } else if (iterator > iteratorMax) {
120
+ clearInterval(waitCloseWindow);
121
+ resolve({
122
+ isOpenAtNewWindow: true,
123
+ isClose: false
124
+ });
125
+ }
126
+ }, 1e3);
127
+ });
128
+ } else {
129
+ return Promise.reject(new Error(response?.errorCode));
130
+ }
131
+ } else if (response?.result === "close") {
132
+ return Promise.resolve({
133
+ isOpenAtNewWindow: false,
134
+ isClose: true
135
+ });
136
+ }
137
+ return Promise.resolve({
138
+ isOpenAtNewWindow: false,
139
+ isClose: false
140
+ });
141
+ });
142
+ }
143
+ /**
144
+ * @todo test this and remove
145
+ */
146
+ // async showAppForm(params: any): Promise<void> {
147
+ // console.warn(`deprecated showAppForm`)
148
+ // return this.#messageManager.send(MessageCommands.showAppForm, {
149
+ // params: params,
150
+ // isSafely: true
151
+ // })
152
+ // }
153
+ }
154
+
155
+ export { SliderManager };
156
+ //# sourceMappingURL=slider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.mjs","sources":["../../../src/frame/slider.ts"],"sourcesContent":["import type { AppFrame } from './frame'\nimport type { MessageManager } from './message'\nimport { MessageCommands } from './message'\nimport type { StatusClose } from '../types/slider'\n\n/**\n * Sliders Manager\n */\nexport class SliderManager {\n #appFrame: AppFrame\n #messageManager: MessageManager\n\n constructor(appFrame: AppFrame, messageManager: MessageManager) {\n this.#appFrame = appFrame\n this.#messageManager = messageManager\n }\n\n /**\n * Returns the URL relative to the domain name and path\n */\n getUrl(path: string = '/'): URL {\n return new URL(path, this.#appFrame.getTargetOrigin())\n }\n\n /**\n * Get the account address BX24\n */\n getTargetOrigin(): string {\n return this.#appFrame.getTargetOrigin()\n }\n\n /**\n * When the method is called, a pop-up window with the application frame will be opened.\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-open-application.html\n */\n async openSliderAppPage(params: any = {}): Promise<any> {\n return this.#messageManager.send(MessageCommands.openApplication, params)\n }\n\n /**\n * The method closes the open modal window with the application\n *\n * @return {Promise<void>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-close-application.html\n */\n async closeSliderAppPage(): Promise<void> {\n return this.#messageManager.send(MessageCommands.closeApplication, {\n /**\n * @memo There is no point - everything will be closed, and timeout will not be able to do anything\n */\n isSafely: false\n })\n }\n\n /**\n * Defines the base path for width sampling.\n *\n * @param width\n * @private\n */\n #getBaseUrlByWidth(width: number = 1640): string {\n if (width > 0) {\n // region Init baseUrl by Width ////\n if (width > 1200 && width <= 1640) {\n return '/crm/type/0/details/0/../../../../..'\n } else if (width > 950 && width <= 1200) {\n return '/company/personal/user/0/groups/create/../../../../../..'\n } else if (width > 900 && width <= 950) {\n return '/crm/company/requisite/0/../../../..'\n } else if (width <= 900) {\n return '/workgroups/group/0/card/../../../..'\n } else {\n // 1640 /////\n return '/crm/deal/../..'\n }\n // endregion ////\n } else {\n return '/crm/deal/../..'\n }\n }\n\n /**\n * Opens the specified path inside the portal in the slider.\n * @param {URL} url\n * @param {number} width - Number in the range from 1640 to 1200, from 1200 to 950, from 950 to 900, from 900 ...\n * @return {Promise<StatusClose>}\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-open-path.html\n * @memo /^\\/(crm\\/(deal|lead|contact|company|type)|marketplace|company\\/personal\\/user\\/[0-9]+|workgroups\\/group\\/[0-9]+)\\//\n */\n async openPath(url: URL, width: number = 1640): Promise<StatusClose> {\n const openSliderUrl = new URL(url)\n openSliderUrl.searchParams.set('IFRAME', 'Y')\n openSliderUrl.searchParams.set('IFRAME_TYPE', 'SIDE_SLIDER')\n\n /**\n * We are trying to open the slider\n */\n return this.#messageManager\n .send(MessageCommands.openPath, {\n path: [\n this.#getBaseUrlByWidth(width),\n openSliderUrl.pathname,\n openSliderUrl.search\n ].join('')\n })\n .then((response) => {\n /**\n * Error handling\n */\n if (response?.result === 'error') {\n /**\n * If the error is related to using a mobile device, we will open it in a new tab\n * Let's wait 5 minutes - and return the promise to open and not close\n */\n if (response?.errorCode === 'METHOD_NOT_SUPPORTED_ON_DEVICE') {\n return new Promise((resolve, reject) => {\n const windowObjectReference = window.open(url, '_blank')\n if (!windowObjectReference) {\n reject(new Error('Error open window'))\n return\n }\n\n let iterator = 0\n // 5 min ////\n const iteratorMax = 1_000 * 60 * 5\n const waitCloseWindow = window.setInterval(() => {\n iterator = iterator + 1\n\n if (windowObjectReference.closed) {\n clearInterval(waitCloseWindow)\n resolve({\n isOpenAtNewWindow: true,\n isClose: true\n })\n } else if (iterator > iteratorMax) {\n clearInterval(waitCloseWindow)\n resolve({\n isOpenAtNewWindow: true,\n isClose: false\n })\n }\n }, 1_000)\n })\n } else {\n /**\n * If the error is different, we will return it.\n */\n return Promise.reject(new Error(response?.errorCode))\n }\n } else if (response?.result === 'close') {\n /**\n * Processing a successful close\n */\n return Promise.resolve({\n isOpenAtNewWindow: false,\n isClose: true\n })\n }\n\n return Promise.resolve({\n isOpenAtNewWindow: false,\n isClose: false\n })\n })\n }\n\n /**\n * @todo test this and remove\n */\n // async showAppForm(params: any): Promise<void> {\n // console.warn(`deprecated showAppForm`)\n // return this.#messageManager.send(MessageCommands.showAppForm, {\n // params: params,\n // isSafely: true\n // })\n // }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAQO,MAAM,aAAA,CAAc;AAAA,EAR3B;AAQ2B,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA;AAAA;AAAA,EACzB,SAAA;AAAA,EACA,eAAA;AAAA,EAEA,WAAA,CAAY,UAAoB,cAAA,EAAgC;AAC9D,IAAA,IAAA,CAAK,SAAA,GAAY,QAAA;AACjB,IAAA,IAAA,CAAK,eAAA,GAAkB,cAAA;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAA,CAAO,OAAe,GAAA,EAAU;AAC9B,IAAA,OAAO,IAAI,GAAA,CAAI,IAAA,EAAM,IAAA,CAAK,SAAA,CAAU,iBAAiB,CAAA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA,EAKA,eAAA,GAA0B;AACxB,IAAA,OAAO,IAAA,CAAK,UAAU,eAAA,EAAgB;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,iBAAA,CAAkB,MAAA,GAAc,EAAC,EAAiB;AACtD,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,iBAAiB,MAAM,CAAA;AAAA,EAC1E;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,kBAAA,GAAoC;AACxC,IAAA,OAAO,IAAA,CAAK,eAAA,CAAgB,IAAA,CAAK,eAAA,CAAgB,gBAAA,EAAkB;AAAA;AAAA;AAAA;AAAA,MAIjE,QAAA,EAAU;AAAA,KACX,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,kBAAA,CAAmB,QAAgB,IAAA,EAAc;AAC/C,IAAA,IAAI,QAAQ,CAAA,EAAG;AAEb,MAAA,IAAI,KAAA,GAAQ,IAAA,IAAQ,KAAA,IAAS,IAAA,EAAM;AACjC,QAAA,OAAO,sCAAA;AAAA,MACT,CAAA,MAAA,IAAW,KAAA,GAAQ,GAAA,IAAO,KAAA,IAAS,IAAA,EAAM;AACvC,QAAA,OAAO,0DAAA;AAAA,MACT,CAAA,MAAA,IAAW,KAAA,GAAQ,GAAA,IAAO,KAAA,IAAS,GAAA,EAAK;AACtC,QAAA,OAAO,sCAAA;AAAA,MACT,CAAA,MAAA,IAAW,SAAS,GAAA,EAAK;AACvB,QAAA,OAAO,sCAAA;AAAA,MACT,CAAA,MAAO;AAEL,QAAA,OAAO,iBAAA;AAAA,MACT;AAAA,IAEF,CAAA,MAAO;AACL,MAAA,OAAO,iBAAA;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,MAAM,QAAA,CAAS,GAAA,EAAU,KAAA,GAAgB,IAAA,EAA4B;AACnE,IAAA,MAAM,aAAA,GAAgB,IAAI,GAAA,CAAI,GAAG,CAAA;AACjC,IAAA,aAAA,CAAc,YAAA,CAAa,GAAA,CAAI,QAAA,EAAU,GAAG,CAAA;AAC5C,IAAA,aAAA,CAAc,YAAA,CAAa,GAAA,CAAI,aAAA,EAAe,aAAa,CAAA;AAK3D,IAAA,OAAO,IAAA,CAAK,eAAA,CACT,IAAA,CAAK,eAAA,CAAgB,QAAA,EAAU;AAAA,MAC9B,IAAA,EAAM;AAAA,QACJ,IAAA,CAAK,mBAAmB,KAAK,CAAA;AAAA,QAC7B,aAAA,CAAc,QAAA;AAAA,QACd,aAAA,CAAc;AAAA,OAChB,CAAE,KAAK,EAAE;AAAA,KACV,CAAA,CACA,IAAA,CAAK,CAAC,QAAA,KAAa;AAIlB,MAAA,IAAI,QAAA,EAAU,WAAW,OAAA,EAAS;AAKhC,QAAA,IAAI,QAAA,EAAU,cAAc,gCAAA,EAAkC;AAC5D,UAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,YAAA,MAAM,qBAAA,GAAwB,MAAA,CAAO,IAAA,CAAK,GAAA,EAAK,QAAQ,CAAA;AACvD,YAAA,IAAI,CAAC,qBAAA,EAAuB;AAC1B,cAAA,MAAA,CAAO,IAAI,KAAA,CAAM,mBAAmB,CAAC,CAAA;AACrC,cAAA;AAAA,YACF;AAEA,YAAA,IAAI,QAAA,GAAW,CAAA;AAEf,YAAA,MAAM,WAAA,GAAc,MAAQ,EAAA,GAAK,CAAA;AACjC,YAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,WAAA,CAAY,MAAM;AAC/C,cAAA,QAAA,GAAW,QAAA,GAAW,CAAA;AAEtB,cAAA,IAAI,sBAAsB,MAAA,EAAQ;AAChC,gBAAA,aAAA,CAAc,eAAe,CAAA;AAC7B,gBAAA,OAAA,CAAQ;AAAA,kBACN,iBAAA,EAAmB,IAAA;AAAA,kBACnB,OAAA,EAAS;AAAA,iBACV,CAAA;AAAA,cACH,CAAA,MAAA,IAAW,WAAW,WAAA,EAAa;AACjC,gBAAA,aAAA,CAAc,eAAe,CAAA;AAC7B,gBAAA,OAAA,CAAQ;AAAA,kBACN,iBAAA,EAAmB,IAAA;AAAA,kBACnB,OAAA,EAAS;AAAA,iBACV,CAAA;AAAA,cACH;AAAA,YACF,GAAG,GAAK,CAAA;AAAA,UACV,CAAC,CAAA;AAAA,QACH,CAAA,MAAO;AAIL,UAAA,OAAO,QAAQ,MAAA,CAAO,IAAI,KAAA,CAAM,QAAA,EAAU,SAAS,CAAC,CAAA;AAAA,QACtD;AAAA,MACF,CAAA,MAAA,IAAW,QAAA,EAAU,MAAA,KAAW,OAAA,EAAS;AAIvC,QAAA,OAAO,QAAQ,OAAA,CAAQ;AAAA,UACrB,iBAAA,EAAmB,KAAA;AAAA,UACnB,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,QAAQ,OAAA,CAAQ;AAAA,QACrB,iBAAA,EAAmB,KAAA;AAAA,QACnB,OAAA,EAAS;AAAA,OACV,CAAA;AAAA,IACH,CAAC,CAAA;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYF;;;;"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @package @bitrix24/b24jssdk
3
+ * @version 1.0.1
4
+ * @copyright (c) 2026 Bitrix24
5
+ * @license MIT
6
+ * @see https://github.com/bitrix24/b24jssdk
7
+ * @see https://bitrix24.github.io/b24jssdk/
8
+ */
9
+ import { LoggerFactory } from '../logger/logger-factory.mjs';
10
+
11
+ var __defProp = Object.defineProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ class UnhandledMatchError extends Error {
14
+ static {
15
+ __name(this, "UnhandledMatchError");
16
+ }
17
+ constructor(value, ...args) {
18
+ super(...args);
19
+ this.name = "UnhandledMatchError";
20
+ this.message = `Unhandled match value of type ${value}`;
21
+ this.stack = `${new Error("for stack").stack}`;
22
+ }
23
+ }
24
+ class AbstractHelper {
25
+ static {
26
+ __name(this, "AbstractHelper");
27
+ }
28
+ _b24;
29
+ _data = null;
30
+ _logger;
31
+ // region Init ////
32
+ constructor(b24) {
33
+ this._b24 = b24;
34
+ this._logger = LoggerFactory.createNullLogger();
35
+ }
36
+ setLogger(logger) {
37
+ this._logger = logger;
38
+ }
39
+ getLogger() {
40
+ return this._logger;
41
+ }
42
+ // endregion ////
43
+ /**
44
+ * Initializes the data received
45
+ */
46
+ async initData(_data) {
47
+ return Promise.reject(new Error("Rewrite this function"));
48
+ }
49
+ }
50
+
51
+ export { AbstractHelper, UnhandledMatchError };
52
+ //# sourceMappingURL=abstract-helper.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abstract-helper.mjs","sources":["../../../src/helper/abstract-helper.ts"],"sourcesContent":["import type { TypeB24 } from '../types/b24'\nimport type { LoggerInterface } from '../logger'\nimport { LoggerFactory } from '../logger'\n\nexport class UnhandledMatchError extends Error {\n constructor(value: string, ...args: any[]) {\n super(...args)\n this.name = 'UnhandledMatchError'\n this.message = `Unhandled match value of type ${value}`\n this.stack = `${new Error('for stack').stack}`\n }\n}\n\nexport abstract class AbstractHelper {\n protected _b24: TypeB24\n protected _data: any = null\n\n protected _logger: LoggerInterface\n\n // region Init ////\n constructor(b24: TypeB24) {\n this._b24 = b24\n this._logger = LoggerFactory.createNullLogger()\n }\n\n setLogger(logger: LoggerInterface): void {\n this._logger = logger\n }\n\n getLogger(): LoggerInterface {\n return this._logger\n }\n // endregion ////\n\n /**\n * Initializes the data received\n */\n async initData(_data: any): Promise<void> {\n return Promise.reject(new Error('Rewrite this function'))\n }\n\n abstract get data(): any\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAIO,MAAM,4BAA4B,KAAA,CAAM;AAAA,EAJ/C;AAI+C,IAAA,MAAA,CAAA,IAAA,EAAA,qBAAA,CAAA;AAAA;AAAA,EAC7C,WAAA,CAAY,UAAkB,IAAA,EAAa;AACzC,IAAA,KAAA,CAAM,GAAG,IAAI,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,qBAAA;AACZ,IAAA,IAAA,CAAK,OAAA,GAAU,iCAAiC,KAAK,CAAA,CAAA;AACrD,IAAA,IAAA,CAAK,QAAQ,CAAA,EAAG,IAAI,KAAA,CAAM,WAAW,EAAE,KAAK,CAAA,CAAA;AAAA,EAC9C;AACF;AAEO,MAAe,cAAA,CAAe;AAAA,EAbrC;AAaqC,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA;AAAA;AAAA,EACzB,IAAA;AAAA,EACA,KAAA,GAAa,IAAA;AAAA,EAEb,OAAA;AAAA;AAAA,EAGV,YAAY,GAAA,EAAc;AACxB,IAAA,IAAA,CAAK,IAAA,GAAO,GAAA;AACZ,IAAA,IAAA,CAAK,OAAA,GAAU,cAAc,gBAAA,EAAiB;AAAA,EAChD;AAAA,EAEA,UAAU,MAAA,EAA+B;AACvC,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AAAA,EACjB;AAAA,EAEA,SAAA,GAA6B;AAC3B,IAAA,OAAO,IAAA,CAAK,OAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SAAS,KAAA,EAA2B;AACxC,IAAA,OAAO,OAAA,CAAQ,MAAA,CAAO,IAAI,KAAA,CAAM,uBAAuB,CAAC,CAAA;AAAA,EAC1D;AAGF;;;;"}