@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 9.91 kB
Source Map (JSON)
{"version":3,"file":"b24.mjs","sources":["../../../src/frame/b24.ts"],"sourcesContent":["import type { LoggerInterface } from '../logger'\nimport type { B24LangList } from '../core/language/list'\nimport type { AuthActions, MessageInitData, B24FrameQueryParams } from '../types/auth'\nimport type { RestrictionParams } from '../types/limiters'\nimport type { TypeB24, ApiVersion } from '../types/b24'\nimport { AbstractB24 } from '../core/abstract-b24'\nimport { HttpV2 } from '../core/http/v2'\nimport { HttpV3 } from '../core/http/v3'\nimport { AppFrame } from './frame'\nimport { MessageManager, MessageCommands } from './message'\nimport { AuthManager } from './auth'\nimport { ParentManager } from './parent'\nimport { OptionsManager } from './options'\nimport { DialogManager } from './dialog'\nimport { SliderManager } from './slider'\nimport { PlacementManager } from './placement'\n\n/**\n * B24 Manager. Replacement api.bitrix24.com\n *\n * @link https://api.bitrix24.com/api/v1/\n * @link https://bitrix24.github.io/b24jssdk/docs/frame/\n * @see /bitrix/js/rest/applayout.js\n *\n * @todo add docs\n */\nexport class B24Frame extends AbstractB24 implements TypeB24 {\n #isInstallMode: boolean = false\n #isFirstRun: boolean = false\n\n readonly #appFrame: AppFrame\n readonly #messageManager: MessageManager\n readonly #authManager: AuthManager\n readonly #parentManager: ParentManager\n readonly #optionsManager: OptionsManager\n readonly #dialogManager: DialogManager\n readonly #sliderManager: SliderManager\n readonly #placementManager: PlacementManager\n\n readonly #restrictionParams: undefined | Partial<RestrictionParams>\n\n // region Init ////\n constructor(\n queryParams: B24FrameQueryParams,\n options?: {\n restrictionParams?: Partial<RestrictionParams>\n }\n ) {\n super()\n\n this.#restrictionParams = options?.restrictionParams\n\n this.#appFrame = new AppFrame(queryParams)\n\n this.#messageManager = new MessageManager(this.#appFrame)\n this.#messageManager.subscribe()\n\n this.#authManager = new AuthManager(\n this.#appFrame,\n this.#messageManager\n )\n this.#parentManager = new ParentManager(this.#messageManager)\n this.#optionsManager = new OptionsManager(this.#messageManager)\n this.#dialogManager = new DialogManager(this.#messageManager)\n this.#sliderManager = new SliderManager(\n this.#appFrame,\n this.#messageManager\n )\n this.#placementManager = new PlacementManager(this.#messageManager)\n\n this._isInit = false\n }\n\n public override setLogger(logger: LoggerInterface): void {\n super.setLogger(logger)\n this.#messageManager.setLogger(this.getLogger())\n }\n\n get isFirstRun(): boolean {\n this._ensureInitialized()\n return this.#isFirstRun\n }\n\n get isInstallMode(): boolean {\n this._ensureInitialized()\n return this.#isInstallMode\n }\n\n get parent(): ParentManager {\n this._ensureInitialized()\n return this.#parentManager\n }\n\n override get auth(): AuthActions {\n this._ensureInitialized()\n return this.#authManager\n }\n\n get slider(): SliderManager {\n this._ensureInitialized()\n return this.#sliderManager\n }\n\n get placement(): PlacementManager {\n this._ensureInitialized()\n return this.#placementManager\n }\n\n get options(): OptionsManager {\n this._ensureInitialized()\n return this.#optionsManager\n }\n\n get dialog(): DialogManager {\n this._ensureInitialized()\n return this.#dialogManager\n }\n\n public override async init(): Promise<void> {\n const data: MessageInitData = await this.#messageManager.send(MessageCommands.getInitData, {})\n\n this.getLogger().debug('init data', { data })\n\n this.#appFrame.initData(data)\n this.#authManager.initData(data)\n this.#placementManager.initData(data)\n this.#optionsManager.initData(data)\n\n this.#isInstallMode = data.INSTALL\n this.#isFirstRun = data.FIRST_RUN\n\n this._httpV2 = new HttpV2(this.#authManager, this._getHttpOptions(), this.#restrictionParams)\n this._httpV3 = new HttpV3(this.#authManager, this._getHttpOptions(), this.#restrictionParams)\n\n this._isInit = true\n\n /**\n * @memo Writes the fact of the 1st launch to `app_options`\n */\n if (this.#isFirstRun) {\n return this.#messageManager.send(MessageCommands.setInstall, { install: true })\n }\n\n return Promise.resolve()\n }\n\n /**\n * Destructor.\n * Removes an event subscription\n */\n public override destroy() {\n this.#messageManager.unsubscribe()\n super.destroy()\n }\n // endregion ////\n\n // region Core ////\n /**\n * Signals that the installer or application setup has finished running.\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/system-functions/bx24-install-finish.html\n */\n public async installFinish(): Promise<any> {\n if (!this.isInstallMode) {\n return Promise.reject(new Error('Application was previously installed. You cannot call installFinish'))\n }\n\n return this.#messageManager.send(MessageCommands.setInstallFinish, {})\n }\n // endregion ////\n\n // region Get ////\n /**\n * @inheritDoc\n */\n public override getTargetOrigin(): string {\n this._ensureInitialized()\n return this.#authManager.getTargetOrigin()\n }\n\n /**\n * @inheritDoc\n */\n public override getTargetOriginWithPath(): Map<ApiVersion, string> {\n this._ensureInitialized()\n return this.#authManager.getTargetOriginWithPath()\n }\n\n /**\n * Returns the sid of the application relative to the parent window like this `9c33468728e1d2c8c97562475edfd96`\n */\n public getAppSid(): string {\n this._ensureInitialized()\n return this.#appFrame.getAppSid()\n }\n\n /**\n * Returns the localization of the B24 interface\n *\n * @link https://apidocs.bitrix24.com/sdk/bx24-js-sdk/additional-functions/bx24-get-lang.html\n */\n public getLang(): B24LangList {\n this._ensureInitialized()\n return this.#appFrame.getLang()\n }\n // endregion ////\n}\n"],"names":[],"mappings":"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"}