@bitrix24/b24jssdk 1.2.0 → 2.0.0
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/README-AI.md +6 -5
- package/README.md +2 -0
- package/dist/cjs/_virtual/_commonjsHelpers.cjs +19 -0
- package/dist/cjs/_virtual/_commonjsHelpers.cjs.map +1 -0
- package/dist/cjs/_virtual/protobuf.cjs +20 -0
- package/dist/cjs/_virtual/protobuf.cjs.map +1 -0
- package/dist/cjs/_virtual/protobuf2.cjs +14 -0
- package/dist/cjs/_virtual/protobuf2.cjs.map +1 -0
- package/dist/cjs/core/abstract-b24.cjs +357 -0
- package/dist/cjs/core/abstract-b24.cjs.map +1 -0
- package/dist/cjs/core/actions/abstract-action.cjs +26 -0
- package/dist/cjs/core/actions/abstract-action.cjs.map +1 -0
- package/dist/cjs/core/actions/abstract-batch.cjs +97 -0
- package/dist/cjs/core/actions/abstract-batch.cjs.map +1 -0
- package/dist/cjs/core/actions/manager.cjs +55 -0
- package/dist/cjs/core/actions/manager.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/batch-by-chunk.cjs +95 -0
- package/dist/cjs/core/actions/v2/batch-by-chunk.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/batch.cjs +128 -0
- package/dist/cjs/core/actions/v2/batch.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/call-list.cjs +144 -0
- package/dist/cjs/core/actions/v2/call-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/call.cjs +56 -0
- package/dist/cjs/core/actions/v2/call.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/fetch-list.cjs +145 -0
- package/dist/cjs/core/actions/v2/fetch-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v2/manager-v2.cjs +76 -0
- package/dist/cjs/core/actions/v2/manager-v2.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/_keyset-paginate.cjs +69 -0
- package/dist/cjs/core/actions/v3/_keyset-paginate.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/aggregate.cjs +96 -0
- package/dist/cjs/core/actions/v3/aggregate.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/batch-by-chunk.cjs +93 -0
- package/dist/cjs/core/actions/v3/batch-by-chunk.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/batch.cjs +122 -0
- package/dist/cjs/core/actions/v3/batch.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/call-list.cjs +126 -0
- package/dist/cjs/core/actions/v3/call-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/call-tail.cjs +118 -0
- package/dist/cjs/core/actions/v3/call-tail.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/call.cjs +51 -0
- package/dist/cjs/core/actions/v3/call.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/fetch-list.cjs +122 -0
- package/dist/cjs/core/actions/v3/fetch-list.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/fetch-tail.cjs +112 -0
- package/dist/cjs/core/actions/v3/fetch-tail.cjs.map +1 -0
- package/dist/cjs/core/actions/v3/manager-v3.cjs +100 -0
- package/dist/cjs/core/actions/v3/manager-v3.cjs.map +1 -0
- package/dist/cjs/core/http/abstract-http.cjs +641 -0
- package/dist/cjs/core/http/abstract-http.cjs.map +1 -0
- package/dist/cjs/core/http/ajax-error.cjs +113 -0
- package/dist/cjs/core/http/ajax-error.cjs.map +1 -0
- package/dist/cjs/core/http/ajax-result.cjs +219 -0
- package/dist/cjs/core/http/ajax-result.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/adaptive-delayer.cjs +137 -0
- package/dist/cjs/core/http/limiters/adaptive-delayer.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/manager.cjs +373 -0
- package/dist/cjs/core/http/limiters/manager.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/operating-limiter.cjs +173 -0
- package/dist/cjs/core/http/limiters/operating-limiter.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/params-factory.cjs +124 -0
- package/dist/cjs/core/http/limiters/params-factory.cjs.map +1 -0
- package/dist/cjs/core/http/limiters/rate-limiter.cjs +404 -0
- package/dist/cjs/core/http/limiters/rate-limiter.cjs.map +1 -0
- package/dist/cjs/core/http/redact.cjs +85 -0
- package/dist/cjs/core/http/redact.cjs.map +1 -0
- package/dist/cjs/core/http/v2.cjs +85 -0
- package/dist/cjs/core/http/v2.cjs.map +1 -0
- package/dist/cjs/core/http/v3.cjs +82 -0
- package/dist/cjs/core/http/v3.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/abstract-interaction-batch.cjs +71 -0
- package/dist/cjs/core/interaction/batch/abstract-interaction-batch.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/parse-row.cjs +69 -0
- package/dist/cjs/core/interaction/batch/parse-row.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/interface-strategy.cjs +87 -0
- package/dist/cjs/core/interaction/batch/processing/interface-strategy.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v2/abstract-processing.cjs +138 -0
- package/dist/cjs/core/interaction/batch/processing/v2/abstract-processing.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-array.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-array.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-object.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v2/as-object.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v3/abstract-processing.cjs +115 -0
- package/dist/cjs/core/interaction/batch/processing/v3/abstract-processing.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-array.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-array.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-object.cjs +34 -0
- package/dist/cjs/core/interaction/batch/processing/v3/as-object.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/v2.cjs +47 -0
- package/dist/cjs/core/interaction/batch/v2.cjs.map +1 -0
- package/dist/cjs/core/interaction/batch/v3.cjs +45 -0
- package/dist/cjs/core/interaction/batch/v3.cjs.map +1 -0
- package/dist/cjs/core/language/list.cjs +59 -0
- package/dist/cjs/core/language/list.cjs.map +1 -0
- package/dist/cjs/core/request-id-generator.cjs +44 -0
- package/dist/cjs/core/request-id-generator.cjs.map +1 -0
- package/dist/cjs/core/result.cjs +137 -0
- package/dist/cjs/core/result.cjs.map +1 -0
- package/dist/cjs/core/sdk-error.cjs +85 -0
- package/dist/cjs/core/sdk-error.cjs.map +1 -0
- package/dist/cjs/core/tools/abstract-tool.cjs +26 -0
- package/dist/cjs/core/tools/abstract-tool.cjs.map +1 -0
- package/dist/cjs/core/tools/healthcheck.cjs +50 -0
- package/dist/cjs/core/tools/healthcheck.cjs.map +1 -0
- package/dist/cjs/core/tools/manager.cjs +52 -0
- package/dist/cjs/core/tools/manager.cjs.map +1 -0
- package/dist/cjs/core/tools/ping.cjs +58 -0
- package/dist/cjs/core/tools/ping.cjs.map +1 -0
- package/dist/cjs/core/version-manager.cjs +57 -0
- package/dist/cjs/core/version-manager.cjs.map +1 -0
- package/dist/cjs/frame/auth.cjs +100 -0
- package/dist/cjs/frame/auth.cjs.map +1 -0
- package/dist/cjs/frame/b24.cjs +178 -0
- package/dist/cjs/frame/b24.cjs.map +1 -0
- package/dist/cjs/frame/dialog.cjs +120 -0
- package/dist/cjs/frame/dialog.cjs.map +1 -0
- package/dist/cjs/frame/frame.cjs +103 -0
- package/dist/cjs/frame/frame.cjs.map +1 -0
- package/dist/cjs/frame/message/commands.cjs +39 -0
- package/dist/cjs/frame/message/commands.cjs.map +1 -0
- package/dist/cjs/frame/message/controller.cjs +191 -0
- package/dist/cjs/frame/message/controller.cjs.map +1 -0
- package/dist/cjs/frame/options.cjs +108 -0
- package/dist/cjs/frame/options.cjs.map +1 -0
- package/dist/cjs/frame/parent.cjs +259 -0
- package/dist/cjs/frame/parent.cjs.map +1 -0
- package/dist/cjs/frame/placement.cjs +156 -0
- package/dist/cjs/frame/placement.cjs.map +1 -0
- package/dist/cjs/frame/slider.cjs +162 -0
- package/dist/cjs/frame/slider.cjs.map +1 -0
- package/dist/cjs/helper/abstract-helper.cjs +55 -0
- package/dist/cjs/helper/abstract-helper.cjs.map +1 -0
- package/dist/cjs/helper/app-manager.cjs +39 -0
- package/dist/cjs/helper/app-manager.cjs.map +1 -0
- package/dist/cjs/helper/currency-manager.cjs +215 -0
- package/dist/cjs/helper/currency-manager.cjs.map +1 -0
- package/dist/cjs/helper/helper-manager.cjs +397 -0
- package/dist/cjs/helper/helper-manager.cjs.map +1 -0
- package/dist/cjs/helper/license-manager.cjs +52 -0
- package/dist/cjs/helper/license-manager.cjs.map +1 -0
- package/dist/cjs/helper/options-manager.cjs +205 -0
- package/dist/cjs/helper/options-manager.cjs.map +1 -0
- package/dist/cjs/helper/payment-manager.cjs +35 -0
- package/dist/cjs/helper/payment-manager.cjs.map +1 -0
- package/dist/cjs/helper/profile-manager.cjs +35 -0
- package/dist/cjs/helper/profile-manager.cjs.map +1 -0
- package/dist/cjs/helper/use-b24-helper.cjs +85 -0
- package/dist/cjs/helper/use-b24-helper.cjs.map +1 -0
- package/dist/cjs/hook/auth.cjs +79 -0
- package/dist/cjs/hook/auth.cjs.map +1 -0
- package/dist/cjs/hook/b24.cjs +117 -0
- package/dist/cjs/hook/b24.cjs.map +1 -0
- package/dist/cjs/index.cjs +176 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +6415 -0
- package/dist/cjs/index.d.mts +6415 -0
- package/dist/cjs/index.d.ts +6415 -0
- package/dist/cjs/loader-b24frame.cjs +103 -0
- package/dist/cjs/loader-b24frame.cjs.map +1 -0
- package/dist/cjs/logger/abstract-logger.cjs +71 -0
- package/dist/cjs/logger/abstract-logger.cjs.map +1 -0
- package/dist/cjs/logger/browser.cjs +165 -0
- package/dist/cjs/logger/browser.cjs.map +1 -0
- package/dist/cjs/logger/formatter/abstract-formatter.cjs +36 -0
- package/dist/cjs/logger/formatter/abstract-formatter.cjs.map +1 -0
- package/dist/cjs/logger/formatter/json-formatter.cjs +36 -0
- package/dist/cjs/logger/formatter/json-formatter.cjs.map +1 -0
- package/dist/cjs/logger/formatter/line-formatter.cjs +43 -0
- package/dist/cjs/logger/formatter/line-formatter.cjs.map +1 -0
- package/dist/cjs/logger/formatter/telegram-formatter.cjs +105 -0
- package/dist/cjs/logger/formatter/telegram-formatter.cjs.map +1 -0
- package/dist/cjs/logger/handler/abstract-handler.cjs +41 -0
- package/dist/cjs/logger/handler/abstract-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/consola-adapter.cjs +64 -0
- package/dist/cjs/logger/handler/consola-adapter.cjs.map +1 -0
- package/dist/cjs/logger/handler/console-handler.cjs +100 -0
- package/dist/cjs/logger/handler/console-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/console-v2-handler.cjs +53 -0
- package/dist/cjs/logger/handler/console-v2-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/memory-handler.cjs +50 -0
- package/dist/cjs/logger/handler/memory-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/stream-handler.cjs +75 -0
- package/dist/cjs/logger/handler/stream-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/telegram-handler.cjs +159 -0
- package/dist/cjs/logger/handler/telegram-handler.cjs.map +1 -0
- package/dist/cjs/logger/handler/winston-adapter.cjs +59 -0
- package/dist/cjs/logger/handler/winston-adapter.cjs.map +1 -0
- package/dist/cjs/logger/logger-factory.cjs +69 -0
- package/dist/cjs/logger/logger-factory.cjs.map +1 -0
- package/dist/cjs/logger/logger.cjs +78 -0
- package/dist/cjs/logger/logger.cjs.map +1 -0
- package/dist/cjs/logger/null-logger.cjs +34 -0
- package/dist/cjs/logger/null-logger.cjs.map +1 -0
- package/dist/cjs/logger/processor/memory-usage-processor.cjs +22 -0
- package/dist/cjs/logger/processor/memory-usage-processor.cjs.map +1 -0
- package/dist/cjs/logger/processor/pid-processor.cjs +22 -0
- package/dist/cjs/logger/processor/pid-processor.cjs.map +1 -0
- package/dist/cjs/oauth/auth.cjs +214 -0
- package/dist/cjs/oauth/auth.cjs.map +1 -0
- package/dist/cjs/oauth/b24.cjs +119 -0
- package/dist/cjs/oauth/b24.cjs.map +1 -0
- package/dist/cjs/oauth/refresh-token-error.cjs +22 -0
- package/dist/cjs/oauth/refresh-token-error.cjs.map +1 -0
- package/dist/cjs/pullClient/abstract-connector.cjs +80 -0
- package/dist/cjs/pullClient/abstract-connector.cjs.map +1 -0
- package/dist/cjs/pullClient/channel-manager.cjs +91 -0
- package/dist/cjs/pullClient/channel-manager.cjs.map +1 -0
- package/dist/cjs/pullClient/client.cjs +2177 -0
- package/dist/cjs/pullClient/client.cjs.map +1 -0
- package/dist/cjs/pullClient/errors.cjs +34 -0
- package/dist/cjs/pullClient/errors.cjs.map +1 -0
- package/dist/cjs/pullClient/json-rpc.cjs +213 -0
- package/dist/cjs/pullClient/json-rpc.cjs.map +1 -0
- package/dist/cjs/pullClient/long-polling-connector.cjs +159 -0
- package/dist/cjs/pullClient/long-polling-connector.cjs.map +1 -0
- package/dist/cjs/pullClient/protobuf/index.cjs +22 -0
- package/dist/cjs/pullClient/protobuf/index.cjs.map +1 -0
- package/dist/cjs/pullClient/protobuf/model.cjs +1060 -0
- package/dist/cjs/pullClient/protobuf/model.cjs.map +1 -0
- package/dist/cjs/pullClient/protobuf/protobuf.cjs +4655 -0
- package/dist/cjs/pullClient/protobuf/protobuf.cjs.map +1 -0
- package/dist/cjs/pullClient/shared-config.cjs +135 -0
- package/dist/cjs/pullClient/shared-config.cjs.map +1 -0
- package/dist/cjs/pullClient/storage-manager.cjs +74 -0
- package/dist/cjs/pullClient/storage-manager.cjs.map +1 -0
- package/dist/cjs/pullClient/web-socket-connector.cjs +131 -0
- package/dist/cjs/pullClient/web-socket-connector.cjs.map +1 -0
- package/dist/cjs/tools/batch-ref-v3.cjs +54 -0
- package/dist/cjs/tools/batch-ref-v3.cjs.map +1 -0
- package/dist/cjs/tools/browser.cjs +156 -0
- package/dist/cjs/tools/browser.cjs.map +1 -0
- package/dist/cjs/tools/environment.cjs +32 -0
- package/dist/cjs/tools/environment.cjs.map +1 -0
- package/dist/cjs/tools/filter-v3.cjs +139 -0
- package/dist/cjs/tools/filter-v3.cjs.map +1 -0
- package/dist/cjs/tools/formatters/iban.cjs +307 -0
- package/dist/cjs/tools/formatters/iban.cjs.map +1 -0
- package/dist/cjs/tools/formatters/numbers.cjs +68 -0
- package/dist/cjs/tools/formatters/numbers.cjs.map +1 -0
- package/dist/cjs/tools/index.cjs +42 -0
- package/dist/cjs/tools/index.cjs.map +1 -0
- package/dist/cjs/tools/scroll-size.cjs +29 -0
- package/dist/cjs/tools/scroll-size.cjs.map +1 -0
- package/dist/cjs/tools/text.cjs +210 -0
- package/dist/cjs/tools/text.cjs.map +1 -0
- package/dist/cjs/tools/type.cjs +339 -0
- package/dist/cjs/tools/type.cjs.map +1 -0
- package/dist/cjs/tools/use-formatters.cjs +462 -0
- package/dist/cjs/tools/use-formatters.cjs.map +1 -0
- package/dist/cjs/tools/uuidv7.cjs +58 -0
- package/dist/cjs/tools/uuidv7.cjs.map +1 -0
- package/dist/cjs/types/b24-helper.cjs +62 -0
- package/dist/cjs/types/b24-helper.cjs.map +1 -0
- package/dist/cjs/types/b24.cjs +18 -0
- package/dist/cjs/types/b24.cjs.map +1 -0
- package/dist/cjs/types/bizproc/index.cjs +195 -0
- package/dist/cjs/types/bizproc/index.cjs.map +1 -0
- package/dist/cjs/types/catalog/index.cjs +39 -0
- package/dist/cjs/types/catalog/index.cjs.map +1 -0
- package/dist/cjs/types/common.cjs +33 -0
- package/dist/cjs/types/common.cjs.map +1 -0
- package/dist/cjs/types/crm/entity-type.cjs +62 -0
- package/dist/cjs/types/crm/entity-type.cjs.map +1 -0
- package/dist/cjs/types/crm/productrow.cjs +19 -0
- package/dist/cjs/types/crm/productrow.cjs.map +1 -0
- package/dist/cjs/types/logger.cjs +24 -0
- package/dist/cjs/types/logger.cjs.map +1 -0
- package/dist/cjs/types/pull.cjs +94 -0
- package/dist/cjs/types/pull.cjs.map +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.mjs +1 -1
- package/dist/esm/_virtual/protobuf.mjs +1 -1
- package/dist/esm/_virtual/protobuf2.mjs +1 -1
- package/dist/esm/core/abstract-b24.mjs +1 -1
- package/dist/esm/core/actions/abstract-action.mjs +1 -1
- package/dist/esm/core/actions/abstract-batch.mjs +1 -1
- package/dist/esm/core/actions/manager.mjs +1 -1
- package/dist/esm/core/actions/v2/batch-by-chunk.mjs +1 -1
- package/dist/esm/core/actions/v2/batch.mjs +1 -1
- package/dist/esm/core/actions/v2/call-list.mjs +17 -10
- package/dist/esm/core/actions/v2/call-list.mjs.map +1 -1
- package/dist/esm/core/actions/v2/call.mjs +1 -15
- package/dist/esm/core/actions/v2/call.mjs.map +1 -1
- package/dist/esm/core/actions/v2/fetch-list.mjs +17 -10
- package/dist/esm/core/actions/v2/fetch-list.mjs.map +1 -1
- package/dist/esm/core/actions/v2/manager-v2.mjs +6 -6
- package/dist/esm/core/actions/v2/manager-v2.mjs.map +1 -1
- package/dist/esm/core/actions/v3/_keyset-paginate.mjs +66 -0
- package/dist/esm/core/actions/v3/_keyset-paginate.mjs.map +1 -0
- package/dist/esm/core/actions/v3/aggregate.mjs +94 -0
- package/dist/esm/core/actions/v3/aggregate.mjs.map +1 -0
- package/dist/esm/core/actions/v3/batch-by-chunk.mjs +1 -1
- package/dist/esm/core/actions/v3/batch.mjs +1 -10
- package/dist/esm/core/actions/v3/batch.mjs.map +1 -1
- package/dist/esm/core/actions/v3/call-list.mjs +40 -47
- package/dist/esm/core/actions/v3/call-list.mjs.map +1 -1
- package/dist/esm/core/actions/v3/call-tail.mjs +116 -0
- package/dist/esm/core/actions/v3/call-tail.mjs.map +1 -0
- package/dist/esm/core/actions/v3/call.mjs +1 -10
- package/dist/esm/core/actions/v3/call.mjs.map +1 -1
- package/dist/esm/core/actions/v3/fetch-list.mjs +34 -44
- package/dist/esm/core/actions/v3/fetch-list.mjs.map +1 -1
- package/dist/esm/core/actions/v3/fetch-tail.mjs +110 -0
- package/dist/esm/core/actions/v3/fetch-tail.mjs.map +1 -0
- package/dist/esm/core/actions/v3/manager-v3.mjs +30 -6
- package/dist/esm/core/actions/v3/manager-v3.mjs.map +1 -1
- package/dist/esm/core/http/abstract-http.mjs +96 -21
- package/dist/esm/core/http/abstract-http.mjs.map +1 -1
- package/dist/esm/core/http/ajax-error.mjs +1 -1
- package/dist/esm/core/http/ajax-result.mjs +9 -8
- package/dist/esm/core/http/ajax-result.mjs.map +1 -1
- package/dist/esm/core/http/limiters/adaptive-delayer.mjs +1 -1
- package/dist/esm/core/http/limiters/manager.mjs +2 -1
- package/dist/esm/core/http/limiters/manager.mjs.map +1 -1
- package/dist/esm/core/http/limiters/operating-limiter.mjs +1 -1
- package/dist/esm/core/http/limiters/params-factory.mjs +1 -1
- package/dist/esm/core/http/limiters/rate-limiter.mjs +1 -1
- package/dist/esm/core/http/redact.mjs +41 -13
- package/dist/esm/core/http/redact.mjs.map +1 -1
- package/dist/esm/core/http/v2.mjs +1 -18
- package/dist/esm/core/http/v2.mjs.map +1 -1
- package/dist/esm/core/http/v3.mjs +1 -15
- package/dist/esm/core/http/v3.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/abstract-interaction-batch.mjs +1 -1
- package/dist/esm/core/interaction/batch/parse-row.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs +44 -1
- package/dist/esm/core/interaction/batch/processing/interface-strategy.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs +7 -6
- package/dist/esm/core/interaction/batch/processing/v2/abstract-processing.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs +3 -3
- package/dist/esm/core/interaction/batch/processing/v2/as-array.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v2/as-object.mjs +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs +7 -19
- package/dist/esm/core/interaction/batch/processing/v3/abstract-processing.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs +3 -3
- package/dist/esm/core/interaction/batch/processing/v3/as-array.mjs.map +1 -1
- package/dist/esm/core/interaction/batch/processing/v3/as-object.mjs +1 -1
- package/dist/esm/core/interaction/batch/v2.mjs +1 -1
- package/dist/esm/core/interaction/batch/v3.mjs +1 -1
- package/dist/esm/core/language/list.mjs +1 -1
- package/dist/esm/core/request-id-generator.mjs +1 -1
- package/dist/esm/core/result.mjs +35 -1
- package/dist/esm/core/result.mjs.map +1 -1
- package/dist/esm/core/sdk-error.mjs +1 -1
- package/dist/esm/core/tools/abstract-tool.mjs +1 -1
- package/dist/esm/core/tools/healthcheck.mjs +1 -1
- package/dist/esm/core/tools/manager.mjs +3 -3
- package/dist/esm/core/tools/manager.mjs.map +1 -1
- package/dist/esm/core/tools/ping.mjs +1 -1
- package/dist/esm/core/version-manager.mjs +19 -80
- package/dist/esm/core/version-manager.mjs.map +1 -1
- package/dist/esm/frame/auth.mjs +1 -1
- package/dist/esm/frame/b24.mjs +8 -2
- package/dist/esm/frame/b24.mjs.map +1 -1
- package/dist/esm/frame/dialog.mjs +1 -1
- package/dist/esm/frame/frame.mjs +1 -1
- package/dist/esm/frame/message/commands.mjs +1 -1
- package/dist/esm/frame/message/controller.mjs +17 -6
- package/dist/esm/frame/message/controller.mjs.map +1 -1
- package/dist/esm/frame/options.mjs +1 -1
- package/dist/esm/frame/parent.mjs +6 -2
- package/dist/esm/frame/parent.mjs.map +1 -1
- package/dist/esm/frame/placement.mjs +1 -1
- package/dist/esm/frame/slider.mjs +5 -1
- package/dist/esm/frame/slider.mjs.map +1 -1
- package/dist/esm/helper/abstract-helper.mjs +1 -1
- package/dist/esm/helper/app-manager.mjs +1 -1
- package/dist/esm/helper/currency-manager.mjs +1 -1
- package/dist/esm/helper/helper-manager.mjs +1 -1
- package/dist/esm/helper/license-manager.mjs +1 -1
- package/dist/esm/helper/options-manager.mjs +1 -1
- package/dist/esm/helper/payment-manager.mjs +1 -1
- package/dist/esm/helper/profile-manager.mjs +1 -1
- package/dist/esm/helper/use-b24-helper.mjs +1 -1
- package/dist/esm/hook/auth.mjs +1 -1
- package/dist/esm/hook/b24.mjs +3 -3
- package/dist/esm/hook/b24.mjs.map +1 -1
- package/dist/esm/index.d.mts +501 -49
- package/dist/esm/index.d.ts +501 -49
- package/dist/esm/index.mjs +3 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/loader-b24frame.mjs +1 -1
- package/dist/esm/logger/abstract-logger.mjs +1 -1
- package/dist/esm/logger/browser.mjs +1 -1
- package/dist/esm/logger/formatter/abstract-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/json-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/line-formatter.mjs +1 -1
- package/dist/esm/logger/formatter/telegram-formatter.mjs +1 -1
- package/dist/esm/logger/handler/abstract-handler.mjs +1 -1
- package/dist/esm/logger/handler/consola-adapter.mjs +1 -1
- package/dist/esm/logger/handler/console-handler.mjs +1 -1
- package/dist/esm/logger/handler/console-v2-handler.mjs +1 -1
- package/dist/esm/logger/handler/memory-handler.mjs +1 -1
- package/dist/esm/logger/handler/stream-handler.mjs +1 -1
- package/dist/esm/logger/handler/telegram-handler.mjs +1 -1
- package/dist/esm/logger/handler/winston-adapter.mjs +1 -1
- package/dist/esm/logger/logger-factory.mjs +1 -1
- package/dist/esm/logger/logger.mjs +1 -1
- package/dist/esm/logger/null-logger.mjs +1 -1
- package/dist/esm/logger/processor/memory-usage-processor.mjs +1 -1
- package/dist/esm/logger/processor/pid-processor.mjs +1 -1
- package/dist/esm/oauth/auth.mjs +13 -16
- package/dist/esm/oauth/auth.mjs.map +1 -1
- package/dist/esm/oauth/b24.mjs +1 -1
- package/dist/esm/oauth/refresh-token-error.mjs +1 -1
- package/dist/esm/pullClient/abstract-connector.mjs +1 -1
- package/dist/esm/pullClient/channel-manager.mjs +1 -1
- package/dist/esm/pullClient/client.mjs +141 -30
- package/dist/esm/pullClient/client.mjs.map +1 -1
- package/dist/esm/pullClient/errors.mjs +1 -1
- package/dist/esm/pullClient/json-rpc.mjs +5 -4
- package/dist/esm/pullClient/json-rpc.mjs.map +1 -1
- package/dist/esm/pullClient/long-polling-connector.mjs +1 -1
- package/dist/esm/pullClient/protobuf/index.mjs +1 -1
- package/dist/esm/pullClient/protobuf/model.mjs +1 -1
- package/dist/esm/pullClient/protobuf/protobuf.mjs +1 -1
- package/dist/esm/pullClient/shared-config.mjs +1 -1
- package/dist/esm/pullClient/storage-manager.mjs +1 -1
- package/dist/esm/pullClient/web-socket-connector.mjs +1 -1
- package/dist/esm/tools/batch-ref-v3.mjs +52 -0
- package/dist/esm/tools/batch-ref-v3.mjs.map +1 -0
- package/dist/esm/tools/browser.mjs +1 -1
- package/dist/esm/tools/environment.mjs +1 -1
- package/dist/esm/tools/filter-v3.mjs +137 -0
- package/dist/esm/tools/filter-v3.mjs.map +1 -0
- package/dist/esm/tools/formatters/iban.mjs +1 -1
- package/dist/esm/tools/formatters/numbers.mjs +1 -1
- package/dist/esm/tools/index.mjs +1 -1
- package/dist/esm/tools/scroll-size.mjs +1 -1
- package/dist/esm/tools/text.mjs +1 -1
- package/dist/esm/tools/type.mjs +1 -1
- package/dist/esm/tools/use-formatters.mjs +1 -1
- package/dist/esm/tools/uuidv7.mjs +1 -1
- package/dist/esm/types/b24-helper.mjs +1 -1
- package/dist/esm/types/b24.mjs +1 -1
- package/dist/esm/types/bizproc/index.mjs +1 -1
- package/dist/esm/types/catalog/index.mjs +1 -1
- package/dist/esm/types/common.mjs +1 -1
- package/dist/esm/types/crm/entity-type.mjs +1 -1
- package/dist/esm/types/crm/productrow.mjs +1 -1
- package/dist/esm/types/logger.mjs +1 -1
- package/dist/esm/types/pull.mjs +1 -1
- package/dist/umd/index.js +1384 -680
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/index.min.js +26 -26
- package/dist/umd/index.min.js.map +1 -1
- package/dist/umd/package.json +3 -0
- package/package.json +12 -4
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @bitrix24/b24jssdk
|
|
3
|
+
* @version 2.0.0
|
|
4
|
+
* @copyright (c) 2026 Bitrix24
|
|
5
|
+
* @license MIT
|
|
6
|
+
* @see https://github.com/bitrix24/b24jssdk
|
|
7
|
+
* @see https://bitrix24.github.io/b24jssdk/
|
|
8
|
+
*/
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const type = require('../tools/type.cjs');
|
|
12
|
+
const commands = require('./message/commands.cjs');
|
|
13
|
+
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
16
|
+
class PlacementManager {
|
|
17
|
+
static {
|
|
18
|
+
__name(this, "PlacementManager");
|
|
19
|
+
}
|
|
20
|
+
#messageManager;
|
|
21
|
+
#placement = "";
|
|
22
|
+
#options = {};
|
|
23
|
+
constructor(messageManager) {
|
|
24
|
+
this.#messageManager = messageManager;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Initializes the data received from the parent window message.
|
|
28
|
+
* @param data
|
|
29
|
+
*/
|
|
30
|
+
initData(data) {
|
|
31
|
+
this.#placement = data.PLACEMENT || "DEFAULT";
|
|
32
|
+
this.#options = Object.freeze(data.PLACEMENT_OPTIONS);
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Symlink on `placement`
|
|
37
|
+
* For backward compatibility
|
|
38
|
+
*/
|
|
39
|
+
get title() {
|
|
40
|
+
return this.#placement;
|
|
41
|
+
}
|
|
42
|
+
get placement() {
|
|
43
|
+
return this.#placement;
|
|
44
|
+
}
|
|
45
|
+
get isDefault() {
|
|
46
|
+
return this.placement === "DEFAULT";
|
|
47
|
+
}
|
|
48
|
+
get options() {
|
|
49
|
+
return this.#options;
|
|
50
|
+
}
|
|
51
|
+
get isSliderMode() {
|
|
52
|
+
return this.options?.IFRAME === "Y";
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get Information About the JS Interface of the Current Embedding Location
|
|
56
|
+
*
|
|
57
|
+
* @return {Promise<any>}
|
|
58
|
+
*
|
|
59
|
+
* @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-get-interface.html
|
|
60
|
+
*/
|
|
61
|
+
async getInterface() {
|
|
62
|
+
return this.#messageManager.send(
|
|
63
|
+
commands.MessageCommands.getInterface,
|
|
64
|
+
{
|
|
65
|
+
isSafely: true
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Set Up the Interface Event Handler
|
|
71
|
+
* @param {string} eventName
|
|
72
|
+
* @param {(...args: any[]) => void} callBack
|
|
73
|
+
* @return {Promise<any>}
|
|
74
|
+
*
|
|
75
|
+
* @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-bind-event.html
|
|
76
|
+
*/
|
|
77
|
+
async bindEvent(eventName, callBack) {
|
|
78
|
+
return this.#messageManager.send(
|
|
79
|
+
commands.MessageCommands.placementBindEvent,
|
|
80
|
+
{
|
|
81
|
+
event: eventName,
|
|
82
|
+
callBack,
|
|
83
|
+
isSafely: true
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
async call(command, parameters = {}) {
|
|
88
|
+
if (command === "setValue" && !type.Type.isString(parameters?.["value"])) {
|
|
89
|
+
throw new TypeError(
|
|
90
|
+
"placement.call('setValue', { value }) expects `value` to be a JSON-serialized string. Use placement.setValue(value) to serialize automatically, or call JSON.stringify yourself."
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
return this.#messageManager.send(
|
|
94
|
+
command,
|
|
95
|
+
{
|
|
96
|
+
...parameters,
|
|
97
|
+
isSafely: true,
|
|
98
|
+
isRawValue: ["setValue"].includes(command)
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Set Value for the Current Embedding Location
|
|
104
|
+
*
|
|
105
|
+
* Convenience wrapper around `placement.call('setValue', ...)` that handles
|
|
106
|
+
* JSON serialization. Pass any value (string, number, boolean, object, array)
|
|
107
|
+
* — it will be serialized via `JSON.stringify` before being sent to the
|
|
108
|
+
* parent window, which performs `JSON.parse` on receipt.
|
|
109
|
+
*
|
|
110
|
+
* @param { unknown } value Any JSON-serializable value
|
|
111
|
+
* @return { Promise<any> }
|
|
112
|
+
*
|
|
113
|
+
* @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-call.html
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* await b24.placement.setValue('test')
|
|
117
|
+
* await b24.placement.setValue({ id: 1, title: 'demo' })
|
|
118
|
+
*/
|
|
119
|
+
async setValue(value) {
|
|
120
|
+
return this.#messageManager.send(
|
|
121
|
+
"setValue",
|
|
122
|
+
{
|
|
123
|
+
value: JSON.stringify(value),
|
|
124
|
+
isSafely: true,
|
|
125
|
+
isRawValue: true
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Set Up the Interface Event Handler
|
|
131
|
+
* @param {string} command
|
|
132
|
+
* @param {null | string | Record<string, any>} parameters
|
|
133
|
+
* @param {(...args: any[]) => void} callBack
|
|
134
|
+
*
|
|
135
|
+
* @return {Promise<any>}
|
|
136
|
+
*/
|
|
137
|
+
async callCustomBind(command, parameters = null, callBack) {
|
|
138
|
+
let options = {};
|
|
139
|
+
if (type.Type.isString(parameters)) {
|
|
140
|
+
options["singleOption"] = parameters;
|
|
141
|
+
} else if (type.Type.isObjectLike(parameters)) {
|
|
142
|
+
options = { ...parameters };
|
|
143
|
+
}
|
|
144
|
+
return this.#messageManager.send(
|
|
145
|
+
command,
|
|
146
|
+
{
|
|
147
|
+
...options,
|
|
148
|
+
callBack,
|
|
149
|
+
isSafely: true
|
|
150
|
+
}
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
exports.PlacementManager = PlacementManager;
|
|
156
|
+
//# sourceMappingURL=placement.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placement.cjs","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 *\n * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-call.html\n *\n * @memo The `setValue` command is special: the parent window calls `JSON.parse(value)`\n * on the received payload, so `value` MUST be a JSON-serialized string\n * (e.g. `JSON.stringify('test')` or `JSON.stringify({ a: 1 })`).\n * Prefer {@link PlacementManager.setValue} which serializes for you.\n *\n * @throws {TypeError} when `command === 'setValue'` and `parameters.value` is not a string.\n */\n async call(command: 'setValue', parameters: { value: string }): Promise<any>\n async call(command: string, parameters?: Record<string, any>): Promise<any>\n async call(command: string, parameters: Record<string, any> = {}): Promise<any> {\n if (command === 'setValue' && !Type.isString(parameters?.['value'])) {\n throw new TypeError(\n 'placement.call(\\'setValue\\', { value }) expects `value` to be a JSON-serialized string. '\n + 'Use placement.setValue(value) to serialize automatically, or call JSON.stringify yourself.'\n )\n }\n\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 Value for the Current Embedding Location\n *\n * Convenience wrapper around `placement.call('setValue', ...)` that handles\n * JSON serialization. Pass any value (string, number, boolean, object, array)\n * — it will be serialized via `JSON.stringify` before being sent to the\n * parent window, which performs `JSON.parse` on receipt.\n *\n * @param { unknown } value Any JSON-serializable value\n * @return { Promise<any> }\n *\n * @link https://apidocs.bitrix24.com/api-reference/widgets/ui-interaction/bx24-placement-call.html\n *\n * @example\n * await b24.placement.setValue('test')\n * await b24.placement.setValue({ id: 1, title: 'demo' })\n */\n async setValue(value: unknown): Promise<any> {\n return this.#messageManager.send(\n 'setValue',\n {\n value: JSON.stringify(value),\n isSafely: true,\n isRawValue: true\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":["MessageCommands","Type"],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @bitrix24/b24jssdk
|
|
3
|
+
* @version 2.0.0
|
|
4
|
+
* @copyright (c) 2026 Bitrix24
|
|
5
|
+
* @license MIT
|
|
6
|
+
* @see https://github.com/bitrix24/b24jssdk
|
|
7
|
+
* @see https://bitrix24.github.io/b24jssdk/
|
|
8
|
+
*/
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const commands = require('./message/commands.cjs');
|
|
12
|
+
|
|
13
|
+
var __defProp = Object.defineProperty;
|
|
14
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
15
|
+
class SliderManager {
|
|
16
|
+
static {
|
|
17
|
+
__name(this, "SliderManager");
|
|
18
|
+
}
|
|
19
|
+
#appFrame;
|
|
20
|
+
#messageManager;
|
|
21
|
+
constructor(appFrame, messageManager) {
|
|
22
|
+
this.#appFrame = appFrame;
|
|
23
|
+
this.#messageManager = messageManager;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns the URL relative to the domain name and path
|
|
27
|
+
*/
|
|
28
|
+
getUrl(path = "/") {
|
|
29
|
+
return new URL(path, this.#appFrame.getTargetOrigin());
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the account address BX24
|
|
33
|
+
*/
|
|
34
|
+
getTargetOrigin() {
|
|
35
|
+
return this.#appFrame.getTargetOrigin();
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* When the method is called, a pop-up window with the application frame will be opened.
|
|
39
|
+
*
|
|
40
|
+
* Settings are passed via `bx24_`-prefixed keys (e.g. `bx24_title`, `bx24_width`).
|
|
41
|
+
* `bx24_title` sets the slider title; the portal also reflects it to the browser tab title
|
|
42
|
+
* (`document.title`) — unlike `ParentManager.setTitle`, which only updates the in-layout `#pagetitle`.
|
|
43
|
+
*
|
|
44
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-open-application.html
|
|
45
|
+
*/
|
|
46
|
+
async openSliderAppPage(params = {}) {
|
|
47
|
+
return this.#messageManager.send(commands.MessageCommands.openApplication, params);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The method closes the open modal window with the application
|
|
51
|
+
*
|
|
52
|
+
* @return {Promise<void>}
|
|
53
|
+
*
|
|
54
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-close-application.html
|
|
55
|
+
*/
|
|
56
|
+
async closeSliderAppPage() {
|
|
57
|
+
return this.#messageManager.send(commands.MessageCommands.closeApplication, {
|
|
58
|
+
/**
|
|
59
|
+
* @memo There is no point - everything will be closed, and timeout will not be able to do anything
|
|
60
|
+
*/
|
|
61
|
+
isSafely: false
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Defines the base path for width sampling.
|
|
66
|
+
*
|
|
67
|
+
* @param width
|
|
68
|
+
* @private
|
|
69
|
+
*/
|
|
70
|
+
#getBaseUrlByWidth(width = 1640) {
|
|
71
|
+
if (width > 0) {
|
|
72
|
+
if (width > 1200 && width <= 1640) {
|
|
73
|
+
return "/crm/type/0/details/0/../../../../..";
|
|
74
|
+
} else if (width > 950 && width <= 1200) {
|
|
75
|
+
return "/company/personal/user/0/groups/create/../../../../../..";
|
|
76
|
+
} else if (width > 900 && width <= 950) {
|
|
77
|
+
return "/crm/company/requisite/0/../../../..";
|
|
78
|
+
} else if (width <= 900) {
|
|
79
|
+
return "/workgroups/group/0/card/../../../..";
|
|
80
|
+
} else {
|
|
81
|
+
return "/crm/deal/../..";
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
return "/crm/deal/../..";
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Opens the specified path inside the portal in the slider.
|
|
89
|
+
* @param {URL} url
|
|
90
|
+
* @param {number} width - Number in the range from 1640 to 1200, from 1200 to 950, from 950 to 900, from 900 ...
|
|
91
|
+
* @return {Promise<StatusClose>}
|
|
92
|
+
*
|
|
93
|
+
* @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-open-path.html
|
|
94
|
+
* @memo /^\/(crm\/(deal|lead|contact|company|type)|marketplace|company\/personal\/user\/[0-9]+|workgroups\/group\/[0-9]+)\//
|
|
95
|
+
*/
|
|
96
|
+
async openPath(url, width = 1640) {
|
|
97
|
+
const openSliderUrl = new URL(url);
|
|
98
|
+
openSliderUrl.searchParams.set("IFRAME", "Y");
|
|
99
|
+
openSliderUrl.searchParams.set("IFRAME_TYPE", "SIDE_SLIDER");
|
|
100
|
+
return this.#messageManager.send(commands.MessageCommands.openPath, {
|
|
101
|
+
path: [
|
|
102
|
+
this.#getBaseUrlByWidth(width),
|
|
103
|
+
openSliderUrl.pathname,
|
|
104
|
+
openSliderUrl.search
|
|
105
|
+
].join("")
|
|
106
|
+
}).then((response) => {
|
|
107
|
+
if (response?.result === "error") {
|
|
108
|
+
if (response?.errorCode === "METHOD_NOT_SUPPORTED_ON_DEVICE") {
|
|
109
|
+
return new Promise((resolve, reject) => {
|
|
110
|
+
const windowObjectReference = window.open(url, "_blank");
|
|
111
|
+
if (!windowObjectReference) {
|
|
112
|
+
reject(new Error("Error open window"));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
let iterator = 0;
|
|
116
|
+
const iteratorMax = 1e3 * 60 * 5;
|
|
117
|
+
const waitCloseWindow = window.setInterval(() => {
|
|
118
|
+
iterator = iterator + 1;
|
|
119
|
+
if (windowObjectReference.closed) {
|
|
120
|
+
clearInterval(waitCloseWindow);
|
|
121
|
+
resolve({
|
|
122
|
+
isOpenAtNewWindow: true,
|
|
123
|
+
isClose: true
|
|
124
|
+
});
|
|
125
|
+
} else if (iterator > iteratorMax) {
|
|
126
|
+
clearInterval(waitCloseWindow);
|
|
127
|
+
resolve({
|
|
128
|
+
isOpenAtNewWindow: true,
|
|
129
|
+
isClose: false
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}, 1e3);
|
|
133
|
+
});
|
|
134
|
+
} else {
|
|
135
|
+
return Promise.reject(new Error(response?.errorCode));
|
|
136
|
+
}
|
|
137
|
+
} else if (response?.result === "close") {
|
|
138
|
+
return Promise.resolve({
|
|
139
|
+
isOpenAtNewWindow: false,
|
|
140
|
+
isClose: true
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
return Promise.resolve({
|
|
144
|
+
isOpenAtNewWindow: false,
|
|
145
|
+
isClose: false
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* @todo test this and remove
|
|
151
|
+
*/
|
|
152
|
+
// async showAppForm(params: any): Promise<void> {
|
|
153
|
+
// console.warn(`deprecated showAppForm`)
|
|
154
|
+
// return this.#messageManager.send(MessageCommands.showAppForm, {
|
|
155
|
+
// params: params,
|
|
156
|
+
// isSafely: true
|
|
157
|
+
// })
|
|
158
|
+
// }
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
exports.SliderManager = SliderManager;
|
|
162
|
+
//# sourceMappingURL=slider.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.cjs","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 * Settings are passed via `bx24_`-prefixed keys (e.g. `bx24_title`, `bx24_width`).\n * `bx24_title` sets the slider title; the portal also reflects it to the browser tab title\n * (`document.title`) — unlike `ParentManager.setTitle`, which only updates the in-layout `#pagetitle`.\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":["MessageCommands"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @bitrix24/b24jssdk
|
|
3
|
+
* @version 2.0.0
|
|
4
|
+
* @copyright (c) 2026 Bitrix24
|
|
5
|
+
* @license MIT
|
|
6
|
+
* @see https://github.com/bitrix24/b24jssdk
|
|
7
|
+
* @see https://bitrix24.github.io/b24jssdk/
|
|
8
|
+
*/
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const loggerFactory = require('../logger/logger-factory.cjs');
|
|
12
|
+
|
|
13
|
+
var __defProp = Object.defineProperty;
|
|
14
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
15
|
+
class UnhandledMatchError extends Error {
|
|
16
|
+
static {
|
|
17
|
+
__name(this, "UnhandledMatchError");
|
|
18
|
+
}
|
|
19
|
+
constructor(value, ...args) {
|
|
20
|
+
super(...args);
|
|
21
|
+
this.name = "UnhandledMatchError";
|
|
22
|
+
this.message = `Unhandled match value of type ${value}`;
|
|
23
|
+
this.stack = `${new Error("for stack").stack}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
class AbstractHelper {
|
|
27
|
+
static {
|
|
28
|
+
__name(this, "AbstractHelper");
|
|
29
|
+
}
|
|
30
|
+
_b24;
|
|
31
|
+
_data = null;
|
|
32
|
+
_logger;
|
|
33
|
+
// region Init ////
|
|
34
|
+
constructor(b24) {
|
|
35
|
+
this._b24 = b24;
|
|
36
|
+
this._logger = loggerFactory.LoggerFactory.createNullLogger();
|
|
37
|
+
}
|
|
38
|
+
setLogger(logger) {
|
|
39
|
+
this._logger = logger;
|
|
40
|
+
}
|
|
41
|
+
getLogger() {
|
|
42
|
+
return this._logger;
|
|
43
|
+
}
|
|
44
|
+
// endregion ////
|
|
45
|
+
/**
|
|
46
|
+
* Initializes the data received
|
|
47
|
+
*/
|
|
48
|
+
async initData(_data) {
|
|
49
|
+
return Promise.reject(new Error("Rewrite this function"));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
exports.AbstractHelper = AbstractHelper;
|
|
54
|
+
exports.UnhandledMatchError = UnhandledMatchError;
|
|
55
|
+
//# sourceMappingURL=abstract-helper.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abstract-helper.cjs","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":["LoggerFactory"],"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,GAAUA,4BAAc,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;;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @bitrix24/b24jssdk
|
|
3
|
+
* @version 2.0.0
|
|
4
|
+
* @copyright (c) 2026 Bitrix24
|
|
5
|
+
* @license MIT
|
|
6
|
+
* @see https://github.com/bitrix24/b24jssdk
|
|
7
|
+
* @see https://bitrix24.github.io/b24jssdk/
|
|
8
|
+
*/
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const abstractHelper = require('./abstract-helper.cjs');
|
|
12
|
+
const b24Helper = require('../types/b24-helper.cjs');
|
|
13
|
+
|
|
14
|
+
var __defProp = Object.defineProperty;
|
|
15
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
16
|
+
class AppManager extends abstractHelper.AbstractHelper {
|
|
17
|
+
static {
|
|
18
|
+
__name(this, "AppManager");
|
|
19
|
+
}
|
|
20
|
+
_data = null;
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
async initData(data) {
|
|
25
|
+
this._data = data;
|
|
26
|
+
}
|
|
27
|
+
get data() {
|
|
28
|
+
if (null === this._data) {
|
|
29
|
+
throw new Error("AppManager.data not initialized");
|
|
30
|
+
}
|
|
31
|
+
return this._data;
|
|
32
|
+
}
|
|
33
|
+
get statusCode() {
|
|
34
|
+
return b24Helper.StatusDescriptions[this.data.status] || "Unknown status";
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
exports.AppManager = AppManager;
|
|
39
|
+
//# sourceMappingURL=app-manager.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-manager.cjs","sources":["../../../src/helper/app-manager.ts"],"sourcesContent":["import type { TypeApp } from '../types/b24-helper'\nimport { AbstractHelper } from './abstract-helper'\nimport { StatusDescriptions } from '../types/b24-helper'\n\nexport class AppManager extends AbstractHelper {\n protected override _data: null | TypeApp = null\n\n /**\n * @inheritDoc\n */\n override async initData(data: TypeApp): Promise<void> {\n this._data = data\n }\n\n get data(): TypeApp {\n if (null === this._data) {\n throw new Error('AppManager.data not initialized')\n }\n\n return this._data\n }\n\n get statusCode(): string {\n return (\n StatusDescriptions[this.data.status as keyof typeof StatusDescriptions]\n || 'Unknown status'\n )\n }\n}\n"],"names":["AbstractHelper","StatusDescriptions"],"mappings":";;;;;;;;;;;;;;;AAIO,MAAM,mBAAmBA,6BAAA,CAAe;AAAA,EAJ/C;AAI+C,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA;AAAA;AAAA,EAC1B,KAAA,GAAwB,IAAA;AAAA;AAAA;AAAA;AAAA,EAK3C,MAAe,SAAS,IAAA,EAA8B;AACpD,IAAA,IAAA,CAAK,KAAA,GAAQ,IAAA;AAAA,EACf;AAAA,EAEA,IAAI,IAAA,GAAgB;AAClB,IAAA,IAAI,IAAA,KAAS,KAAK,KAAA,EAAO;AACvB,MAAA,MAAM,IAAI,MAAM,iCAAiC,CAAA;AAAA,IACnD;AAEA,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AAAA,EAEA,IAAI,UAAA,GAAqB;AACvB,IAAA,OACEC,4BAAA,CAAmB,IAAA,CAAK,IAAA,CAAK,MAAyC,CAAA,IACnE,gBAAA;AAAA,EAEP;AACF;;;;"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @package @bitrix24/b24jssdk
|
|
3
|
+
* @version 2.0.0
|
|
4
|
+
* @copyright (c) 2026 Bitrix24
|
|
5
|
+
* @license MIT
|
|
6
|
+
* @see https://github.com/bitrix24/b24jssdk
|
|
7
|
+
* @see https://bitrix24.github.io/b24jssdk/
|
|
8
|
+
*/
|
|
9
|
+
'use strict';
|
|
10
|
+
|
|
11
|
+
const abstractHelper = require('./abstract-helper.cjs');
|
|
12
|
+
const type = require('../tools/type.cjs');
|
|
13
|
+
const text = require('../tools/text.cjs');
|
|
14
|
+
|
|
15
|
+
var __defProp = Object.defineProperty;
|
|
16
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
17
|
+
class CurrencyManager extends abstractHelper.AbstractHelper {
|
|
18
|
+
static {
|
|
19
|
+
__name(this, "CurrencyManager");
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @inheritDoc
|
|
23
|
+
*/
|
|
24
|
+
async initData(data) {
|
|
25
|
+
this._data = {
|
|
26
|
+
currencyBase: "?",
|
|
27
|
+
currencyList: /* @__PURE__ */ new Map()
|
|
28
|
+
};
|
|
29
|
+
this.setBaseCurrency(data.currencyBase);
|
|
30
|
+
this.setCurrencyList(data.currencyList);
|
|
31
|
+
try {
|
|
32
|
+
await this.loadData();
|
|
33
|
+
} catch (error) {
|
|
34
|
+
if (error instanceof Error) {
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
this.getLogger().error("Failed to load data", { error });
|
|
38
|
+
throw new Error("Failed to load data");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
async loadData() {
|
|
42
|
+
const batchRequest = this.currencyList.map((currencyCode) => {
|
|
43
|
+
return {
|
|
44
|
+
method: "crm.currency.get",
|
|
45
|
+
params: {
|
|
46
|
+
id: currencyCode
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
if (batchRequest.length === 0) {
|
|
51
|
+
return Promise.resolve();
|
|
52
|
+
}
|
|
53
|
+
try {
|
|
54
|
+
const response = await this._b24.actions.v2.batchByChunk.make({
|
|
55
|
+
calls: batchRequest,
|
|
56
|
+
options: { isHaltOnError: true }
|
|
57
|
+
});
|
|
58
|
+
const data = response.getData();
|
|
59
|
+
if (!Array.isArray(data)) {
|
|
60
|
+
return Promise.resolve();
|
|
61
|
+
}
|
|
62
|
+
data.forEach((row) => {
|
|
63
|
+
if (typeof row.LANG === "undefined") {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const currencyCode = row.CURRENCY;
|
|
67
|
+
const currency = this.data.currencyList.get(currencyCode);
|
|
68
|
+
if (typeof currency === "undefined") {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
for (const [langCode, formatData] of Object.entries(row.LANG)) {
|
|
72
|
+
currency.lang[langCode] = {
|
|
73
|
+
decimals: Number.parseInt(formatData.DECIMALS),
|
|
74
|
+
decPoint: formatData.DEC_POINT,
|
|
75
|
+
formatString: formatData.FORMAT_STRING,
|
|
76
|
+
fullName: formatData.FULL_NAME,
|
|
77
|
+
isHideZero: formatData.HIDE_ZERO === "Y",
|
|
78
|
+
thousandsSep: formatData.THOUSANDS_SEP,
|
|
79
|
+
thousandsVariant: formatData.THOUSANDS_VARIANT
|
|
80
|
+
};
|
|
81
|
+
switch (currency.lang[langCode].thousandsVariant) {
|
|
82
|
+
case "N":
|
|
83
|
+
currency.lang[langCode].thousandsSep = "";
|
|
84
|
+
break;
|
|
85
|
+
case "D":
|
|
86
|
+
currency.lang[langCode].thousandsSep = ".";
|
|
87
|
+
break;
|
|
88
|
+
case "C":
|
|
89
|
+
currency.lang[langCode].thousandsSep = ",";
|
|
90
|
+
break;
|
|
91
|
+
case "S":
|
|
92
|
+
currency.lang[langCode].thousandsSep = " ";
|
|
93
|
+
break;
|
|
94
|
+
case "B":
|
|
95
|
+
currency.lang[langCode].thousandsSep = " ";
|
|
96
|
+
break;
|
|
97
|
+
// case 'OWN': ////
|
|
98
|
+
default:
|
|
99
|
+
if (!type.Type.isStringFilled(currency.lang[langCode].thousandsSep)) {
|
|
100
|
+
currency.lang[langCode].thousandsSep = " ";
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
} catch (error) {
|
|
107
|
+
this.getLogger().error("Failed to load data", { error });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
get data() {
|
|
111
|
+
if (null === this._data) {
|
|
112
|
+
throw new Error("CurrencyManager.data not initialized");
|
|
113
|
+
}
|
|
114
|
+
return this._data;
|
|
115
|
+
}
|
|
116
|
+
// region BaseCurrency ////
|
|
117
|
+
setBaseCurrency(currencyBase) {
|
|
118
|
+
this._data.currencyBase = currencyBase;
|
|
119
|
+
}
|
|
120
|
+
get baseCurrency() {
|
|
121
|
+
return this.data.currencyBase;
|
|
122
|
+
}
|
|
123
|
+
// endregion ////
|
|
124
|
+
// region CurrencyList ////
|
|
125
|
+
setCurrencyList(list = []) {
|
|
126
|
+
this.data.currencyList.clear();
|
|
127
|
+
for (const row of list) {
|
|
128
|
+
this.data.currencyList.set(row.CURRENCY, {
|
|
129
|
+
amount: Number.parseFloat(row.CURRENCY),
|
|
130
|
+
amountCnt: Number.parseInt(row.AMOUNT_CNT),
|
|
131
|
+
isBase: row.BASE === "Y",
|
|
132
|
+
currencyCode: row.CURRENCY,
|
|
133
|
+
dateUpdate: text.Text.toDateTime(row.DATE_UPDATE),
|
|
134
|
+
decimals: Number.parseInt(row.DECIMALS),
|
|
135
|
+
decPoint: row.DEC_POINT,
|
|
136
|
+
formatString: row.FORMAT_STRING,
|
|
137
|
+
fullName: row.FULL_NAME,
|
|
138
|
+
lid: row.LID,
|
|
139
|
+
sort: Number.parseInt(row.SORT),
|
|
140
|
+
thousandsSep: row?.THOUSANDS_SEP || null,
|
|
141
|
+
lang: {}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// endregion ////
|
|
146
|
+
// region Info ////
|
|
147
|
+
getCurrencyFullName(currencyCode, langCode) {
|
|
148
|
+
const currency = this.data.currencyList.get(currencyCode);
|
|
149
|
+
if (typeof currency === "undefined") {
|
|
150
|
+
throw new abstractHelper.UnhandledMatchError(currencyCode);
|
|
151
|
+
}
|
|
152
|
+
let fullName = currency.fullName;
|
|
153
|
+
if (!(typeof langCode === "undefined")) {
|
|
154
|
+
const langFormatter = currency.lang[langCode];
|
|
155
|
+
if (!type.Type.isUndefined(langFormatter)) {
|
|
156
|
+
fullName = langFormatter.fullName;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return fullName;
|
|
160
|
+
}
|
|
161
|
+
getCurrencyLiteral(currencyCode, langCode) {
|
|
162
|
+
const currency = this.data.currencyList.get(currencyCode);
|
|
163
|
+
if (typeof currency === "undefined") {
|
|
164
|
+
throw new abstractHelper.UnhandledMatchError(currencyCode);
|
|
165
|
+
}
|
|
166
|
+
let formatString = currency.formatString;
|
|
167
|
+
if (!(typeof langCode === "undefined")) {
|
|
168
|
+
const langFormatter = currency.lang[langCode];
|
|
169
|
+
if (!type.Type.isUndefined(langFormatter)) {
|
|
170
|
+
formatString = langFormatter.formatString;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return formatString.replaceAll("&#", "&%").replaceAll("#", "").replaceAll("&%", "&#").trim() || "";
|
|
174
|
+
}
|
|
175
|
+
get currencyList() {
|
|
176
|
+
return [...this.data.currencyList.keys()];
|
|
177
|
+
}
|
|
178
|
+
// endregion ////
|
|
179
|
+
// region Format ////
|
|
180
|
+
format(value, currencyCode, langCode) {
|
|
181
|
+
const currency = this.data.currencyList.get(currencyCode);
|
|
182
|
+
if (typeof currency === "undefined") {
|
|
183
|
+
throw new abstractHelper.UnhandledMatchError(currencyCode);
|
|
184
|
+
}
|
|
185
|
+
const options = {
|
|
186
|
+
formatString: currency.formatString,
|
|
187
|
+
decimals: currency.decimals,
|
|
188
|
+
decPoint: currency.decPoint,
|
|
189
|
+
thousandsSep: currency.thousandsSep
|
|
190
|
+
};
|
|
191
|
+
if (!type.Type.isStringFilled(options.thousandsSep)) {
|
|
192
|
+
options.thousandsSep = "";
|
|
193
|
+
}
|
|
194
|
+
const langFormatter = currency.lang[langCode];
|
|
195
|
+
if (!type.Type.isUndefined(langFormatter)) {
|
|
196
|
+
options.formatString = langFormatter.formatString;
|
|
197
|
+
options.decimals = langFormatter.decimals;
|
|
198
|
+
options.decPoint = langFormatter.decPoint;
|
|
199
|
+
options.thousandsSep = langFormatter.thousandsSep;
|
|
200
|
+
}
|
|
201
|
+
return options.formatString.replaceAll("&#", "&%").replace(
|
|
202
|
+
"#",
|
|
203
|
+
text.Text.numberFormat(
|
|
204
|
+
value,
|
|
205
|
+
options.decimals,
|
|
206
|
+
options.decPoint,
|
|
207
|
+
options.thousandsSep
|
|
208
|
+
)
|
|
209
|
+
).replaceAll("&%", "&#") || "";
|
|
210
|
+
}
|
|
211
|
+
// endregion ////
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
exports.CurrencyManager = CurrencyManager;
|
|
215
|
+
//# sourceMappingURL=currency-manager.cjs.map
|