{"version":3,"file":"skyux-config.mjs","sources":["../../../../../libs/components/config/src/lib/app-config-host.ts","../../../../../libs/components/config/src/lib/app-config-params.ts","../../../../../libs/components/config/src/lib/app-config.module.ts","../../../../../libs/components/config/src/lib/config.ts","../../../../../libs/components/config/src/lib/params.ts","../../../../../libs/components/config/src/lib/params-provider.ts","../../../../../libs/components/config/src/skyux-config.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { SkyuxConfigHost } from './config';\n\nconst DEFAULTS: SkyuxConfigHost = {\n  frameOptions: {\n    none: true,\n  },\n  url: 'https://host.nxt.blackbaud.com/',\n};\n\n/**\n * Host configuration for components and applications.\n * @deprecated Use `SkyAppConfig.skyux.host` instead.\n */\n@Injectable()\nexport class SkyAppConfigHost {\n  public get host(): SkyuxConfigHost {\n    return this.#_host;\n  }\n\n  #_host!: SkyuxConfigHost;\n\n  public init(config?: SkyuxConfigHost): void {\n    this.#_host = {\n      ...DEFAULTS,\n      ...(config || {}),\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyuxConfigParams } from './config-params';\n\nconst DEFAULTS: SkyuxConfigParams = {\n  envid: {\n    required: false,\n  },\n  leid: {\n    required: false,\n  },\n  svcid: {\n    required: false,\n  },\n};\n\n/**\n * @deprecated Use `SkyAppConfig.skyux.params` instead.\n */\n@Injectable()\nexport class SkyAppConfigParams {\n  public get params(): SkyuxConfigParams {\n    return this.#_params;\n  }\n\n  #_params!: SkyuxConfigParams;\n\n  public init(params?: SkyuxConfigParams): void {\n    this.#_params = {\n      ...DEFAULTS,\n      ...(params || {}),\n    };\n  }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { SkyAppConfigHost } from './app-config-host';\nimport { SkyAppConfigModuleForRootArgs } from './app-config-module-for-root-args';\nimport { SkyAppConfigParams } from './app-config-params';\n\n/**\n * @deprecated Provide `SkyAppConfig` at the root instead.\n */\n@NgModule({})\nexport class SkyAppConfigModule {\n  public static forRoot(\n    config: SkyAppConfigModuleForRootArgs = {},\n  ): ModuleWithProviders<SkyAppConfigModule> {\n    return {\n      ngModule: SkyAppConfigModule,\n      providers: [\n        {\n          provide: SkyAppConfigParams,\n          useFactory(): SkyAppConfigParams {\n            const appConfigParams = new SkyAppConfigParams();\n            appConfigParams.init(config.params);\n            return appConfigParams;\n          },\n        },\n        {\n          provide: SkyAppConfigHost,\n          useFactory(): SkyAppConfigHost {\n            const appConfigHost = new SkyAppConfigHost();\n            appConfigHost.init(config.host);\n            return appConfigHost;\n          },\n        },\n      ],\n    };\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyuxConfigParams } from './config-params';\nimport { SkyuxConfigRemoteModules } from './config-remote-modules';\nimport { SkyAppRuntimeConfigParams } from './params';\n\nexport interface RuntimeConfigApp {\n  base: string;\n  inject: boolean;\n  name?: string;\n  template: string;\n}\n\n/**\n * @experimental\n */\nexport interface SkyuxRuntimeConfigLocalDev {\n  assetsBaseUrl?: string;\n  hasRemoteModules?: boolean;\n}\n\nexport class SkyuxPactConfig {\n  public providers?: Record<\n    string,\n    {\n      host?: string;\n      port?: string;\n      fullUrl?: string;\n    }\n  >;\n  public pactProxyServer?: string;\n}\n\nexport interface SkyuxConfigE2ETestSettings {\n  browserSet?: 'speedy';\n}\n\nexport interface SkyuxConfigUnitTestSettings {\n  browserSet?: 'speedy' | 'quirky' | 'paranoid';\n}\n\nexport interface SkyuxConfigTestSettings {\n  e2e?: SkyuxConfigE2ETestSettings;\n  unit?: SkyuxConfigUnitTestSettings;\n}\n\nexport interface SkyuxConfigLibrarySettings {\n  whitelistedNonPeerDependencies?: string[];\n}\n\nexport interface RuntimeConfig {\n  app: RuntimeConfigApp;\n  command?: string; // Dynamically added in \"higher up\" webpacks\n  componentsPattern: string;\n  componentsIgnorePattern: string;\n  handle404?: boolean; // Dynamically added in sky-pages-module-generator.js\n  includeRouteModule: boolean;\n  pactConfig?: SkyuxPactConfig;\n  params: SkyAppRuntimeConfigParams;\n  routes?: object[]; // Dynamically added in sky-pages-module-generator.js\n  routesPattern: string;\n  runtimeAlias: string;\n  spaPathAlias: string;\n  skyPagesOutAlias: string;\n  skyuxPathAlias: string;\n  srcPath: string;\n  useTemplateUrl: boolean;\n  localDev?: SkyuxRuntimeConfigLocalDev;\n}\n\nexport interface SkyuxConfigA11y {\n  rules?: any;\n}\n\nexport type SkyuxConfigAppSupportedTheme = 'default' | 'modern';\n\nexport interface SkyuxConfigAppBrand {\n  name: string;\n  version: string;\n}\n\nexport interface SkyuxConfigAppTheming {\n  supportedThemes: SkyuxConfigAppSupportedTheme[];\n  theme: SkyuxConfigAppSupportedTheme;\n  brand?: SkyuxConfigAppBrand;\n}\n\nexport interface SkyuxConfigApp {\n  base?: string;\n  externals?: object;\n  port?: string;\n  styles?: string[];\n  theming?: SkyuxConfigAppTheming;\n  title?: string;\n}\n\nexport interface SkyuxConfigAuthSettings {\n  blackbaudEmployee?: boolean;\n}\n\nexport interface SkyuxConfigHostBBCheckout {\n  version: '2';\n}\n\nexport interface SkyuxConfigHostFrameOptionsNone {\n  blackbaud?: false;\n  none: true;\n  self?: false;\n  urls?: string[];\n}\n\nexport interface SkyuxConfigHostFrameOptionsOthers {\n  blackbaud?: boolean;\n  none?: false;\n  self?: boolean;\n  urls?: string[];\n}\n\nexport type SkyuxConfigHostCspDirectives = Record<string, string[]>;\n\nexport interface SkyuxConfigHostCsp {\n  enabled: boolean;\n  directives?: SkyuxConfigHostCspDirectives;\n}\n\n/**\n * Blackbaud Only - Specifies configuration options for communication with SKY UX Host.\n */\nexport interface SkyuxConfigHost {\n  bbCheckout?: SkyuxConfigHostBBCheckout;\n  csp?: SkyuxConfigHostCsp;\n  frameOptions?:\n    | SkyuxConfigHostFrameOptionsNone\n    | SkyuxConfigHostFrameOptionsOthers;\n  url?: string;\n}\n\nexport interface SkyuxConfigAnyAllSet {\n  any?: string[];\n  all?: string[];\n}\n\nexport interface SkyuxConfig {\n  $schema?: string;\n  a11y?: SkyuxConfigA11y | boolean;\n  angularSettings?: {\n    defaultProject: string;\n  };\n  app?: SkyuxConfigApp;\n  appSettings?: any;\n  auth?: boolean;\n  authSettings?: SkyuxConfigAuthSettings;\n  codeCoverageThreshold?: 'none' | 'standard' | 'strict';\n  command?: string;\n  compileMode?: string;\n  cssPath?: string;\n  dependenciesForTranspilation?: string[];\n  enableIvy?: boolean;\n  help?: any;\n  host?: SkyuxConfigHost;\n  importPath?: string;\n  librarySettings?: SkyuxConfigLibrarySettings;\n  mode?: string;\n  moduleAliases?: Record<string, string>;\n  name?: string;\n  pacts?: any[];\n  params?: SkyuxConfigParams; // List of allowed params\n  pipelineSettings?: any;\n  plugins?: string[];\n  redirects?: Record<string, string>;\n  remoteModules?: SkyuxConfigRemoteModules;\n  routes?: {\n    public?: {\n      title?: string;\n      description?: string;\n      global?: boolean;\n      route: string;\n      claims?: SkyuxConfigAnyAllSet;\n      entitlementType?: string;\n      entitlements?: SkyuxConfigAnyAllSet;\n      permissionId?: string;\n      permissions?: {\n        admin?: boolean;\n        legalEntityAdmin?: boolean;\n        permissionIds?: SkyuxConfigAnyAllSet;\n      };\n    }[];\n    referenced?: {\n      app: string;\n      route: string;\n    }[];\n  };\n  testSettings?: SkyuxConfigTestSettings;\n  omnibar?: any;\n  useHashRouting?: boolean;\n  skyuxModules?: string[];\n}\n\n@Injectable()\nexport class SkyAppConfig {\n  // Any properties dynamically added via code\n  public runtime!: RuntimeConfig;\n\n  // Any properties defined in or inherited from skyuxconfig.json / skyuxconfig.command.json\n  public skyux!: SkyuxConfig;\n}\n","import { HttpParams, HttpUrlEncodingCodec } from '@angular/common/http';\n\nimport { SkyuxConfigParams } from './config-params';\nimport { SkyConfigGetLinkUrlOptions } from './types/get-link-url-options';\nimport { SkyConfigQueryParams } from './types/query-params';\n\n/**\n * Override Angular's default encoder because it excludes certain characters.\n * @see https://github.com/angular/angular/blob/cb31dbc75ca4141d61cec3ba6e60505198208a0a/packages/common/http/src/params.ts#L96-L111\n */\nclass UrlEncoder extends HttpUrlEncodingCodec {\n  public override encodeKey(key: string | number | boolean): string {\n    return encodeURIComponent(key);\n  }\n\n  public override encodeValue(key: string | number | boolean): string {\n    return encodeURIComponent(key);\n  }\n}\n\n/**\n * Given a \"url\" (could be just querystring, or fully qualified),\n * Returns the extracted HttpParams.\n */\nfunction getUrlSearchParams(url: string): HttpParams {\n  let qs = '';\n\n  if (url.indexOf('?') > -1) {\n    qs = url.split('?')[1];\n    qs = qs.split('#')[0];\n  }\n\n  return new HttpParams({\n    encoder: new UrlEncoder(),\n    fromString: qs,\n  });\n}\n\nexport class SkyAppRuntimeConfigParams {\n  #params: Record<string, string> = {};\n\n  #defaultParamValues: Record<string, string> = {};\n\n  #requiredParams: string[] = [];\n\n  #encodedParams: string[] = [];\n\n  #excludeFromLinksParams = new Set<string>();\n  #excludeFromRequestsParams = new Set<string>();\n\n  constructor(url: string, configParams: SkyuxConfigParams) {\n    const allowed: string[] = [];\n\n    for (const paramName of Object.keys(configParams)) {\n      const configParam = configParams[paramName];\n\n      // The config param could be present but be set to false/undefined indicating\n      // an override of the default parameter.\n      if (configParam) {\n        allowed.push(paramName);\n\n        // A boolean value may be present to simply indicate that a parameter is allowed.\n        // If the type is object, look for additional config properties.\n        if (typeof configParam === 'object') {\n          const paramValue = configParam.value;\n\n          if (configParam.required) {\n            this.#requiredParams.push(paramName);\n          }\n\n          if (paramValue) {\n            this.#params[paramName] = paramValue;\n            this.#defaultParamValues[paramName] = paramValue;\n          }\n\n          if (configParam.excludeFromLinks) {\n            this.#excludeFromLinksParams.add(paramName);\n          }\n\n          if (configParam.excludeFromRequests) {\n            this.#excludeFromRequestsParams.add(paramName);\n          }\n        }\n      }\n    }\n\n    const httpParams = getUrlSearchParams(url);\n\n    // Get uppercase keys.\n    const allowedKeysUC = allowed.map((key) => key.toUpperCase());\n    const urlSearchParamKeys = Array.from(httpParams.keys());\n\n    // Filter to allowed params and override default values.\n    urlSearchParamKeys.forEach((givenKey) => {\n      const givenKeyUC = givenKey.toUpperCase();\n      allowedKeysUC.forEach((allowedKeyUC, index) => {\n        if (givenKeyUC === allowedKeyUC) {\n          const param = httpParams.get(givenKey);\n\n          if (param) {\n            this.#params[allowed[index]] = param;\n            this.#encodedParams.push(givenKey);\n          }\n        }\n      });\n    });\n  }\n\n  /**\n   * Does the key exist\n   */\n  public has(key: string): boolean {\n    return Object.prototype.hasOwnProperty.call(this.#params, key);\n  }\n\n  /**\n   * Are all the required params defined?\n   */\n  public hasAllRequiredParams(): boolean {\n    if (this.#requiredParams.length === 0) {\n      return true;\n    }\n\n    return this.#requiredParams.every((param: string) => {\n      return this.#params[param] !== undefined;\n    });\n  }\n\n  /**\n   * Returns a flag indicating whether a parameter is required.\n   */\n  public isRequired(key: string): boolean {\n    return this.#requiredParams.indexOf(key) >= 0;\n  }\n\n  /**\n   * Returns the decoded value of the requested param.\n   * @param key The parameter's key.\n   */\n  public get(key: string): string | undefined {\n    if (this.has(key)) {\n      return this.#params[key];\n    }\n\n    return;\n  }\n\n  /**\n   * Returns the params object.\n   * @param excludeDefaults Exclude params that have default values\n   */\n  public getAll(excludeDefaults?: boolean): Record<string, string> {\n    const filteredParams: Record<string, string> = {};\n\n    this.getAllKeys().forEach((key) => {\n      if (\n        !excludeDefaults ||\n        this.#params[key] !== this.#defaultParamValues[key]\n      ) {\n        filteredParams[key] = this.#params[key];\n      }\n    });\n\n    return filteredParams;\n  }\n\n  /**\n   * Returns all keys for current params.\n   */\n  public getAllKeys(): string[] {\n    return Object.keys(this.#params);\n  }\n\n  /**\n   * Adds the current params to the supplied URL.\n   */\n  public getUrl(url: string): string {\n    return this.#buildUrlWithParams(url, this.#excludeFromRequestsParams);\n  }\n\n  /**\n   * Adds the current params to the supplied link URL.\n   * @param url The url to update.\n   * @param options Options used to create link URLs.\n   */\n  public getLinkUrl(url: string, options?: SkyConfigGetLinkUrlOptions): string {\n    return this.#buildUrlWithParams(\n      url,\n      new Set([\n        ...this.#excludeFromRequestsParams,\n        ...this.#excludeFromLinksParams,\n      ]),\n      options?.queryParams,\n    );\n  }\n\n  #buildUrlWithParams(\n    url: string,\n    excludeParams: Set<string>,\n    queryParams?: SkyConfigQueryParams,\n  ): string {\n    const urlParams = getUrlSearchParams(url);\n\n    // Determine if the url params need to be modified.\n    const urlParamsRequireModification = urlParams\n      .keys()\n      .some((key) => excludeParams.has(key) || queryParams?.[key]);\n\n    const [beforeFragment, fragment] = url.split('#', 2);\n\n    const root = urlParamsRequireModification\n      ? beforeFragment.split('?')[0]\n      : beforeFragment;\n\n    let unifiedParams = urlParamsRequireModification\n      ? urlParams\n      : getUrlSearchParams('');\n\n    // Remove excluded params.\n    if (urlParamsRequireModification) {\n      for (const paramName of excludeParams.keys()) {\n        unifiedParams = unifiedParams.delete(paramName);\n      }\n    }\n\n    // Add provided parameters to the URL.\n    if (queryParams) {\n      for (const [paramName, decodedValue] of Object.entries(queryParams)) {\n        if (decodedValue !== undefined) {\n          unifiedParams = unifiedParams.set(paramName, decodedValue);\n        }\n      }\n    }\n\n    // Respect pre-existing params which already have values.\n    for (const key of this.getAllKeys()) {\n      if (\n        !excludeParams.has(key) &&\n        !urlParams.has(key) &&\n        !unifiedParams.has(key)\n      ) {\n        const decodedValue = this.get(key);\n        if (decodedValue) {\n          unifiedParams = unifiedParams.append(key, decodedValue);\n        }\n      }\n    }\n\n    // Combine all requested parameters and their values, e.g. 'a=b'.\n    const joinedParams = unifiedParams.toString();\n    const delimiter = root.includes('?') ? '&' : '?';\n\n    // Build and return the final URL.\n    return (\n      root +\n      (joinedParams.length === 0 ? '' : `${delimiter}${joinedParams}`) +\n      (fragment ? `#${fragment}` : '')\n    );\n  }\n}\n","import { Injectable, Optional } from '@angular/core';\n\nimport { SkyAppConfigParams } from './app-config-params';\nimport { SkyAppRuntimeConfigParams } from './params';\n\n/**\n * Provides methods to interact with runtime config query parameters.\n * @deprecated Use `SkyAppConfig.runtime.params` instead.\n */\n@Injectable({\n  providedIn: 'root',\n})\nexport class SkyAppRuntimeConfigParamsProvider {\n  public get params(): SkyAppRuntimeConfigParams {\n    return this.#_params;\n  }\n\n  #_params: SkyAppRuntimeConfigParams;\n\n  constructor(@Optional() configParams?: SkyAppConfigParams) {\n    this.#_params = new SkyAppRuntimeConfigParams(\n      window.location.href,\n      configParams?.params || {},\n    );\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["DEFAULTS","i1.SkyAppConfigParams"],"mappings":"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"}