@acorex-platform/extension-project-management-jira-client 0.0.32 → 0.0.33

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.
@@ -5,7 +5,7 @@ import { AXPLayoutBuilderService, resolveLayoutBuilderDialogResult } from '@acor
5
5
  import { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';
6
6
  import { AXPCommandService } from '@acorex-platform/framework-client/runtime';
7
7
  import { AXPopupService } from '@acorex/components/popup';
8
- import * as i7 from '@acorex/core/translation';
8
+ import * as i6 from '@acorex/core/translation';
9
9
  import { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';
10
10
  import * as i0 from '@angular/core';
11
11
  import { ChangeDetectionStrategy, Component, inject, Injectable } from '@angular/core';
@@ -92,7 +92,7 @@ class AXMJiraInstancePickerPopupComponent extends AXBasePageComponent {
92
92
  ></ax-button>
93
93
  </ax-suffix>
94
94
  </ax-footer>
95
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i3.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXSelectionListModule }, { kind: "component", type: i3.AXSelectionListComponent, selector: "ax-selection-list", inputs: ["id", "name", "disabled", "readonly", "tabIndex", "size", "value", "valueField", "textField", "disabledField", "readonlyField", "multiple", "direction", "customTemplate", "showControl", "items", "look"], outputs: ["onValueChanged", "onBlur", "onFocus"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
96
96
  }
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMJiraInstancePickerPopupComponent, decorators: [{
98
98
  type: Component,
@@ -343,4 +343,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
343
343
  }] });
344
344
 
345
345
  export { ConnectJiraCommand };
346
- //# sourceMappingURL=acorex-platform-extension-project-management-jira-client-connect-jira.command-DNMUeLqv.mjs.map
346
+ //# sourceMappingURL=acorex-platform-extension-project-management-jira-client-connect-jira.command-zCV0fKO1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-extension-project-management-jira-client-connect-jira.command-DNMUeLqv.mjs","sources":["../../../../libs/extensions/project-management/jira/client/src/lib/features/connect/ui/jira-instance-picker-popup.component.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/connect/connect-jira.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMJiraInstancePickerPopupResult {\n instance: AXEJiraInstanceEntityModel;\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-jira-instance-picker-popup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXButtonModule, AXDecoratorModule, AXSelectionListModule, AXTranslationModule],\n template: `\n <div class=\"flex flex-col gap-2 p-4\">\n @if (instances.length === 0) {\n <p class=\"text-sm opacity-70\">\n {{ '@extensions-jira:integration.connect.instance-picker.empty' | translate | async }}\n </p>\n } @else {\n <ax-selection-list\n class=\"w-full\"\n valueField=\"id\"\n textField=\"title\"\n [direction]=\"'vertical'\"\n [look]=\"'solid'\"\n [multiple]=\"false\"\n [showControl]=\"false\"\n [items]=\"instanceListItems()\"\n [customTemplate]=\"instanceItemTemplate\"\n (onValueChanged)=\"handleInstanceSelection($event)\"\n >\n <ng-template #instanceItemTemplate let-item>\n <div class=\"flex w-full flex-col items-start gap-0.5 py-1\">\n <span class=\"font-medium\">{{ item.data.title }}</span>\n <span class=\"text-xs opacity-70\">{{ item.data.deploymentLabelKey | translate | async }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"outline\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"close()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n})\nexport class AXMJiraInstancePickerPopupComponent extends AXBasePageComponent {\n instances: AXEJiraInstanceEntityModel[] = [];\n\n protected instanceListItems(): Array<{\n id: string;\n title: string;\n deploymentLabelKey: string;\n }> {\n return this.instances.map((instance) => ({\n id: instance.id,\n title: this.instanceTitle(instance),\n deploymentLabelKey: this.deploymentLabelKey(instance),\n }));\n }\n\n protected handleInstanceSelection(event: AXValueChangedEvent): void {\n if (!event.isUserInteraction) {\n return;\n }\n\n const instance = this.instances.find((item) => item.id === event.value);\n if (instance) {\n this.selectInstance(instance);\n }\n }\n\n protected instanceTitle(instance: AXEJiraInstanceEntityModel): string {\n return resolveMultiLanguageString(instance.title, 'en-US');\n }\n\n protected deploymentLabelKey(instance: AXEJiraInstanceEntityModel): string {\n return instance.deploymentType === 'cloud'\n ? '@extensions-jira:instances.entities.instance.fields.deployment-type.options.cloud'\n : '@extensions-jira:instances.entities.instance.fields.deployment-type.options.self-hosted';\n }\n\n protected selectInstance(instance: AXEJiraInstanceEntityModel): void {\n this.close({ instance } satisfies AXMJiraInstancePickerPopupResult);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n runtimeCommandPayloadData,\n type AXPIntegrationConnectionScope,\n type AXPRuntimeCommandResult,\n type AXPSafeIntegrationConnectionDto,\n} from '@acorex-platform/framework-shared/core';\nimport {\n type ConnectCommandResult,\n} from '@acorex-platform/module-integration-management-client';\nimport { AXMIntegrationManagementCommandKeys } from '@acorex-platform/module-integration-management-client/contracts';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport {\n AXPLayoutBuilderService,\n resolveLayoutBuilderDialogResult,\n type AXPDialogRef,\n type IActionBuilder,\n type IDialogBuilder,\n type IFlexContainerBuilder,\n type IFormFieldBuilder,\n} from '@acorex-platform/framework-client/layout/builder';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, get, trim } from 'lodash-es';\n\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\nimport {\n AXMJiraInstancePickerPopupComponent,\n type AXMJiraInstancePickerPopupResult,\n} from './ui/jira-instance-picker-popup.component';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface ConnectJiraCommandInput {\n providerId?: string;\n connectionScope?: AXPIntegrationConnectionScope;\n}\n\ninterface JiraPatFormContext {\n displayName: string;\n instanceUrl: string;\n token: string;\n}\n\ninterface JiraPatFormResult {\n displayName: string;\n instanceUrl: string;\n token: string;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n/** Jira connect: pick instance → self-hosted PAT or cloud OAuth2. */\n@Injectable({ providedIn: 'root' })\nexport class ConnectJiraCommand implements AXPCommand<ConnectJiraCommandInput, ConnectCommandResult> {\n //#region ---- Services & Dependencies ----\n\n private readonly popupService = inject(AXPopupService);\n private readonly translationService = inject(AXTranslationService);\n private readonly entityService = inject(AXPEntityService);\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly commandService = inject(AXPCommandService);\n private readonly sessionService = inject(AXPSessionService);\n\n //#endregion\n\n //#region ---- Execute ----\n\n async execute(input: ConnectJiraCommandInput = {}): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n try {\n const providerId = defaultTo(input.providerId, 'jira');\n const connectionScope: AXPIntegrationConnectionScope = input.connectionScope ?? 'tenant';\n const I18N = '@extensions-jira:integration.connect';\n\n const instance = await this.pickInstance();\n if (!instance) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n if (instance.deploymentType === 'selfHosted') {\n return this.connectSelfHosted(providerId, connectionScope, instance, I18N);\n }\n\n return this.connectCloud(providerId, connectionScope, instance, I18N);\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to connect Jira instance.';\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Instance Picker ----\n\n private async pickInstance(): Promise<AXEJiraInstanceEntityModel | null> {\n const instances = await this.loadActiveInstances();\n const title = await this.translationService.translateAsync(\n '@extensions-jira:integration.connect.instance-picker.title',\n );\n\n const result = await this.popupService.open(AXMJiraInstancePickerPopupComponent, {\n title,\n size: 'sm',\n data: { instances },\n });\n\n return (result?.data as AXMJiraInstancePickerPopupResult | undefined)?.instance ?? null;\n }\n\n private async loadActiveInstances(): Promise<AXEJiraInstanceEntityModel[]> {\n const accessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.jiraInstance.name)\n .data<string, AXEJiraInstanceEntityModel>();\n\n const result = await accessor.query({\n skip: 0,\n take: 200,\n filter: {\n logic: 'and',\n filters: [{ field: 'isActive', operator: { type: 'equal' }, value: true }],\n },\n });\n\n return result.items ?? [];\n }\n\n //#endregion\n\n //#region ---- Self-Hosted (PAT) ----\n\n private async connectSelfHosted(\n providerId: string,\n connectionScope: AXPIntegrationConnectionScope,\n instance: AXEJiraInstanceEntityModel,\n i18nPrefix: string,\n ): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n const form = await this.openPatDialog({\n i18nPrefix,\n context: {\n displayName: instance.name,\n instanceUrl: defaultTo(instance.baseUrl, ''),\n token: '',\n },\n instanceUrlReadonly: true,\n });\n\n if (!form) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n const result = await this.commandService.execute<\n Record<string, unknown>,\n AXPSafeIntegrationConnectionDto\n >(AXMIntegrationManagementCommandKeys.ConnectionConnectWithCredentials, {\n providerId,\n authMethodType: AXP_INTEGRATION_AUTH_METHOD_TYPE.Pat,\n connectionScope,\n connectionKey: instance.name,\n displayName: defaultTo(trim(form.displayName), instance.name),\n instanceUrl: defaultTo(trim(form.instanceUrl), defaultTo(instance.baseUrl, '')),\n credentials: { token: form.token },\n config: { jiraInstanceId: instance.id },\n });\n\n const data = runtimeCommandPayloadData(result);\n if (!data) {\n return {\n success: false,\n message: result?.message ?? { text: 'Failed to save Jira connection.' },\n };\n }\n\n return { success: true, kind: 'object', data: { outcome: 'connected', connection: data } };\n }\n\n //#endregion\n\n //#region ---- Cloud (OAuth2) ----\n\n private async connectCloud(\n providerId: string,\n connectionScope: AXPIntegrationConnectionScope,\n instance: AXEJiraInstanceEntityModel,\n i18nPrefix: string,\n ): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n const instructions = await this.translationService.translateAsync(\n '@extensions-jira:integration.auth.oauth.instructions',\n );\n\n const confirmedResult = await this.layoutBuilder\n .create()\n .dialog<boolean>((dialog: IDialogBuilder<boolean>) => {\n dialog\n .setTitle(`${i18nPrefix}.oauth-dialog.title`)\n .setSize('sm')\n .setCloseButton(true)\n .content((flex: IFlexContainerBuilder) => {\n flex\n .setDirection('column')\n .setGap('12px')\n .customWidget('text-block-layout', {\n content: instructions ?? '',\n });\n })\n .setActions((actions: IActionBuilder) => {\n actions.cancel('@general:actions.cancel.title').submit(`${i18nPrefix}.oauth-dialog.actions.connect`);\n })\n .onAction(async (ref: AXPDialogRef) => ref.action() !== 'cancel');\n })\n .show();\n\n const confirmed = resolveLayoutBuilderDialogResult<boolean>(confirmedResult);\n if (!confirmed) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n return {\n success: false,\n message: {\n text: '@extensions-jira:integration.auth.oauth.not-implemented',\n },\n };\n }\n\n //#endregion\n\n //#region ---- Dialogs ----\n\n private async openPatDialog(input: {\n i18nPrefix: string;\n context: JiraPatFormContext;\n instanceUrlReadonly?: boolean;\n }): Promise<JiraPatFormResult | null> {\n const instructions = await this.translationService.translateAsync(\n '@extensions-jira:integration.auth.pat.instructions',\n );\n\n const result = await this.layoutBuilder\n .create()\n .dialog<JiraPatFormResult | null>((dialog: IDialogBuilder<JiraPatFormResult | null>) => {\n dialog\n .setTitle(`${input.i18nPrefix}.pat-dialog.title`)\n .setSize('md')\n .setCloseButton(true)\n .setContext({ ...input.context })\n .content((flex: IFlexContainerBuilder) => {\n flex\n .setDirection('column')\n .setGap('12px')\n .customWidget('text-block-layout', { content: instructions ?? '' })\n .formField(`${input.i18nPrefix}.pat-dialog.fields.display-name`, (field: IFormFieldBuilder) => {\n field.path('displayName');\n field.textBox({ placeholder: `${input.i18nPrefix}.pat-dialog.placeholders.display-name` });\n })\n .formField(`${input.i18nPrefix}.pat-dialog.fields.instance-url`, (field) => {\n field.path('instanceUrl');\n if (input.instanceUrlReadonly) {\n field.readonly(true);\n }\n field.textBox({\n placeholder: `${input.i18nPrefix}.pat-dialog.placeholders.instance-url`,\n });\n })\n .formField(`${input.i18nPrefix}.pat-dialog.fields.token`, (field) => {\n field.path('token');\n field.passwordBox({\n placeholder: `${input.i18nPrefix}.pat-dialog.placeholders.token`,\n revealToggle: true,\n validations: [{ rule: 'required' }],\n });\n });\n })\n .setActions((actions: IActionBuilder) => {\n actions\n .cancel('@general:actions.cancel.title')\n .submit(`${input.i18nPrefix}.pat-dialog.actions.save`);\n })\n .onAction(async (ref: AXPDialogRef) => {\n if (ref.action() === 'cancel') {\n return null;\n }\n const ctx = ref.context() as JiraPatFormContext;\n const token = trim(ctx.token);\n if (!token) {\n throw new Error('Personal access token is required.');\n }\n return {\n displayName: trim(ctx.displayName),\n instanceUrl: trim(ctx.instanceUrl),\n token,\n };\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<JiraPatFormResult>(result);\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["i2","i4"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-extension-project-management-jira-client-connect-jira.command-zCV0fKO1.mjs","sources":["../../../../libs/extensions/project-management/jira/client/src/lib/features/connect/ui/jira-instance-picker-popup.component.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/connect/connect-jira.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSelectionListModule } from '@acorex/components/selection-list';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { resolveMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMJiraInstancePickerPopupResult {\n instance: AXEJiraInstanceEntityModel;\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-jira-instance-picker-popup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AsyncPipe, AXButtonModule, AXDecoratorModule, AXSelectionListModule, AXTranslationModule],\n template: `\n <div class=\"flex flex-col gap-2 p-4\">\n @if (instances.length === 0) {\n <p class=\"text-sm opacity-70\">\n {{ '@extensions-jira:integration.connect.instance-picker.empty' | translate | async }}\n </p>\n } @else {\n <ax-selection-list\n class=\"w-full\"\n valueField=\"id\"\n textField=\"title\"\n [direction]=\"'vertical'\"\n [look]=\"'solid'\"\n [multiple]=\"false\"\n [showControl]=\"false\"\n [items]=\"instanceListItems()\"\n [customTemplate]=\"instanceItemTemplate\"\n (onValueChanged)=\"handleInstanceSelection($event)\"\n >\n <ng-template #instanceItemTemplate let-item>\n <div class=\"flex w-full flex-col items-start gap-0.5 py-1\">\n <span class=\"font-medium\">{{ item.data.title }}</span>\n <span class=\"text-xs opacity-70\">{{ item.data.deploymentLabelKey | translate | async }}</span>\n </div>\n </ng-template>\n </ax-selection-list>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"outline\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"close()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n})\nexport class AXMJiraInstancePickerPopupComponent extends AXBasePageComponent {\n instances: AXEJiraInstanceEntityModel[] = [];\n\n protected instanceListItems(): Array<{\n id: string;\n title: string;\n deploymentLabelKey: string;\n }> {\n return this.instances.map((instance) => ({\n id: instance.id,\n title: this.instanceTitle(instance),\n deploymentLabelKey: this.deploymentLabelKey(instance),\n }));\n }\n\n protected handleInstanceSelection(event: AXValueChangedEvent): void {\n if (!event.isUserInteraction) {\n return;\n }\n\n const instance = this.instances.find((item) => item.id === event.value);\n if (instance) {\n this.selectInstance(instance);\n }\n }\n\n protected instanceTitle(instance: AXEJiraInstanceEntityModel): string {\n return resolveMultiLanguageString(instance.title, 'en-US');\n }\n\n protected deploymentLabelKey(instance: AXEJiraInstanceEntityModel): string {\n return instance.deploymentType === 'cloud'\n ? '@extensions-jira:instances.entities.instance.fields.deployment-type.options.cloud'\n : '@extensions-jira:instances.entities.instance.fields.deployment-type.options.self-hosted';\n }\n\n protected selectInstance(instance: AXEJiraInstanceEntityModel): void {\n this.close({ instance } satisfies AXMJiraInstancePickerPopupResult);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n runtimeCommandPayloadData,\n type AXPIntegrationConnectionScope,\n type AXPRuntimeCommandResult,\n type AXPSafeIntegrationConnectionDto,\n} from '@acorex-platform/framework-shared/core';\nimport {\n type ConnectCommandResult,\n} from '@acorex-platform/module-integration-management-client';\nimport { AXMIntegrationManagementCommandKeys } from '@acorex-platform/module-integration-management-client/contracts';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport {\n AXPLayoutBuilderService,\n resolveLayoutBuilderDialogResult,\n type AXPDialogRef,\n type IActionBuilder,\n type IDialogBuilder,\n type IFlexContainerBuilder,\n type IFormFieldBuilder,\n} from '@acorex-platform/framework-client/layout/builder';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPCommandService } from '@acorex-platform/framework-client/runtime';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, get, trim } from 'lodash-es';\n\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\nimport {\n AXMJiraInstancePickerPopupComponent,\n type AXMJiraInstancePickerPopupResult,\n} from './ui/jira-instance-picker-popup.component';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface ConnectJiraCommandInput {\n providerId?: string;\n connectionScope?: AXPIntegrationConnectionScope;\n}\n\ninterface JiraPatFormContext {\n displayName: string;\n instanceUrl: string;\n token: string;\n}\n\ninterface JiraPatFormResult {\n displayName: string;\n instanceUrl: string;\n token: string;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n/** Jira connect: pick instance → self-hosted PAT or cloud OAuth2. */\n@Injectable({ providedIn: 'root' })\nexport class ConnectJiraCommand implements AXPCommand<ConnectJiraCommandInput, ConnectCommandResult> {\n //#region ---- Services & Dependencies ----\n\n private readonly popupService = inject(AXPopupService);\n private readonly translationService = inject(AXTranslationService);\n private readonly entityService = inject(AXPEntityService);\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly commandService = inject(AXPCommandService);\n private readonly sessionService = inject(AXPSessionService);\n\n //#endregion\n\n //#region ---- Execute ----\n\n async execute(input: ConnectJiraCommandInput = {}): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n try {\n const providerId = defaultTo(input.providerId, 'jira');\n const connectionScope: AXPIntegrationConnectionScope = input.connectionScope ?? 'tenant';\n const I18N = '@extensions-jira:integration.connect';\n\n const instance = await this.pickInstance();\n if (!instance) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n if (instance.deploymentType === 'selfHosted') {\n return this.connectSelfHosted(providerId, connectionScope, instance, I18N);\n }\n\n return this.connectCloud(providerId, connectionScope, instance, I18N);\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to connect Jira instance.';\n return { success: false, message: { text: message } };\n }\n }\n\n //#endregion\n\n //#region ---- Instance Picker ----\n\n private async pickInstance(): Promise<AXEJiraInstanceEntityModel | null> {\n const instances = await this.loadActiveInstances();\n const title = await this.translationService.translateAsync(\n '@extensions-jira:integration.connect.instance-picker.title',\n );\n\n const result = await this.popupService.open(AXMJiraInstancePickerPopupComponent, {\n title,\n size: 'sm',\n data: { instances },\n });\n\n return (result?.data as AXMJiraInstancePickerPopupResult | undefined)?.instance ?? null;\n }\n\n private async loadActiveInstances(): Promise<AXEJiraInstanceEntityModel[]> {\n const accessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.jiraInstance.name)\n .data<string, AXEJiraInstanceEntityModel>();\n\n const result = await accessor.query({\n skip: 0,\n take: 200,\n filter: {\n logic: 'and',\n filters: [{ field: 'isActive', operator: { type: 'equal' }, value: true }],\n },\n });\n\n return result.items ?? [];\n }\n\n //#endregion\n\n //#region ---- Self-Hosted (PAT) ----\n\n private async connectSelfHosted(\n providerId: string,\n connectionScope: AXPIntegrationConnectionScope,\n instance: AXEJiraInstanceEntityModel,\n i18nPrefix: string,\n ): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n const form = await this.openPatDialog({\n i18nPrefix,\n context: {\n displayName: instance.name,\n instanceUrl: defaultTo(instance.baseUrl, ''),\n token: '',\n },\n instanceUrlReadonly: true,\n });\n\n if (!form) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n const result = await this.commandService.execute<\n Record<string, unknown>,\n AXPSafeIntegrationConnectionDto\n >(AXMIntegrationManagementCommandKeys.ConnectionConnectWithCredentials, {\n providerId,\n authMethodType: AXP_INTEGRATION_AUTH_METHOD_TYPE.Pat,\n connectionScope,\n connectionKey: instance.name,\n displayName: defaultTo(trim(form.displayName), instance.name),\n instanceUrl: defaultTo(trim(form.instanceUrl), defaultTo(instance.baseUrl, '')),\n credentials: { token: form.token },\n config: { jiraInstanceId: instance.id },\n });\n\n const data = runtimeCommandPayloadData(result);\n if (!data) {\n return {\n success: false,\n message: result?.message ?? { text: 'Failed to save Jira connection.' },\n };\n }\n\n return { success: true, kind: 'object', data: { outcome: 'connected', connection: data } };\n }\n\n //#endregion\n\n //#region ---- Cloud (OAuth2) ----\n\n private async connectCloud(\n providerId: string,\n connectionScope: AXPIntegrationConnectionScope,\n instance: AXEJiraInstanceEntityModel,\n i18nPrefix: string,\n ): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n const instructions = await this.translationService.translateAsync(\n '@extensions-jira:integration.auth.oauth.instructions',\n );\n\n const confirmedResult = await this.layoutBuilder\n .create()\n .dialog<boolean>((dialog: IDialogBuilder<boolean>) => {\n dialog\n .setTitle(`${i18nPrefix}.oauth-dialog.title`)\n .setSize('sm')\n .setCloseButton(true)\n .content((flex: IFlexContainerBuilder) => {\n flex\n .setDirection('column')\n .setGap('12px')\n .customWidget('text-block-layout', {\n content: instructions ?? '',\n });\n })\n .setActions((actions: IActionBuilder) => {\n actions.cancel('@general:actions.cancel.title').submit(`${i18nPrefix}.oauth-dialog.actions.connect`);\n })\n .onAction(async (ref: AXPDialogRef) => ref.action() !== 'cancel');\n })\n .show();\n\n const confirmed = resolveLayoutBuilderDialogResult<boolean>(confirmedResult);\n if (!confirmed) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n return {\n success: false,\n message: {\n text: '@extensions-jira:integration.auth.oauth.not-implemented',\n },\n };\n }\n\n //#endregion\n\n //#region ---- Dialogs ----\n\n private async openPatDialog(input: {\n i18nPrefix: string;\n context: JiraPatFormContext;\n instanceUrlReadonly?: boolean;\n }): Promise<JiraPatFormResult | null> {\n const instructions = await this.translationService.translateAsync(\n '@extensions-jira:integration.auth.pat.instructions',\n );\n\n const result = await this.layoutBuilder\n .create()\n .dialog<JiraPatFormResult | null>((dialog: IDialogBuilder<JiraPatFormResult | null>) => {\n dialog\n .setTitle(`${input.i18nPrefix}.pat-dialog.title`)\n .setSize('md')\n .setCloseButton(true)\n .setContext({ ...input.context })\n .content((flex: IFlexContainerBuilder) => {\n flex\n .setDirection('column')\n .setGap('12px')\n .customWidget('text-block-layout', { content: instructions ?? '' })\n .formField(`${input.i18nPrefix}.pat-dialog.fields.display-name`, (field: IFormFieldBuilder) => {\n field.path('displayName');\n field.textBox({ placeholder: `${input.i18nPrefix}.pat-dialog.placeholders.display-name` });\n })\n .formField(`${input.i18nPrefix}.pat-dialog.fields.instance-url`, (field) => {\n field.path('instanceUrl');\n if (input.instanceUrlReadonly) {\n field.readonly(true);\n }\n field.textBox({\n placeholder: `${input.i18nPrefix}.pat-dialog.placeholders.instance-url`,\n });\n })\n .formField(`${input.i18nPrefix}.pat-dialog.fields.token`, (field) => {\n field.path('token');\n field.passwordBox({\n placeholder: `${input.i18nPrefix}.pat-dialog.placeholders.token`,\n revealToggle: true,\n validations: [{ rule: 'required' }],\n });\n });\n })\n .setActions((actions: IActionBuilder) => {\n actions\n .cancel('@general:actions.cancel.title')\n .submit(`${input.i18nPrefix}.pat-dialog.actions.save`);\n })\n .onAction(async (ref: AXPDialogRef) => {\n if (ref.action() === 'cancel') {\n return null;\n }\n const ctx = ref.context() as JiraPatFormContext;\n const token = trim(ctx.token);\n if (!token) {\n throw new Error('Personal access token is required.');\n }\n return {\n displayName: trim(ctx.displayName),\n instanceUrl: trim(ctx.instanceUrl),\n token,\n };\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<JiraPatFormResult>(result);\n }\n\n //#endregion\n}\n\n//#endregion\n"],"names":["i2","i4"],"mappings":"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"}
@@ -20,9 +20,8 @@ import { AXDecoratorModule } from '@acorex/components/decorators';
20
20
  import * as i5 from '@acorex/components/loading';
21
21
  import { AXLoadingModule } from '@acorex/components/loading';
22
22
  import { AXBasePageComponent } from '@acorex/components/page';
23
- import * as i6 from '@acorex/components/select-box';
24
- import { AXSelectBoxModule } from '@acorex/components/select-box';
25
- import * as i7 from '@acorex/core/translation';
23
+ import { AXComboBoxComponent } from '@acorex/components/combo-box';
24
+ import * as i6 from '@acorex/core/translation';
26
25
  import { AXTranslationModule } from '@acorex/core/translation';
27
26
  import { AsyncPipe } from '@angular/common';
28
27
  import * as i1 from '@angular/forms';
@@ -645,7 +644,7 @@ class AXEJiraExtensionModule {
645
644
  provideCommandSetups([
646
645
  {
647
646
  key: AXEJiraCommandKeys.ConnectionConnect,
648
- command: () => import('./acorex-platform-extension-project-management-jira-client-connect-jira.command-DNMUeLqv.mjs').then((c) => c.ConnectJiraCommand),
647
+ command: () => import('./acorex-platform-extension-project-management-jira-client-connect-jira.command-zCV0fKO1.mjs').then((c) => c.ConnectJiraCommand),
649
648
  },
650
649
  ]),
651
650
  ], imports: [AXMIntegrationManagementModule] }); }
