@acorex-platform/extension-bamboohr-client 0.0.32 → 0.0.37

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.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-extension-bamboohr-client-connect-bamboohr.command-BzjrQHyc.mjs","sources":["../../../../libs/extensions/bamboohr/client/src/lib/features/connect/connect-bamboohr.command.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n AXP_INTEGRATION_CONNECTION_STATUS,\n type AXPRuntimeCommandResult,\n type AXPIntegrationConnectionScope,\n} from '@acorex-platform/framework-shared/core';\nimport {\n AXMIntegrationConnectionManager,\n AXP_INTEGRATION_CREDENTIAL_MASK,\n hasConfiguredIntegrationCredentials,\n isMaskedIntegrationCredential,\n toSafeIntegrationConnectionDto,\n type ConnectCommandResult,\n} from '@acorex-platform/module-integration-management-client';\nimport {\n AXPLayoutBuilderService,\n resolveLayoutBuilderDialogResult,\n type AXPDialogRef,\n type IActionBuilder,\n type IDialogBuilder,\n type IFlexContainerBuilder,\n} from '@acorex-platform/framework-client/layout/builder';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, trim } from 'lodash-es';\nimport {\n AXE_BAMBOOHR_PROVIDER_ID,\n RootConfig,\n type AXEBambooHRConnectionConfig,\n} from '@acorex-platform/extension-bamboohr-client/contracts';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport interface ConnectBambooHRCommandInput {\n providerId?: string;\n connectionScope?: AXPIntegrationConnectionScope;\n}\n\ninterface BambooHRConnectFormContext {\n companyDomain: string;\n apiKey: string;\n}\n\ninterface BambooHRConnectFormResult {\n companyDomain: string;\n apiKey: string;\n}\n\n//#endregion\n\n//#region ----- Command -----\n\n@Injectable({ providedIn: 'root' })\nexport class ConnectBambooHRCommand implements AXPCommand<ConnectBambooHRCommandInput, ConnectCommandResult> {\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly connectionManager = inject(AXMIntegrationConnectionManager);\n\n async execute(input: ConnectBambooHRCommandInput = {}): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n try {\n const providerId = input.providerId ?? AXE_BAMBOOHR_PROVIDER_ID;\n const connectionScope = input.connectionScope ?? 'tenant';\n const I18N = `@${RootConfig.config.i18n}:integration.connect`;\n const existing = await this.connectionManager.findByUniqueKey({\n providerId,\n connectionScope,\n connectionKey: 'default',\n });\n const isReconfigure = hasConfiguredIntegrationCredentials(existing);\n const existingConfig = (existing?.config ?? {}) as AXEBambooHRConnectionConfig;\n\n const form = await this.openConnectDialog({\n i18nPrefix: I18N,\n isReconfigure,\n context: {\n companyDomain: defaultTo(existingConfig.companyDomain, ''),\n apiKey: isReconfigure ? AXP_INTEGRATION_CREDENTIAL_MASK : '',\n },\n });\n\n if (!form) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n let apiKey = trim(form.apiKey);\n if (isMaskedIntegrationCredential(apiKey) && existing) {\n apiKey = trim(existingConfig.apiKey ?? '');\n }\n\n const companyDomain = normalizeCompanyDomain(form.companyDomain);\n if (!companyDomain) {\n return {\n success: false,\n message: { text: `${I18N}.errors.company-domain-required` },\n };\n }\n if (!apiKey) {\n return {\n success: false,\n message: { text: `${I18N}.errors.api-key-required` },\n };\n }\n\n const connection = await this.connectionManager.upsertConnection({\n providerId,\n authMethodType: AXP_INTEGRATION_AUTH_METHOD_TYPE.ApiToken,\n connectionScope,\n connectionKey: 'default',\n displayName: existing?.displayName ?? 'BambooHR',\n instanceUrl: `https://${companyDomain}.bamboohr.com`,\n externalAccountName: `${companyDomain}.bamboohr.com`,\n config: {\n ...existingConfig,\n companyDomain,\n apiKey,\n } satisfies AXEBambooHRConnectionConfig,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n isRevoked: false,\n isDisabled: false,\n });\n\n return { success: true, kind: 'object',\n data: { outcome: 'connected', connection: toSafeIntegrationConnectionDto(connection) },\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to connect BambooHR.';\n return { success: false, message: { text: message } };\n }\n }\n\n private async openConnectDialog(input: {\n i18nPrefix: string;\n isReconfigure: boolean;\n context: BambooHRConnectFormContext;\n }): Promise<BambooHRConnectFormResult | null> {\n const result = await this.layoutBuilder\n .create()\n .dialog<BambooHRConnectFormResult | null>((dialog: IDialogBuilder<BambooHRConnectFormResult | null>) => {\n dialog\n .setTitle(\n input.isReconfigure\n ? `${input.i18nPrefix}.api-token-dialog.configure-title`\n : `${input.i18nPrefix}.api-token-dialog.title`,\n )\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', {\n content: `${input.i18nPrefix}.api-token-dialog.instructions`,\n })\n .formField(`${input.i18nPrefix}.api-token-dialog.fields.company-domain`, (field) => {\n field.path('companyDomain');\n field.textBox({\n placeholder: `${input.i18nPrefix}.api-token-dialog.placeholders.company-domain`,\n validations: [{ rule: 'required' }],\n });\n })\n .formField(`${input.i18nPrefix}.api-token-dialog.fields.api-key`, (field) => {\n field.path('apiKey');\n field.passwordBox({\n placeholder: `${input.i18nPrefix}.api-token-dialog.placeholders.api-key`,\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}.api-token-dialog.actions.save`);\n })\n .onAction(async (ref: AXPDialogRef) => {\n if (ref.action() === 'cancel') {\n return null;\n }\n const ctx = ref.context() as BambooHRConnectFormContext;\n const companyDomain = trim(ctx.companyDomain);\n const apiKey = trim(ctx.apiKey);\n if (!companyDomain) {\n throw new Error(`${input.i18nPrefix}.errors.company-domain-required`);\n }\n if (!apiKey) {\n throw new Error(`${input.i18nPrefix}.errors.api-key-required`);\n }\n return { companyDomain, apiKey };\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<BambooHRConnectFormResult>(result);\n }\n}\n\nfunction normalizeCompanyDomain(raw: string): string {\n const value = trim(raw).toLowerCase();\n if (!value) {\n return '';\n }\n try {\n if (value.includes('://')) {\n const host = new URL(value).hostname;\n return host.replace(/\\.bamboohr\\.com$/i, '').split('.')[0] ?? '';\n }\n } catch {\n // fall through\n }\n return value\n .replace(/^https?:\\/\\//i, '')\n .replace(/\\.bamboohr\\.com.*$/i, '')\n .replace(/\\/+$/, '')\n .split('/')[0]\n ?.split('.')[0] ?? '';\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-extension-bamboohr-client-connect-bamboohr.command-BzjrQHyc.mjs","sources":["../../../../libs/extensions/bamboohr/client/src/lib/features/connect/connect-bamboohr.command.ts"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\nimport {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n AXP_INTEGRATION_CONNECTION_STATUS,\n type AXPRuntimeCommandResult,\n type AXPIntegrationConnectionScope,\n} from '@acorex-platform/framework-shared/core';\nimport {\n AXMIntegrationConnectionManager,\n AXP_INTEGRATION_CREDENTIAL_MASK,\n hasConfiguredIntegrationCredentials,\n isMaskedIntegrationCredential,\n toSafeIntegrationConnectionDto,\n type ConnectCommandResult,\n} from '@acorex-platform/module-integration-management-client';\nimport {\n AXPLayoutBuilderService,\n resolveLayoutBuilderDialogResult,\n type AXPDialogRef,\n type IActionBuilder,\n type IDialogBuilder,\n type IFlexContainerBuilder,\n} from '@acorex-platform/framework-client/layout/builder';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, trim } from 'lodash-es';\nimport {\n AXE_BAMBOOHR_PROVIDER_ID,\n RootConfig,\n type AXEBambooHRConnectionConfig,\n} from '@acorex-platform/extension-bamboohr-client/contracts';\n\n//#endregion\n\n//#region ----- Types -----\n\nexport interface ConnectBambooHRCommandInput {\n providerId?: string;\n connectionScope?: AXPIntegrationConnectionScope;\n}\n\ninterface BambooHRConnectFormContext {\n companyDomain: string;\n apiKey: string;\n}\n\ninterface BambooHRConnectFormResult {\n companyDomain: string;\n apiKey: string;\n}\n\n//#endregion\n\n//#region ----- Command -----\n\n@Injectable({ providedIn: 'root' })\nexport class ConnectBambooHRCommand implements AXPCommand<ConnectBambooHRCommandInput, ConnectCommandResult> {\n private readonly layoutBuilder = inject(AXPLayoutBuilderService);\n private readonly connectionManager = inject(AXMIntegrationConnectionManager);\n\n async execute(input: ConnectBambooHRCommandInput = {}): AXPCommandExecuteResultPromise<ConnectCommandResult> {\n try {\n const providerId = input.providerId ?? AXE_BAMBOOHR_PROVIDER_ID;\n const connectionScope = input.connectionScope ?? 'tenant';\n const I18N = `@${RootConfig.config.i18n}:integration.connect`;\n const existing = await this.connectionManager.findByUniqueKey({\n providerId,\n connectionScope,\n connectionKey: 'default',\n });\n const isReconfigure = hasConfiguredIntegrationCredentials(existing);\n const existingConfig = (existing?.config ?? {}) as AXEBambooHRConnectionConfig;\n\n const form = await this.openConnectDialog({\n i18nPrefix: I18N,\n isReconfigure,\n context: {\n companyDomain: defaultTo(existingConfig.companyDomain, ''),\n apiKey: isReconfigure ? AXP_INTEGRATION_CREDENTIAL_MASK : '',\n },\n });\n\n if (!form) {\n return { success: true, kind: 'object', data: { outcome: 'cancelled' } };\n }\n\n let apiKey = trim(form.apiKey);\n if (isMaskedIntegrationCredential(apiKey) && existing) {\n apiKey = trim(existingConfig.apiKey ?? '');\n }\n\n const companyDomain = normalizeCompanyDomain(form.companyDomain);\n if (!companyDomain) {\n return {\n success: false,\n message: { text: `${I18N}.errors.company-domain-required` },\n };\n }\n if (!apiKey) {\n return {\n success: false,\n message: { text: `${I18N}.errors.api-key-required` },\n };\n }\n\n const connection = await this.connectionManager.upsertConnection({\n providerId,\n authMethodType: AXP_INTEGRATION_AUTH_METHOD_TYPE.ApiToken,\n connectionScope,\n connectionKey: 'default',\n displayName: existing?.displayName ?? 'BambooHR',\n instanceUrl: `https://${companyDomain}.bamboohr.com`,\n externalAccountName: `${companyDomain}.bamboohr.com`,\n config: {\n ...existingConfig,\n companyDomain,\n apiKey,\n } satisfies AXEBambooHRConnectionConfig,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n isRevoked: false,\n isDisabled: false,\n });\n\n return { success: true, kind: 'object',\n data: { outcome: 'connected', connection: toSafeIntegrationConnectionDto(connection) },\n };\n } catch (error: unknown) {\n const message = error instanceof Error ? error.message : 'Failed to connect BambooHR.';\n return { success: false, message: { text: message } };\n }\n }\n\n private async openConnectDialog(input: {\n i18nPrefix: string;\n isReconfigure: boolean;\n context: BambooHRConnectFormContext;\n }): Promise<BambooHRConnectFormResult | null> {\n const result = await this.layoutBuilder\n .create()\n .dialog<BambooHRConnectFormResult | null>((dialog: IDialogBuilder<BambooHRConnectFormResult | null>) => {\n dialog\n .setTitle(\n input.isReconfigure\n ? `${input.i18nPrefix}.api-token-dialog.configure-title`\n : `${input.i18nPrefix}.api-token-dialog.title`,\n )\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', {\n content: `${input.i18nPrefix}.api-token-dialog.instructions`,\n })\n .formField(`${input.i18nPrefix}.api-token-dialog.fields.company-domain`, (field) => {\n field.path('companyDomain');\n field.textBox({\n placeholder: `${input.i18nPrefix}.api-token-dialog.placeholders.company-domain`,\n validations: [{ rule: 'required' }],\n });\n })\n .formField(`${input.i18nPrefix}.api-token-dialog.fields.api-key`, (field) => {\n field.path('apiKey');\n field.passwordBox({\n placeholder: `${input.i18nPrefix}.api-token-dialog.placeholders.api-key`,\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}.api-token-dialog.actions.save`);\n })\n .onAction(async (ref: AXPDialogRef) => {\n if (ref.action() === 'cancel') {\n return null;\n }\n const ctx = ref.context() as BambooHRConnectFormContext;\n const companyDomain = trim(ctx.companyDomain);\n const apiKey = trim(ctx.apiKey);\n if (!companyDomain) {\n throw new Error(`${input.i18nPrefix}.errors.company-domain-required`);\n }\n if (!apiKey) {\n throw new Error(`${input.i18nPrefix}.errors.api-key-required`);\n }\n return { companyDomain, apiKey };\n });\n })\n .show();\n\n return resolveLayoutBuilderDialogResult<BambooHRConnectFormResult>(result);\n }\n}\n\nfunction normalizeCompanyDomain(raw: string): string {\n const value = trim(raw).toLowerCase();\n if (!value) {\n return '';\n }\n try {\n if (value.includes('://')) {\n const host = new URL(value).hostname;\n return host.replace(/\\.bamboohr\\.com$/i, '').split('.')[0] ?? '';\n }\n } catch {\n // fall through\n }\n return value\n .replace(/^https?:\\/\\//i, '')\n .replace(/\\.bamboohr\\.com.*$/i, '')\n .replace(/\\/+$/, '')\n .split('/')[0]\n ?.split('.')[0] ?? '';\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-extension-bamboohr-client-contracts.mjs","sources":["../../../../libs/extensions/bamboohr/contracts/src/root-config.ts","../../../../libs/extensions/bamboohr/contracts/src/commands.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/menu.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/permission.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/settings.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/connection.types.ts","../../../../libs/extensions/bamboohr/contracts/src/employee-sync.api.types.ts","../../../../libs/extensions/bamboohr/contracts/src/acorex-platform-extension-bamboohr-client-contracts.ts"],"sourcesContent":["//#region ----- Module Config -----\n\nconst config = {\n i18n: 'extensions-bamboohr',\n};\n\nconst MODULE_NAME = 'BambooHRExtension';\nconst PROVIDER_ID = 'bamboohr';\nconst DOMAIN_ID = 'human-capital';\nconst RESOURCE_EMPLOYEE = 'employee';\n\nexport const RootConfig = {\n config,\n module: {\n name: MODULE_NAME,\n title: `@${config.i18n}:integration.display-name`,\n icon: 'fa-light fa-users',\n },\n integration: {\n providerId: PROVIDER_ID,\n domainId: DOMAIN_ID,\n resourceEmployee: RESOURCE_EMPLOYEE,\n },\n};\n\nexport const AXE_BAMBOOHR_DOMAIN_ID = DOMAIN_ID;\nexport const AXE_BAMBOOHR_PROVIDER_ID = PROVIDER_ID;\nexport const AXE_BAMBOOHR_RESOURCE_EMPLOYEE = RESOURCE_EMPLOYEE;\n\n//#endregion\n","//#region ----- Command Keys -----\n\nexport const AXEBambooHRCommandKeys = {\n ConnectionConnect: 'bamboohr-extension.Connection:Connect',\n ConnectionValidate: 'bamboohr-extension.Connection:Validate',\n EmployeeSyncFromBambooHR: 'bamboohr-extension.Employee:SyncFromBambooHR',\n EmployeeSync: 'bamboohr-extension.Employee:Sync',\n} as const;\n\n//#endregion\n","//#region ----- Menu Keys -----\n\nexport const AXEBambooHRMenuKeys = {\n BambooHRExtensionConfig: 'bamboohr-extension:Menu:Configuration',\n} as const;\n\n//#endregion\n","//#region ----- Permission Keys -----\n\n/**\n * Administration capabilities used by this extension.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAdministrationPermissionKeys = {\n Access: 'Administration:Permission:Access',\n MaintainUsersAndRoles: 'Administration:Permission:MaintainUsersAndRoles',\n ManageSessions: 'Administration:Permission:ManageSessions',\n MaintainPolicies: 'Administration:Permission:MaintainPolicies',\n ViewIntegrations: 'Administration:Permission:ViewIntegrations',\n MaintainConnections: 'Administration:Permission:MaintainConnections',\n ManageIntegrationActions: 'Administration:Permission:ManageIntegrationActions',\n MaintainWorkflows: 'Administration:Permission:MaintainWorkflows',\n ManageWorkflowActions: 'Administration:Permission:ManageWorkflowActions',\n ViewRules: 'Administration:Permission:ViewRules',\n MaintainRules: 'Administration:Permission:MaintainRules',\n ManageRuleActions: 'Administration:Permission:ManageRuleActions',\n MaintainAi: 'Administration:Permission:MaintainAi',\n UseAiAssist: 'Administration:Permission:UseAiAssist',\n MaintainDashboards: 'Administration:Permission:MaintainDashboards',\n ViewJobs: 'Administration:Permission:ViewJobs',\n ManageJobActions: 'Administration:Permission:ManageJobActions',\n ViewObservability: 'Administration:Permission:ViewObservability',\n MaintainObservability: 'Administration:Permission:MaintainObservability',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAdministrationPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXEBambooHRPermissions = {\n BambooHRExtension: {\n Management: AXPAdministrationPermissionKeys.MaintainConnections,\n Catalog: {\n View: AXPAdministrationPermissionKeys.ViewIntegrations,\n },\n EmployeeImport: {\n Execute: AXPAdministrationPermissionKeys.ManageIntegrationActions,\n },\n EmployeeSync: {\n Execute: AXPAdministrationPermissionKeys.ManageIntegrationActions,\n },\n },\n} as const;\n\n//#endregion\n","//#region ----- Setting Keys -----\n\nimport { RootConfig } from './root-config';\n\nconst moduleKey = RootConfig.module.name;\n\nexport const AXEBambooHRExtensionSettings = {\n ConnectionsPanel: `${moduleKey}:Setting:ConnectionsPanel`,\n} as const;\n\n//#endregion\n","//#region ----- BambooHR tenant connection config -----\n\n/** Stored on IntegrationManagement connection `config` for tenant-scoped BambooHR. */\nexport interface AXEBambooHRConnectionConfig {\n /** Company subdomain (e.g. `acme` for acme.bamboohr.com). */\n companyDomain?: string;\n /** BambooHR API key (Basic auth username). */\n apiKey?: string;\n /** Optional default employment type id for imported employees. */\n defaultEmploymentTypeId?: string;\n /** Default sync strategy for new links. */\n defaultSyncStrategy?: AXEBambooHREmployeeSyncStrategy;\n employeesSync?: AXEBambooHREmployeesSyncState;\n}\n\nexport interface AXEBambooHREmployeesSyncState {\n lastSyncAt?: string;\n}\n\nexport type AXEBambooHREmployeeSyncStrategy = 'remoteOverride' | 'localOverride' | 'merge';\n\nexport const AXE_BAMBOOHR_EMPLOYEE_SYNC_STRATEGIES: readonly AXEBambooHREmployeeSyncStrategy[] = [\n 'merge',\n 'remoteOverride',\n 'localOverride',\n] as const;\n\n//#endregion\n","//#region ----- BambooHR employee sync API DTOs -----\n\nimport type { AXEBambooHREmployeeSyncStrategy } from './connection.types';\n\n/** Subset of BambooHR employee fields used for platform mapping. */\nexport interface AXEBambooHRRemoteEmployee {\n id: string;\n firstName?: string;\n lastName?: string;\n middleName?: string;\n displayName?: string;\n preferredName?: string;\n workEmail?: string;\n homeEmail?: string;\n mobilePhone?: string;\n workPhone?: string;\n homePhone?: string;\n hireDate?: string;\n employeeNumber?: string;\n jobTitle?: string;\n department?: string;\n division?: string;\n location?: string;\n employmentHistoryStatus?: string;\n status?: string;\n supervisorId?: string;\n supervisorEId?: string;\n supervisor?: string;\n birthday?: string;\n gender?: string;\n maritalStatus?: string;\n address1?: string;\n address2?: string;\n city?: string;\n state?: string;\n country?: string;\n zipcode?: string;\n terminationDate?: string;\n [key: string]: unknown;\n}\n\nexport interface AXEBambooHRValidateConnectionRequest {\n companyDomain?: string;\n apiKey?: string;\n}\n\nexport interface AXEBambooHRValidateConnectionResponse {\n valid: boolean;\n message?: string;\n companyDomain?: string;\n}\n\nexport interface AXEBambooHRSyncEmployeesRequest {\n /** When true, overwrite linked employees even with localOverride strategy for missing remotes is unchanged. */\n force?: boolean;\n syncStrategy?: AXEBambooHREmployeeSyncStrategy;\n defaultEmploymentTypeId?: string;\n}\n\nexport interface AXEBambooHRSyncEmployeesResponse {\n created: number;\n updated: number;\n skipped: number;\n errors: Array<{ remoteId: string; message: string }>;\n lastSyncAt: string;\n}\n\nexport interface AXEBambooHRSyncPlatformEmployeeRequest {\n platformEmployeeId: string;\n}\n\nexport interface AXEBambooHRSyncPlatformEmployeeResponse {\n synced: true;\n platformEmployeeId: string;\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;AAEA,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,qBAAqB;CAC5B;AAED,MAAM,WAAW,GAAG,mBAAmB;AACvC,MAAM,WAAW,GAAG,UAAU;AAC9B,MAAM,SAAS,GAAG,eAAe;AACjC,MAAM,iBAAiB,GAAG,UAAU;AAE7B,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,yBAAA,CAA2B;AACjD,QAAA,IAAI,EAAE,mBAAmB;AAC1B,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,gBAAgB,EAAE,iBAAiB;AACpC,KAAA;;AAGI,MAAM,sBAAsB,GAAG;AAC/B,MAAM,wBAAwB,GAAG;AACjC,MAAM,8BAA8B,GAAG;AAE9C;;AC7BA;AAEO,MAAM,sBAAsB,GAAG;AACpC,IAAA,iBAAiB,EAAE,uCAAuC;AAC1D,IAAA,kBAAkB,EAAE,wCAAwC;AAC5D,IAAA,wBAAwB,EAAE,8CAA8C;AACxE,IAAA,YAAY,EAAE,kCAAkC;;AAGlD;;ACTA;AAEO,MAAM,mBAAmB,GAAG;AACjC,IAAA,uBAAuB,EAAE,uCAAuC;;AAGlE;;ACNA;AAEA;;;AAGG;AACI,MAAM,+BAA+B,GAAG;AAC7C,IAAA,MAAM,EAAE,kCAAkC;AAC1C,IAAA,qBAAqB,EAAE,iDAAiD;AACxE,IAAA,cAAc,EAAE,0CAA0C;AAC1D,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,mBAAmB,EAAE,+CAA+C;AACpE,IAAA,wBAAwB,EAAE,oDAAoD;AAC9E,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,qBAAqB,EAAE,iDAAiD;AACxE,IAAA,SAAS,EAAE,qCAAqC;AAChD,IAAA,aAAa,EAAE,yCAAyC;AACxD,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,UAAU,EAAE,sCAAsC;AAClD,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,kBAAkB,EAAE,8CAA8C;AAClE,IAAA,QAAQ,EAAE,oCAAoC;AAC9C,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,qBAAqB,EAAE,iDAAiD;;AAG1E;;;AAGG;AACI,MAAM,sBAAsB,GAAG;AACpC,IAAA,iBAAiB,EAAE;QACjB,UAAU,EAAE,+BAA+B,CAAC,mBAAmB;AAC/D,QAAA,OAAO,EAAE;YACP,IAAI,EAAE,+BAA+B,CAAC,gBAAgB;AACvD,SAAA;AACD,QAAA,cAAc,EAAE;YACd,OAAO,EAAE,+BAA+B,CAAC,wBAAwB;AAClE,SAAA;AACD,QAAA,YAAY,EAAE;YACZ,OAAO,EAAE,+BAA+B,CAAC,wBAAwB;AAClE,SAAA;AACF,KAAA;;AAGH;;AC/CA;AAIA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI;AAEjC,MAAM,4BAA4B,GAAG;IAC1C,gBAAgB,EAAE,CAAA,EAAG,SAAS,CAAA,yBAAA,CAA2B;;AAG3D;;ACVA;AAqBO,MAAM,qCAAqC,GAA+C;IAC/F,OAAO;IACP,gBAAgB;IAChB,eAAe;;AAGjB;;AC3BA;AA4EA;;AC5EA;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-platform-extension-bamboohr-client-contracts.mjs","sources":["../../../../libs/extensions/bamboohr/contracts/src/root-config.ts","../../../../libs/extensions/bamboohr/contracts/src/commands.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/menu.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/permission.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/settings.keys.ts","../../../../libs/extensions/bamboohr/contracts/src/connection.types.ts","../../../../libs/extensions/bamboohr/contracts/src/employee-sync.api.types.ts","../../../../libs/extensions/bamboohr/contracts/src/acorex-platform-extension-bamboohr-client-contracts.ts"],"sourcesContent":["//#region ----- Module Config -----\n\nconst config = {\n i18n: 'extensions-bamboohr',\n};\n\nconst MODULE_NAME = 'BambooHRExtension';\nconst PROVIDER_ID = 'bamboohr';\nconst DOMAIN_ID = 'human-capital';\nconst RESOURCE_EMPLOYEE = 'employee';\n\nexport const RootConfig = {\n config,\n module: {\n name: MODULE_NAME,\n title: `@${config.i18n}:integration.display-name`,\n icon: 'fa-light fa-users',\n },\n integration: {\n providerId: PROVIDER_ID,\n domainId: DOMAIN_ID,\n resourceEmployee: RESOURCE_EMPLOYEE,\n },\n};\n\nexport const AXE_BAMBOOHR_DOMAIN_ID = DOMAIN_ID;\nexport const AXE_BAMBOOHR_PROVIDER_ID = PROVIDER_ID;\nexport const AXE_BAMBOOHR_RESOURCE_EMPLOYEE = RESOURCE_EMPLOYEE;\n\n//#endregion\n","//#region ----- Command Keys -----\n\nexport const AXEBambooHRCommandKeys = {\n ConnectionConnect: 'bamboohr-extension.Connection:Connect',\n ConnectionValidate: 'bamboohr-extension.Connection:Validate',\n EmployeeSyncFromBambooHR: 'bamboohr-extension.Employee:SyncFromBambooHR',\n EmployeeSync: 'bamboohr-extension.Employee:Sync',\n} as const;\n\n//#endregion\n","//#region ----- Menu Keys -----\n\nexport const AXEBambooHRMenuKeys = {\n BambooHRExtensionConfig: 'bamboohr-extension:Menu:Configuration',\n} as const;\n\n//#endregion\n","//#region ----- Permission Keys -----\n\n/**\n * Administration capabilities used by this extension.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAdministrationPermissionKeys = {\n Access: 'Administration:Permission:Access',\n MaintainUsersAndRoles: 'Administration:Permission:MaintainUsersAndRoles',\n ManageSessions: 'Administration:Permission:ManageSessions',\n MaintainPolicies: 'Administration:Permission:MaintainPolicies',\n ViewIntegrations: 'Administration:Permission:ViewIntegrations',\n MaintainConnections: 'Administration:Permission:MaintainConnections',\n ManageIntegrationActions: 'Administration:Permission:ManageIntegrationActions',\n MaintainWorkflows: 'Administration:Permission:MaintainWorkflows',\n ManageWorkflowActions: 'Administration:Permission:ManageWorkflowActions',\n ViewRules: 'Administration:Permission:ViewRules',\n MaintainRules: 'Administration:Permission:MaintainRules',\n ManageRuleActions: 'Administration:Permission:ManageRuleActions',\n MaintainAi: 'Administration:Permission:MaintainAi',\n UseAiAssist: 'Administration:Permission:UseAiAssist',\n MaintainDashboards: 'Administration:Permission:MaintainDashboards',\n ViewJobs: 'Administration:Permission:ViewJobs',\n ManageJobActions: 'Administration:Permission:ManageJobActions',\n ViewObservability: 'Administration:Permission:ViewObservability',\n MaintainObservability: 'Administration:Permission:MaintainObservability',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAdministrationPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXEBambooHRPermissions = {\n BambooHRExtension: {\n Management: AXPAdministrationPermissionKeys.MaintainConnections,\n Catalog: {\n View: AXPAdministrationPermissionKeys.ViewIntegrations,\n },\n EmployeeImport: {\n Execute: AXPAdministrationPermissionKeys.ManageIntegrationActions,\n },\n EmployeeSync: {\n Execute: AXPAdministrationPermissionKeys.ManageIntegrationActions,\n },\n },\n} as const;\n\n//#endregion\n","//#region ----- Setting Keys -----\n\nimport { RootConfig } from './root-config';\n\nconst moduleKey = RootConfig.module.name;\n\nexport const AXEBambooHRExtensionSettings = {\n ConnectionsPanel: `${moduleKey}:Setting:ConnectionsPanel`,\n} as const;\n\n//#endregion\n","//#region ----- BambooHR tenant connection config -----\n\n/** Stored on IntegrationManagement connection `config` for tenant-scoped BambooHR. */\nexport interface AXEBambooHRConnectionConfig {\n /** Company subdomain (e.g. `acme` for acme.bamboohr.com). */\n companyDomain?: string;\n /** BambooHR API key (Basic auth username). */\n apiKey?: string;\n /** Optional default employment type id for imported employees. */\n defaultEmploymentTypeId?: string;\n /** Default sync strategy for new links. */\n defaultSyncStrategy?: AXEBambooHREmployeeSyncStrategy;\n employeesSync?: AXEBambooHREmployeesSyncState;\n}\n\nexport interface AXEBambooHREmployeesSyncState {\n lastSyncAt?: string;\n}\n\nexport type AXEBambooHREmployeeSyncStrategy = 'remoteOverride' | 'localOverride' | 'merge';\n\nexport const AXE_BAMBOOHR_EMPLOYEE_SYNC_STRATEGIES: readonly AXEBambooHREmployeeSyncStrategy[] = [\n 'merge',\n 'remoteOverride',\n 'localOverride',\n] as const;\n\n//#endregion\n","//#region ----- BambooHR employee sync API DTOs -----\n\nimport type { AXEBambooHREmployeeSyncStrategy } from './connection.types';\n\n/** Subset of BambooHR employee fields used for platform mapping. */\nexport interface AXEBambooHRRemoteEmployee {\n id: string;\n firstName?: string;\n lastName?: string;\n middleName?: string;\n displayName?: string;\n preferredName?: string;\n workEmail?: string;\n homeEmail?: string;\n mobilePhone?: string;\n workPhone?: string;\n homePhone?: string;\n hireDate?: string;\n employeeNumber?: string;\n jobTitle?: string;\n department?: string;\n division?: string;\n location?: string;\n employmentHistoryStatus?: string;\n status?: string;\n supervisorId?: string;\n supervisorEId?: string;\n supervisor?: string;\n birthday?: string;\n gender?: string;\n maritalStatus?: string;\n address1?: string;\n address2?: string;\n city?: string;\n state?: string;\n country?: string;\n zipcode?: string;\n terminationDate?: string;\n [key: string]: unknown;\n}\n\nexport interface AXEBambooHRValidateConnectionRequest {\n companyDomain?: string;\n apiKey?: string;\n}\n\nexport interface AXEBambooHRValidateConnectionResponse {\n valid: boolean;\n message?: string;\n companyDomain?: string;\n}\n\nexport interface AXEBambooHRSyncEmployeesRequest {\n /** When true, overwrite linked employees even with localOverride strategy for missing remotes is unchanged. */\n force?: boolean;\n syncStrategy?: AXEBambooHREmployeeSyncStrategy;\n defaultEmploymentTypeId?: string;\n}\n\nexport interface AXEBambooHRSyncEmployeesResponse {\n created: number;\n updated: number;\n skipped: number;\n errors: Array<{ remoteId: string; message: string }>;\n lastSyncAt: string;\n}\n\nexport interface AXEBambooHRSyncPlatformEmployeeRequest {\n platformEmployeeId: string;\n}\n\nexport interface AXEBambooHRSyncPlatformEmployeeResponse {\n synced: true;\n platformEmployeeId: string;\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;AAEA,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,qBAAqB;CAC5B;AAED,MAAM,WAAW,GAAG,mBAAmB;AACvC,MAAM,WAAW,GAAG,UAAU;AAC9B,MAAM,SAAS,GAAG,eAAe;AACjC,MAAM,iBAAiB,GAAG,UAAU;AAE7B,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,yBAAA,CAA2B;AACjD,QAAA,IAAI,EAAE,mBAAmB;AAC1B,KAAA;AACD,IAAA,WAAW,EAAE;AACX,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,gBAAgB,EAAE,iBAAiB;AACpC,KAAA;;AAGI,MAAM,sBAAsB,GAAG;AAC/B,MAAM,wBAAwB,GAAG;AACjC,MAAM,8BAA8B,GAAG;AAE9C;;AC7BA;AAEO,MAAM,sBAAsB,GAAG;AACpC,IAAA,iBAAiB,EAAE,uCAAuC;AAC1D,IAAA,kBAAkB,EAAE,wCAAwC;AAC5D,IAAA,wBAAwB,EAAE,8CAA8C;AACxE,IAAA,YAAY,EAAE,kCAAkC;;AAGlD;;ACTA;AAEO,MAAM,mBAAmB,GAAG;AACjC,IAAA,uBAAuB,EAAE,uCAAuC;;AAGlE;;ACNA;AAEA;;;AAGG;AACI,MAAM,+BAA+B,GAAG;AAC7C,IAAA,MAAM,EAAE,kCAAkC;AAC1C,IAAA,qBAAqB,EAAE,iDAAiD;AACxE,IAAA,cAAc,EAAE,0CAA0C;AAC1D,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,mBAAmB,EAAE,+CAA+C;AACpE,IAAA,wBAAwB,EAAE,oDAAoD;AAC9E,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,qBAAqB,EAAE,iDAAiD;AACxE,IAAA,SAAS,EAAE,qCAAqC;AAChD,IAAA,aAAa,EAAE,yCAAyC;AACxD,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,UAAU,EAAE,sCAAsC;AAClD,IAAA,WAAW,EAAE,uCAAuC;AACpD,IAAA,kBAAkB,EAAE,8CAA8C;AAClE,IAAA,QAAQ,EAAE,oCAAoC;AAC9C,IAAA,gBAAgB,EAAE,4CAA4C;AAC9D,IAAA,iBAAiB,EAAE,6CAA6C;AAChE,IAAA,qBAAqB,EAAE,iDAAiD;;AAG1E;;;AAGG;AACI,MAAM,sBAAsB,GAAG;AACpC,IAAA,iBAAiB,EAAE;QACjB,UAAU,EAAE,+BAA+B,CAAC,mBAAmB;AAC/D,QAAA,OAAO,EAAE;YACP,IAAI,EAAE,+BAA+B,CAAC,gBAAgB;AACvD,SAAA;AACD,QAAA,cAAc,EAAE;YACd,OAAO,EAAE,+BAA+B,CAAC,wBAAwB;AAClE,SAAA;AACD,QAAA,YAAY,EAAE;YACZ,OAAO,EAAE,+BAA+B,CAAC,wBAAwB;AAClE,SAAA;AACF,KAAA;;AAGH;;AC/CA;AAIA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI;AAEjC,MAAM,4BAA4B,GAAG;IAC1C,gBAAgB,EAAE,CAAA,EAAG,SAAS,CAAA,yBAAA,CAA2B;;AAG3D;;ACVA;AAqBO,MAAM,qCAAqC,GAA+C;IAC/F,OAAO;IACP,gBAAgB;IAChB,eAAe;;AAGjB;;AC3BA;AA4EA;;AC5EA;;AAEG;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-extension-bamboohr-client.mjs","sources":["../../../../libs/extensions/bamboohr/client/src/lib/features/human-capital/bamboohr-expression-scope.ts","../../../../libs/extensions/bamboohr/client/src/lib/features/human-capital/bamboohr-employee-link-expression-evaluator-scope.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/features/human-capital/employee-bamboohr.entity-modifier.ts","../../../../libs/extensions/bamboohr/client/src/lib/integration/human-capital.integration-domain.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-logo-key.ts","../../../../libs/extensions/bamboohr/client/src/lib/integration/bamboohr.integration.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/integration/bamboohr.integration-runtime.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/manifest.ts","../../../../libs/extensions/bamboohr/client/src/lib/menu.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/settings.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-logo.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/bamboohr-extension.module.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-mark.paths.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-logo.component.ts","../../../../libs/extensions/bamboohr/client/src/acorex-platform-extension-bamboohr-client.ts"],"sourcesContent":["export const AXE_BAMBOOHR_EXPRESSION_SCOPE = 'BambooHRExtension';\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 { AXE_BAMBOOHR_PROVIDER_ID } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { RootConfig as HcmRootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport type { AXMHumanCapitalManagementEmployeeEntityModel } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXE_BAMBOOHR_EXPRESSION_SCOPE } from './bamboohr-expression-scope';\n\n//#endregion\n\nexport class AXEBambooHREmployeeLinkExpressionEvaluatorScopeProvider 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_BAMBOOHR_EXPRESSION_SCOPE, {\n hasEmployeeLink: async (platformEmployeeIdRaw?: unknown): Promise<boolean> => {\n const platformEmployeeId = typeof platformEmployeeIdRaw === 'string' ? platformEmployeeIdRaw.trim() : '';\n if (!platformEmployeeId) {\n return false;\n }\n\n const employee = (await this.entityService\n .withEntity(HcmRootConfig.module.name, HcmRootConfig.entities.employee.name)\n .data<string, AXMHumanCapitalManagementEmployeeEntityModel>()\n .byKey(platformEmployeeId)) as AXMHumanCapitalManagementEmployeeEntityModel | null;\n\n return employee?.integrationRef?.source === AXE_BAMBOOHR_PROVIDER_ID;\n },\n hasBambooHRConnection: async (): Promise<boolean> => {\n try {\n await this.integrationRuntime.getConnection({\n providerId: AXE_BAMBOOHR_PROVIDER_ID,\n connectionScope: 'tenant',\n });\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 { AXEBambooHRCommandKeys } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { RootConfig as HcmRootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXE_BAMBOOHR_EXPRESSION_SCOPE } from './bamboohr-expression-scope';\n\n//#endregion\n\nconst SYNC_ALL_ORDER = 36;\nconst SYNC_ONE_ORDER = 37;\n\nfunction buildSyncAllAction(): AXPEntityAction {\n return {\n name: AXEBambooHRCommandKeys.EmployeeSyncFromBambooHR,\n title: '@extensions-bamboohr:actions.sync-from-bamboohr.title',\n command: { name: AXEBambooHRCommandKeys.EmployeeSyncFromBambooHR },\n priority: 'secondary',\n type: AXPSystemActionType.Import,\n icon: 'fa-light fa-users',\n scope: AXPEntityCommandScope.TypeLevel,\n order: SYNC_ALL_ORDER,\n };\n}\n\nfunction buildSyncOneAction(): AXPEntityAction {\n return {\n name: AXEBambooHRCommandKeys.EmployeeSync,\n title: '@extensions-bamboohr:actions.sync.title',\n command: {\n name: AXEBambooHRCommandKeys.EmployeeSync,\n options: { platformEmployeeId: '{{ 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_ONE_ORDER,\n hidden: `{{ !(await ${AXE_BAMBOOHR_EXPRESSION_SCOPE}.hasEmployeeLink(context.eval(\"id\"))) }}`,\n };\n}\n\n/** Adds BambooHR sync actions to HumanCapitalManagement.Employee views. */\nexport const AXEBambooHREmployeeEntityModifier: AXPEntityModifierProvider = {\n entityName: HcmRootConfig.entities.employee.name,\n order: 50,\n modifier: (ctx) => {\n if (ctx.module.get() !== HcmRootConfig.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, AXEBambooHRCommandKeys.EmployeeSyncFromBambooHR)) {\n listActions.push(buildSyncAllAction());\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, AXEBambooHRCommandKeys.EmployeeSync)) {\n singleActions.push(buildSyncOneAction());\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 ----- Imports -----\n\nimport { AXP_INTEGRATION_CATEGORY, AXP_INTEGRATION_CAPABILITY } from '@acorex-platform/framework-shared/core';\nimport {\n type AXPIntegrationDomainProvider,\n AXPIntegrationDomainProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { AXE_BAMBOOHR_DOMAIN_ID, RootConfig } from '@acorex-platform/extension-bamboohr-client/contracts';\n\n//#endregion\n\n@Injectable()\nexport class AXEHumanCapitalIntegrationDomainProvider implements AXPIntegrationDomainProvider {\n async provide(context: AXPIntegrationDomainProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration.domain`;\n\n context.register({\n id: AXE_BAMBOOHR_DOMAIN_ID,\n module: RootConfig.module.name,\n displayName: `${I18N}.title`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n category: AXP_INTEGRATION_CATEGORY.HumanCapital,\n capabilities: [AXP_INTEGRATION_CAPABILITY.Sync, AXP_INTEGRATION_CAPABILITY.Import],\n sortOrder: 25,\n });\n }\n}\n\n//#endregion\n","//#region ----- BambooHR logo registry key -----\n\nexport const axpBambooHRLogoKey = 'bamboohr' as const;\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n AXP_INTEGRATION_CAPABILITY,\n AXP_INTEGRATION_CONNECTION_SCOPE,\n AXPWidgetsList,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPIntegrationProvider, AXPIntegrationProviderContext } from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport {\n AXE_BAMBOOHR_DOMAIN_ID,\n AXE_BAMBOOHR_PROVIDER_ID,\n AXEBambooHRCommandKeys,\n RootConfig,\n} from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { axpBambooHRLogoKey } from '../brand/bamboohr-logo-key';\n\n//#endregion\n\n@Injectable()\nexport class AXEBambooHRIntegrationProvider implements AXPIntegrationProvider {\n async provide(context: AXPIntegrationProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration`;\n\n context.register({\n domainId: AXE_BAMBOOHR_DOMAIN_ID,\n id: AXE_BAMBOOHR_PROVIDER_ID,\n module: RootConfig.module.name,\n displayName: `${I18N}.display-name`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n logoKey: axpBambooHRLogoKey,\n capabilities: [AXP_INTEGRATION_CAPABILITY.Sync, AXP_INTEGRATION_CAPABILITY.Import],\n connectionScopes: [AXP_INTEGRATION_CONNECTION_SCOPE.Tenant],\n allowMultipleConnections: false,\n defaultConnectionKey: 'default',\n connectCommandKey: AXEBambooHRCommandKeys.ConnectionConnect,\n authMethods: [\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: 'companyDomain',\n options: { placeholder: `${I18N}.auth.api-token.company-domain.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiKey',\n options: { placeholder: `${I18N}.auth.api-token.api-key.placeholder` },\n },\n ],\n },\n ],\n });\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_INTEGRATION_CONNECTION_STATUS,\n type AXPIntegrationProviderRuntimeHooks,\n type AXPIntegrationRuntimeContext,\n type AXPIntegrationValidationResult,\n} 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 type { AXEBambooHRConnectionConfig } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { AXE_BAMBOOHR_PROVIDER_ID } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, trim } from 'lodash-es';\n\n//#endregion\n\n@Injectable()\nexport class AXEBambooHRIntegrationRuntimeProvider implements AXPIntegrationRuntimeProvider {\n readonly providerId = AXE_BAMBOOHR_PROVIDER_ID;\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 };\n }\n\n private async validateConnection(ctx: AXPIntegrationRuntimeContext): Promise<AXPIntegrationValidationResult> {\n const config = (ctx.config ?? {}) as AXEBambooHRConnectionConfig;\n const companyDomain = trim(defaultTo(config.companyDomain, ''));\n const apiKey = trim(defaultTo(config.apiKey, await this.resolveApiKeyFromSecret(ctx)));\n\n if (!companyDomain || !apiKey) {\n return {\n valid: false,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\n errorMessage: 'BambooHR company domain and API key are required.',\n };\n }\n\n return {\n valid: true,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n externalAccountName: `${companyDomain}.bamboohr.com`,\n };\n }\n\n private async resolveApiKeyFromSecret(ctx: AXPIntegrationRuntimeContext): Promise<string> {\n if (!this.secretStore || !trim(defaultTo(ctx.secretRef, ''))) {\n return '';\n }\n const credentials = await this.secretStore.resolve(ctx.secretRef, ctx);\n return trim(defaultTo(credentials.apiToken ?? credentials.token ?? credentials.password, ''));\n }\n}\n\nexport const provideBambooHRIntegrationRuntimeProvider = {\n provide: AXP_INTEGRATION_RUNTIME_PROVIDER,\n useClass: AXEBambooHRIntegrationRuntimeProvider,\n multi: true,\n};\n\n//#endregion\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/extension-bamboohr-client/contracts';\n\nexport const BambooHRExtensionManifest: 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: 'human-capital',\n dependencies: [],\n};\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 { Injectable } from '@angular/core';\nimport {\n AXEBambooHRMenuKeys,\n RootConfig,\n AXPAdministrationPermissionKeys\n} from '@acorex-platform/extension-bamboohr-client/contracts';\n\n//#endregion\n\n@Injectable()\nexport class AXEBambooHRMenuProvider implements AXPMenuProvider {\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(AXEBambooHRMenuKeys.BambooHRExtensionConfig).exists) {\n configMenu.addItems([\n {\n name: AXEBambooHRMenuKeys.BambooHRExtensionConfig,\n text: '@extensions-bamboohr:module.menus.configuration.title',\n icon: module.icon,\n type: 'menu',\n priority: 8930,\n policy,\n children: [],\n },\n ]);\n }\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_SETTING_DEFINITION_PROVIDER,\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ----- Provider -----\n\n@Injectable()\nexport class AXEBambooHRSettingsProvider implements AXPSettingDefinitionProvider {\n async provide(_context: AXPSettingDefinitionProviderContext): Promise<void> {\n // Tenant BambooHR connections are managed on Administration → Integrations.\n }\n}\n\nexport const provideBambooHRSettingsProvider = {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXEBambooHRSettingsProvider,\n multi: true,\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_LOGO_PROVIDER,\n type AXPLogoProvider,\n type AXPLogoRequest,\n type AXPLogoView,\n} from '@acorex-platform/framework-client/core';\nimport { axpBambooHRLogoKey } from './bamboohr-logo-key';\n\n//#endregion\n\nconst bambooHRLogoProvider: AXPLogoProvider = {\n key: axpBambooHRLogoKey,\n resolve: async (request: AXPLogoRequest): Promise<AXPLogoView> => ({\n kind: 'component',\n load: () => import('./bamboohr-logo.component').then((module) => module.AXEBambooHRLogoComponent),\n inputs: {\n appearance: request.appearance,\n size: request.size,\n },\n }),\n};\n\nexport const AXE_BAMBOOHR_LOGO_PROVIDER = {\n provide: AXP_LOGO_PROVIDER,\n useValue: bambooHRLogoProvider,\n multi: true,\n} as const;\n","//#region ----- Imports -----\n\nimport { AXMIntegrationManagementModule } from '@acorex-platform/module-integration-management-client';\nimport {\n AXP_INTEGRATION_DOMAIN_PROVIDER,\n AXP_INTEGRATION_PROVIDER,\n AXP_MENU_PROVIDER,\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_MODIFIER } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\nimport { AXEBambooHRCommandKeys } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { AXEBambooHREmployeeLinkExpressionEvaluatorScopeProvider } from './features/human-capital/bamboohr-employee-link-expression-evaluator-scope.provider';\nimport { AXEBambooHREmployeeEntityModifier } from './features/human-capital/employee-bamboohr.entity-modifier';\nimport { AXEHumanCapitalIntegrationDomainProvider } from './integration/human-capital.integration-domain.provider';\nimport { AXEBambooHRIntegrationProvider } from './integration/bamboohr.integration.provider';\nimport { provideBambooHRIntegrationRuntimeProvider } from './integration/bamboohr.integration-runtime.provider';\nimport { BambooHRExtensionManifest } from './manifest';\nimport { AXEBambooHRMenuProvider } from './menu.provider';\nimport { provideBambooHRSettingsProvider } from './settings.provider';\nimport { AXE_BAMBOOHR_LOGO_PROVIDER } from './brand/bamboohr-logo.provider';\n\n//#endregion\n\n@NgModule({\n imports: [AXMIntegrationManagementModule],\n providers: [\n AXE_BAMBOOHR_LOGO_PROVIDER,\n { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: BambooHRExtensionManifest, multi: true },\n { provide: AXP_MENU_PROVIDER, useClass: AXEBambooHRMenuProvider, multi: true },\n { provide: AXP_ENTITY_MODIFIER, useValue: AXEBambooHREmployeeEntityModifier, multi: true },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXEBambooHREmployeeLinkExpressionEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_INTEGRATION_DOMAIN_PROVIDER,\n useClass: AXEHumanCapitalIntegrationDomainProvider,\n multi: true,\n },\n { provide: AXP_INTEGRATION_PROVIDER, useClass: AXEBambooHRIntegrationProvider, multi: true },\n provideBambooHRIntegrationRuntimeProvider,\n provideBambooHRSettingsProvider,\n provideCommandSetups([\n {\n key: AXEBambooHRCommandKeys.ConnectionConnect,\n command: () =>\n import('./features/connect/connect-bamboohr.command').then((c) => c.ConnectBambooHRCommand),\n },\n ]),\n ],\n})\nexport class AXEBambooHRExtensionModule {}\n\n//#endregion\n","//#region ----- BambooHR mark vector paths -----\n\n/** Official BambooHR brand green (sampled from bamboohr.com wordmark). */\nexport const AXE_BAMBOOHR_MARK_GREEN = '#73C41D';\n\n/**\n * Icon-only BambooHR sprout (two leaves, no wordmark).\n * Traced from the official leaf mark on bamboohr.com media assets and fitted to 24×24.\n */\nexport const AXE_BAMBOOHR_MARK_PATH =\n 'M11.39 3.37 Q 14.66 4.84 16.92 7.49 Q 18.39 9.23 19.32 11.53 L 22 20.21 Q 21.82 20.63 21.63 20.29 L 19.54 19.85 L 17.74 19.69 L 15.65 19.09 L 12.81 17.74 L 11.08 16.32 L 8.1 12.73 L 3.98 8.62 L 2.11 7.04 Q 2 6.71 2.34 6.82 L 5.62 7.43 L 10.56 9.36 L 13.84 11.16 L 16.76 13.56 L 16.76 13.78 L 18.94 15.95 L 19.02 15.73 Q 17.2 11.55 14.82 7.94 L 11.39 3.37 Z';\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPLogoAppearance } from '@acorex-platform/framework-client/core';\nimport { Component, computed, input, ChangeDetectionStrategy } from '@angular/core';\nimport { AXE_BAMBOOHR_MARK_GREEN, AXE_BAMBOOHR_MARK_PATH } from './bamboohr-mark.paths';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axe-bamboohr-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]=\"markPath\" />\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]=\"markGreen\" [attr.d]=\"markPath\" />\n </svg>\n }\n }\n `,\n})\nexport class AXEBambooHRLogoComponent {\n appearance = input<AXPLogoAppearance>('colored');\n size = input(20);\n\n protected readonly markPath = AXE_BAMBOOHR_MARK_PATH;\n protected readonly markGreen = AXE_BAMBOOHR_MARK_GREEN;\n\n protected readonly resolvedAppearance = computed(() => {\n const value = this.appearance();\n return value === 'monochrome' ? 'monochrome' : 'colored';\n });\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["HcmRootConfig","RootConfig"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-extension-bamboohr-client.mjs","sources":["../../../../libs/extensions/bamboohr/client/src/lib/features/human-capital/bamboohr-expression-scope.ts","../../../../libs/extensions/bamboohr/client/src/lib/features/human-capital/bamboohr-employee-link-expression-evaluator-scope.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/features/human-capital/employee-bamboohr.entity-modifier.ts","../../../../libs/extensions/bamboohr/client/src/lib/integration/human-capital.integration-domain.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-logo-key.ts","../../../../libs/extensions/bamboohr/client/src/lib/integration/bamboohr.integration.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/integration/bamboohr.integration-runtime.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/manifest.ts","../../../../libs/extensions/bamboohr/client/src/lib/menu.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/settings.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-logo.provider.ts","../../../../libs/extensions/bamboohr/client/src/lib/bamboohr-extension.module.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-mark.paths.ts","../../../../libs/extensions/bamboohr/client/src/lib/brand/bamboohr-logo.component.ts","../../../../libs/extensions/bamboohr/client/src/acorex-platform-extension-bamboohr-client.ts"],"sourcesContent":["export const AXE_BAMBOOHR_EXPRESSION_SCOPE = 'BambooHRExtension';\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 { AXE_BAMBOOHR_PROVIDER_ID } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { RootConfig as HcmRootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport type { AXMHumanCapitalManagementEmployeeEntityModel } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXE_BAMBOOHR_EXPRESSION_SCOPE } from './bamboohr-expression-scope';\n\n//#endregion\n\nexport class AXEBambooHREmployeeLinkExpressionEvaluatorScopeProvider 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_BAMBOOHR_EXPRESSION_SCOPE, {\n hasEmployeeLink: async (platformEmployeeIdRaw?: unknown): Promise<boolean> => {\n const platformEmployeeId = typeof platformEmployeeIdRaw === 'string' ? platformEmployeeIdRaw.trim() : '';\n if (!platformEmployeeId) {\n return false;\n }\n\n const employee = (await this.entityService\n .withEntity(HcmRootConfig.module.name, HcmRootConfig.entities.employee.name)\n .data<string, AXMHumanCapitalManagementEmployeeEntityModel>()\n .byKey(platformEmployeeId)) as AXMHumanCapitalManagementEmployeeEntityModel | null;\n\n return employee?.integrationRef?.source === AXE_BAMBOOHR_PROVIDER_ID;\n },\n hasBambooHRConnection: async (): Promise<boolean> => {\n try {\n await this.integrationRuntime.getConnection({\n providerId: AXE_BAMBOOHR_PROVIDER_ID,\n connectionScope: 'tenant',\n });\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 { AXEBambooHRCommandKeys } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { RootConfig as HcmRootConfig } from '@acorex-platform/module-human-capital-management-client/contracts';\nimport { AXE_BAMBOOHR_EXPRESSION_SCOPE } from './bamboohr-expression-scope';\n\n//#endregion\n\nconst SYNC_ALL_ORDER = 36;\nconst SYNC_ONE_ORDER = 37;\n\nfunction buildSyncAllAction(): AXPEntityAction {\n return {\n name: AXEBambooHRCommandKeys.EmployeeSyncFromBambooHR,\n title: '@extensions-bamboohr:actions.sync-from-bamboohr.title',\n command: { name: AXEBambooHRCommandKeys.EmployeeSyncFromBambooHR },\n priority: 'secondary',\n type: AXPSystemActionType.Import,\n icon: 'fa-light fa-users',\n scope: AXPEntityCommandScope.TypeLevel,\n order: SYNC_ALL_ORDER,\n };\n}\n\nfunction buildSyncOneAction(): AXPEntityAction {\n return {\n name: AXEBambooHRCommandKeys.EmployeeSync,\n title: '@extensions-bamboohr:actions.sync.title',\n command: {\n name: AXEBambooHRCommandKeys.EmployeeSync,\n options: { platformEmployeeId: '{{ 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_ONE_ORDER,\n hidden: `{{ !(await ${AXE_BAMBOOHR_EXPRESSION_SCOPE}.hasEmployeeLink(context.eval(\"id\"))) }}`,\n };\n}\n\n/** Adds BambooHR sync actions to HumanCapitalManagement.Employee views. */\nexport const AXEBambooHREmployeeEntityModifier: AXPEntityModifierProvider = {\n entityName: HcmRootConfig.entities.employee.name,\n order: 50,\n modifier: (ctx) => {\n if (ctx.module.get() !== HcmRootConfig.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, AXEBambooHRCommandKeys.EmployeeSyncFromBambooHR)) {\n listActions.push(buildSyncAllAction());\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, AXEBambooHRCommandKeys.EmployeeSync)) {\n singleActions.push(buildSyncOneAction());\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 ----- Imports -----\n\nimport { AXP_INTEGRATION_CATEGORY, AXP_INTEGRATION_CAPABILITY } from '@acorex-platform/framework-shared/core';\nimport {\n type AXPIntegrationDomainProvider,\n AXPIntegrationDomainProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { AXE_BAMBOOHR_DOMAIN_ID, RootConfig } from '@acorex-platform/extension-bamboohr-client/contracts';\n\n//#endregion\n\n@Injectable()\nexport class AXEHumanCapitalIntegrationDomainProvider implements AXPIntegrationDomainProvider {\n async provide(context: AXPIntegrationDomainProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration.domain`;\n\n context.register({\n id: AXE_BAMBOOHR_DOMAIN_ID,\n module: RootConfig.module.name,\n displayName: `${I18N}.title`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n category: AXP_INTEGRATION_CATEGORY.HumanCapital,\n capabilities: [AXP_INTEGRATION_CAPABILITY.Sync, AXP_INTEGRATION_CAPABILITY.Import],\n sortOrder: 25,\n });\n }\n}\n\n//#endregion\n","//#region ----- BambooHR logo registry key -----\n\nexport const axpBambooHRLogoKey = 'bamboohr' as const;\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_INTEGRATION_AUTH_METHOD_TYPE,\n AXP_INTEGRATION_CAPABILITY,\n AXP_INTEGRATION_CONNECTION_SCOPE,\n AXPWidgetsList,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPIntegrationProvider, AXPIntegrationProviderContext } from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport {\n AXE_BAMBOOHR_DOMAIN_ID,\n AXE_BAMBOOHR_PROVIDER_ID,\n AXEBambooHRCommandKeys,\n RootConfig,\n} from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { axpBambooHRLogoKey } from '../brand/bamboohr-logo-key';\n\n//#endregion\n\n@Injectable()\nexport class AXEBambooHRIntegrationProvider implements AXPIntegrationProvider {\n async provide(context: AXPIntegrationProviderContext): Promise<void> {\n const I18N = `@${RootConfig.config.i18n}:integration`;\n\n context.register({\n domainId: AXE_BAMBOOHR_DOMAIN_ID,\n id: AXE_BAMBOOHR_PROVIDER_ID,\n module: RootConfig.module.name,\n displayName: `${I18N}.display-name`,\n description: `${I18N}.description`,\n icon: RootConfig.module.icon,\n logoKey: axpBambooHRLogoKey,\n capabilities: [AXP_INTEGRATION_CAPABILITY.Sync, AXP_INTEGRATION_CAPABILITY.Import],\n connectionScopes: [AXP_INTEGRATION_CONNECTION_SCOPE.Tenant],\n allowMultipleConnections: false,\n defaultConnectionKey: 'default',\n connectCommandKey: AXEBambooHRCommandKeys.ConnectionConnect,\n authMethods: [\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: 'companyDomain',\n options: { placeholder: `${I18N}.auth.api-token.company-domain.placeholder` },\n },\n {\n type: AXPWidgetsList.Editors.PasswordBox,\n path: 'apiKey',\n options: { placeholder: `${I18N}.auth.api-token.api-key.placeholder` },\n },\n ],\n },\n ],\n });\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_INTEGRATION_CONNECTION_STATUS,\n type AXPIntegrationProviderRuntimeHooks,\n type AXPIntegrationRuntimeContext,\n type AXPIntegrationValidationResult,\n} 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 type { AXEBambooHRConnectionConfig } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { AXE_BAMBOOHR_PROVIDER_ID } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, trim } from 'lodash-es';\n\n//#endregion\n\n@Injectable()\nexport class AXEBambooHRIntegrationRuntimeProvider implements AXPIntegrationRuntimeProvider {\n readonly providerId = AXE_BAMBOOHR_PROVIDER_ID;\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 };\n }\n\n private async validateConnection(ctx: AXPIntegrationRuntimeContext): Promise<AXPIntegrationValidationResult> {\n const config = (ctx.config ?? {}) as AXEBambooHRConnectionConfig;\n const companyDomain = trim(defaultTo(config.companyDomain, ''));\n const apiKey = trim(defaultTo(config.apiKey, await this.resolveApiKeyFromSecret(ctx)));\n\n if (!companyDomain || !apiKey) {\n return {\n valid: false,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Invalid,\n errorMessage: 'BambooHR company domain and API key are required.',\n };\n }\n\n return {\n valid: true,\n status: AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n externalAccountName: `${companyDomain}.bamboohr.com`,\n };\n }\n\n private async resolveApiKeyFromSecret(ctx: AXPIntegrationRuntimeContext): Promise<string> {\n if (!this.secretStore || !trim(defaultTo(ctx.secretRef, ''))) {\n return '';\n }\n const credentials = await this.secretStore.resolve(ctx.secretRef, ctx);\n return trim(defaultTo(credentials.apiToken ?? credentials.token ?? credentials.password, ''));\n }\n}\n\nexport const provideBambooHRIntegrationRuntimeProvider = {\n provide: AXP_INTEGRATION_RUNTIME_PROVIDER,\n useClass: AXEBambooHRIntegrationRuntimeProvider,\n multi: true,\n};\n\n//#endregion\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/extension-bamboohr-client/contracts';\n\nexport const BambooHRExtensionManifest: 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: 'human-capital',\n dependencies: [],\n};\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 { Injectable } from '@angular/core';\nimport {\n AXEBambooHRMenuKeys,\n RootConfig,\n AXPAdministrationPermissionKeys\n} from '@acorex-platform/extension-bamboohr-client/contracts';\n\n//#endregion\n\n@Injectable()\nexport class AXEBambooHRMenuProvider implements AXPMenuProvider {\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(AXEBambooHRMenuKeys.BambooHRExtensionConfig).exists) {\n configMenu.addItems([\n {\n name: AXEBambooHRMenuKeys.BambooHRExtensionConfig,\n text: '@extensions-bamboohr:module.menus.configuration.title',\n icon: module.icon,\n type: 'menu',\n priority: 8930,\n policy,\n children: [],\n },\n ]);\n }\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_SETTING_DEFINITION_PROVIDER,\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ----- Provider -----\n\n@Injectable()\nexport class AXEBambooHRSettingsProvider implements AXPSettingDefinitionProvider {\n async provide(_context: AXPSettingDefinitionProviderContext): Promise<void> {\n // Tenant BambooHR connections are managed on Administration → Integrations.\n }\n}\n\nexport const provideBambooHRSettingsProvider = {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXEBambooHRSettingsProvider,\n multi: true,\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_LOGO_PROVIDER,\n type AXPLogoProvider,\n type AXPLogoRequest,\n type AXPLogoView,\n} from '@acorex-platform/framework-client/core';\nimport { axpBambooHRLogoKey } from './bamboohr-logo-key';\n\n//#endregion\n\nconst bambooHRLogoProvider: AXPLogoProvider = {\n key: axpBambooHRLogoKey,\n resolve: async (request: AXPLogoRequest): Promise<AXPLogoView> => ({\n kind: 'component',\n load: () => import('./bamboohr-logo.component').then((module) => module.AXEBambooHRLogoComponent),\n inputs: {\n appearance: request.appearance,\n size: request.size,\n },\n }),\n};\n\nexport const AXE_BAMBOOHR_LOGO_PROVIDER = {\n provide: AXP_LOGO_PROVIDER,\n useValue: bambooHRLogoProvider,\n multi: true,\n} as const;\n","//#region ----- Imports -----\n\nimport { AXMIntegrationManagementModule } from '@acorex-platform/module-integration-management-client';\nimport {\n AXP_INTEGRATION_DOMAIN_PROVIDER,\n AXP_INTEGRATION_PROVIDER,\n AXP_MENU_PROVIDER,\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_MODIFIER } from '@acorex-platform/framework-client/layout/entity';\nimport { provideCommandSetups } from '@acorex-platform/framework-client/runtime';\nimport { NgModule } from '@angular/core';\nimport { AXEBambooHRCommandKeys } from '@acorex-platform/extension-bamboohr-client/contracts';\nimport { AXEBambooHREmployeeLinkExpressionEvaluatorScopeProvider } from './features/human-capital/bamboohr-employee-link-expression-evaluator-scope.provider';\nimport { AXEBambooHREmployeeEntityModifier } from './features/human-capital/employee-bamboohr.entity-modifier';\nimport { AXEHumanCapitalIntegrationDomainProvider } from './integration/human-capital.integration-domain.provider';\nimport { AXEBambooHRIntegrationProvider } from './integration/bamboohr.integration.provider';\nimport { provideBambooHRIntegrationRuntimeProvider } from './integration/bamboohr.integration-runtime.provider';\nimport { BambooHRExtensionManifest } from './manifest';\nimport { AXEBambooHRMenuProvider } from './menu.provider';\nimport { provideBambooHRSettingsProvider } from './settings.provider';\nimport { AXE_BAMBOOHR_LOGO_PROVIDER } from './brand/bamboohr-logo.provider';\n\n//#endregion\n\n@NgModule({\n imports: [AXMIntegrationManagementModule],\n providers: [\n AXE_BAMBOOHR_LOGO_PROVIDER,\n { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: BambooHRExtensionManifest, multi: true },\n { provide: AXP_MENU_PROVIDER, useClass: AXEBambooHRMenuProvider, multi: true },\n { provide: AXP_ENTITY_MODIFIER, useValue: AXEBambooHREmployeeEntityModifier, multi: true },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXEBambooHREmployeeLinkExpressionEvaluatorScopeProvider,\n multi: true,\n },\n {\n provide: AXP_INTEGRATION_DOMAIN_PROVIDER,\n useClass: AXEHumanCapitalIntegrationDomainProvider,\n multi: true,\n },\n { provide: AXP_INTEGRATION_PROVIDER, useClass: AXEBambooHRIntegrationProvider, multi: true },\n provideBambooHRIntegrationRuntimeProvider,\n provideBambooHRSettingsProvider,\n provideCommandSetups([\n {\n key: AXEBambooHRCommandKeys.ConnectionConnect,\n command: () =>\n import('./features/connect/connect-bamboohr.command').then((c) => c.ConnectBambooHRCommand),\n },\n ]),\n ],\n})\nexport class AXEBambooHRExtensionModule {}\n\n//#endregion\n","//#region ----- BambooHR mark vector paths -----\n\n/** Official BambooHR brand green (sampled from bamboohr.com wordmark). */\nexport const AXE_BAMBOOHR_MARK_GREEN = '#73C41D';\n\n/**\n * Icon-only BambooHR sprout (two leaves, no wordmark).\n * Traced from the official leaf mark on bamboohr.com media assets and fitted to 24×24.\n */\nexport const AXE_BAMBOOHR_MARK_PATH =\n 'M11.39 3.37 Q 14.66 4.84 16.92 7.49 Q 18.39 9.23 19.32 11.53 L 22 20.21 Q 21.82 20.63 21.63 20.29 L 19.54 19.85 L 17.74 19.69 L 15.65 19.09 L 12.81 17.74 L 11.08 16.32 L 8.1 12.73 L 3.98 8.62 L 2.11 7.04 Q 2 6.71 2.34 6.82 L 5.62 7.43 L 10.56 9.36 L 13.84 11.16 L 16.76 13.56 L 16.76 13.78 L 18.94 15.95 L 19.02 15.73 Q 17.2 11.55 14.82 7.94 L 11.39 3.37 Z';\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPLogoAppearance } from '@acorex-platform/framework-client/core';\nimport { Component, computed, input, ChangeDetectionStrategy } from '@angular/core';\nimport { AXE_BAMBOOHR_MARK_GREEN, AXE_BAMBOOHR_MARK_PATH } from './bamboohr-mark.paths';\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axe-bamboohr-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]=\"markPath\" />\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]=\"markGreen\" [attr.d]=\"markPath\" />\n </svg>\n }\n }\n `,\n})\nexport class AXEBambooHRLogoComponent {\n appearance = input<AXPLogoAppearance>('colored');\n size = input(20);\n\n protected readonly markPath = AXE_BAMBOOHR_MARK_PATH;\n protected readonly markGreen = AXE_BAMBOOHR_MARK_GREEN;\n\n protected readonly resolvedAppearance = computed(() => {\n const value = this.appearance();\n return value === 'monochrome' ? 'monochrome' : 'colored';\n });\n}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["HcmRootConfig","RootConfig"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/extension-bamboohr-client",
3
- "version": "0.0.32",
3
+ "version": "0.0.37",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",