{"version":3,"file":"prizm-ui-core.mjs","sources":["../../../../libs/core/src/lib/utils/format/pad-start.ts","../../../../libs/core/src/lib/utils/assert.ts","../../../../libs/core/src/lib/utils/format/px.ts","../../../../libs/core/src/lib/utils/format/string.ts","../../../../libs/core/src/lib/utils/format/size.ts","../../../../libs/core/src/lib/utils/fps.ts","../../../../libs/core/src/lib/decorators/default-prop.ts","../../../../libs/core/src/lib/decorators/auto-emit.ts","../../../../libs/core/src/lib/decorators/observable.ts","../../../../libs/core/src/lib/exceptions/pure.exception.ts","../../../../libs/core/src/lib/decorators/pure.ts","../../../../libs/core/src/lib/decorators/required-setter.ts","../../../../libs/core/src/lib/const/empty.ts","../../../../libs/core/src/lib/abstract/test-id.ts","../../../../libs/core/src/prizm-ui-core.ts"],"sourcesContent":["/**\n * @deprecated use String.prototype.padStart in 2.0 (after Chrome 49 support is dropped)\n * Pads a string with symbols in the beginning\n *\n * @param sourceString\n * @param minResultLength\n * @param padString string to pad with\n */\nexport function prizmPadStart(sourceString: string, minResultLength: number, padString = ` `): string {\n  const padSize = minResultLength - sourceString.length;\n\n  if (padSize <= 0) {\n    return sourceString;\n  }\n\n  return padString.repeat(padSize / padString.length).slice(0, padSize) + sourceString;\n}\n","export enum PRIZM_LOG_LEVEL {\n  warn,\n  error,\n  log,\n}\n\nexport const prizmAssert = {\n  enabled: [] as PRIZM_LOG_LEVEL[],\n  defaultLevel: PRIZM_LOG_LEVEL.error,\n  get assertBy(): (assertion: boolean, level: PRIZM_LOG_LEVEL, ...args: unknown[]) => void {\n    return (assertion: boolean, level: PRIZM_LOG_LEVEL, ...args: unknown[]): void => {\n      if (assertion) return;\n      if (!this.enabled.includes(level)) return;\n      switch (level) {\n        case PRIZM_LOG_LEVEL.error:\n          return void console.error(...args);\n        case PRIZM_LOG_LEVEL.warn:\n          return void console.warn(...args);\n        case PRIZM_LOG_LEVEL.log:\n          return void console.log(...args);\n      }\n    };\n  },\n  get assert(): (assertion: boolean, ...args: unknown[]) => void {\n    return (assertion: boolean, ...args: unknown[]): void => {\n      return this.assertBy(assertion, this.defaultLevel, ...args);\n    };\n  },\n  get assertWarning(): (assertion: boolean, ...args: unknown[]) => void {\n    return (assertion: boolean, ...args: unknown[]): void => {\n      return this.assertBy(assertion, PRIZM_LOG_LEVEL.warn, ...args);\n    };\n  },\n};\n","import { prizmAssert } from '../assert';\n\n/**\n * Converts a numeric value to a string with 'px' unit.\n * Assuming this is the purpose of the prizmPx function.\n *\n * @param {number} value - The numeric value to convert.\n * @return {string} The value converted to a string with 'px' appended.\n */\nexport function prizmPx(value: number | string): string {\n  prizmAssert.assert(Number.isFinite(value), `Value must be finite number`);\n\n  return `${value}px`;\n}\n","export function prizmCapitalizeFirstLetter(string: string): string {\n  return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport function prizmGetNumberWithZero(n: number): string {\n  if (n < 10) {\n    return `0${n}`;\n  }\n  return n + '';\n}\n","/**\n * Validates if the provided string is a valid CSS size string.\n *\n * @param {string} value - The string to check.\n * @return {boolean} True if the string is a valid CSS size string, false otherwise.\n */\nexport function prizmIsValidSizeString(value: string): boolean {\n  // Updated regex to check for numeric value followed by a valid CSS unit\n  return !!value && /^\\d+(.\\d+)?(px|em|rem|vh|vw|vmin|vmax)$/.test(value);\n}\n","import { defer, Observable } from 'rxjs';\n\nexport async function prizmGetFPS(): Promise<number> {\n  return new Promise(resolve =>\n    requestAnimationFrame(t1 => requestAnimationFrame(t2 => resolve(1000 / (t2 - t1))))\n  );\n}\n\nexport function prizmGetFPS$(): Observable<number> {\n  return defer(() => prizmGetFPS());\n}\n","import { PrizmBooleanHandler } from '../types/handler';\nimport { prizmAssert } from '../utils';\n\n/**\n * Decorator for checking input values for undefined. You can also pass\n * optional assertion to check input against.\n *\n * CAUTION: This decorator overwrites other getters and setters.\n */\nexport function prizmDefaultProp<T extends Record<string, any>, K extends keyof T>(\n  assertion?: PrizmBooleanHandler<T[K]>,\n  ...args: unknown[]\n): PropertyDecorator {\n  return (target, key): void => {\n    const { name } = target.constructor;\n    const errorGetDefaultMessage = errorGetDefault(key, name);\n    const errorSetDefaultMessage = errorSetDefault(key, name);\n\n    Object.defineProperty(target, key, {\n      get(): undefined {\n        prizmAssert.assertWarning(false, errorGetDefaultMessage);\n\n        return undefined;\n      },\n      set(this: T, initialValue: T[K]) {\n        const isValid = initialValue !== undefined;\n        const errorMessage = errorSetDefaultInitial(key, name);\n        let currentValue = initialValue;\n\n        prizmAssert.assertWarning(isValid, errorMessage);\n\n        if (isValid && assertion) {\n          prizmAssert.assertWarning(\n            assertion.call(this, initialValue),\n            `${String(key)} in ${name} received:`,\n            initialValue,\n            ...args\n          );\n        }\n\n        Object.defineProperty(this, key, {\n          get(): T[K] {\n            return currentValue;\n          },\n          set(this: T, value: T[K]) {\n            const isValid = value !== undefined;\n            const backupValue = initialValue;\n\n            prizmAssert.assertWarning(isValid, errorSetDefaultMessage, String(backupValue));\n\n            if (isValid && assertion) {\n              prizmAssert.assertWarning(\n                assertion.call(this, value),\n                `${String(key)} in ${name} received:`,\n                value,\n                ...args\n              );\n            }\n\n            currentValue = isValid ? value : backupValue;\n          },\n        });\n      },\n    });\n  };\n}\n\nfunction errorGetDefault(key: string | symbol, component: string): string {\n  return `Default value for ${String(key)} was not provided in ${component}, error in Prizm UI`;\n}\n\nfunction errorSetDefault(key: string | symbol, component: string): string {\n  return `Undefined was passed as ${String(\n    key\n  )} to ${component}, which is invalid input, using default value:`;\n}\n\nfunction errorSetDefaultInitial(key: string | symbol, component: string): string {\n  return `Undefined was passed as default value for ${String(key)} to ${component}, error in Prizm`;\n}\n","import { Subject } from 'rxjs';\n\nexport type PrizmAutoEmitCalculate<Val, BaseClass, R = unknown> = (val: Val, value: BaseClass) => R;\n\nexport function prizmAutoEmit<T>(\n  options: {\n    defaultValue?: T;\n    /**\n     * default name `${name}Change`\n     * */\n    name?: string | symbol;\n    calculate?: PrizmAutoEmitCalculate<any, any, T>;\n  } = {}\n): PropertyDecorator {\n  return (target: any, key): void => {\n    const defaultValue = options.defaultValue ?? null;\n    const memberName = key as string;\n    const hiddenPropertyName = options.name ?? `${memberName}Change`;\n    let lastValue: T;\n    Object.defineProperty(target, memberName, {\n      set(newValue: T) {\n        const value = (lastValue = newValue ?? (defaultValue as T));\n        const method = this[hiddenPropertyName] as Subject<T>;\n        if (typeof method?.next !== 'function') {\n          console.error('prizmAutoEmit: Can find subject', {\n            method,\n            hiddenPropertyName,\n            value,\n            self: this,\n          });\n          return;\n        }\n        method.next(\n          (typeof options?.calculate === 'function' ? (options?.calculate?.(value, this) as T) : value) ??\n            (defaultValue as T)\n        );\n      },\n      get() {\n        return lastValue;\n      },\n    });\n  };\n}\n","import { AsyncSubject, BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\nexport function prizmObservable<T>(\n  options: {\n    defaultValue?: T;\n    postfix?: string;\n    /**\n     * default name it is `${name}$$`\n     * */\n    name?: string | symbol;\n    subject?:\n      | (BehaviorSubject<T> | ReplaySubject<T> | AsyncSubject<T> | Subject<T>)\n      | (() => BehaviorSubject<T> | ReplaySubject<T> | AsyncSubject<T> | Subject<T>);\n    attributes?: PropertyDescriptor;\n  } = {}\n): PropertyDecorator {\n  return (rTarget: any, key): void => {\n    const postfix = options.postfix ?? '$$';\n    const defaultValue = options.defaultValue ?? null;\n    const subject =\n      typeof options.subject === 'function' ? options.subject() : (options.subject ?? new Subject<T>());\n    const memberName = key as string;\n    let lastValue: T;\n    const hiddenPropertyName = options.name ?? `${memberName}${postfix}`;\n    function createBaseProperty(obj: unknown): void {\n      Object.defineProperty(obj, hiddenPropertyName, {\n        ...{ enumerable: false },\n        ...(options?.attributes ?? {}),\n        value: subject,\n      });\n    }\n\n    Object.defineProperty(rTarget, memberName, {\n      set(newValue: T) {\n        const value = (lastValue = (newValue ?? defaultValue) as T);\n\n        let method = this[hiddenPropertyName] as Subject<T>;\n\n        if (!method?.next) {\n          createBaseProperty(this);\n          method = this[hiddenPropertyName];\n        }\n        method.next(value);\n      },\n      get() {\n        const method = this[hiddenPropertyName] as Subject<T>;\n        if (!method?.next) {\n          createBaseProperty(this);\n          subject.next((lastValue = defaultValue as T));\n        }\n        return lastValue;\n      },\n    });\n  };\n}\n","export class PrizmPureException extends Error {\n  constructor() {\n    super('prizmPure can only be used with functions or getters');\n  }\n}\n","import { PrizmPureException } from '../exceptions/pure.exception';\n\n/**\n * Implements lazy initialization for getter or memoization of a function call similar to pure {@link: Pipe}.\n * Replaces getter with its calculated value upon first call or keeps track of last call arguments and returned\n * value for function, skipping calculation when arguments are strictly the same.\n *\n * @throws error if used not on getter or function\n *\n * CAUTION: `this` is not available inside such functions/getters, they must be pure.\n */\nexport function prizmPure<T>(\n  // eslint-disable-next-line @typescript-eslint/ban-types\n  _target: object,\n  propertyKey: string,\n  { get, enumerable, value }: TypedPropertyDescriptor<T>\n): TypedPropertyDescriptor<T> {\n  if (get) {\n    return {\n      enumerable,\n      get(): T {\n        const value = get.call(this);\n\n        Object.defineProperty(this, propertyKey, { enumerable, value });\n\n        return value;\n      },\n    };\n  }\n\n  if (typeof value !== 'function') {\n    throw new PrizmPureException();\n  }\n\n  const original = value;\n\n  return {\n    enumerable,\n    get: function (): T {\n      let previousArgs: readonly unknown[] = [];\n      let originalFnWasCalledLeastAtOnce = false;\n      let pureValue: unknown;\n\n      const patched = (...args: unknown[]): unknown => {\n        const isPure =\n          originalFnWasCalledLeastAtOnce &&\n          previousArgs.length === args.length &&\n          args.every((arg, index) => arg === previousArgs[index]);\n\n        if (isPure) {\n          return pureValue;\n        }\n\n        previousArgs = args;\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        pureValue = original.apply(this, args);\n        originalFnWasCalledLeastAtOnce = true;\n\n        return pureValue;\n      };\n\n      Object.defineProperty(this, propertyKey, { value: patched });\n\n      return patched as unknown as T;\n    },\n  };\n}\n","import { prizmAssert } from '../utils';\n\n/**\n * Decorator for checking input setter values against a custom assertion which\n * takes value passed to input setter and component instance as arguments.\n * It specifically checks for undefined values and prevents calls to the\n * original setter in this case.\n */\nexport function prizmRequiredSetter<T extends Record<string, unknown>, K extends keyof T>(\n  assertion?: (a: unknown) => boolean,\n  ...args: unknown[]\n): MethodDecorator {\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  return (\n    target: Record<string, unknown>,\n    key,\n    { configurable, enumerable, get, set }: PropertyDescriptor\n  ): PropertyDescriptor => {\n    const { name } = target.constructor;\n\n    return {\n      configurable,\n      enumerable,\n      get,\n      set(this: T, value: T[K]): void {\n        if (value !== undefined && assertion) {\n          prizmAssert.assert(\n            assertion.call(this, value),\n            `${String(key)} in ${name} received:`,\n            value,\n            ...args\n          );\n        }\n\n        if (!set || value === undefined) {\n          prizmAssert.assert(value !== undefined, errorSet(key, name));\n\n          return;\n        }\n\n        set.call(this, value);\n      },\n    };\n  };\n}\n\nfunction errorSet(key: string | symbol, component: string): string {\n  return `Undefined was passed as ${String(key)} to ${component}, setter will not be called`;\n}\n","import { QueryList } from '@angular/core';\n/**\n * For type safety when using @ContentChildren and @ViewChildren\n *\n * NOTE: Be careful subscribing to 'changes'\n */\nexport const PRIZM_EMPTY_QUERY = new QueryList<unknown>();\nexport const PRIZM_EMPTY_ARRAY: [] = [];\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const PRIZM_EMPTY_FUNCTION: (...args: unknown[]) => void = () => {};\n","import { Directive, HostBinding, Input } from '@angular/core';\n\n@Directive({})\nexport abstract class PrizmAbstractTestId {\n  protected testIdPostfix?: string;\n\n  @Input()\n  @HostBinding('attr.data-testid')\n  get testId() {\n    return this.generateMainTestId + (this.testIdPostfix ? `--${this.testIdPostfix}` : '');\n  }\n  set testId(value: string) {\n    this.testIdPostfix = value;\n  }\n\n  public get generateMainTestId() {\n    return this.testId_;\n  }\n  protected testId_!: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}