@@ -700,7 +699,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
700
699
  provideCommandSetups([
701
700
  {
702
701
  key: AXEJiraCommandKeys.ConnectionConnect,
703
- command: () => import('./acorex-platform-extension-project-management-jira-client-connect-jira.command-DNMUeLqv.mjs').then((c) => c.ConnectJiraCommand),
702
+ command: () => import('./acorex-platform-extension-project-management-jira-client-connect-jira.command-zCV0fKO1.mjs').then((c) => c.ConnectJiraCommand),
704
703
  },
705
704
  ]),
706
705
  ],
@@ -795,7 +794,15 @@ class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {
795
794
  this.alreadyLinkedJiraIds = new Set();
796
795
  this.strategyOptions = AXE_JIRA_PROJECT_SYNC_STRATEGIES.map((id) => ({
797
796
  id,
798
- title: `@extensions-jira:import.sync-strategy.${id}`,
797
+ text: `@extensions-jira:import.sync-strategy.${id}`,
798
+ value: id,
799
+ }));
800
+ }
801
+ get projectTypeComboItems() {
802
+ return this.projectTypes.map((type) => ({
803
+ id: type.id,
804
+ text: type.title,
805
+ value: type.id,
799
806
  }));
800
807
  }
801
808
  ngOnInit() {
@@ -809,14 +816,18 @@ class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {
809
816
  })));
810
817
  }
811
818
  handleProjectTypeChange(event) {
812
- this.defaultProjectTypeId.set(event.value ?? '');
819
+ const value = event.value;
820
+ this.defaultProjectTypeId.set(typeof value === 'string' ? value : '');
813
821
  }
814
822
  toggleRow(remoteId, event) {
815
823
  const selected = !!event.value;
816
824
  this.rows.update((items) => items.map((row) => (row.remote.id === remoteId ? { ...row, selected } : row)));
817
825
  }
818
826
  changeStrategy(remoteId, event) {
819
- const syncStrategy = event.value ?? 'merge';
827
+ const raw = event.value;
828
+ const syncStrategy = typeof raw === 'string' && AXE_JIRA_PROJECT_SYNC_STRATEGIES.includes(raw)
829
+ ? raw
830
+ : 'merge';
820
831
  this.rows.update((items) => items.map((row) => (row.remote.id === remoteId ? { ...row, syncStrategy } : row)));
821
832
  }
