@bitrix24/b24jssdk 0.2.0 → 0.2.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.
package/dist/umd/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @version @bitrix24/b24jssdk v0.2.0
2
+ * @version @bitrix24/b24jssdk v0.2.1
3
3
  * @copyright (c) 2025 Bitrix24
4
4
  * @licence MIT
5
5
  * @links https://github.com/bitrix24/b24jssdk - GitHub
@@ -491,6 +491,24 @@
491
491
  }
492
492
  const Type = new TypeManager();
493
493
 
494
+ function pick$1(data, keys) {
495
+ const result = {};
496
+ for (const key of keys) {
497
+ result[key] = data[key];
498
+ }
499
+ return result;
500
+ }
501
+ function omit(data, keys) {
502
+ const result = { ...data };
503
+ for (const key of keys) {
504
+ delete result[key];
505
+ }
506
+ return result;
507
+ }
508
+ function isArrayOfArray(item) {
509
+ return Array.isArray(item[0]);
510
+ }
511
+
494
512
  // these aren't really private, but nor are they really useful to document
495
513
 
496
514
  /**
@@ -14401,7 +14419,7 @@ ${this.stack}`;
14401
14419
  result.logTag = this.#logTag;
14402
14420
  }
14403
14421
  result[this.#requestIdGenerator.getQueryStringParameterName()] = this.#requestIdGenerator.getRequestId();
14404
- result[this.#requestIdGenerator.getQueryStringSdkParameterName()] = "0.2.0";
14422
+ result[this.#requestIdGenerator.getQueryStringSdkParameterName()] = "0.2.1";
14405
14423
  if (!!result.data && !!result.data.start) {
14406
14424
  delete result.data.start;
14407
14425
  }
@@ -15563,11 +15581,13 @@ ${this.stack}`;
15563
15581
  class MessageManager {
15564
15582
  #appFrame;
15565
15583
  #callbackPromises;
15584
+ #callbackSingletone;
15566
15585
  _logger = null;
15567
15586
  runCallbackHandler;
15568
15587
  constructor(appFrame) {
15569
15588
  this.#appFrame = appFrame;
15570
15589
  this.#callbackPromises = /* @__PURE__ */ new Map();
15590
+ this.#callbackSingletone = /* @__PURE__ */ new Map();
15571
15591
  this.runCallbackHandler = this._runCallback.bind(this);
15572
15592
  }
15573
15593
  setLogger(logger) {
@@ -15617,17 +15637,22 @@ ${this.stack}`;
15617
15637
  timeoutId: null
15618
15638
  };
15619
15639
  const keyPromise = this.#setCallbackPromise(promiseHandler);
15640
+ const paramsSend = omit(params || {}, ["callBack", "isSafely", "safelyTime"]);
15641
+ const { callBack } = params || {};
15642
+ if (callBack) {
15643
+ this.#callbackSingletone.set(keyPromise, callBack);
15644
+ }
15620
15645
  if (command.toString().includes(":")) {
15621
15646
  cmd = {
15622
15647
  method: command.toString(),
15623
- params: params ?? "",
15648
+ params: paramsSend ?? "",
15624
15649
  callback: keyPromise,
15625
15650
  appSid: this.#appFrame.getAppSid()
15626
15651
  };
15627
15652
  } else {
15628
15653
  cmd = command.toString();
15629
15654
  const listParams = [
15630
- params ? JSON.stringify(params) : null,
15655
+ params ? JSON.stringify(paramsSend) : null,
15631
15656
  keyPromise,
15632
15657
  this.#appFrame.getAppSid()
15633
15658
  ];
@@ -15682,6 +15707,11 @@ ${this.stack}`;
15682
15707
  }
15683
15708
  this.#callbackPromises.delete(cmd.id);
15684
15709
  promise.resolve(cmd.args);
15710
+ } else if (this.#callbackSingletone.has(cmd.id)) {
15711
+ const callBack = this.#callbackSingletone.get(cmd.id);
15712
+ if (callBack) {
15713
+ callBack.apply(globalThis, [cmd.args]);
15714
+ }
15685
15715
  }
15686
15716
  }
15687
15717
  }
@@ -16408,15 +16438,17 @@ ${this.stack}`;
16408
16438
  /**
16409
16439
  * Set Up the Interface Event Handler
16410
16440
  * @param {string} eventName
16441
+ * @param {(...args: any[]) => void} callBack
16411
16442
  * @return {Promise<any>}
16412
16443
  *
16413
16444
  * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-bind-event.html
16414
16445
  */
16415
- async bindEvent(eventName) {
16446
+ async bindEvent(eventName, callBack) {
16416
16447
  return this.#messageManager.send(
16417
- MessageCommands.getInterface,
16448
+ MessageCommands.placementBindEvent,
16418
16449
  {
16419
16450
  event: eventName,
16451
+ callBack,
16420
16452
  isSafely: true
16421
16453
  }
16422
16454
  );
@@ -26095,6 +26127,9 @@ Data string: ${pullEvent}
26095
26127
  exports.TypeOption = TypeOption;
26096
26128
  exports.TypeSpecificUrl = TypeSpecificUrl;
26097
26129
  exports.initializeB24Frame = initializeB24Frame;
26130
+ exports.isArrayOfArray = isArrayOfArray;
26131
+ exports.omit = omit;
26132
+ exports.pick = pick$1;
26098
26133
  exports.useB24Helper = useB24Helper;
26099
26134
  exports.useFormatter = useFormatter;
26100
26135