822
833
  hasSelection() {
@@ -842,13 +853,12 @@ class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {
842
853
  <span class="text-sm font-medium">
843
854
  {{ '@extensions-jira:import.popup.default-project-type' | translate | async }}
844
855
  </span>
845
- <ax-select-box
846
- [dataSource]="projectTypes"
847
- valueField="id"
848
- textField="title"
849
- [ngModel]="defaultProjectTypeId()"
856
+ <ax-combo-box
857
+ [items]="projectTypeComboItems"
858
+ [searchable]="false"
859
+ [value]="defaultProjectTypeId()"
850
860
  (onValueChanged)="handleProjectTypeChange($event)"
851
- ></ax-select-box>
861
+ ></ax-combo-box>
852
862
  </div>
853
863
 
854
864
  @if (loading()) {
@@ -880,15 +890,14 @@ class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {
880
890
  <td class="p-2">{{ row.remote.key }}</td>
881
891
  <td class="p-2">{{ row.remote.name }}</td>
882
892
  <td class="p-2">
883
- <ax-select-box
893
+ <ax-combo-box
884
894
  class="min-w-40"
885
- [dataSource]="strategyOptions"
886
- valueField="id"
887
- textField="title"
888
- [ngModel]="row.syncStrategy"
895
+ [items]="strategyOptions"
896
+ [searchable]="false"
897
+ [value]="row.syncStrategy"
889
898
  [disabled]="!row.selected"
890
899
  (onValueChanged)="changeStrategy(row.remote.id, $event)"
891
- ></ax-select-box>
900
+ ></ax-combo-box>
892
901
  </td>
893
902
  </tr>
894
903
  }
@@ -912,7 +921,7 @@ class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {
912
921
  ></ax-button>
913
922
  </ax-suffix>
914
923
  </ax-footer>
915
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i3.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "component", type: i6.AXSelectBoxComponent, selector: "ax-select-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "minValue", "maxValue", "value", "state", "name", "id", "type", "look", "multiple", "valueField", "textField", "disabledField", "textTemplate", "selectedItems", "isItemTruncated", "showItemTooltip", "itemHeight", "maxVisibleItems", "dataSource", "minRecordsForSearch", "caption", "itemTemplate", "selectedTemplate", "emptyTemplate", "loadingTemplate", "dropdownWidth", "searchBoxAutoFocus"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onOpened", "onClosed", "onItemSelected", "onItemClick"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
924
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXCheckBoxModule }, { kind: "component", type: i3.AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: AXComboBoxComponent, selector: "ax-combo-box", inputs: ["name", "items", "searchable", "multiple", "adaptivityEnabled", "caption", "alternate", "placeholder", "searchPlaceholder", "emptyTemplate", "itemTemplate", "selectedTemplate", "disabled", "readonly", "look", "value"], outputs: ["lookChange", "valueChange", "onValueChanged", "onFocus", "onBlur", "onItemClick", "onItemSelected", "onOpened", "onClosed"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
916
925
  }
917
926
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXEJiraProjectImportPopupComponent, decorators: [{
918
927
  type: Component,
@@ -926,7 +935,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
926
935
  AXCheckBoxModule,
927
936
  AXDecoratorModule,
928
937
  AXLoadingModule,
929
- AXSelectBoxModule,
938
+ AXComboBoxComponent,
930
939
  AXTranslationModule,
931
940
  ],
932
941
  template: `
@@ -935,13 +944,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
935
944
  <span class="text-sm font-medium">
936
945
  {{ '@extensions-jira:import.popup.default-project-type' | translate | async }}
937
946
  </span>
938
- <ax-select-box
939
- [dataSource]="projectTypes"
940
- valueField="id"
941
- textField="title"
942
- [ngModel]="defaultProjectTypeId()"
947
+ <ax-combo-box
948
+ [items]="projectTypeComboItems"
949
+ [searchable]="false"
950
+ [value]="defaultProjectTypeId()"
943
951
  (onValueChanged)="handleProjectTypeChange($event)"
944
- ></ax-select-box>
952
+ ></ax-combo-box>
945
953
  </div>
946
954
 
947
955
  @if (loading()) {
@@ -973,15 +981,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
973
981
  <td class="p-2">{{ row.remote.key }}</td>
974
982
  <td class="p-2">{{ row.remote.name }}</td>
975
983
  <td class="p-2">
976
- <ax-select-box
984
+ <ax-combo-box
977
985
  class="min-w-40"
978
- [dataSource]="strategyOptions"
979
- valueField="id"
980
- textField="title"
981
- [ngModel]="row.syncStrategy"
986
+ [items]="strategyOptions"
987
+ [searchable]="false"
988
+ [value]="row.syncStrategy"
982
989
  [disabled]="!row.selected"
983
990
  (onValueChanged)="changeStrategy(row.remote.id, $event)"
984
- ></ax-select-box>
991
+ ></ax-combo-box>
985
992
  </td>
986
993
  </tr>
987
994
  }
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-extension-project-management-jira-client.mjs","sources":["../../../../libs/extensions/project-management/jira/client/src/lib/entity.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/jira-project/jira-project-status.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/project-management/jira-project-link-expression-evaluator-scope.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/project-management/project-jira.entity-modifier.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-logo-key.ts","../../../../libs/extensions/project-management/jira/client/src/lib/integration/jira.integration.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/integration/jira.integration-runtime.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/integration/jira.connection-established.handler.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-logo.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/manifest.ts","../../../../libs/extensions/project-management/jira/client/src/lib/menu.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/jira-extension.module.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-mark.paths.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-logo.component.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/project-import/jira-project-import-popup.component.ts","../../../../libs/extensions/project-management/jira/client/src/acorex-platform-extension-project-management-jira-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityDefinitionLoader, AXPEntityPreloadEntity } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Entity Provider ----\n\n@Injectable()\nexport class AXEJiraEntityProvider implements AXPEntityDefinitionLoader {\n preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Object.values(RootConfig.entities).map((entity) => ({\n module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName !== RootConfig.module.name) {\n return null;\n }\n\n switch (entityName) {\n case RootConfig.entities.jiraInstance.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraInstanceFactory();\n case RootConfig.entities.jiraProject.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraProjectFactory();\n case RootConfig.entities.jiraIssueType.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraIssueTypeFactory();\n case RootConfig.entities.jiraField.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraFieldFactory();\n case RootConfig.entities.jiraProjectIssueType.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraProjectIssueTypeFactory();\n case RootConfig.entities.jiraProjectIssueTypeField.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraProjectIssueTypeFieldFactory();\n case RootConfig.entities.jiraWorkflowStatus.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraWorkflowStatusFactory();\n case RootConfig.entities.jiraIssue.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraIssueFactory();\n case RootConfig.entities.jiraWorklog.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraWorklogFactory();\n default:\n return null;\n }\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const module = RootConfig.module.name;\n return Object.values(RootConfig.entities).map((entity) => ({\n name: entity.name,\n module,\n }));\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPStatusDefinition, AXPStatusProvider, AXPStatusTransition } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Status Helper ----\n\nconst status = (\n name: string,\n title: string,\n color: string,\n options: Partial<AXPStatusDefinition> = {},\n): AXPStatusDefinition => ({\n name,\n title,\n color,\n ...options,\n});\n\n//#endregion\n\n//#region ---- Jira Project Status Provider ----\n\n/**\n * Operational sync status for mirrored Jira projects (not Jira workflow statuses).\n */\nexport class AXEJiraProjectStatusProvider extends AXPStatusProvider {\n readonly key = 'extensions-jira.status.jira-project';\n\n readonly statuses: AXPStatusDefinition[] = [\n status('Active', '@extensions-jira:projects.statuses.active', 'success', {\n order: 1,\n generateView: true,\n isInitial: true,\n icon: 'fa-light fa-circle-check',\n }),\n status('Archived', '@extensions-jira:projects.statuses.archived', 'neutral', {\n order: 2,\n generateView: true,\n isFinal: true,\n icon: 'fa-light fa-box-archive',\n }),\n status('SyncError', '@extensions-jira:projects.statuses.sync-error', 'danger', {\n order: 3,\n generateView: true,\n icon: 'fa-light fa-triangle-exclamation',\n }),\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: 'Active',\n to: 'Archived',\n title: '@extensions-jira:projects.transitions.archive',\n },\n {\n from: 'Archived',\n to: 'Active',\n title: '@extensions-jira:projects.transitions.activate',\n },\n {\n from: 'Active',\n to: 'SyncError',\n title: '@extensions-jira:projects.transitions.mark-sync-error',\n },\n {\n from: 'SyncError',\n to: 'Active',\n title: '@extensions-jira:projects.transitions.resolve-sync-error',\n },\n ];\n\n readonly defaultStatus = 'Active';\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex-platform/framework-shared/core';\nimport { AXPIntegrationRuntimeService } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraProjectEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\n\n//#endregion\n\n/** Expression scope namespace (no hyphens — safe for `with (scope)` eval). */\nexport const AXE_JIRA_EXPRESSION_SCOPE = 'JiraExtension';\n\n//#region ---- Provider ----\n\nexport class AXEJiraProjectLinkExpressionEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n private readonly entityService = inject(AXPEntityService);\n private readonly integrationRuntime = inject(AXPIntegrationRuntimeService);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope(AXE_JIRA_EXPRESSION_SCOPE, {\n hasProjectLink: async (platformProjectIdRaw?: unknown): Promise<boolean> => {\n const platformProjectId = typeof platformProjectIdRaw === 'string' ? platformProjectIdRaw.trim() : '';\n if (!platformProjectId) {\n return false;\n }\n\n const result = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.jiraProject.name)\n .data<string, AXEJiraProjectEntityModel>()\n .query({\n skip: 0,\n take: 1,\n filter: {\n field: 'platformProjectId',\n operator: { type: 'equal' },\n value: platformProjectId,\n },\n });\n\n return (result.items?.length ?? 0) > 0;\n },\n hasJiraConnection: async (): Promise<boolean> => {\n try {\n await this.integrationRuntime.getConnection({ providerId: 'jira', connectionScope: 'tenant' });\n return true;\n } catch {\n return false;\n }\n },\n });\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSystemActionType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityAction, AXPEntityCommandScope } from '@acorex-platform/framework-shared/entity';\nimport {\n actionExists,\n AXPEntityModifierProvider,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXEJiraCommandKeys } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { RootConfig as PmRootConfig } from '@acorex-platform/module-project-management-client/contracts';\nimport { AXE_JIRA_EXPRESSION_SCOPE } from './jira-project-link-expression-evaluator-scope.provider';\n\n//#endregion\n\nconst IMPORT_ORDER = 35;\nconst SYNC_ORDER = 36;\n\nfunction buildImportAction(): AXPEntityAction {\n return {\n name: AXEJiraCommandKeys.ProjectImportFromJira,\n title: '@extensions-jira:actions.import-from-jira.title',\n command: { name: AXEJiraCommandKeys.ProjectImportFromJira },\n priority: 'secondary',\n type: AXPSystemActionType.Import,\n icon: 'fa-brands fa-jira',\n scope: AXPEntityCommandScope.TypeLevel,\n order: IMPORT_ORDER,\n };\n}\n\nfunction buildSyncAction(): AXPEntityAction {\n return {\n name: AXEJiraCommandKeys.ProjectSync,\n title: '@extensions-jira:actions.sync.title',\n command: {\n name: AXEJiraCommandKeys.ProjectSync,\n options: { platformProjectId: '{{ context.eval(\"id\") }}' },\n },\n priority: 'secondary',\n type: AXPSystemActionType.Sync,\n icon: 'fa-light fa-arrows-rotate',\n scope: AXPEntityCommandScope.Individual,\n order: SYNC_ORDER,\n hidden: `{{ !(await ${AXE_JIRA_EXPRESSION_SCOPE}.hasProjectLink(context.eval(\"id\"))) }}`,\n };\n}\n\n/** Adds Jira import/sync actions to ProjectManagement.Project views. */\nexport const AXEJiraProjectEntityModifier: AXPEntityModifierProvider = {\n entityName: PmRootConfig.entities.project.name,\n order: 50,\n modifier: (ctx) => {\n if (ctx.module.get() !== PmRootConfig.module.name) {\n return;\n }\n\n ensureListActions(ctx);\n\n ctx.interfaces.update((interfaces) => {\n const next = (interfaces ?? {}) as Record<string, unknown>;\n const master = (next['master'] ?? {}) as Record<string, unknown>;\n const list = (master['list'] ?? { actions: [], views: [] }) as Record<string, unknown>;\n const listActions = (list['actions'] ?? []) as AXPEntityAction[];\n\n if (!actionExists(listActions, AXEJiraCommandKeys.ProjectImportFromJira)) {\n listActions.push(buildImportAction());\n }\n list['actions'] = listActions;\n master['list'] = list;\n\n const single = master['single'] as Record<string, unknown> | undefined;\n if (single) {\n const singleActions = (single['actions'] ?? []) as AXPEntityAction[];\n if (!actionExists(singleActions, AXEJiraCommandKeys.ProjectSync)) {\n singleActions.push(buildSyncAction());\n }\n single['actions'] = singleActions;\n }\n\n next['master'] = master;\n return next as typeof interfaces;\n });\n },\n};\n\n//#endregion\n","//#region ---- Jira logo registry key ----\n\nexport const axpJiraLogoKey = 'jira' as const;\n\n//#endregion\n","import { AXP_INTEGRATION_AUTH_METHOD_TYPE, AXP_INTEGRATION_CAPABILITY, AXP_INTEGRATION_CONNECTION_SCOPE, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPIntegrationProvider,\n AXPIntegrationProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { AXEJiraCommandKeys, RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { axpJiraLogoKey } from '../brand/jira-logo-key';\n\n@Injectable()\nexport class AXEJiraIntegrationProvider implements AXPIntegrationProvider {\n async provide(context: AXPIntegrationProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration`;\n\n context.register({\n domainId: 'project-management',\n id: 'jira',\n module: RootConfig.module.name,\n displayName: `${I18N}.display-name`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n logoKey: axpJiraLogoKey,\n capabilities: [\n AXP_INTEGRATION_CAPABILITY.IssueTracking,\n AXP_INTEGRATION_CAPABILITY.Sync,\n AXP_INTEGRATION_CAPABILITY.TimeLogging,\n ],\n connectionScopes: [AXP_INTEGRATION_CONNECTION_SCOPE.Tenant, AXP_INTEGRATION_CONNECTION_SCOPE.User],\n allowMultipleConnections: true,\n defaultConnectionKey: 'default',\n connectCommandKey: AXEJiraCommandKeys.ConnectionConnect,\n authMethods: [\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.Pat,\n label: `${I18N}.auth.pat.label`,\n instructions: `${I18N}.auth.pat.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'baseUrl',\n options: { placeholder: `${I18N}.auth.pat.base-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'token',\n options: { placeholder: `${I18N}.auth.pat.token.placeholder` },\n },\n ],\n },\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.Basic,\n label: `${I18N}.auth.basic.label`,\n instructions: `${I18N}.auth.basic.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'baseUrl',\n options: { placeholder: `${I18N}.auth.basic.base-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'username',\n options: { placeholder: `${I18N}.auth.basic.username.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'password',\n options: { placeholder: `${I18N}.auth.basic.password.placeholder` },\n },\n ],\n },\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.ApiToken,\n label: `${I18N}.auth.api-token.label`,\n instructions: `${I18N}.auth.api-token.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'siteUrl',\n options: { placeholder: `${I18N}.auth.api-token.site-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'email',\n options: { placeholder: `${I18N}.auth.api-token.email.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiToken',\n options: { placeholder: `${I18N}.auth.api-token.token.placeholder` },\n },\n ],\n },\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.OAuth2,\n label: `${I18N}.auth.oauth.label`,\n instructions: `${I18N}.auth.oauth.instructions`,\n usesRedirect: true,\n supportsRefresh: true,\n supportsRevoke: false,\n supportsValidation: true,\n defaultScopes: ['read:jira-work', 'read:jira-user'],\n fields: [],\n },\n ],\n });\n }\n}\n\n//#endregion\n","import { AXP_INTEGRATION_AUTH_METHOD_TYPE, AXP_INTEGRATION_CONNECTION_STATUS, type AXPIntegrationProviderRuntimeHooks, type AXPIntegrationRuntimeContext, type AXPIntegrationValidationResult } from '@acorex-platform/framework-shared/core';\nimport {\n AXP_INTEGRATION_RUNTIME_PROVIDER,\n AXP_INTEGRATION_SECRET_STORE,\n type AXPIntegrationRuntimeProvider,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, trim } from 'lodash-es';\n\n@Injectable()\nexport class AXEJiraIntegrationRuntimeProvider implements AXPIntegrationRuntimeProvider {\n readonly providerId = 'jira';\n\n private readonly secretStore = inject(AXP_INTEGRATION_SECRET_STORE, { optional: true });\n\n async getHooks(): Promise<AXPIntegrationProviderRuntimeHooks> {\n return {\n validateConnection: (ctx) => this.validateConnection(ctx),\n createClient: (ctx) => this.createClient(ctx),\n };\n }\n\n private async validateConnection(ctx: AXPIntegrationRuntimeContext): Promise<AXPIntegrationValidationResult> {\n if (!this.secretStore) {\n return { valid: false, status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid, errorMessage: 'Secret store unavailable.' };\n }\n\n try {\n const credentials = await this.secretStore.resolve(ctx.secretRef, ctx);\n const token =\n credentials.token ??\n credentials.apiToken ??\n credentials.accessToken;\n\n if (!trim(defaultTo(token, ''))) {\n return {\n valid: false,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\n errorMessage: 'No token available for Jira connection.',\n };\n }\n\n return {\n valid: true,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n externalAccountName: defaultTo(ctx.instanceUrl, 'Jira'),\n };\n } catch {\n return {\n valid: false,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\n errorMessage: 'Failed to validate Jira credentials.',\n };\n }\n }\n\n private async createClient(ctx: AXPIntegrationRuntimeContext): Promise<{ token: string; baseUrl?: string }> {\n if (!this.secretStore) {\n throw new Error('Secret store unavailable.');\n }\n\n const credentials = await this.secretStore.resolve(ctx.secretRef, ctx);\n const token =\n credentials.token ??\n credentials.apiToken ??\n credentials.accessToken;\n\n if (!trim(defaultTo(token, ''))) {\n throw new Error('Jira connection has no usable token.');\n }\n\n return {\n token: token!,\n baseUrl: defaultTo(ctx.instanceUrl, undefined),\n };\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_INTEGRATION_CONNECTION_ESTABLISHED, type AXPIntegrationConnectionEstablishedHandler } from '@acorex-platform/framework-client/common';\nimport { AXP_INTEGRATION_CONNECTION_SCOPE, type AXPSafeIntegrationConnectionDto } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { trim } from 'lodash-es';\n\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\n\n//#endregion\n\n//#region ---- Handler ----\n\n@Injectable()\nexport class AXEJiraConnectionEstablishedHandler implements AXPIntegrationConnectionEstablishedHandler {\n readonly providerId = 'jira';\n\n private readonly entityService = inject(AXPEntityService);\n\n async onEstablished(connection: AXPSafeIntegrationConnectionDto): Promise<void> {\n if (connection.connectionScope !== AXP_INTEGRATION_CONNECTION_SCOPE.Tenant) {\n return;\n }\n\n const connectionKey = trim(connection.connectionKey);\n if (!connectionKey) {\n return;\n }\n\n const accessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.jiraInstance.name)\n .data<string, AXEJiraInstanceEntityModel>();\n\n const result = await accessor.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{ field: 'name', operator: { type: 'equal' }, value: connectionKey }],\n },\n });\n\n const instance = result.items?.[0];\n if (!instance || instance.integrationConnectionId === connection.id) {\n return;\n }\n\n await accessor.update(instance.id, { integrationConnectionId: connection.id });\n }\n}\n\nexport const provideJiraConnectionEstablishedHandler = {\n provide: AXP_INTEGRATION_CONNECTION_ESTABLISHED,\n useClass: AXEJiraConnectionEstablishedHandler,\n multi: true,\n};\n\n//#endregion\n","import {\n AXP_LOGO_PROVIDER,\n type AXPLogoProvider,\n type AXPLogoRequest,\n type AXPLogoView,\n} from '@acorex-platform/framework-client/core';\nimport { axpJiraLogoKey } from './jira-logo-key';\n\nconst jiraLogoProvider: AXPLogoProvider = {\n key: axpJiraLogoKey,\n resolve: async (request: AXPLogoRequest): Promise<AXPLogoView> => ({\n kind: 'component',\n load: () => import('./jira-logo.component').then((module) => module.AXEJiraLogoComponent),\n inputs: {\n appearance: request.appearance,\n size: request.size,\n },\n }),\n};\n\nexport const AXE_JIRA_LOGO_PROVIDER = {\n provide: AXP_LOGO_PROVIDER,\n useValue: jiraLogoProvider,\n multi: true,\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest ----\n\nexport const JiraExtensionManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'integration',\n domain: 'project-management',\n dependencies: [],\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXEJiraMenuKeys,\n RootConfig,\n AXPAdministrationPermissionKeys\n} from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\n@Injectable()\nexport class AXEJiraMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const policy = {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.MaintainConnections],\n };\n\n const configMenu = context.find(AXPCommonMenuKeys.Configuration);\n if (!context.find(AXEJiraMenuKeys.JiraExtensionConfig).exists) {\n configMenu.addItems([\n {\n name: AXEJiraMenuKeys.JiraExtensionConfig,\n text: '@extensions-jira:module.menus.configuration.title',\n icon: module.icon,\n type: 'menu',\n priority: 8935,\n policy,\n children: [],\n },\n ]);\n }\n\n const jiraConfig = context.find(AXEJiraMenuKeys.JiraExtensionConfig);\n const catalogPolicy = {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewIntegrations],\n };\n\n jiraConfig.addItems([\n {\n name: AXEJiraMenuKeys.Instances,\n text: RootConfig.entities.jiraInstance.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraInstance.name),\n icon: RootConfig.entities.jiraInstance.icon,\n priority: 1,\n policy,\n },\n {\n name: AXEJiraMenuKeys.IssueTypes,\n text: RootConfig.entities.jiraIssueType.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraIssueType.name),\n icon: RootConfig.entities.jiraIssueType.icon,\n priority: 3,\n policy: catalogPolicy,\n },\n {\n name: AXEJiraMenuKeys.Fields,\n text: RootConfig.entities.jiraField.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraField.name),\n icon: RootConfig.entities.jiraField.icon,\n priority: 4,\n policy: catalogPolicy,\n },\n {\n name: AXEJiraMenuKeys.Issues,\n text: RootConfig.entities.jiraIssue.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraIssue.name),\n icon: RootConfig.entities.jiraIssue.icon,\n priority: 5,\n policy: {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewIntegrations],\n },\n },\n {\n name: AXEJiraMenuKeys.Worklogs,\n text: RootConfig.entities.jiraWorklog.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraWorklog.name),\n icon: RootConfig.entities.jiraWorklog.icon,\n priority: 6,\n policy: {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewIntegrations],\n },\n },\n ]);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXMIntegrationManagementModule } from '@acorex-platform/module-integration-management-client';\nimport {\n AXP_INTEGRATION_PROVIDER,\n AXP_INTEGRATION_RUNTIME_PROVIDER,\n AXP_MENU_PROVIDER,\n AXP_STATUS_PROVIDERS,\n} from '@acorex-platform/framework-client/common';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\nimport { AXEJiraCommandKeys } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { AXEJiraEntityProvider } from './entity.provider';\nimport { AXEJiraProjectStatusProvider } from './features/jira-project/jira-project-status.provider';\nimport { AXEJiraProjectLinkExpressionEvaluatorScopeProvider } from './features/project-management/jira-project-link-expression-evaluator-scope.provider';\nimport { AXEJiraProjectEntityModifier } from './features/project-management/project-jira.entity-modifier';\nimport { AXEJiraIntegrationProvider } from './integration/jira.integration.provider';\nimport { AXEJiraIntegrationRuntimeProvider } from './integration/jira.integration-runtime.provider';\nimport { provideJiraConnectionEstablishedHandler } from './integration/jira.connection-established.handler';\nimport { AXE_JIRA_LOGO_PROVIDER } from './brand/jira-logo.provider';\nimport { JiraExtensionManifest } from './manifest';\nimport { AXEJiraMenuProvider } from './menu.provider';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [AXMIntegrationManagementModule],\n providers: [\n AXE_JIRA_LOGO_PROVIDER,\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: JiraExtensionManifest,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXEJiraMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXEJiraEntityProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_MODIFIER,\n useValue: AXEJiraProjectEntityModifier,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXEJiraProjectLinkExpressionEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXEJiraProjectStatusProvider,\n multi: true,\n },\n {\n provide: AXP_INTEGRATION_PROVIDER,\n useClass: AXEJiraIntegrationProvider,\n multi: true,\n },\n {\n provide: AXP_INTEGRATION_RUNTIME_PROVIDER,\n useClass: AXEJiraIntegrationRuntimeProvider,\n multi: true,\n },\n provideJiraConnectionEstablishedHandler,\n provideCommandSetups([\n {\n key: AXEJiraCommandKeys.ConnectionConnect,\n command: () => import('./features/connect/connect-jira.command').then((c) => c.ConnectJiraCommand),\n },\n ]),\n ],\n})\nexport class AXEJiraExtensionModule {}\n\n//#endregion\n","//#region ---- Atlassian / Jira mark vector paths ----\n\nexport const AXE_JIRA_MARK_BLUE = '#2684FF';\n\n/** Left sail */\nexport const AXE_JIRA_MARK_LEFT_PATH =\n 'M7.12 11.084a.683.683 0 0 0-1.16.126L.075 22.974a.703.703 0 0 0 .63 1.018h8.19a.678.678 0 0 0 .63-.39c1.767-3.65.696-9.203-2.406-12.52z';\n\n/** Right sail */\nexport const AXE_JIRA_MARK_RIGHT_PATH =\n 'M11.434.386a15.515 15.515 0 0 0-.906 15.317l3.95 7.9a.703.703 0 0 0 .628.388h8.19a.703.703 0 0 0 .63-1.017L12.63.38a.664.664 0 0 0-1.196.006z';\n\n//#endregion\n","import type { AXPLogoAppearance } from '@acorex-platform/framework-client/core';\nimport { Component, computed, input, ChangeDetectionStrategy } from '@angular/core';\nimport {\n AXE_JIRA_MARK_BLUE,\n AXE_JIRA_MARK_LEFT_PATH,\n AXE_JIRA_MARK_RIGHT_PATH,\n} from './jira-mark.paths';\n\n//#region ---- Jira brand logo (owned by Jira extension) ----\n\n@Component({\n selector: 'axe-jira-logo',\n host: { class: 'inline-flex items-center justify-center' },\n changeDetection: ChangeDetectionStrategy.Eager,\n template: `\n @switch (resolvedAppearance()) {\n @case ('monochrome') {\n <svg [attr.width]=\"size()\" [attr.height]=\"size()\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path fill=\"currentColor\" [attr.d]=\"leftPath\" />\n <path fill=\"currentColor\" [attr.d]=\"rightPath\" />\n </svg>\n }\n @default {\n <svg [attr.width]=\"size()\" [attr.height]=\"size()\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path [attr.fill]=\"markBlue\" [attr.d]=\"leftPath\" />\n <path [attr.fill]=\"markBlue\" [attr.d]=\"rightPath\" />\n </svg>\n }\n }\n `,\n})\nexport class AXEJiraLogoComponent {\n appearance = input<AXPLogoAppearance>('colored');\n size = input(20);\n\n protected readonly leftPath = AXE_JIRA_MARK_LEFT_PATH;\n protected readonly rightPath = AXE_JIRA_MARK_RIGHT_PATH;\n protected readonly markBlue = AXE_JIRA_MARK_BLUE;\n\n protected readonly resolvedAppearance = computed(() => {\n const value = this.appearance();\n return value === 'monochrome' ? 'monochrome' : 'colored';\n });\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXSelectBoxModule } from '@acorex/components/select-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport type { AXEJiraProjectSyncStrategy } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { AXE_JIRA_PROJECT_SYNC_STRATEGIES } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport type { AXEJiraRemoteProject } from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXEJiraProjectImportPopupData {\n instance: AXEJiraInstanceEntityModel;\n defaultProjectTypeId: string;\n projectTypes: Array<{ id: string; title: string }>;\n remoteProjects: AXEJiraRemoteProject[];\n alreadyLinkedJiraIds: Set<string>;\n}\n\nexport interface AXEJiraProjectImportPopupResult {\n defaultProjectTypeId: string;\n rows: Array<{\n remote: AXEJiraRemoteProject;\n selected: boolean;\n syncStrategy: AXEJiraProjectSyncStrategy;\n }>;\n}\n\ninterface ImportRowState {\n remote: AXEJiraRemoteProject;\n selected: boolean;\n syncStrategy: AXEJiraProjectSyncStrategy;\n alreadyLinked: boolean;\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axe-jira-project-import-popup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n FormsModule,\n AXButtonModule,\n AXCheckBoxModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXSelectBoxModule,\n AXTranslationModule,\n ],\n template: `\n <div class=\"flex flex-col gap-4 p-4 max-h-[70vh] overflow-auto\">\n <div class=\"flex flex-col gap-1\">\n <span class=\"text-sm font-medium\">\n {{ '@extensions-jira:import.popup.default-project-type' | translate | async }}\n </span>\n <ax-select-box\n [dataSource]=\"projectTypes\"\n valueField=\"id\"\n textField=\"title\"\n [ngModel]=\"defaultProjectTypeId()\"\n (onValueChanged)=\"handleProjectTypeChange($event)\"\n ></ax-select-box>\n </div>\n\n @if (loading()) {\n <ax-loading></ax-loading>\n } @else if (rows().length === 0) {\n <p class=\"text-sm opacity-70\">\n {{ '@extensions-jira:import.popup.empty' | translate | async }}\n </p>\n } @else {\n <table class=\"w-full text-sm\">\n <thead>\n <tr class=\"border-b\">\n <th class=\"p-2 text-start\"></th>\n <th class=\"p-2 text-start\">{{ '@extensions-jira:import.popup.columns.key' | translate | async }}</th>\n <th class=\"p-2 text-start\">{{ '@extensions-jira:import.popup.columns.name' | translate | async }}</th>\n <th class=\"p-2 text-start\">{{ '@extensions-jira:import.popup.columns.strategy' | translate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (row of rows(); track row.remote.id) {\n <tr class=\"border-b border-opacity-20\">\n <td class=\"p-2\">\n <ax-check-box\n [ngModel]=\"row.selected\"\n [disabled]=\"row.alreadyLinked\"\n (onValueChanged)=\"toggleRow(row.remote.id, $event)\"\n ></ax-check-box>\n </td>\n <td class=\"p-2\">{{ row.remote.key }}</td>\n <td class=\"p-2\">{{ row.remote.name }}</td>\n <td class=\"p-2\">\n <ax-select-box\n class=\"min-w-40\"\n [dataSource]=\"strategyOptions\"\n valueField=\"id\"\n textField=\"title\"\n [ngModel]=\"row.syncStrategy\"\n [disabled]=\"!row.selected\"\n (onValueChanged)=\"changeStrategy(row.remote.id, $event)\"\n ></ax-select-box>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"outline\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"close()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [disabled]=\"!hasSelection()\"\n [text]=\"'@extensions-jira:import.popup.confirm' | translate | async\"\n (onClick)=\"confirm()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n})\nexport class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {\n protected loading = signal(false);\n protected defaultProjectTypeId = signal('');\n protected rows = signal<ImportRowState[]>([]);\n\n instance!: AXEJiraInstanceEntityModel;\n projectTypes: Array<{ id: string; title: string }> = [];\n remoteProjects: AXEJiraRemoteProject[] = [];\n alreadyLinkedJiraIds = new Set<string>();\n\n protected readonly strategyOptions = AXE_JIRA_PROJECT_SYNC_STRATEGIES.map((id) => ({\n id,\n title: `@extensions-jira:import.sync-strategy.${id}`,\n }));\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n this.defaultProjectTypeId.set(this.projectTypes[0]?.id ?? '');\n this.rows.set(\n this.remoteProjects.map((remote) => ({\n remote,\n selected: !this.alreadyLinkedJiraIds.has(remote.id),\n syncStrategy: 'merge' as AXEJiraProjectSyncStrategy,\n alreadyLinked: this.alreadyLinkedJiraIds.has(remote.id),\n })),\n );\n }\n\n protected handleProjectTypeChange(event: AXValueChangedEvent<string>): void {\n this.defaultProjectTypeId.set(event.value ?? '');\n }\n\n protected toggleRow(remoteId: string, event: AXValueChangedEvent<boolean>): void {\n const selected = !!event.value;\n this.rows.update((items) =>\n items.map((row) => (row.remote.id === remoteId ? { ...row, selected } : row)),\n );\n }\n\n protected changeStrategy(remoteId: string, event: AXValueChangedEvent<AXEJiraProjectSyncStrategy>): void {\n const syncStrategy = event.value ?? 'merge';\n this.rows.update((items) =>\n items.map((row) => (row.remote.id === remoteId ? { ...row, syncStrategy } : row)),\n );\n }\n\n protected hasSelection(): boolean {\n return this.rows().some((row) => row.selected && !row.alreadyLinked);\n }\n\n protected confirm(): void {\n const result: AXEJiraProjectImportPopupResult = {\n defaultProjectTypeId: this.defaultProjectTypeId(),\n rows: this.rows()\n .filter((row) => row.selected && !row.alreadyLinked)\n .map((row) => ({\n remote: row.remote,\n selected: true,\n syncStrategy: row.syncStrategy,\n })),\n };\n this.close(result);\n }\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["PmRootConfig"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AAEA;MAGa,qBAAqB,CAAA;IAChC,OAAO,GAAA;AACL,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI;AACrC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;YACzD,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,IAAI;AACpB,SAAA,CAAC,CAAC;IACL;AAEA,IAAA,MAAM,GAAG,CAAC,UAAkB,EAAE,UAAkB,EAAA;QAC9C,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE;AACzC,YAAA,OAAO,IAAI;QACb;QAEA,QAAQ,UAAU;AAChB,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;gBACxC,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,mBAAmB,EAAE;AAC1G,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;gBACvC,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,kBAAkB,EAAE;AACzG,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI;gBACzC,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,oBAAoB,EAAE;AAC3G,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;gBACrC,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,gBAAgB,EAAE;AACvG,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI;gBAChD,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,2BAA2B,EAAE;AAClH,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI;gBACrD,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,gCAAgC,EAAE;AACvH,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI;gBAC9C,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,yBAAyB,EAAE;AAChH,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;gBACrC,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,gBAAgB,EAAE;AACvG,YAAA,KAAK,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;gBACvC,OAAO,CAAC,MAAM,OAAO,2DAA2D,CAAC,EAAE,kBAAkB,EAAE;AACzG,YAAA;AACE,gBAAA,OAAO,IAAI;;IAEjB;AAEA,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI;AACrC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;YACzD,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM;AACP,SAAA,CAAC,CAAC;IACL;8GA5CW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACXD;AAIA;AAEA;AAEA,MAAM,MAAM,GAAG,CACb,IAAY,EACZ,KAAa,EACb,KAAa,EACb,OAAA,GAAwC,EAAE,MACjB;IACzB,IAAI;IACJ,KAAK;IACL,KAAK;AACL,IAAA,GAAG,OAAO;AACX,CAAA,CAAC;AAEF;AAEA;AAEA;;AAEG;AACG,MAAO,4BAA6B,SAAQ,iBAAiB,CAAA;AAAnE,IAAA,WAAA,GAAA;;QACW,IAAA,CAAA,GAAG,GAAG,qCAAqC;AAE3C,QAAA,IAAA,CAAA,QAAQ,GAA0B;AACzC,YAAA,MAAM,CAAC,QAAQ,EAAE,2CAA2C,EAAE,SAAS,EAAE;AACvE,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,IAAI,EAAE,0BAA0B;aACjC,CAAC;AACF,YAAA,MAAM,CAAC,UAAU,EAAE,6CAA6C,EAAE,SAAS,EAAE;AAC3E,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,IAAI,EAAE,yBAAyB;aAChC,CAAC;AACF,YAAA,MAAM,CAAC,WAAW,EAAE,+CAA+C,EAAE,QAAQ,EAAE;AAC7E,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,YAAY,EAAE,IAAI;AAClB,gBAAA,IAAI,EAAE,kCAAkC;aACzC,CAAC;SACH;AAEQ,QAAA,IAAA,CAAA,WAAW,GAA0B;AAC5C,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,EAAE,EAAE,UAAU;AACd,gBAAA,KAAK,EAAE,+CAA+C;AACvD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,UAAU;AAChB,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,KAAK,EAAE,gDAAgD;AACxD,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,EAAE,EAAE,WAAW;AACf,gBAAA,KAAK,EAAE,uDAAuD;AAC/D,aAAA;AACD,YAAA;AACE,gBAAA,IAAI,EAAE,WAAW;AACjB,gBAAA,EAAE,EAAE,QAAQ;AACZ,gBAAA,KAAK,EAAE,0DAA0D;AAClE,aAAA;SACF;QAEQ,IAAA,CAAA,aAAa,GAAG,QAAQ;IACnC;AAAC;AAED;;AC5EA;AASA;AAEA;AACO,MAAM,yBAAyB,GAAG,eAAe;AAExD;MAEa,kDAAkD,CAAA;AAA/D,IAAA,WAAA,GAAA;AACmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,4BAA4B,CAAC;IAmC5E;IAjCE,MAAM,OAAO,CAAC,OAAmD,EAAA;AAC/D,QAAA,OAAO,CAAC,QAAQ,CAAC,yBAAyB,EAAE;AAC1C,YAAA,cAAc,EAAE,OAAO,oBAA8B,KAAsB;AACzE,gBAAA,MAAM,iBAAiB,GAAG,OAAO,oBAAoB,KAAK,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE;gBACrG,IAAI,CAAC,iBAAiB,EAAE;AACtB,oBAAA,OAAO,KAAK;gBACd;AAEA,gBAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC;AACvB,qBAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AACvE,qBAAA,IAAI;AACJ,qBAAA,KAAK,CAAC;AACL,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,IAAI,EAAE,CAAC;AACP,oBAAA,MAAM,EAAE;AACN,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,wBAAA,KAAK,EAAE,iBAAiB;AACzB,qBAAA;AACF,iBAAA,CAAC;gBAEJ,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;YACxC,CAAC;YACD,iBAAiB,EAAE,YAA6B;AAC9C,gBAAA,IAAI;AACF,oBAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AAC9F,oBAAA,OAAO,IAAI;gBACb;AAAE,gBAAA,MAAM;AACN,oBAAA,OAAO,KAAK;gBACd;YACF,CAAC;AACF,SAAA,CAAC;IACJ;AACD;AAED;;ACvDA;AAaA;AAEA,MAAM,YAAY,GAAG,EAAE;AACvB,MAAM,UAAU,GAAG,EAAE;AAErB,SAAS,iBAAiB,GAAA;IACxB,OAAO;QACL,IAAI,EAAE,kBAAkB,CAAC,qBAAqB;AAC9C,QAAA,KAAK,EAAE,iDAAiD;AACxD,QAAA,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,qBAAqB,EAAE;AAC3D,QAAA,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,mBAAmB,CAAC,MAAM;AAChC,QAAA,IAAI,EAAE,mBAAmB;QACzB,KAAK,EAAE,qBAAqB,CAAC,SAAS;AACtC,QAAA,KAAK,EAAE,YAAY;KACpB;AACH;AAEA,SAAS,eAAe,GAAA;IACtB,OAAO;QACL,IAAI,EAAE,kBAAkB,CAAC,WAAW;AACpC,QAAA,KAAK,EAAE,qCAAqC;AAC5C,QAAA,OAAO,EAAE;YACP,IAAI,EAAE,kBAAkB,CAAC,WAAW;AACpC,YAAA,OAAO,EAAE,EAAE,iBAAiB,EAAE,0BAA0B,EAAE;AAC3D,SAAA;AACD,QAAA,QAAQ,EAAE,WAAW;QACrB,IAAI,EAAE,mBAAmB,CAAC,IAAI;AAC9B,QAAA,IAAI,EAAE,2BAA2B;QACjC,KAAK,EAAE,qBAAqB,CAAC,UAAU;AACvC,QAAA,KAAK,EAAE,UAAU;QACjB,MAAM,EAAE,CAAA,WAAA,EAAc,yBAAyB,CAAA,uCAAA,CAAyC;KACzF;AACH;AAEA;AACO,MAAM,4BAA4B,GAA8B;AACrE,IAAA,UAAU,EAAEA,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI;AAC9C,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,QAAQ,EAAE,CAAC,GAAG,KAAI;AAChB,QAAA,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,KAAKA,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;YACjD;QACF;QAEA,iBAAiB,CAAC,GAAG,CAAC;QAEtB,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,KAAI;AACnC,YAAA,MAAM,IAAI,IAAI,UAAU,IAAI,EAAE,CAA4B;YAC1D,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAA4B;AAChE,YAAA,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAA4B;YACtF,MAAM,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAsB;YAEhE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAAE;AACxE,gBAAA,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvC;AACA,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,WAAW;AAC7B,YAAA,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;AAErB,YAAA,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAwC;YACtE,IAAI,MAAM,EAAE;gBACV,MAAM,aAAa,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAsB;gBACpE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,kBAAkB,CAAC,WAAW,CAAC,EAAE;AAChE,oBAAA,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvC;AACA,gBAAA,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa;YACnC;AAEA,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,MAAM;AACvB,YAAA,OAAO,IAAyB;AAClC,QAAA,CAAC,CAAC;IACJ,CAAC;CACF;AAED;;ACtFA;AAEO,MAAM,cAAc,GAAG;AAE9B;;MCMa,0BAA0B,CAAA;IACrC,MAAM,OAAO,CAAC,OAAsC,EAAA;QAClD,MAAM,IAAI,GAAG,CAAA,CAAA,EAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAA,YAAA,CAAc;QAErD,OAAO,CAAC,QAAQ,CAAC;AACf,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,EAAE,EAAE,MAAM;AACV,YAAA,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;YAC9B,WAAW,EAAE,CAAA,EAAG,IAAI,CAAA,aAAA,CAAe;YACnC,WAAW,EAAE,CAAA,EAAG,IAAI,CAAA,YAAA,CAAc;AAClC,YAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,YAAY,EAAE;AACZ,gBAAA,0BAA0B,CAAC,aAAa;AACxC,gBAAA,0BAA0B,CAAC,IAAI;AAC/B,gBAAA,0BAA0B,CAAC,WAAW;AACvC,aAAA;YACD,gBAAgB,EAAE,CAAC,gCAAgC,CAAC,MAAM,EAAE,gCAAgC,CAAC,IAAI,CAAC;AAClG,YAAA,wBAAwB,EAAE,IAAI;AAC9B,YAAA,oBAAoB,EAAE,SAAS;YAC/B,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB;AACvD,YAAA,WAAW,EAAE;AACX,gBAAA;oBACE,IAAI,EAAE,gCAAgC,CAAC,GAAG;oBAC1C,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,eAAA,CAAiB;oBAC/B,YAAY,EAAE,CAAA,EAAG,IAAI,CAAA,sBAAA,CAAwB;AAC7C,oBAAA,kBAAkB,EAAE,IAAI;AACxB,oBAAA,MAAM,EAAE;AACN,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACpC,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,gCAAgC,EAAE;AAClE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,6BAA6B,EAAE;AAC/D,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,IAAI,EAAE,gCAAgC,CAAC,KAAK;oBAC5C,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,iBAAA,CAAmB;oBACjC,YAAY,EAAE,CAAA,EAAG,IAAI,CAAA,wBAAA,CAA0B;AAC/C,oBAAA,kBAAkB,EAAE,IAAI;AACxB,oBAAA,MAAM,EAAE;AACN,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACpC,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,kCAAkC,EAAE;AACpE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACpC,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,kCAAkC,EAAE;AACpE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,kCAAkC,EAAE;AACpE,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,IAAI,EAAE,gCAAgC,CAAC,QAAQ;oBAC/C,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,qBAAA,CAAuB;oBACrC,YAAY,EAAE,CAAA,EAAG,IAAI,CAAA,4BAAA,CAA8B;AACnD,oBAAA,kBAAkB,EAAE,IAAI;AACxB,oBAAA,MAAM,EAAE;AACN,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACpC,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,sCAAsC,EAAE;AACxE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;AACpC,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,mCAAmC,EAAE;AACrE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc,CAAC,OAAO,CAAC,WAAW;AACxC,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,OAAO,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,IAAI,mCAAmC,EAAE;AACrE,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA;oBACE,IAAI,EAAE,gCAAgC,CAAC,MAAM;oBAC7C,KAAK,EAAE,CAAA,EAAG,IAAI,CAAA,iBAAA,CAAmB;oBACjC,YAAY,EAAE,CAAA,EAAG,IAAI,CAAA,wBAAA,CAA0B;AAC/C,oBAAA,YAAY,EAAE,IAAI;AAClB,oBAAA,eAAe,EAAE,IAAI;AACrB,oBAAA,cAAc,EAAE,KAAK;AACrB,oBAAA,kBAAkB,EAAE,IAAI;AACxB,oBAAA,aAAa,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;AACnD,oBAAA,MAAM,EAAE,EAAE;AACX,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;IACJ;8GAnGW,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAA1B,0BAA0B,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;MCCY,iCAAiC,CAAA;AAD9C,IAAA,WAAA,GAAA;QAEW,IAAA,CAAA,UAAU,GAAG,MAAM;QAEX,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,4BAA4B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AA+DxF,IAAA;AA7DC,IAAA,MAAM,QAAQ,GAAA;QACZ,OAAO;YACL,kBAAkB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;YACzD,YAAY,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;SAC9C;IACH;IAEQ,MAAM,kBAAkB,CAAC,GAAiC,EAAA;AAChE,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,CAAC,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE;QACvH;AAEA,QAAA,IAAI;AACF,YAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AACtE,YAAA,MAAM,KAAK,GACT,WAAW,CAAC,KAAK;AACjB,gBAAA,WAAW,CAAC,QAAQ;gBACpB,WAAW,CAAC,WAAW;YAEzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE;gBAC/B,OAAO;AACL,oBAAA,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,iCAAiC,CAAC,OAAO;AACjD,oBAAA,YAAY,EAAE,yCAAyC;iBACxD;YACH;YAEA,OAAO;AACL,gBAAA,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,iCAAiC,CAAC,SAAS;gBACnD,mBAAmB,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC;aACxD;QACH;AAAE,QAAA,MAAM;YACN,OAAO;AACL,gBAAA,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,iCAAiC,CAAC,OAAO;AACjD,gBAAA,YAAY,EAAE,sCAAsC;aACrD;QACH;IACF;IAEQ,MAAM,YAAY,CAAC,GAAiC,EAAA;AAC1D,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACrB,YAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;QAC9C;AAEA,QAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC;AACtE,QAAA,MAAM,KAAK,GACT,WAAW,CAAC,KAAK;AACjB,YAAA,WAAW,CAAC,QAAQ;YACpB,WAAW,CAAC,WAAW;QAEzB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC;QACzD;QAEA,OAAO;AACL,YAAA,KAAK,EAAE,KAAM;YACb,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC;SAC/C;IACH;8GAjEW,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAjC,iCAAiC,EAAA,CAAA,CAAA;;2FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAD7C;;;ACTD;AAWA;AAEA;MAGa,mCAAmC,CAAA;AADhD,IAAA,WAAA,GAAA;QAEW,IAAA,CAAA,UAAU,GAAG,MAAM;AAEX,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAgC1D,IAAA;IA9BC,MAAM,aAAa,CAAC,UAA2C,EAAA;QAC7D,IAAI,UAAU,CAAC,eAAe,KAAK,gCAAgC,CAAC,MAAM,EAAE;YAC1E;QACF;QAEA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACpD,IAAI,CAAC,aAAa,EAAE;YAClB;QACF;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC;AACnB,aAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;AACxE,aAAA,IAAI,EAAsC;AAE7C,QAAA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;AAClC,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAChF,aAAA;AACF,SAAA,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,uBAAuB,KAAK,UAAU,CAAC,EAAE,EAAE;YACnE;QACF;AAEA,QAAA,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,uBAAuB,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;IAChF;8GAlCW,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAnC,mCAAmC,EAAA,CAAA,CAAA;;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAD/C;;AAsCM,MAAM,uCAAuC,GAAG;AACrD,IAAA,OAAO,EAAE,sCAAsC;AAC/C,IAAA,QAAQ,EAAE,mCAAmC;AAC7C,IAAA,KAAK,EAAE,IAAI;CACZ;;ACjDD,MAAM,gBAAgB,GAAoB;AACxC,IAAA,GAAG,EAAE,cAAc;AACnB,IAAA,OAAO,EAAE,OAAO,OAAuB,MAA4B;AACjE,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,IAAI,EAAE,MAAM,kEAA+B,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,oBAAoB,CAAC;AACzF,QAAA,MAAM,EAAE;YACN,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;AACnB,SAAA;KACF,CAAC;CACH;AAEM,MAAM,sBAAsB,GAAG;AACpC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,QAAQ,EAAE,gBAAgB;AAC1B,IAAA,KAAK,EAAE,IAAI;;;ACvBb;AAKA;AAEA;AAEO,MAAM,qBAAqB,GAAsB;AACtD,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK;AAC9B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAC5B,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,MAAM,EAAE,oBAAoB;AAC5B,IAAA,YAAY,EAAE,EAAE;CACjB;AAED;;ACpBA;AAcA;AAEA;MAGa,mBAAmB,CAAA;AADhC,IAAA,WAAA,GAAA;AAEmB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC;AA+E1D,IAAA;IA7EC,MAAM,OAAO,CAAC,OAA+B,EAAA;AAC3C,QAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM;AAChC,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,YAAA,WAAW,EAAE,CAAC,+BAA+B,CAAC,mBAAmB,CAAC;SACnE;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;AAChE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE;YAC7D,UAAU,CAAC,QAAQ,CAAC;AAClB,gBAAA;oBACE,IAAI,EAAE,eAAe,CAAC,mBAAmB;AACzC,oBAAA,IAAI,EAAE,mDAAmD;oBACzD,IAAI,EAAE,MAAM,CAAC,IAAI;AACjB,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,QAAQ,EAAE,IAAI;oBACd,MAAM;AACN,oBAAA,QAAQ,EAAE,EAAE;AACb,iBAAA;AACF,aAAA,CAAC;QACJ;QAEA,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC;AACpE,QAAA,MAAM,aAAa,GAAG;AACpB,YAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,YAAA,WAAW,EAAE,CAAC,+BAA+B,CAAC,gBAAgB,CAAC;SAChE;QAED,UAAU,CAAC,QAAQ,CAAC;AAClB,YAAA;gBACE,IAAI,EAAE,eAAe,CAAC,SAAS;AAC/B,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW;AAClD,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;AACvF,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI;AAC3C,gBAAA,QAAQ,EAAE,CAAC;gBACX,MAAM;AACP,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,eAAe,CAAC,UAAU;AAChC,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW;AACnD,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;AACxF,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI;AAC5C,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,aAAa;AACtB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,eAAe,CAAC,MAAM;AAC5B,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW;AAC/C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;AACpF,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACxC,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,aAAa;AACtB,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,eAAe,CAAC,MAAM;AAC5B,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW;AAC/C,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC;AACpF,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI;AACxC,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,oBAAA,WAAW,EAAE,CAAC,+BAA+B,CAAC,gBAAgB,CAAC;AAChE,iBAAA;AACF,aAAA;AACD,YAAA;gBACE,IAAI,EAAE,eAAe,CAAC,QAAQ;AAC9B,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW;AACjD,gBAAA,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;AACtF,gBAAA,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI;AAC1C,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE;AACN,oBAAA,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;AACvB,oBAAA,WAAW,EAAE,CAAC,+BAA+B,CAAC,gBAAgB,CAAC;AAChE,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;IACJ;8GA/EW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAnB,mBAAmB,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;AClBD;AAyBA;AAEA;MAuDa,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YApDvB,8BAA8B,CAAA,EAAA,CAAA,CAAA;AAoD7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,SAAA,EAnDtB;YACT,sBAAsB;AACtB,YAAA;AACE,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,QAAQ,EAAE,qBAAqB;AAC/B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,QAAQ,EAAE,mBAAmB;AAC7B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,QAAQ,EAAE,qBAAqB;AAC/B,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,QAAQ,EAAE,4BAA4B;AACtC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uCAAuC;AAChD,gBAAA,QAAQ,EAAE,kDAAkD;AAC5D,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,QAAQ,EAAE,4BAA4B;AACtC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,QAAQ,EAAE,0BAA0B;AACpC,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gCAAgC;AACzC,gBAAA,QAAQ,EAAE,iCAAiC;AAC3C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;YACD,uCAAuC;AACvC,YAAA,oBAAoB,CAAC;AACnB,gBAAA;oBACE,GAAG,EAAE,kBAAkB,CAAC,iBAAiB;AACzC,oBAAA,OAAO,EAAE,MAAM,OAAO,8FAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC;AACnG,iBAAA;aACF,CAAC;AACH,SAAA,EAAA,OAAA,EAAA,CAlDS,8BAA8B,CAAA,EAAA,CAAA,CAAA;;2FAoD7B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBArDlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,8BAA8B,CAAC;AACzC,oBAAA,SAAS,EAAE;wBACT,sBAAsB;AACtB,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,QAAQ,EAAE,qBAAqB;AAC/B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,QAAQ,EAAE,mBAAmB;AAC7B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,QAAQ,EAAE,qBAAqB;AAC/B,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,QAAQ,EAAE,4BAA4B;AACtC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uCAAuC;AAChD,4BAAA,QAAQ,EAAE,kDAAkD;AAC5D,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,QAAQ,EAAE,4BAA4B;AACtC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,QAAQ,EAAE,0BAA0B;AACpC,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,QAAQ,EAAE,iCAAiC;AAC3C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;wBACD,uCAAuC;AACvC,wBAAA,oBAAoB,CAAC;AACnB,4BAAA;gCACE,GAAG,EAAE,kBAAkB,CAAC,iBAAiB;AACzC,gCAAA,OAAO,EAAE,MAAM,OAAO,8FAAyC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC;AACnG,6BAAA;yBACF,CAAC;AACH,qBAAA;AACF,iBAAA;;;ACjFD;AAEO,MAAM,kBAAkB,GAAG;AAElC;AACO,MAAM,uBAAuB,GAClC;AAEF;AACO,MAAM,wBAAwB,GACnC;AAEF;;ACJA;MAuBa,oBAAoB,CAAA;AArBjC,IAAA,WAAA,GAAA;QAsBE,IAAA,CAAA,UAAU,GAAG,KAAK,CAAoB,SAAS;uFAAC;QAChD,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,EAAE;iFAAC;QAEG,IAAA,CAAA,QAAQ,GAAG,uBAAuB;QAClC,IAAA,CAAA,SAAS,GAAG,wBAAwB;QACpC,IAAA,CAAA,QAAQ,GAAG,kBAAkB;AAE7B,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;AACpD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE;YAC/B,OAAO,KAAK,KAAK,YAAY,GAAG,YAAY,GAAG,SAAS;QAC1D,CAAC;+FAAC;AACH,IAAA;8GAZY,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,yCAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjBrB;;;;;;;;;;;;;;;AAeT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA,CAAA;;2FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBArBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,yCAAyC,EAAE;oBAC1D,eAAe,EAAE,uBAAuB,CAAC,KAAK;AAC9C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;AAeT,EAAA,CAAA;AACF,iBAAA;;;;;;;;ACgBD;AAEA;AA6FM,MAAO,kCAAmC,SAAQ,mBAAmB,CAAA;AA3F3E,IAAA,WAAA,GAAA;;QA4FY,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,KAAK;oFAAC;QACvB,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,EAAE;iGAAC;QACjC,IAAA,CAAA,IAAI,GAAG,MAAM,CAAmB,EAAE;iFAAC;QAG7C,IAAA,CAAA,YAAY,GAAyC,EAAE;QACvD,IAAA,CAAA,cAAc,GAA2B,EAAE;AAC3C,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,GAAG,EAAU;QAErB,IAAA,CAAA,eAAe,GAAG,gCAAgC,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM;YACjF,EAAE;YACF,KAAK,EAAE,CAAA,sCAAA,EAAyC,EAAE,CAAA,CAAE;AACrD,SAAA,CAAC,CAAC;AAkDJ,IAAA;IAhDoB,QAAQ,GAAA;QACzB,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC;AAC7D,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;YACnC,MAAM;YACN,QAAQ,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;AACnD,YAAA,YAAY,EAAE,OAAqC;YACnD,aAAa,EAAE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;SACxD,CAAC,CAAC,CACJ;IACH;AAEU,IAAA,uBAAuB,CAAC,KAAkC,EAAA;QAClE,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAClD;IAEU,SAAS,CAAC,QAAgB,EAAE,KAAmC,EAAA;AACvE,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KACrB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,CAAC,CAC9E;IACH;IAEU,cAAc,CAAC,QAAgB,EAAE,KAAsD,EAAA;AAC/F,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,IAAI,OAAO;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KACrB,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,CAAC,CAClF;IACH;IAEU,YAAY,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;IACtE;IAEU,OAAO,GAAA;AACf,QAAA,MAAM,MAAM,GAAoC;AAC9C,YAAA,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAAE;AACjD,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI;AACZ,iBAAA,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,aAAa;AAClD,iBAAA,GAAG,CAAC,CAAC,GAAG,MAAM;gBACb,MAAM,EAAE,GAAG,CAAC,MAAM;AAClB,gBAAA,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,GAAG,CAAC,YAAY;AAC/B,aAAA,CAAC,CAAC;SACN;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACpB;8GA9DW,kCAAkC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kCAAkC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9EnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4ET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EApFC,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,mBAAmB,0BAPnB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAuFA,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBA3F9C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,+BAA+B;oBACzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,WAAW;wBACX,cAAc;wBACd,gBAAgB;wBAChB,iBAAiB;wBACjB,eAAe;wBACf,iBAAiB;wBACjB,mBAAmB;AACpB,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4ET,EAAA,CAAA;AACF,iBAAA;;;AC5ID;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-platform-extension-project-management-jira-client.mjs","sources":["../../../../libs/extensions/project-management/jira/client/src/lib/entity.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/jira-project/jira-project-status.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/project-management/jira-project-link-expression-evaluator-scope.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/project-management/project-jira.entity-modifier.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-logo-key.ts","../../../../libs/extensions/project-management/jira/client/src/lib/integration/jira.integration.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/integration/jira.integration-runtime.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/integration/jira.connection-established.handler.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-logo.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/manifest.ts","../../../../libs/extensions/project-management/jira/client/src/lib/menu.provider.ts","../../../../libs/extensions/project-management/jira/client/src/lib/jira-extension.module.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-mark.paths.ts","../../../../libs/extensions/project-management/jira/client/src/lib/brand/jira-logo.component.ts","../../../../libs/extensions/project-management/jira/client/src/lib/features/project-import/jira-project-import-popup.component.ts","../../../../libs/extensions/project-management/jira/client/src/acorex-platform-extension-project-management-jira-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPEntity } from '@acorex-platform/framework-shared/entity';\nimport { AXPEntityDefinitionLoader, AXPEntityPreloadEntity } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Entity Provider ----\n\n@Injectable()\nexport class AXEJiraEntityProvider implements AXPEntityDefinitionLoader {\n preload(): AXPEntityPreloadEntity[] {\n const module = RootConfig.module.name;\n return Object.values(RootConfig.entities).map((entity) => ({\n module,\n entity: entity.name,\n }));\n }\n\n async get(moduleName: string, entityName: string): Promise<AXPEntity | null> {\n if (moduleName !== RootConfig.module.name) {\n return null;\n }\n\n switch (entityName) {\n case RootConfig.entities.jiraInstance.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraInstanceFactory();\n case RootConfig.entities.jiraProject.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraProjectFactory();\n case RootConfig.entities.jiraIssueType.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraIssueTypeFactory();\n case RootConfig.entities.jiraField.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraFieldFactory();\n case RootConfig.entities.jiraProjectIssueType.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraProjectIssueTypeFactory();\n case RootConfig.entities.jiraProjectIssueTypeField.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraProjectIssueTypeFieldFactory();\n case RootConfig.entities.jiraWorkflowStatus.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraWorkflowStatusFactory();\n case RootConfig.entities.jiraIssue.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraIssueFactory();\n case RootConfig.entities.jiraWorklog.name:\n return (await import('@acorex-platform/extension-project-management-jira-domain')).jiraWorklogFactory();\n default:\n return null;\n }\n }\n\n async list(): Promise<{ name: string; module: string }[]> {\n const module = RootConfig.module.name;\n return Object.values(RootConfig.entities).map((entity) => ({\n name: entity.name,\n module,\n }));\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPStatusDefinition, AXPStatusProvider, AXPStatusTransition } from '@acorex-platform/framework-shared/core';\n\n//#endregion\n\n//#region ---- Status Helper ----\n\nconst status = (\n name: string,\n title: string,\n color: string,\n options: Partial<AXPStatusDefinition> = {},\n): AXPStatusDefinition => ({\n name,\n title,\n color,\n ...options,\n});\n\n//#endregion\n\n//#region ---- Jira Project Status Provider ----\n\n/**\n * Operational sync status for mirrored Jira projects (not Jira workflow statuses).\n */\nexport class AXEJiraProjectStatusProvider extends AXPStatusProvider {\n readonly key = 'extensions-jira.status.jira-project';\n\n readonly statuses: AXPStatusDefinition[] = [\n status('Active', '@extensions-jira:projects.statuses.active', 'success', {\n order: 1,\n generateView: true,\n isInitial: true,\n icon: 'fa-light fa-circle-check',\n }),\n status('Archived', '@extensions-jira:projects.statuses.archived', 'neutral', {\n order: 2,\n generateView: true,\n isFinal: true,\n icon: 'fa-light fa-box-archive',\n }),\n status('SyncError', '@extensions-jira:projects.statuses.sync-error', 'danger', {\n order: 3,\n generateView: true,\n icon: 'fa-light fa-triangle-exclamation',\n }),\n ];\n\n readonly transitions: AXPStatusTransition[] = [\n {\n from: 'Active',\n to: 'Archived',\n title: '@extensions-jira:projects.transitions.archive',\n },\n {\n from: 'Archived',\n to: 'Active',\n title: '@extensions-jira:projects.transitions.activate',\n },\n {\n from: 'Active',\n to: 'SyncError',\n title: '@extensions-jira:projects.transitions.mark-sync-error',\n },\n {\n from: 'SyncError',\n to: 'Active',\n title: '@extensions-jira:projects.transitions.resolve-sync-error',\n },\n ];\n\n readonly defaultStatus = 'Active';\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex-platform/framework-shared/core';\nimport { AXPIntegrationRuntimeService } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraProjectEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\n\n//#endregion\n\n/** Expression scope namespace (no hyphens — safe for `with (scope)` eval). */\nexport const AXE_JIRA_EXPRESSION_SCOPE = 'JiraExtension';\n\n//#region ---- Provider ----\n\nexport class AXEJiraProjectLinkExpressionEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n private readonly entityService = inject(AXPEntityService);\n private readonly integrationRuntime = inject(AXPIntegrationRuntimeService);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope(AXE_JIRA_EXPRESSION_SCOPE, {\n hasProjectLink: async (platformProjectIdRaw?: unknown): Promise<boolean> => {\n const platformProjectId = typeof platformProjectIdRaw === 'string' ? platformProjectIdRaw.trim() : '';\n if (!platformProjectId) {\n return false;\n }\n\n const result = await this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.jiraProject.name)\n .data<string, AXEJiraProjectEntityModel>()\n .query({\n skip: 0,\n take: 1,\n filter: {\n field: 'platformProjectId',\n operator: { type: 'equal' },\n value: platformProjectId,\n },\n });\n\n return (result.items?.length ?? 0) > 0;\n },\n hasJiraConnection: async (): Promise<boolean> => {\n try {\n await this.integrationRuntime.getConnection({ providerId: 'jira', connectionScope: 'tenant' });\n return true;\n } catch {\n return false;\n }\n },\n });\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPSystemActionType } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityAction, AXPEntityCommandScope } from '@acorex-platform/framework-shared/entity';\nimport {\n actionExists,\n AXPEntityModifierProvider,\n ensureListActions,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { AXEJiraCommandKeys } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { RootConfig as PmRootConfig } from '@acorex-platform/module-project-management-client/contracts';\nimport { AXE_JIRA_EXPRESSION_SCOPE } from './jira-project-link-expression-evaluator-scope.provider';\n\n//#endregion\n\nconst IMPORT_ORDER = 35;\nconst SYNC_ORDER = 36;\n\nfunction buildImportAction(): AXPEntityAction {\n return {\n name: AXEJiraCommandKeys.ProjectImportFromJira,\n title: '@extensions-jira:actions.import-from-jira.title',\n command: { name: AXEJiraCommandKeys.ProjectImportFromJira },\n priority: 'secondary',\n type: AXPSystemActionType.Import,\n icon: 'fa-brands fa-jira',\n scope: AXPEntityCommandScope.TypeLevel,\n order: IMPORT_ORDER,\n };\n}\n\nfunction buildSyncAction(): AXPEntityAction {\n return {\n name: AXEJiraCommandKeys.ProjectSync,\n title: '@extensions-jira:actions.sync.title',\n command: {\n name: AXEJiraCommandKeys.ProjectSync,\n options: { platformProjectId: '{{ context.eval(\"id\") }}' },\n },\n priority: 'secondary',\n type: AXPSystemActionType.Sync,\n icon: 'fa-light fa-arrows-rotate',\n scope: AXPEntityCommandScope.Individual,\n order: SYNC_ORDER,\n hidden: `{{ !(await ${AXE_JIRA_EXPRESSION_SCOPE}.hasProjectLink(context.eval(\"id\"))) }}`,\n };\n}\n\n/** Adds Jira import/sync actions to ProjectManagement.Project views. */\nexport const AXEJiraProjectEntityModifier: AXPEntityModifierProvider = {\n entityName: PmRootConfig.entities.project.name,\n order: 50,\n modifier: (ctx) => {\n if (ctx.module.get() !== PmRootConfig.module.name) {\n return;\n }\n\n ensureListActions(ctx);\n\n ctx.interfaces.update((interfaces) => {\n const next = (interfaces ?? {}) as Record<string, unknown>;\n const master = (next['master'] ?? {}) as Record<string, unknown>;\n const list = (master['list'] ?? { actions: [], views: [] }) as Record<string, unknown>;\n const listActions = (list['actions'] ?? []) as AXPEntityAction[];\n\n if (!actionExists(listActions, AXEJiraCommandKeys.ProjectImportFromJira)) {\n listActions.push(buildImportAction());\n }\n list['actions'] = listActions;\n master['list'] = list;\n\n const single = master['single'] as Record<string, unknown> | undefined;\n if (single) {\n const singleActions = (single['actions'] ?? []) as AXPEntityAction[];\n if (!actionExists(singleActions, AXEJiraCommandKeys.ProjectSync)) {\n singleActions.push(buildSyncAction());\n }\n single['actions'] = singleActions;\n }\n\n next['master'] = master;\n return next as typeof interfaces;\n });\n },\n};\n\n//#endregion\n","//#region ---- Jira logo registry key ----\n\nexport const axpJiraLogoKey = 'jira' as const;\n\n//#endregion\n","import { AXP_INTEGRATION_AUTH_METHOD_TYPE, AXP_INTEGRATION_CAPABILITY, AXP_INTEGRATION_CONNECTION_SCOPE, AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPIntegrationProvider,\n AXPIntegrationProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { AXEJiraCommandKeys, RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { axpJiraLogoKey } from '../brand/jira-logo-key';\n\n@Injectable()\nexport class AXEJiraIntegrationProvider implements AXPIntegrationProvider {\n async provide(context: AXPIntegrationProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration`;\n\n context.register({\n domainId: 'project-management',\n id: 'jira',\n module: RootConfig.module.name,\n displayName: `${I18N}.display-name`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n logoKey: axpJiraLogoKey,\n capabilities: [\n AXP_INTEGRATION_CAPABILITY.IssueTracking,\n AXP_INTEGRATION_CAPABILITY.Sync,\n AXP_INTEGRATION_CAPABILITY.TimeLogging,\n ],\n connectionScopes: [AXP_INTEGRATION_CONNECTION_SCOPE.Tenant, AXP_INTEGRATION_CONNECTION_SCOPE.User],\n allowMultipleConnections: true,\n defaultConnectionKey: 'default',\n connectCommandKey: AXEJiraCommandKeys.ConnectionConnect,\n authMethods: [\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.Pat,\n label: `${I18N}.auth.pat.label`,\n instructions: `${I18N}.auth.pat.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'baseUrl',\n options: { placeholder: `${I18N}.auth.pat.base-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'token',\n options: { placeholder: `${I18N}.auth.pat.token.placeholder` },\n },\n ],\n },\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.Basic,\n label: `${I18N}.auth.basic.label`,\n instructions: `${I18N}.auth.basic.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'baseUrl',\n options: { placeholder: `${I18N}.auth.basic.base-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'username',\n options: { placeholder: `${I18N}.auth.basic.username.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'password',\n options: { placeholder: `${I18N}.auth.basic.password.placeholder` },\n },\n ],\n },\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.ApiToken,\n label: `${I18N}.auth.api-token.label`,\n instructions: `${I18N}.auth.api-token.instructions`,\n supportsValidation: true,\n fields: [\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'siteUrl',\n options: { placeholder: `${I18N}.auth.api-token.site-url.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.TextBox,\n path: 'email',\n options: { placeholder: `${I18N}.auth.api-token.email.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiToken',\n options: { placeholder: `${I18N}.auth.api-token.token.placeholder` },\n },\n ],\n },\n {\n type: AXP_INTEGRATION_AUTH_METHOD_TYPE.OAuth2,\n label: `${I18N}.auth.oauth.label`,\n instructions: `${I18N}.auth.oauth.instructions`,\n usesRedirect: true,\n supportsRefresh: true,\n supportsRevoke: false,\n supportsValidation: true,\n defaultScopes: ['read:jira-work', 'read:jira-user'],\n fields: [],\n },\n ],\n });\n }\n}\n\n//#endregion\n","import { AXP_INTEGRATION_AUTH_METHOD_TYPE, AXP_INTEGRATION_CONNECTION_STATUS, type AXPIntegrationProviderRuntimeHooks, type AXPIntegrationRuntimeContext, type AXPIntegrationValidationResult } from '@acorex-platform/framework-shared/core';\nimport {\n AXP_INTEGRATION_RUNTIME_PROVIDER,\n AXP_INTEGRATION_SECRET_STORE,\n type AXPIntegrationRuntimeProvider,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, trim } from 'lodash-es';\n\n@Injectable()\nexport class AXEJiraIntegrationRuntimeProvider implements AXPIntegrationRuntimeProvider {\n readonly providerId = 'jira';\n\n private readonly secretStore = inject(AXP_INTEGRATION_SECRET_STORE, { optional: true });\n\n async getHooks(): Promise<AXPIntegrationProviderRuntimeHooks> {\n return {\n validateConnection: (ctx) => this.validateConnection(ctx),\n createClient: (ctx) => this.createClient(ctx),\n };\n }\n\n private async validateConnection(ctx: AXPIntegrationRuntimeContext): Promise<AXPIntegrationValidationResult> {\n if (!this.secretStore) {\n return { valid: false, status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid, errorMessage: 'Secret store unavailable.' };\n }\n\n try {\n const credentials = await this.secretStore.resolve(ctx.secretRef, ctx);\n const token =\n credentials.token ??\n credentials.apiToken ??\n credentials.accessToken;\n\n if (!trim(defaultTo(token, ''))) {\n return {\n valid: false,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\n errorMessage: 'No token available for Jira connection.',\n };\n }\n\n return {\n valid: true,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n externalAccountName: defaultTo(ctx.instanceUrl, 'Jira'),\n };\n } catch {\n return {\n valid: false,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\n errorMessage: 'Failed to validate Jira credentials.',\n };\n }\n }\n\n private async createClient(ctx: AXPIntegrationRuntimeContext): Promise<{ token: string; baseUrl?: string }> {\n if (!this.secretStore) {\n throw new Error('Secret store unavailable.');\n }\n\n const credentials = await this.secretStore.resolve(ctx.secretRef, ctx);\n const token =\n credentials.token ??\n credentials.apiToken ??\n credentials.accessToken;\n\n if (!trim(defaultTo(token, ''))) {\n throw new Error('Jira connection has no usable token.');\n }\n\n return {\n token: token!,\n baseUrl: defaultTo(ctx.instanceUrl, undefined),\n };\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXP_INTEGRATION_CONNECTION_ESTABLISHED, type AXPIntegrationConnectionEstablishedHandler } from '@acorex-platform/framework-client/common';\nimport { AXP_INTEGRATION_CONNECTION_SCOPE, type AXPSafeIntegrationConnectionDto } from '@acorex-platform/framework-shared/core';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { trim } from 'lodash-es';\n\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\n\n//#endregion\n\n//#region ---- Handler ----\n\n@Injectable()\nexport class AXEJiraConnectionEstablishedHandler implements AXPIntegrationConnectionEstablishedHandler {\n readonly providerId = 'jira';\n\n private readonly entityService = inject(AXPEntityService);\n\n async onEstablished(connection: AXPSafeIntegrationConnectionDto): Promise<void> {\n if (connection.connectionScope !== AXP_INTEGRATION_CONNECTION_SCOPE.Tenant) {\n return;\n }\n\n const connectionKey = trim(connection.connectionKey);\n if (!connectionKey) {\n return;\n }\n\n const accessor = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.jiraInstance.name)\n .data<string, AXEJiraInstanceEntityModel>();\n\n const result = await accessor.query({\n skip: 0,\n take: 1,\n filter: {\n logic: 'and',\n filters: [{ field: 'name', operator: { type: 'equal' }, value: connectionKey }],\n },\n });\n\n const instance = result.items?.[0];\n if (!instance || instance.integrationConnectionId === connection.id) {\n return;\n }\n\n await accessor.update(instance.id, { integrationConnectionId: connection.id });\n }\n}\n\nexport const provideJiraConnectionEstablishedHandler = {\n provide: AXP_INTEGRATION_CONNECTION_ESTABLISHED,\n useClass: AXEJiraConnectionEstablishedHandler,\n multi: true,\n};\n\n//#endregion\n","import {\n AXP_LOGO_PROVIDER,\n type AXPLogoProvider,\n type AXPLogoRequest,\n type AXPLogoView,\n} from '@acorex-platform/framework-client/core';\nimport { axpJiraLogoKey } from './jira-logo-key';\n\nconst jiraLogoProvider: AXPLogoProvider = {\n key: axpJiraLogoKey,\n resolve: async (request: AXPLogoRequest): Promise<AXPLogoView> => ({\n kind: 'component',\n load: () => import('./jira-logo.component').then((module) => module.AXEJiraLogoComponent),\n inputs: {\n appearance: request.appearance,\n size: request.size,\n },\n }),\n};\n\nexport const AXE_JIRA_LOGO_PROVIDER = {\n provide: AXP_LOGO_PROVIDER,\n useValue: jiraLogoProvider,\n multi: true,\n} as const;\n","//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest ----\n\nexport const JiraExtensionManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'integration',\n domain: 'project-management',\n dependencies: [],\n};\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPCommonMenuKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXEJiraMenuKeys,\n RootConfig,\n AXPAdministrationPermissionKeys\n} from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Menu Provider ----\n\n@Injectable()\nexport class AXEJiraMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const module = RootConfig.module;\n const policy = {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.MaintainConnections],\n };\n\n const configMenu = context.find(AXPCommonMenuKeys.Configuration);\n if (!context.find(AXEJiraMenuKeys.JiraExtensionConfig).exists) {\n configMenu.addItems([\n {\n name: AXEJiraMenuKeys.JiraExtensionConfig,\n text: '@extensions-jira:module.menus.configuration.title',\n icon: module.icon,\n type: 'menu',\n priority: 8935,\n policy,\n children: [],\n },\n ]);\n }\n\n const jiraConfig = context.find(AXEJiraMenuKeys.JiraExtensionConfig);\n const catalogPolicy = {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewIntegrations],\n };\n\n jiraConfig.addItems([\n {\n name: AXEJiraMenuKeys.Instances,\n text: RootConfig.entities.jiraInstance.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraInstance.name),\n icon: RootConfig.entities.jiraInstance.icon,\n priority: 1,\n policy,\n },\n {\n name: AXEJiraMenuKeys.IssueTypes,\n text: RootConfig.entities.jiraIssueType.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraIssueType.name),\n icon: RootConfig.entities.jiraIssueType.icon,\n priority: 3,\n policy: catalogPolicy,\n },\n {\n name: AXEJiraMenuKeys.Fields,\n text: RootConfig.entities.jiraField.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraField.name),\n icon: RootConfig.entities.jiraField.icon,\n priority: 4,\n policy: catalogPolicy,\n },\n {\n name: AXEJiraMenuKeys.Issues,\n text: RootConfig.entities.jiraIssue.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraIssue.name),\n icon: RootConfig.entities.jiraIssue.icon,\n priority: 5,\n policy: {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewIntegrations],\n },\n },\n {\n name: AXEJiraMenuKeys.Worklogs,\n text: RootConfig.entities.jiraWorklog.titlePlural,\n path: this.entityService.createPath(module.name, RootConfig.entities.jiraWorklog.name),\n icon: RootConfig.entities.jiraWorklog.icon,\n priority: 6,\n policy: {\n features: [module.name],\n permissions: [AXPAdministrationPermissionKeys.ViewIntegrations],\n },\n },\n ]);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXMIntegrationManagementModule } from '@acorex-platform/module-integration-management-client';\nimport {\n AXP_INTEGRATION_PROVIDER,\n AXP_INTEGRATION_RUNTIME_PROVIDER,\n AXP_MENU_PROVIDER,\n AXP_STATUS_PROVIDERS,\n} from '@acorex-platform/framework-client/common';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { AXP_ENTITY_DEFINITION_LOADER, AXP_ENTITY_MODIFIER } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\nimport { AXEJiraCommandKeys } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { AXEJiraEntityProvider } from './entity.provider';\nimport { AXEJiraProjectStatusProvider } from './features/jira-project/jira-project-status.provider';\nimport { AXEJiraProjectLinkExpressionEvaluatorScopeProvider } from './features/project-management/jira-project-link-expression-evaluator-scope.provider';\nimport { AXEJiraProjectEntityModifier } from './features/project-management/project-jira.entity-modifier';\nimport { AXEJiraIntegrationProvider } from './integration/jira.integration.provider';\nimport { AXEJiraIntegrationRuntimeProvider } from './integration/jira.integration-runtime.provider';\nimport { provideJiraConnectionEstablishedHandler } from './integration/jira.connection-established.handler';\nimport { AXE_JIRA_LOGO_PROVIDER } from './brand/jira-logo.provider';\nimport { JiraExtensionManifest } from './manifest';\nimport { AXEJiraMenuProvider } from './menu.provider';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [AXMIntegrationManagementModule],\n providers: [\n AXE_JIRA_LOGO_PROVIDER,\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: JiraExtensionManifest,\n multi: true,\n },\n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXEJiraMenuProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_DEFINITION_LOADER,\n useClass: AXEJiraEntityProvider,\n multi: true,\n },\n {\n provide: AXP_ENTITY_MODIFIER,\n useValue: AXEJiraProjectEntityModifier,\n multi: true,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXEJiraProjectLinkExpressionEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_STATUS_PROVIDERS,\n useClass: AXEJiraProjectStatusProvider,\n multi: true,\n },\n {\n provide: AXP_INTEGRATION_PROVIDER,\n useClass: AXEJiraIntegrationProvider,\n multi: true,\n },\n {\n provide: AXP_INTEGRATION_RUNTIME_PROVIDER,\n useClass: AXEJiraIntegrationRuntimeProvider,\n multi: true,\n },\n provideJiraConnectionEstablishedHandler,\n provideCommandSetups([\n {\n key: AXEJiraCommandKeys.ConnectionConnect,\n command: () => import('./features/connect/connect-jira.command').then((c) => c.ConnectJiraCommand),\n },\n ]),\n ],\n})\nexport class AXEJiraExtensionModule {}\n\n//#endregion\n","//#region ---- Atlassian / Jira mark vector paths ----\n\nexport const AXE_JIRA_MARK_BLUE = '#2684FF';\n\n/** Left sail */\nexport const AXE_JIRA_MARK_LEFT_PATH =\n 'M7.12 11.084a.683.683 0 0 0-1.16.126L.075 22.974a.703.703 0 0 0 .63 1.018h8.19a.678.678 0 0 0 .63-.39c1.767-3.65.696-9.203-2.406-12.52z';\n\n/** Right sail */\nexport const AXE_JIRA_MARK_RIGHT_PATH =\n 'M11.434.386a15.515 15.515 0 0 0-.906 15.317l3.95 7.9a.703.703 0 0 0 .628.388h8.19a.703.703 0 0 0 .63-1.017L12.63.38a.664.664 0 0 0-1.196.006z';\n\n//#endregion\n","import type { AXPLogoAppearance } from '@acorex-platform/framework-client/core';\nimport { Component, computed, input, ChangeDetectionStrategy } from '@angular/core';\nimport {\n AXE_JIRA_MARK_BLUE,\n AXE_JIRA_MARK_LEFT_PATH,\n AXE_JIRA_MARK_RIGHT_PATH,\n} from './jira-mark.paths';\n\n//#region ---- Jira brand logo (owned by Jira extension) ----\n\n@Component({\n selector: 'axe-jira-logo',\n host: { class: 'inline-flex items-center justify-center' },\n changeDetection: ChangeDetectionStrategy.Eager,\n template: `\n @switch (resolvedAppearance()) {\n @case ('monochrome') {\n <svg [attr.width]=\"size()\" [attr.height]=\"size()\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path fill=\"currentColor\" [attr.d]=\"leftPath\" />\n <path fill=\"currentColor\" [attr.d]=\"rightPath\" />\n </svg>\n }\n @default {\n <svg [attr.width]=\"size()\" [attr.height]=\"size()\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n <path [attr.fill]=\"markBlue\" [attr.d]=\"leftPath\" />\n <path [attr.fill]=\"markBlue\" [attr.d]=\"rightPath\" />\n </svg>\n }\n }\n `,\n})\nexport class AXEJiraLogoComponent {\n appearance = input<AXPLogoAppearance>('colored');\n size = input(20);\n\n protected readonly leftPath = AXE_JIRA_MARK_LEFT_PATH;\n protected readonly rightPath = AXE_JIRA_MARK_RIGHT_PATH;\n protected readonly markBlue = AXE_JIRA_MARK_BLUE;\n\n protected readonly resolvedAppearance = computed(() => {\n const value = this.appearance();\n return value === 'monochrome' ? 'monochrome' : 'colored';\n });\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXValueChangedEvent } from '@acorex/cdk/common';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCheckBoxModule } from '@acorex/components/check-box';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXBasePageComponent } from '@acorex/components/page';\nimport { AXComboBoxComponent, type AXComboBoxItem, type AXComboBoxValue } from '@acorex/components/combo-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport type { AXEJiraProjectSyncStrategy } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport { AXE_JIRA_PROJECT_SYNC_STRATEGIES } from '@acorex-platform/extension-project-management-jira-client/contracts';\nimport type { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport type { AXEJiraRemoteProject } from '@acorex-platform/extension-project-management-jira-client/contracts';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXEJiraProjectImportPopupData {\n instance: AXEJiraInstanceEntityModel;\n defaultProjectTypeId: string;\n projectTypes: Array<{ id: string; title: string }>;\n remoteProjects: AXEJiraRemoteProject[];\n alreadyLinkedJiraIds: Set<string>;\n}\n\nexport interface AXEJiraProjectImportPopupResult {\n defaultProjectTypeId: string;\n rows: Array<{\n remote: AXEJiraRemoteProject;\n selected: boolean;\n syncStrategy: AXEJiraProjectSyncStrategy;\n }>;\n}\n\ninterface ImportRowState {\n remote: AXEJiraRemoteProject;\n selected: boolean;\n syncStrategy: AXEJiraProjectSyncStrategy;\n alreadyLinked: boolean;\n}\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axe-jira-project-import-popup',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AsyncPipe,\n FormsModule,\n AXButtonModule,\n AXCheckBoxModule,\n AXDecoratorModule,\n AXLoadingModule,\n AXComboBoxComponent,\n AXTranslationModule,\n ],\n template: `\n <div class=\"flex flex-col gap-4 p-4 max-h-[70vh] overflow-auto\">\n <div class=\"flex flex-col gap-1\">\n <span class=\"text-sm font-medium\">\n {{ '@extensions-jira:import.popup.default-project-type' | translate | async }}\n </span>\n <ax-combo-box\n [items]=\"projectTypeComboItems\"\n [searchable]=\"false\"\n [value]=\"defaultProjectTypeId()\"\n (onValueChanged)=\"handleProjectTypeChange($event)\"\n ></ax-combo-box>\n </div>\n\n @if (loading()) {\n <ax-loading></ax-loading>\n } @else if (rows().length === 0) {\n <p class=\"text-sm opacity-70\">\n {{ '@extensions-jira:import.popup.empty' | translate | async }}\n </p>\n } @else {\n <table class=\"w-full text-sm\">\n <thead>\n <tr class=\"border-b\">\n <th class=\"p-2 text-start\"></th>\n <th class=\"p-2 text-start\">{{ '@extensions-jira:import.popup.columns.key' | translate | async }}</th>\n <th class=\"p-2 text-start\">{{ '@extensions-jira:import.popup.columns.name' | translate | async }}</th>\n <th class=\"p-2 text-start\">{{ '@extensions-jira:import.popup.columns.strategy' | translate | async }}</th>\n </tr>\n </thead>\n <tbody>\n @for (row of rows(); track row.remote.id) {\n <tr class=\"border-b border-opacity-20\">\n <td class=\"p-2\">\n <ax-check-box\n [ngModel]=\"row.selected\"\n [disabled]=\"row.alreadyLinked\"\n (onValueChanged)=\"toggleRow(row.remote.id, $event)\"\n ></ax-check-box>\n </td>\n <td class=\"p-2\">{{ row.remote.key }}</td>\n <td class=\"p-2\">{{ row.remote.name }}</td>\n <td class=\"p-2\">\n <ax-combo-box\n class=\"min-w-40\"\n [items]=\"strategyOptions\"\n [searchable]=\"false\"\n [value]=\"row.syncStrategy\"\n [disabled]=\"!row.selected\"\n (onValueChanged)=\"changeStrategy(row.remote.id, $event)\"\n ></ax-combo-box>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n <ax-footer>\n <ax-suffix>\n <ax-button\n look=\"outline\"\n [text]=\"'@general:actions.cancel.title' | translate | async\"\n (onClick)=\"close()\"\n ></ax-button>\n <ax-button\n look=\"solid\"\n color=\"primary\"\n [disabled]=\"!hasSelection()\"\n [text]=\"'@extensions-jira:import.popup.confirm' | translate | async\"\n (onClick)=\"confirm()\"\n ></ax-button>\n </ax-suffix>\n </ax-footer>\n `,\n})\nexport class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {\n protected loading = signal(false);\n protected defaultProjectTypeId = signal('');\n protected rows = signal<ImportRowState[]>([]);\n\n instance!: AXEJiraInstanceEntityModel;\n projectTypes: Array<{ id: string; title: string }> = [];\n remoteProjects: AXEJiraRemoteProject[] = [];\n alreadyLinkedJiraIds = new Set<string>();\n\n protected readonly strategyOptions: AXComboBoxItem[] =\n AXE_JIRA_PROJECT_SYNC_STRATEGIES.map((id) => ({\n id,\n text: `@extensions-jira:import.sync-strategy.${id}`,\n value: id,\n }));\n\n protected get projectTypeComboItems(): AXComboBoxItem[] {\n return this.projectTypes.map((type) => ({\n id: type.id,\n text: type.title,\n value: type.id,\n }));\n }\n\n protected override ngOnInit(): void {\n super.ngOnInit();\n this.defaultProjectTypeId.set(this.projectTypes[0]?.id ?? '');\n this.rows.set(\n this.remoteProjects.map((remote) => ({\n remote,\n selected: !this.alreadyLinkedJiraIds.has(remote.id),\n syncStrategy: 'merge' as AXEJiraProjectSyncStrategy,\n alreadyLinked: this.alreadyLinkedJiraIds.has(remote.id),\n })),\n );\n }\n\n protected handleProjectTypeChange(event: AXValueChangedEvent<AXComboBoxValue>): void {\n const value = event.value;\n this.defaultProjectTypeId.set(typeof value === 'string' ? value : '');\n }\n\n protected toggleRow(remoteId: string, event: AXValueChangedEvent<boolean>): void {\n const selected = !!event.value;\n this.rows.update((items) =>\n items.map((row) => (row.remote.id === remoteId ? { ...row, selected } : row)),\n );\n }\n\n protected changeStrategy(remoteId: string, event: AXValueChangedEvent<AXComboBoxValue>): void {\n const raw = event.value;\n const syncStrategy =\n typeof raw === 'string' && AXE_JIRA_PROJECT_SYNC_STRATEGIES.includes(raw as AXEJiraProjectSyncStrategy)\n ? (raw as AXEJiraProjectSyncStrategy)\n : 'merge';\n this.rows.update((items) =>\n items.map((row) => (row.remote.id === remoteId ? { ...row, syncStrategy } : row)),\n );\n }\n\n protected hasSelection(): boolean {\n return this.rows().some((row) => row.selected && !row.alreadyLinked);\n }\n\n protected confirm(): void {\n const result: AXEJiraProjectImportPopupResult = {\n defaultProjectTypeId: this.defaultProjectTypeId(),\n rows: this.rows()\n .filter((row) => row.selected && !row.alreadyLinked)\n .map((row) => ({\n remote: row.remote,\n selected: true,\n syncStrategy: row.syncStrategy,\n })),\n };\n this.close(result);\n }\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["PmRootConfig"],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@acorex-platform/extension-project-management-jira-client",
3
- "version": "0.0.32",
3
+ "version": "0.0.33",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@acorex-platform/extension-project-management-core-client": "0.0.32",
6
+ "@acorex-platform/extension-project-management-core-client": "0.0.33",
7
7
  "@angular/common": "^21.0.0 || ^22.0.0",
8
8
  "@angular/core": "^21.0.0 || ^22.0.0"
9
9
  },
10
10
  "dependencies": {
11
- "@acorex-platform/extension-project-management-jira-domain": "0.0.32",
11
+ "@acorex-platform/extension-project-management-jira-domain": "0.0.33",
12
12
  "tslib": "^2.3.0"
13
13
  },
14
14
  "module": "fesm2022/acorex-platform-extension-project-management-jira-client.mjs",
@@ -3,6 +3,7 @@ import * as i1 from '@acorex-platform/module-integration-management-client';
3
3
  import { AXPLogoAppearance, AXPLogoProvider } from '@acorex-platform/framework-client/core';
4
4
  import { AXValueChangedEvent } from '@acorex/cdk/common';
5
5
  import { AXBasePageComponent } from '@acorex/components/page';
6
+ import { AXComboBoxItem, AXComboBoxValue } from '@acorex/components/combo-box';
6
7
  import { AXEJiraRemoteProject, AXEJiraProjectSyncStrategy } from '@acorex-platform/extension-project-management-jira-client/contracts';
7
8
  import { AXEJiraInstanceEntityModel } from '@acorex-platform/extension-project-management-jira-domain';
8
9
 
@@ -62,14 +63,12 @@ declare class AXEJiraProjectImportPopupComponent extends AXBasePageComponent {
62
63
  }>;
63
64
  remoteProjects: AXEJiraRemoteProject[];
64
65
  alreadyLinkedJiraIds: Set<string>;
65
- protected readonly strategyOptions: {
66
- id: AXEJiraProjectSyncStrategy;
67
- title: string;
68
- }[];
66
+ protected readonly strategyOptions: AXComboBoxItem[];
67
+ protected get projectTypeComboItems(): AXComboBoxItem[];
69
68
  protected ngOnInit(): void;
70
- protected handleProjectTypeChange(event: AXValueChangedEvent<string>): void;
69
+ protected handleProjectTypeChange(event: AXValueChangedEvent<AXComboBoxValue>): void;
71
70
  protected toggleRow(remoteId: string, event: AXValueChangedEvent<boolean>): void;
72
- protected changeStrategy(remoteId: string, event: AXValueChangedEvent<AXEJiraProjectSyncStrategy>): void;
71
+ protected changeStrategy(remoteId: string, event: AXValueChangedEvent<AXComboBoxValue>): void;
73
72
  protected hasSelection(): boolean;
74
73
  protected confirm(): void;
75
74
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXEJiraProjectImportPopupComponent, never>;