{"version":3,"file":"angular-package-ui.mjs","sources":["../../../packages/ui/src/utility/rxjs/src/subscriptions.class.ts","../../../packages/ui/src/utility/rxjs/src/subjects.class.ts","../../../packages/ui/src/utility/boolean/src/t-boolean.class.ts","../../../packages/ui/src/utility/boolean/src/boolean.class.ts","../../../packages/ui/src/utility/lib/status.class.ts","../../../packages/ui/src/utility/ability/src/ability.class.ts","../../../packages/ui/src/utility/ability/src/ability.service.ts","../../../packages/ui/src/utility/active/src/active.class.ts","../../../packages/ui/src/utility/active/src/active.service.ts","../../../packages/ui/src/utility/string/src/t-string.class.ts","../../../packages/ui/src/utility/string/src/string.class.ts","../../../packages/ui/src/utility/name/src/affix.class.ts","../../../packages/ui/src/utility/name/src/prefix.class.ts","../../../packages/ui/src/utility/name/src/suffix.class.ts","../../../packages/ui/src/utility/name/src/name.class.ts","../../../packages/ui/src/utility/align/src/align.class.ts","../../../packages/ui/src/utility/scale/src/available-levels.const.ts","../../../packages/ui/src/utility/scale/src/scale.class.ts","../../../packages/ui/src/utility/blur/src/blur.service.ts","../../../packages/ui/src/utility/color/src/available-colors.const.ts","../../../packages/ui/src/utility/color/src/color.class.ts","../../../packages/ui/src/utility/color/src/css-colors.const.ts","../../../packages/ui/src/utility/color/src/css-property-color.class.ts","../../../packages/ui/src/utility/css-property/src/css-property.class.ts","../../../packages/ui/src/utility/expandable/src/expandable.class.ts","../../../packages/ui/src/utility/expandable/src/expandable.service.ts","../../../packages/ui/src/utility/number/src/number.class.ts","../../../packages/ui/src/utility/range/lib/greater.class.ts","../../../packages/ui/src/utility/range/lib/less.class.ts","../../../packages/ui/src/utility/range/lib/inequality.class.ts","../../../packages/ui/src/utility/range/lib/maximum.class.ts","../../../packages/ui/src/utility/range/lib/minimum.class.ts","../../../packages/ui/src/utility/range/lib/number.class.ts","../../../packages/ui/src/utility/range/lib/range.class.ts","../../../packages/ui/src/utility/lib/duration.class.ts","../../../packages/ui/src/utility/size/src/available-sizes.const.ts","../../../packages/ui/src/utility/size/src/size.class.ts","../../../packages/ui/src/utility/margin/src/margin.class.ts","../../../packages/ui/src/utility/margin/src/margin.service.ts","../../../packages/ui/src/utility/padding/src/padding.class.ts","../../../packages/ui/src/utility/padding/src/padding.service.ts","../../../packages/ui/src/utility/pattern/src/pattern.class.ts","../../../packages/ui/src/utility/position/src/constant/bottom-positions.const.ts","../../../packages/ui/src/utility/position/src/constant/left-positions.const.ts","../../../packages/ui/src/utility/position/src/constant/middle-positions.const.ts","../../../packages/ui/src/utility/position/src/constant/outside-positions.const.ts","../../../packages/ui/src/utility/position/src/constant/right-positions.const.ts","../../../packages/ui/src/utility/position/src/constant/top-positions.const.ts","../../../packages/ui/src/utility/position/src/constant/available-positions.const.ts","../../../packages/ui/src/utility/position/src/position.class.ts","../../../packages/ui/src/utility/position/src/positional-prefix.token.ts","../../../packages/ui/src/utility/position/src/positional-suffix.token.ts","../../../packages/ui/src/utility/size/src/size.service.ts","../../../packages/ui/src/utility/sidebar/src/sidebar.service.ts","../../../packages/ui/src/utility/text-align/src/available-text-align.const.ts","../../../packages/ui/src/utility/text-align/src/text-align.class.ts"],"sourcesContent":["// Rxjs.\nimport { Subscription } from 'rxjs';\n\n/**\n *\n */\nexport class Subscriptions<Names extends string> extends Map<\n  Names,\n  Subscription | undefined\n> {\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public unsubscribe(name: Names): boolean {\n    return (\n      // Unsubscribe stored subscription.\n      super.get(name)?.unsubscribe(),\n\n      // Delete subscription.\n      super.delete(name)\n    );\n  }\n\n  /**\n   * Unsubscribe all subscriptions.\n   * @returns\n   * @angularpackage\n   */\n  public unsubscribeAll(): this {\n    this.forEach((subscription, name) => this.unsubscribe(name));\n    return this;\n  }\n}\n","// Rxjs.\nimport {\n  ObservableInput,\n  Observer,\n  Subject,\n  Subscription,\n  takeUntil,\n} from 'rxjs';\n\n// Subscriptions.\nimport { Subscriptions } from './subscriptions.class';\n\n\n/**\n *\n */\nexport class Subjects<Names extends string, Type> extends Map<\n  Names,\n  Subject<Type>\n> {\n  public get subscriptions(): Subscriptions<Names> {\n    return this.#subscriptions;\n  }\n\n  #subscriptions: Subscriptions<Names> = new Subscriptions();\n\n  /**\n   *\n   * @param names\n   * @param type\n   * @angularpackage\n   */\n  constructor(names: Names[], type?: Type[]) {\n    super([]);\n    names.forEach((name) => this.set(name));\n  }\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public delete(name: Names): boolean {\n    return this.get(name).unsubscribe(), super.delete(name);\n  }\n\n  /**\n   *\n   * @param name\n   * @param value\n   * @returns\n   * @angularpackage\n   */\n  public emit<T extends Type>(name: Names, value: T): this {\n    this.get(name).next(value);\n    return this;\n  }\n\n  /**\n   *\n   */\n  public get<T extends Type>(name: Names): Subject<T> {\n    return super.get(name) as any;\n  }\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public set(name: Names): this {\n    super.set(name, new Subject());\n    return this;\n  }\n\n  /**\n   *\n   * @param to\n   * @returns\n   * @angularpackage\n   */\n  public subscribe<T extends Type>(\n    to: Names,\n    observer: Partial<Observer<T>>\n  ): Subscription {\n    this.#subscriptions.has(to)\n      ? this.#subscriptions.get(to)?.add(this.get<T>(to).subscribe(observer))\n      : this.#subscriptions.set(to, this.get<T>(to).subscribe(observer));\n    return this.#subscriptions.get(to) as Subscription;\n  }\n\n  /**\n   *\n   * @param notifier\n   * @param to\n   * @param observer\n   * @returns\n   * @angularpackage\n   */\n  public subscribeUntil<T extends Type>(\n    notifier: ObservableInput<any>,\n    to: Names,\n    observer: Partial<Observer<T>>\n  ): Subscription {\n    return this.get<T>(to).pipe(takeUntil(notifier)).subscribe(observer);\n  }\n\n  /**\n   * Unsubscribes from stored under the given name subscription.\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public unsubscribe(name: Names): this {\n    this.#subscriptions.unsubscribe(name);\n    return this;\n  }\n\n  /**\n   * Unsubscribes from all stored subscriptions.\n   * @returns\n   * @angularpackage\n   */\n  public unsubscribeAll(): this {\n    this.#subscriptions.unsubscribeAll();\n    return this;\n  }\n}\n","/**\n *\n */\nexport class TBoolean<Value extends boolean> extends Boolean {\n  /**\n   *\n   * @param value\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public getValueOf(): Value {\n    return super.valueOf() as Value;\n  }\n}\n","// Class.\nimport { TBoolean } from './t-boolean.class';\n\n/**\n *\n */\nexport class Boolean<Value extends boolean = boolean> extends TBoolean<Value> {\n  /**\n   *\n   */\n  public get value(): Value {\n    return this.#value;\n  }\n\n  /**\n   *\n   */\n  #value: Value = false as Value;\n\n  /**\n   *\n   * @param value\n   * @returns\n   * @angularpackage\n   */\n  public static create<Value extends boolean = boolean>(\n    value: Value\n  ): Boolean<Value> {\n    return new this(value);\n  }\n\n  /**\n   *\n   * @param value\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n    this.set(value);\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public false(): this {\n    this.set(false as Value);\n    return this;\n  }\n\n  /**\n   *\n   */\n  public get(): Value | undefined {\n    return this.#value;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public is(value: boolean): boolean {\n    return this.#value === value;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isFalse(): boolean {\n    return this.#value === false;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isTrue(): boolean {\n    return this.#value === true;\n  }\n\n  /**\n   *\n   * @param value\n   * @returns\n   * @angularpackage\n   */\n  public set(value?: Value): this {\n    this.#value = new TBoolean(value).getValueOf();\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public true(): this {\n    this.set(true as Value);\n    return this;\n  }\n}\n","// Rxjs.\nimport { Observer, Subject, Subscription } from 'rxjs';\n\n// @angular-package/rxjs.\nimport { Subjects } from '../rxjs';\n\n// Class.\nimport { Boolean } from '../boolean';\n\n// Type.\nimport { Subscribable } from '../type/subscribable.type';\n\n/**\n * TODO: add Boolean object.\n */\nexport class Status<S extends string = 'status'> {\n  /**\n   *\n   */\n  public get status(): boolean {\n    return this.#status.value;\n  }\n\n  /**\n   *\n   */\n  public get subject(): Subject<boolean> {\n    return this.#subjects.get('status');\n  }\n\n  /**\n   *\n   */\n  public get subjects(): Subjects<Subscribable<S>, boolean> {\n    return this.#subjects;\n  }\n\n  /**\n   *\n   */\n  #status = new Boolean().false();\n\n  /**\n   *\n   */\n  #subjects = new Subjects<\n    Subscribable<S>,\n    boolean\n  >(['status']);\n\n  /**\n   *\n   * @param status\n   * @angularpackage\n   */\n  constructor(status?: boolean, subscribable: Subscribable<S>[] = []) {\n    typeof status === 'boolean' && this.set(status);\n    subscribable.forEach((value) => this.#subjects.set(value));\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public emit(to: Subscribable<S> = 'status'): this {\n    this.#subjects.get(to).next(this.#status.value);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public falsy(emit = true): this {\n    this.set(false, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public get(): boolean {\n    return this.#status.value;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isFalse(): boolean {\n    return this.#status.isFalse();\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isTrue(): boolean {\n    return this.#status.isTrue();\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public set(status?: boolean, emit = true): this {\n    typeof status === 'boolean' && this.#status.set(status);\n    emit === true && this.emit('status');\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public subscribe(observer: Partial<Observer<boolean>>): Subscription {\n    return this.#subjects.subscribe('status', observer);\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public toggle(emit = true): this {\n    this.set(!this.#status.value, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public truthy(emit = true): this {\n    this.set(true, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public unsubscribe(subscribable: Subscribable<S> = 'status'): this {\n    this.#subjects.get(subscribable).unsubscribe();\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public unsubscribeAll(): this {\n    this.#subjects.unsubscribeAll();\n    return this;\n  }\n}\n","// Rxjs.\nimport { Observer, Subscription } from 'rxjs';\n\n// Status.\nimport { Status } from '../../lib/status.class';\n\n// Type.\nimport { Subscribable } from '../../type/subscribable.type';\n\n/**\n *\n */\nexport class Ability extends Status<'disabled' | 'enabled'> {\n  /**\n   *\n   */\n  public get disabled(): boolean {\n    return super.isFalse();\n  }\n\n  /**\n   *\n   */\n  public get enabled(): boolean {\n    return super.isTrue();\n  }\n\n  /**\n   *\n   * @param status\n   * @angularpackage\n   */\n  constructor(status?: boolean) {\n    super(status, ['disabled', 'enabled']);\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public disable(emit = true): this {\n    this.falsy(emit), emit && this.emit('disabled');\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public enable(emit = true): this {\n    this.truthy(emit), emit && this.emit('enabled');\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isDisabled(callbackFn?: (status: boolean | undefined) => void): boolean {\n    callbackFn && callbackFn(super.status);\n    return super.status === false;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isEnabled(callbackFn?: (status: boolean | undefined) => void): boolean {\n    callbackFn && callbackFn(super.status);\n    return super.status === true;\n  }\n\n  /**\n   *\n   * @param disabled\n   * @param emit\n   * @returns\n   * @angularpackage\n   */\n  public setDisabled(disabled?: boolean, emit = true): this {\n    this.set(!disabled, emit)\n    typeof disabled === 'boolean' && this.subjects.get('disabled').next(disabled);\n    return this;\n  }\n\n  /**\n   *\n   * @param enabled\n   * @param emit\n   * @returns\n   * @angularpackage\n   */\n  public setEnabled(enabled?: boolean, emit = true): this {\n    this.set(enabled, emit);\n    typeof enabled === 'boolean' && this.subjects.get('enabled').next(enabled);\n    return this;\n  }\n\n  /**\n   *\n   * @param to\n   * @param observer\n   * @returns\n   * @angularpackage\n   */\n  public subscribeTo(\n    to: Subscribable<'disabled' | 'enabled'>,\n    observer: Partial<Observer<boolean>>,\n  ): Subscription {\n    return super.subjects.subscribe(to, observer);\n  }\n}\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Ability.\nimport { Ability } from './ability.class';\n\n/**\n *\n */\n@Injectable()\nexport class AbilityService extends Ability {}\n","// Rxjs.\nimport { Observer, Subscription } from 'rxjs';\n\n// Class.\nimport { Status } from '../../lib/status.class';\n\n// Type.\nimport { Subscribable } from '../../type/subscribable.type';\n\n/**\n *\n */\nexport class Active extends Status<'active'> {\n  /**\n   *\n   */\n  public get active(): boolean | undefined {\n    return super.status;\n  }\n\n  /**\n   *\n   * @param active\n   * @angularpackage\n   */\n  constructor(active?: boolean) {\n    super(active, ['active']);\n  }\n\n  /**\n   *\n   * @param emit\n   * @returns\n   * @angularpackage\n   */\n  public activate(emit = true): this {\n    super.truthy(emit);\n    return this;\n  }\n\n  /**\n   *\n   * @param emit\n   * @returns\n   * @angularpackage\n   */\n  public deactivate(emit = true): this {\n    super.falsy(emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isActive(): boolean {\n    return super.isTrue();\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isInactive(): boolean {\n    return super.isFalse();\n  }\n\n  /**\n   *\n   * @param to\n   * @param observer\n   * @returns\n   * @angularpackage\n   */\n  public subscribeTo(\n    to: Subscribable<'active'>,\n    observer: Partial<Observer<boolean>>\n  ): Subscription {\n    return super.subjects.subscribe(to, observer);\n  }\n}\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Active.\nimport {\n  // Class.\n  Active\n} from './active.class';\n\n/**\n *\n */\n@Injectable()\nexport class ActiveService extends Active {}\n","/**\n *\n */\nexport class TString<Value extends string | undefined = string> extends String {\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public getValueOf(): Value {\n    return super.valueOf() as Value;\n  }\n}\n","// Class.\nimport { TString } from './t-string.class';\n\n/**\n *\n */\nexport class String<\n  Value extends string | undefined = string\n> extends TString<Value> {\n  /**\n   *\n   */\n  public get value(): Value {\n    return this.#value;\n  }\n\n  /**\n   *\n   */\n  #value!: Value;\n\n  /**\n   *\n   * @param value\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n    this.#value = value || ('' as Value);\n  }\n\n  /**\n   *\n   * @param value\n   * @returns\n   * @angularpackage\n   */\n  public set(value?: Value): this {\n    this.#value = value || ('' as Value);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public unset(): this {\n    this.#value = '' as Value;\n    return this;\n  }\n}\n","// Utilities.\nimport { String } from '../../string';\n\n/**\n *\n */\nexport abstract class Affix<Value extends string | undefined> extends String<Value> {\n  //#region instance properties.\n  //#region instance public properties.\n  /**\n   * Gets the primitive value of an instance.\n   */\n  // public get get(): Value {\n  //   return this.valueOf() as Value;\n  // }\n\n  // public get value(): Value {\n  //   return super.valueOf() as Value;\n  // }\n  //#endregion instance public properties.\n\n  //#region instance private properties.\n  /**\n   * The pattern of a `RegExp` type for the affix.\n   */\n  #pattern: RegExp | undefined;\n\n  //#endregion instance private properties.\n  //#endregion instance properties.\n\n  //#region static private methods.\n  /**\n   *\n   * @param affix\n   * @param pattern\n   * @returns\n   */\n  static #defineAffix(\n    affix: string | undefined,\n    pattern: RegExp\n  ): string {\n    return typeof affix === 'string' ? affix.replace(pattern || '', '') : '';\n  }\n  //#endregion static private methods.\n\n  //#region constructor.\n  /**\n   * Creates an instance and initially sets the affix `length` and `pattern`.\n   * @angularpackage\n   */\n  constructor(affix?: Value, pattern = /[^a-zA-Z0-9\\-$_]/g) {\n    super(Affix.#defineAffix(affix, pattern) as Value);\n    this.#pattern = pattern;\n  }\n  //#endregion constructor.\n\n  //#region instance methods.\n  //#region instance public methods.\n  /**\n   * Returns `pattern` of the actual settings for the affix, which by default is set to `/[^a-zA-Z0-9$_]/g`.\n   * @returns The return value is a privately stored regular expression of a `RegExp` type.\n   * @angularpackage\n   */\n  public getPattern(): RegExp | undefined {\n    return this.#pattern;\n  }\n  //#endregion instance public methods.\n  //#endregion instance methods.\n}\n","// Class.\nimport { Affix } from './affix.class';\n\n/**\n *\n */\nexport class Prefix<Value extends string | undefined> extends Affix<Value> {\n  constructor(value?: Value, pattern?: RegExp) {\n    super(value, pattern);\n  }\n}\n","// Class.\nimport { Affix } from './affix.class';\n\n/**\n *\n */\nexport class Suffix<Value extends string | undefined> extends Affix<Value> {\n  constructor(value?: Value, pattern?: RegExp) {\n    super(value, pattern);\n  }\n}\n","// Rxjs.\nimport { Observer } from 'rxjs';\n\n// Class.\nimport { Prefix } from './prefix.class';\nimport { Suffix } from './suffix.class';\n\n// Utilities.\nimport { Ability } from '../../ability';\nimport { Active } from '../../active';\nimport { String } from '../../string';\n\n// Rxjs.\nimport { Subjects } from '../../rxjs';\n\n// Type.\nimport { AffixOptions } from '../interface/affix-options.interface';\nimport { AffixedName } from '../type/affixed-name.type';\nimport { PrefixedName } from '../type/prefixed-name.type';\nimport { SuffixedName } from '../type/suffixed-name.type';\n\n/**\n *\n */\nexport class Name<\n  AvailableNames extends string = string,\n  PrefixValue extends string | undefined = undefined,\n  NameValue extends AvailableNames = AvailableNames,\n  SuffixValue extends string | undefined = undefined\n> extends String<NameValue> {\n  /**\n   *\n   */\n  public get ability(): Ability {\n    return this.#ability;\n  }\n\n  /**\n   *\n   */\n  public get active(): Active {\n    return this.#active;\n  }\n\n  /**\n   *\n   */\n  public get availableNames(): AvailableNames[] | undefined {\n    return this.#availableNames;\n  }\n\n  /**\n   *\n   */\n  public get resolvedConfig(): AffixOptions<\n    PrefixValue,\n    SuffixValue,\n    AvailableNames\n  > {\n    return {\n      availableNames: this.#availableNames,\n      prefix: this.#prefix?.value,\n      suffix: this.#suffix?.value,\n    };\n  }\n\n  /**\n   *\n   */\n  public get get(): AffixedName<PrefixValue, NameValue, SuffixValue> {\n    return Name.template`${this.#availableNames}${this.#prefix?.value}${\n      this.#name.value\n    }${this.#suffix?.value}` as any;\n  }\n\n  /**\n   *\n   */\n  public get name(): NameValue | undefined {\n    return this.#name.value;\n  }\n\n  /**\n   *\n   */\n  public get prefix(): Prefix<PrefixValue | undefined> | undefined {\n    return this.#prefix;\n  }\n\n  /**\n   *\n   */\n  public get suffix(): Suffix<SuffixValue | undefined> | undefined {\n    return this.#suffix;\n  }\n\n  /**\n   *\n   */\n  public get withPrefix(): PrefixedName<PrefixValue, NameValue> {\n    return [this.#prefix?.value, this.#name.value]\n      .filter((v) => typeof v === 'string')\n      .join('-') as any;\n  }\n\n  /**\n   *\n   */\n  public get withSuffix(): SuffixedName<NameValue, SuffixValue> {\n    return [this.#name.value, this.#suffix?.value]\n      .filter((v) => typeof v === 'string')\n      .join('-') as any;\n  }\n\n  /**\n   *\n   */\n  #ability: Ability = new Ability(true);\n\n  /**\n   *\n   */\n  #active: Active = new Active(true);\n\n  /**\n   *\n   */\n  #availableNames?: AvailableNames[];\n\n  /**\n   *\n   */\n  #name = new String<NameValue>();\n\n  /**\n   *\n   */\n  #prefix?: Prefix<PrefixValue | undefined>;\n\n  /**\n   *\n   */\n  #subjects = new Subjects<'subscription', any>(['subscription']);\n\n  /**\n   *\n   */\n  #suffix?: Suffix<SuffixValue | undefined>;\n\n  /**\n   *\n   * @param strings\n   * @param values\n   * @returns\n   * @angularpackage\n   */\n  protected static template<\n    AvailableNames extends string | undefined,\n    PrefixValue extends string | undefined,\n    SuffixValue extends string | undefined,\n    Value extends string | undefined\n  >(\n    strings: TemplateStringsArray,\n    ...values: [AvailableNames[] | undefined, PrefixValue, Value, SuffixValue]\n  ): string {\n    let availableNames: AvailableNames[] | undefined,\n      prefix: PrefixValue,\n      name: Value,\n      suffix: SuffixValue;\n    [availableNames, prefix, name, suffix] = values;\n    const ingredients = [prefix, name, suffix];\n    return Array.isArray(availableNames) && availableNames.length > 0\n      ? // If name exists in the available names.\n        availableNames.indexOf(name as any) > -1\n        ? ingredients\n            .filter(\n              (ingredient) =>\n                typeof ingredient === 'string' && ingredient.length > 0\n            )\n            .join('-')\n        : ''\n      : ingredients\n          .filter((ingredient) => typeof ingredient === 'string')\n          .join('-');\n  }\n\n  /**\n   *\n   * @param name\n   * @param prefix\n   * @param availableNames\n   * @angularpackage\n   */\n  constructor(\n    name?: NameValue,\n    options?: AffixOptions<PrefixValue, SuffixValue, AvailableNames>\n  ) {\n    super(\n      Name.template`${options?.availableNames}${options?.prefix}${name}${options?.suffix}` as NameValue\n    );\n    this.#availableNames = options?.availableNames;\n    this.#prefix = options?.prefix ? new Prefix(options?.prefix) : undefined;\n    this.#suffix = options?.suffix ? new Suffix(options?.suffix) : undefined;\n    this.#name.set(name);\n  }\n\n  /**\n   *\n   */\n  public emit(): this {\n    this.#subjects.get('subscription').next(this.get);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public getValue(): AffixedName<PrefixValue, NameValue, SuffixValue> {\n    return this.get;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public has(): boolean {\n    return typeof this.#name === 'string';\n  }\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public isNameAvailable(name?: NameValue): boolean {\n    return Array.isArray(this.#availableNames) && typeof name === 'string'\n      ? this.#availableNames.indexOf(name) > -1\n      : false;\n  }\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public set(name: NameValue | undefined, emit = true): this {\n    this.#name.set(\n      new Name(name, { availableNames: this.availableNames }).value\n    ),\n      emit === true && this.emit();\n    return this;\n  }\n\n  /**\n   *\n   * @param prefix\n   * @returns\n   * @angularpackage\n   */\n  public setPrefix(prefix?: PrefixValue | undefined): this {\n    this.#prefix = new Prefix(prefix);\n    return this;\n  }\n\n  /**\n   *\n   * @param suffix\n   * @returns\n   * @angularpackage\n   */\n  public setSuffix(suffix?: SuffixValue | undefined): this {\n    this.#suffix = new Suffix(suffix);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public subscribe<Type = AffixedName<PrefixValue, NameValue, SuffixValue>>(\n    observer?: Partial<Observer<Type | undefined>>\n  ): this {\n    this.#subjects.get('subscription').subscribe(observer);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public unsubscribe(): this {\n    this.#ability.unsubscribe();\n    this.#active.unsubscribe();\n    this.#subjects.unsubscribeAll();\n    return this;\n  }\n\n  /**\n   *\n   */\n  public toNgClass(active?: boolean ): { [index: string]: boolean | undefined } {\n    return { [this.get]: active || this.#active.status };\n  }\n}\n","// Class.\nimport { Name } from '../../name';\n\n/**\n *\n */\nexport class Align<\n  Prefix extends string,\n  AvailableAlign extends string,\n  Value extends AvailableAlign = AvailableAlign\n> extends Name<AvailableAlign, Prefix, Value> {\n  constructor(\n    align: Value,\n    options?: {\n      prefix?: Prefix;\n      availableAlign?: AvailableAlign[];\n    }\n  ) {\n    super(align, options);\n  }\n}\n","import { Levels } from '../type/levels.type';\n\nexport const AVAILABLE_LEVELS: Levels[] = [\n  'lowest',\n  'lower',\n  'low',\n  'medium',\n  'high',\n  'higher',\n  'highest',\n];\n","// Class.\nimport { Name } from '../../name/src/name.class';\n\n// Constant.\nimport { AVAILABLE_LEVELS } from './available-levels.const';\n\n// Type.\nimport { Levels } from '../type/levels.type';\n\n/**\n *\n */\nexport class Scale<\n  AvailableLevels extends string = Levels,\n  Prefix extends string | undefined = undefined,\n  Level extends AvailableLevels = AvailableLevels,\n  Suffix extends string | undefined = undefined\n> extends Name<AvailableLevels, Prefix, Level, Suffix> {\n  /**\n   *\n   */\n  // public get sizesConfig(): SizesConfig | undefined {\n  //   return this.#config;\n  // }\n\n  /**\n   *\n   */\n  public get level(): Level | undefined {\n    return super.name;\n  }\n\n  /**\n   *\n   * @param level\n   * @param config\n   * @angularpackage\n   */\n  constructor(\n    level?: Level,\n    options?: {\n      availableLevels?: AvailableLevels[];\n      prefix?: Prefix;\n      suffix?: Suffix;\n    }\n    // config?: SizeConfig,\n  ) {\n    super(level, {\n      availableNames:\n        options?.availableLevels || (AVAILABLE_LEVELS as AvailableLevels[]),\n      ...options,\n    });\n    // this.#config = config;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public low(\n    emit = true\n    // prefix: Prefix | undefined = this.prefix?.value,\n    // suffix: Suffix | undefined = this.suffix?.value\n  ): this {\n    this.set('low' as Level, emit);\n    // this.set('low', emit, prefix, suffix);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public lower(\n    emit = true,\n    // prefix: Prefix | undefined = this.prefix?.value,\n    // suffix: Suffix | undefined = this.suffix?.value\n  ): this {\n    this.set('lower' as Level, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public lowest(\n    emit = true,\n    // prefix: Prefix | undefined = this.prefix?.value,\n    // suffix: Suffix | undefined = this.suffix?.value\n  ): this {\n    this.set('lowest' as Level, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public medium(\n    emit = true,\n    // prefix: Prefix | undefined = this.prefix?.value,\n    // suffix: Suffix | undefined = this.suffix?.value\n  ): this {\n    this.set('medium' as Level, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public high(\n    emit = true,\n    prefix: Prefix | undefined = this.prefix?.value,\n    suffix: Suffix | undefined = this.suffix?.value\n  ): this {\n    this.set('high' as Level, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public higher(\n    emit = true,\n    // prefix: Prefix | undefined = this.prefix?.value,\n    // suffix: Suffix | undefined = this.suffix?.value\n  ): this {\n    this.set('higher' as Level, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public highest(\n    emit = true,\n    // prefix: Prefix | undefined = this.prefix?.value,\n    // suffix: Suffix | undefined = this.suffix?.value\n  ): this {\n    this.set('highest' as Level, emit);\n    return this;\n  }\n}\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Scale.\nimport {\n  // Type.\n  Levels,\n\n  // Class.\n  Scale,\n} from '../../scale';\n\n@Injectable()\nexport class BlurService<\n  Prefix extends string | undefined\n> extends Scale<Levels, `${Prefix}-blur`> {\n  constructor() {\n    super();\n  }\n}\n","import { Colors } from '../type/colors.type';\n\nexport const AVAILABLE_COLORS: Colors[] = [\n  // Core colors.\n  'accent',\n  'default',\n  'basic',\n\n  // Primary color.\n  'primary',\n  'primary-dark',\n  'primary-light',\n\n  // Secondary color.\n  'secondary',\n  'secondary-dark',\n  'secondary-light',\n\n  // Body colors.\n  'body-bg',\n  'body-font',\n\n  // Bg colors.\n  'bg',\n  'bg-dark',\n  'bg-light',\n\n  // Gray colors.\n  'gray',\n  'gray-dark',\n  'gray-light',\n\n  // Shade colors.\n  'dark',\n  'light',\n\n  // Control colors.\n  'disabled',\n  'error',\n  'info',\n  'success',\n  'warning',\n\n  // Other colors.\n  'border',\n  'code',\n  'highlight',\n  'link',\n];\n","// Class.\nimport { Name } from '../../name';\n\n// Type.\nimport { Colors } from '../type/colors.type';\nimport { HSL } from '../type/hsl.type';\n\n// Constant.\nimport { AVAILABLE_COLORS } from './available-colors.const';\n\n/**\n *\n */\nexport class Color<\n  Prefix extends string | undefined = undefined,\n  Suffix extends string | undefined = undefined,\n  AvailableColors extends string = Colors,\n  Value extends AvailableColors = AvailableColors\n> extends Name<AvailableColors, Prefix, Value, Suffix> {\n  /**\n   * The method `colorToHex` converts a decimal value to hexadecimal.\n   * @param color The color in decimal of the number type.\n   * @returns The return value is a string hexadecimal color.\n   * @angularpackage\n   */\n  public static colorToHex(color: number): string {\n    const hexadecimal = Math.round(color).toString(16);\n    return hexadecimal.length === 1 ? '0' + hexadecimal : hexadecimal;\n  }\n\n  /**\n   *\n   * @param hexColor\n   * @returns\n   * @angularpackage\n   */\n  public static getLighterHex(hexColor?: string): string {\n    let color = '';\n    const threshold = 60;\n    if (hexColor) {\n      const hslColor = Color.hexToHsl(hexColor);\n      if (hslColor) {\n        let lightness =\n          hslColor.lightness >= threshold\n            ? hslColor.lightness - threshold\n            : hslColor.lightness + threshold;\n        lightness > 100 ? (lightness -= lightness - 100) : lightness;\n        hslColor.hue > 40 && hslColor.hue < 90 && (lightness -= 80);\n        const rgbColor = Color.hslToRgb(\n          hslColor.hue,\n          hslColor.saturation,\n          lightness\n        );\n        color = Color.rgbToHex(rgbColor.red, rgbColor.green, rgbColor.blue);\n      }\n    }\n    return color;\n  }\n\n  /**\n   *\n   * @param hex\n   * @returns\n   * @angularpackage\n   */\n  public static hexToRgb(\n    hex: string\n  ): { red: number; green: number; blue: number } | undefined {\n    const getHex = hex.replace('#', '').match(/.{1,2}/g);\n    if (getHex !== null) {\n      return {\n        red: parseInt(getHex[0], 16),\n        green: parseInt(getHex[1], 16),\n        blue: parseInt(getHex[2], 16),\n      };\n    }\n    return;\n  }\n\n  public static hexToHsl(hex: string): HSL | undefined {\n    const rgb = Color.hexToRgb(hex);\n    return typeof rgb === 'object'\n      ? this.rgbToHsl(rgb.red, rgb.green, rgb.blue)\n      : undefined;\n  }\n\n  public static hslToHex(\n    hue: number,\n    saturation: number,\n    lightness: number\n  ): string {\n    const { red, green, blue } = this.hslToRgb(hue, saturation, lightness);\n    return this.rgbToHex(red, green, blue);\n  }\n\n  /**\n   *\n   * @param hue\n   * @param saturation\n   * @param lightness\n   * @returns\n   * @angularpackage\n   */\n  public static hslToRgb(\n    hue: number,\n    saturation: number,\n    lightness: number\n  ): { red: number; green: number; blue: number } {\n    const HSLToRGB = (h: number, s: number, l: number) => {\n      s /= 100;\n      l /= 100;\n      const k = (n: any) => (n + h / 30) % 12;\n      const a = s * Math.min(l, 1 - l);\n      const f = (n: any) =>\n        l - a * Math.max(-1, Math.min(k(n) - 3, Math.min(9 - k(n), 1)));\n      return {\n        red: 255 * f(0),\n        green: 255 * f(8),\n        blue: 255 * f(4),\n      };\n    };\n    return HSLToRGB(hue, saturation, lightness);\n  }\n\n  /**\n   *\n   * @param red\n   * @param green\n   * @param blue\n   * @returns\n   * @angularpackage\n   */\n  public static rgbToHex(red: number, green: number, blue: number): string {\n    return (\n      '#' +\n      this.colorToHex(red) +\n      this.colorToHex(green) +\n      this.colorToHex(blue)\n    );\n  }\n\n  /**\n   *\n   * @param red\n   * @param green\n   * @param blue\n   * @returns\n   * @angularpackage\n   */\n  public static rgbToHsl(red: number, green: number, blue: number): HSL {\n    (red /= 255), (green /= 255), (blue /= 255);\n    const max = Math.max(red, green, blue),\n      min = Math.min(red, green, blue);\n    let hue = 0,\n      saturation,\n      lightness = (max + min) / 2;\n\n    if (max === min) {\n      hue = saturation = 0; // achromatic\n    } else {\n      const d = max - min;\n      saturation = lightness > 0.5 ? d / (2 - max - min) : d / (max + min);\n      switch (max) {\n        case red:\n          hue = (green - blue) / d + (green < blue ? 6 : 0);\n          break;\n        case green:\n          hue = (blue - red) / d + 2;\n          break;\n        case blue:\n          hue = (red - green) / d + 4;\n          break;\n      }\n      hue && (hue /= 6);\n    }\n    hue && (hue *= 360);\n    saturation *= 100;\n    lightness *= 100;\n    return {\n      hue,\n      saturation,\n      lightness,\n    };\n  }\n\n  /**\n   *\n   * @param color\n   * @param prefix\n   * @param suffix\n   * @param availableColor\n   * @angularpackage\n   */\n  constructor(\n    color: Value,\n    options?: {\n      availableColors?: AvailableColors[];\n      prefix?: Prefix;\n      suffix?: Suffix;\n    }\n  ) {\n    super(color, {\n      availableNames: AVAILABLE_COLORS as AvailableColors[],\n      ...options,\n    });\n  }\n}\n","import { Colors } from '../type/colors.type';\n\n// TODO: Use AVAILABLE_COLORS.\nexport const CSS_COLORS: Exclude<Colors, 'basic' | 'default'>[] = [\n  // Core colors.\n  'accent',\n\n  // Bg.\n  'bg',\n  'bg-dark',\n  'bg-light',\n\n  // Body colors.\n  'body-bg',\n  'body-font',\n\n  // Border colors.\n  'border',\n  'border-dark',\n  'border-light',\n\n  // Shade colors.\n  'dark',\n  'light',\n\n  // Gray colors.\n  'gray',\n  'gray-dark',\n  'gray-light',\n\n  // Link colors.\n  'link',\n  'link-dark',\n  'link-light',\n\n  // Primary color.\n  'primary',\n  'primary-dark',\n  'primary-light',\n\n  // Secondary color.\n  'secondary',\n  'secondary-dark',\n  'secondary-light',\n\n  // Control colors.\n  'disabled',\n  'error',\n  'info',\n  'success',\n  'warning',\n\n  // Other colors.\n  'code',\n  'highlight',\n];\n","// Name.\nimport { AffixedName } from '../../name';\n\n// Color.\nimport { Color } from './color.class';\n\n// Type.\nimport { Colors } from '../type/colors.type';\nimport { HSL } from '../type/hsl.type';\nimport { Shade } from '../type/shade.type';\n\n// Constant.\nimport { CSS_COLORS } from './css-colors.const';\n\n/**\n *\n */\nexport class CssPropertyColor<\n  Prefix extends string | undefined,\n  AvailableColors extends Colors = Colors,\n  Value extends AvailableColors = AvailableColors\n> extends Color<Prefix, 'color', AvailableColors, Value> {\n  public static rootStyle = (document.querySelector(':root') as HTMLElement)\n    .style;\n\n  public get hue(): number {\n    return CssPropertyColor.getHueOfVar(this.getColorName());\n  }\n\n  public get hex(): string {\n    return CssPropertyColor.getHexOfVar(this.getColorName());\n  }\n\n  public get hsl(): HSL {\n    return {\n      hue: this.hue,\n      lightness: this.lightness,\n      saturation: this.saturation,\n    };\n  }\n\n  public get lightness(): number {\n    return CssPropertyColor.getLightnessOfVar(this.getColorName());\n  }\n\n  public get saturation(): number {\n    return CssPropertyColor.getSaturationOfVar(this.getColorName());\n  }\n\n  #shade?: Shade;\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public static getHueOfVar(name: string): number {\n    return this.#getPropertyValue(`--${name}-h`);\n  }\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public static getLightnessOfVar(name: string): number {\n    return this.#getPropertyValue(`--${name}-l`);\n  }\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public static getSaturationOfVar(name: string): number {\n    return this.#getPropertyValue(`--${name}-s`);\n  }\n\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public static getHexOfVar(name: string): string {\n    const rgbColor = Color.hslToRgb(\n      this.getHueOfVar(name),\n      this.getSaturationOfVar(name),\n      this.getLightnessOfVar(name)\n    );\n    return this.rgbToHex(\n      Math.round(rgbColor.red),\n      Math.round(rgbColor.green),\n      Math.round(rgbColor.blue)\n    );\n  }\n\n  // TODO: Finish.\n  public static remove(\n    name: string,\n    type: 'hue' | 'saturation' | 'lightness'\n  ): typeof CssPropertyColor {\n    return this;\n  }\n\n  public static removeHueOfVar(name: string): typeof CssPropertyColor {\n    this.rootStyle.removeProperty(`--${name}-h`);\n    return this;\n  }\n\n  public static removeLightnessOfVar(name: string): typeof CssPropertyColor {\n    this.rootStyle.removeProperty(`--${name}-l`);\n    return this;\n  }\n\n  public static removeSaturationOfVar(name: string): typeof CssPropertyColor {\n    this.rootStyle.removeProperty(`--${name}-s`);\n    return this;\n  }\n\n  public static removeColorOfVar(name: string): typeof CssPropertyColor {\n    this.removeHueOfVar(name)\n      .removeLightnessOfVar(name)\n      .removeSaturationOfVar(name);\n    return this;\n  }\n\n  /**\n   *\n   * @param name\n   * @param value\n   * @param priority\n   * @returns\n   * @angularpackage\n   */\n  public static setHueOfVar(\n    name: string,\n    value: number | null,\n    priority?: 'important' | ''\n  ): typeof CssPropertyColor {\n    (document.querySelector(':root') as HTMLElement).style.setProperty(\n      `--${name}-h`,\n      `${String(value)}deg`,\n      priority\n    );\n    return this;\n  }\n\n  /**\n   *\n   * @param name\n   * @param value\n   * @param priority\n   * @returns\n   * @angularpackage\n   */\n  public static setLightnessOfVar(\n    name: string,\n    value: number | null,\n    priority?: 'important' | ''\n  ): typeof CssPropertyColor {\n    (document.querySelector(':root') as HTMLElement).style.setProperty(\n      `--${name}-l`,\n      `${String(value)}%`,\n      priority\n    );\n    return this;\n  }\n\n  /**\n   *\n   * @param name\n   * @param value\n   * @param priority\n   * @returns\n   * @angularpackage\n   */\n  public static setSaturationOfVar(\n    name: string,\n    value: number | null,\n    priority?: 'important' | ''\n  ): typeof CssPropertyColor {\n    (document.querySelector(':root') as HTMLElement).style.setProperty(\n      `--${name}-s`,\n      `${String(value)}%`,\n      priority\n    );\n    return this;\n  }\n\n  static #calcLightness(lightness: string): any {\n    let l = 0;\n    lightness\n      .match(/[+-]?\\d+(\\.\\d+)?/g)\n      ?.forEach((value) => (l += Number(value)));\n    return l;\n  }\n\n  static #getPropertyValue(name: string): number {\n    const value = getComputedStyle(document.body)\n      .getPropertyValue(name)\n      .replace('deg', '')\n      .replace('%', '');\n\n    return value.indexOf('calc') ? this.#calcLightness(value) : Number(value);\n  }\n\n  /**\n   * The static method gets shade - the dark or light suffix of the given `color`.\n   * @param color\n   * @returns\n   * @angularpackage\n   */\n  public static getShade(\n    color?: Colors\n  ): Shade | false {\n    return (\n      typeof color === 'string' &&\n      color.indexOf('-') > -1 &&\n      (color.indexOf('dark') > -1 || color.indexOf('light') > -1) &&\n      (color.split('-').pop() as Shade)\n    );\n  }\n\n  /**\n   *\n   * @param color\n   * @param prefix\n   * @param availableColors\n   * @angularpackage\n   */\n  constructor(\n    color: Value,\n    prefix?: Prefix,\n    availableColors = CSS_COLORS as AvailableColors[]\n  ) {\n    super(color, { prefix, suffix: 'color', availableColors });\n    const shade = CssPropertyColor.getShade(color);\n    shade && this.setShade(shade);\n  }\n\n  public getHex(shade: Shade = this.#shade as Shade): string {\n    return CssPropertyColor.getHexOfVar(this.getColorName(shade));\n  }\n\n  public getHSL(shade: Shade = this.#shade as Shade): HSL {\n    return {\n      hue: this.getHue(shade),\n      lightness: this.getLightness(shade),\n      saturation: this.getSaturation(shade),\n    };\n  }\n\n  public getHue(shade: Shade = this.#shade as Shade): number {\n    return CssPropertyColor.getHueOfVar(this.getColorName(shade));\n  }\n\n  public getLightness(shade: Shade = this.#shade as Shade): number {\n    return CssPropertyColor.getLightnessOfVar(this.getColorName(shade));\n  }\n\n  public getSaturation(shade: Shade = this.#shade as Shade): number {\n    return CssPropertyColor.getSaturationOfVar(this.getColorName(shade));\n  }\n\n  public getColorName<S extends Shade>(\n    shade: S = this.#shade as S\n  ):\n    | AffixedName<Prefix, Value, 'color'>\n    | `${AffixedName<Prefix, Value, 'color'>}-${S}` {\n    return shade ? this.valueOfShade(shade) : super.getValue();\n  }\n\n  public removeColor(shade: Shade = this.#shade as Shade): this {\n    CssPropertyColor.removeColorOfVar(this.getColorName(shade));\n    return this;\n  }\n\n  public setHex(hex: string, shade: Shade = this.#shade as Shade): this {\n    const hsl = CssPropertyColor.hexToHsl(hex);\n\n    if (hsl) {\n      this.setHue(hsl.hue, shade)\n        .setLightnessOfVar(hsl.lightness, shade)\n        .setSaturationOfVar(hsl.saturation, shade);\n    }\n    return this;\n  }\n\n  public setHsl(hue: number, saturation: number, lightness: number): this {\n    this.setHue(hue)\n      .setSaturationOfVar(saturation)\n      .setLightnessOfVar(lightness);\n\n    return this;\n  }\n\n  public setHue(\n    value: number,\n    shade: Shade = this.#shade as Shade,\n    priority?: 'important' | ''\n  ): this {\n    CssPropertyColor.setHueOfVar(this.getColorName(shade), value, priority);\n    return this;\n  }\n\n  public setLightnessOfVar(\n    value: number,\n    shade: Shade = this.#shade as Shade,\n    priority?: 'important' | ''\n  ): this {\n    CssPropertyColor.setLightnessOfVar(\n      this.getColorName(shade),\n      value,\n      priority\n    );\n    return this;\n  }\n\n  public setSaturationOfVar(\n    value: number,\n    shade: Shade = this.#shade as Shade,\n    priority?: 'important' | ''\n  ): this {\n    CssPropertyColor.setSaturationOfVar(\n      this.getColorName(shade),\n      value,\n      priority\n    );\n    return this;\n  }\n\n  public setShade(shade?: Shade): this {\n    this.#shade = shade ? shade : this.#shade;\n    return this;\n  }\n\n  public valueOfShade<S extends Shade>(\n    shade: S = this.#shade as S\n  ): `${AffixedName<Prefix, Value, 'color'>}-${S}` {\n    return `${super.getValue()}-${shade}`;\n  }\n}\n","/**\n *\n */\nexport class CssProperty {\n  /**\n   *\n   * @param name\n   * @returns\n   * @angularpackage\n   */\n  public static get(property: string): string {\n    return getComputedStyle(document.body).getPropertyValue(property);\n  }\n\n  /**\n   *\n   * @param property\n   * @param value\n   * @param priority\n   * @returns\n   * @angularpackage\n   */\n  public static set(property: string, value: string | null, priority?: string): typeof CssProperty {\n    getComputedStyle(document.body).setProperty(property, value, priority);\n    return this;\n  }\n}\n","// Ability.\nimport { Ability } from '../../ability';\n\n// Status.\nimport { Status } from '../../lib/status.class';\n\n/**\n *\n */\nexport class Expandable extends Ability {\n  /**\n   *\n   */\n  public get expanded(): Status {\n    return this.#expanded;\n  }\n\n  /**\n   *\n   */\n  #expanded = new Status(false);\n\n  /**\n   * Expand the sidebar if it's folded and emits status.\n   * @param emit\n   * @returns The return value is an instance of `SpectreSidebarService`.\n   * @angularpackage\n   */\n  public expand(emit = true): this {\n    this.#expanded.truthy(emit);\n    return this;\n  }\n\n  /**\n   * Fold the sidebar if it's expanded and emits status.\n   * @param emit\n   * @returns The return value is an instance of `SpectreSidebarService`.\n   * @angularpackage\n   */\n  public fold(emit = true): this {\n    this.#expanded.falsy(emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isExpanded(): boolean {\n    return this.#expanded.isTrue();\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public isFolded(): boolean {\n    return this.#expanded.isFalse();\n  }\n\n  /**\n   *\n   * @param expanded\n   * @param emit\n   * @returns\n   * @angularpackage\n   */\n  public setExpanded(expanded?: boolean, emit = true): this {\n    this.#expanded.set(expanded, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @param folded\n   * @param emit\n   * @returns\n   * @angularpackage\n   */\n  public setFolded(folded?: boolean, emit = true): this {\n    this.#expanded.set(!folded);\n    return this;\n  }\n}\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Expandable.\nimport { Expandable } from './expandable.class';\n\n/**\n *\n */\n@Injectable()\nexport class ExpandableService extends Expandable {}\n","/**\n *\n */\n export class Number<Value extends number = number> {\n  /**\n   *\n   */\n  public get value(): Value | undefined {\n    return this.#value;\n  }\n\n  /**\n   *\n   */\n  #value?: Value;\n\n  /**\n   *\n   * @param value\n   * @returns\n   * @angularpackage\n   */\n  public static create<Value extends number = number>(\n    value?: Value\n  ): Number<Value> {\n    return new this(value);\n  }\n\n  /**\n   *\n   * @param value\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    this.#value = value;\n  }\n\n  /**\n   *\n   */\n  public get(): Value | undefined {\n    return this.#value;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public has(): boolean {\n    return typeof this.#value === 'number';\n  }\n\n  /**\n   *\n   * @param value\n   * @returns\n   * @angularpackage\n   */\n  public set(value?: Value): this {\n    this.#value = value;\n    return this;\n  }\n}\n","// Number.\nimport { Number } from '../../number';\n\n/**\n * The `Greater` primitive wrapper `object` represents the primitive value of the `number` type greater than the given.\n */\nexport class Greater<Value extends number> extends Number<Value> {\n  /**\n   * The `get` accessor, with the help of `toStringTag`, changes the default tag to `'Greater'` for an instance of `Greater`. It can be read\n   * by the `typeOf()` function of `@angular-package/type`.\n   * @returns The return value is the word 'Greater` of a `string`.\n   * @angularpackage\n   */\n  public get [Symbol.toStringTag](): string {\n    return 'Greater';\n  }\n\n  //#region static public methods.\n  /**\n   * Creates the `Greater` instance with the given primitive `value`.\n   * @param value The value of generic type variable `Value` to set with a newly created instance.\n   * @returns The return value is the `Greater` instance with the primitive value of the given `value`.\n   * @angularpackage\n   */\n  public static create<Value extends number>(value?: Value): Greater<Value> {\n    return new this(value) as Greater<Value>;\n  }\n\n  /**\n   * Checks whether the given `value` is the `Greater` instance of any or given primitive value.\n   * @param value The value of any type to test against the `Greater` instance.\n   * @param greaterValue An optional value of generic type variable `Value` to check whether it's the primitive value of the given `value`.\n   * @returns The return value is a `boolean` indicating whether the given `value` is the `Greater` instance of any or given primitive\n   * value.\n   * @angularpackage\n   */\npublic static isGreater<Value extends number>(\n  value: any,\n  greaterValue?: Value\n): value is Greater<Value> {\n  return (\n    typeof value === 'object' &&\n    value instanceof this &&\n    (typeof greaterValue === 'number'\n      ? value.valueOf() === greaterValue\n      : true)\n  );\n}\n  //#endregion static public methods.\n\n  //#region constructor.\n  /**\n   * Creates the `Greater` instance with the given primitive `value`.\n   * @param value The value of generic type variable `Value` to set with a new instance.\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n  }\n  //#endregion constructor.\n\n  //#region instance public methods.\n  /**\n   * Checks whether the primitive value of a specified `object` is greater than the given `value`.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value is greater than the given value.\n   * @angularpackage\n   */\n  public than(value: number): boolean {\n    return typeof value === 'number' ? this.valueOf() > value : false;\n  }\n\n  /**\n   * Checks whether the primitive value of a specified `object` is greater than every value of the given `values`.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value is greater than every value of the given `values`.\n   * @angularpackage\n   */\n  public thanEvery(...values: number[]): boolean {\n    return Array.isArray(values)\n      ? values.every((value) => this.valueOf() > value)\n      : false;\n  }\n\n  /**\n   * Checks whether the primitive value of a specified `object` is greater than some given `values`.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value is greater than some given `values`.\n   * @angularpackage\n   */\n  public thanSome(...values: number[]): boolean {\n    return Array.isArray(values)\n      ? values.some((value) => this.valueOf() > value)\n      : false;\n  }\n\n  /**\n   * Returns the primitive value of a specified `object`.\n   * @returns The return value is the primitive value of generic type variable `Value`.\n   * @angularpackage\n   */\n  public valueOf(): Value {\n    return super.valueOf() as any;\n  }\n  //#endregion instance public methods.\n}\n","// Number.\nimport { Number } from '../../number';\n\n/**\n * The `Less` primitive wrapper `object` represents the primitive value of `number` type less than the given.\n */\nexport class Less<Value extends number> extends Number<Value> {\n  //#region instance public accessors.\n  /**\n   * The `get` accessor, with the help of `toStringTag`, changes the default tag to `Less` for an instance of `Less`. It can be read\n   * by the `typeOf()` function of `@angular-package/type`.\n   * @returns The return value is the word 'Less` of a `string`.\n   * @angularpackage\n   */\n  public get [Symbol.toStringTag](): string {\n    return 'Less';\n  }\n  //#endregion instance public accessors.\n\n  //#region public static methods.\n  /**\n   * Creates the `Less` instance with the given primitive `value`.\n   * @param value The value of generic type variable `Value` to set with a newly created instance.\n   * @returns The return value is the `Less` instance with the primitive value of the given `value`.\n   * @angularpackage\n   */\n  public static create<Value extends number>(value?: Value): Less<Value> {\n    return new this(value);\n  }\n\n  /**\n   * Checks whether the given `value` is the `Less` instance of any or given primitive value.\n   * @param value The value of any type to test against the `Less` instance.\n   * @param lessValue An optional value of generic type variable `Value` to check whether it's the primitive value of the given `value`.\n   * @returns The return value is a `boolean` indicating whether the given `value` is the `Less` instance of any or given primitive\n   * value.\n   * @angularpackage\n   */\n  public static isLess<Value extends number>(\n    value: any,\n    lessValue?: Value\n  ): value is Less<Value> {\n    return (\n      typeof value === 'object' &&\n      value instanceof this &&\n      (typeof lessValue === 'number' ? value.valueOf() === lessValue : true)\n    );\n  }\n  //#endregion public static methods.\n\n  //#region constructor.\n  /**\n   * Creates the `Less` instance with the given `value`.\n   * @param value The value of generic type variable `Value` to set with a new instance.\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n  }\n  //#endregion constructor.\n\n  //#region instance public methods.\n  /**\n   * Checks whether the primitive value of a specified `object` is less than the given `value`.\n   * @param value The value of number type to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value is less than the given value.\n   * @angularpackage\n   */\n  public than(value: number): boolean {\n    return typeof value === 'number' ? this.valueOf() < value : false;\n  }\n\n  /**\n   * Checks whether the primitive value of a specified `object` is less than every given value.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value is less than every value of the given `values`.\n   * @angularpackage\n   */\n  public thanEvery(...values: number[]): boolean {\n    return Array.isArray(values)\n      ? values.every((value) => this.valueOf() < value)\n      : false;\n  }\n\n  /**\n   * Checks whether the primitive value of a specified `object` is less than some given `values`.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value is less than some given `values`.\n   * @angularpackage\n   */\n  public thanSome(...values: number[]): boolean {\n    return Array.isArray(values)\n      ? values.some((value) => this.valueOf() < value)\n      : false;\n  }\n\n  /**\n   * Returns the primitive value of a specified `object`.\n   * @returns The return value is the primitive value of generic type variable `Value`.\n   * @angularpackage\n   */\n  public valueOf(): Value {\n    return super.valueOf() as any;\n  }\n  //#endregion instance public methods.\n}\n","// Class.\nimport { Greater } from './greater.class';\nimport { Less } from './less.class';\nimport { Number } from '../../number';\n\n/**\n * The `Inequality` abstract primitive wrapper `object` represents the primitive value greater or less than the given.\n */\nexport abstract class Inequality<Value extends number> extends Number<Value> {\n  //#region instance public accessors.\n  /**\n   * The `get` accessor obtains from the private `#greater` property an instance of the `Greater` with a primitive value from a given\n   * `value` of the `Inequality` constructor.\n   * @returns The return value is the `Greater` instance with a primitive value from the given `value` of the `Inequality` constructor.\n   * @angularpackage\n   */\n  public get greater(): Greater<Value> {\n    return this.#greater;\n  }\n\n  /**\n   * The `get` accessor obtains from the private `#less` property an instance of the `Less` with a primitive value from a given `value` of\n   * the `Inequality` constructor.\n   * @returns The return value is the `Less` instance with a primitive value from the given `value` of the `Inequality` constructor.\n   * @angularpackage\n   */\n  public get less(): Less<Value> {\n    return this.#less;\n  }\n  //#endregion instance public accessors.\n\n  //#region instance private properties.\n  /**\n   * Private property of the `Greater` primitive wrapper `object` indicates the value of the `number` type greater than the given.\n   */\n  #greater: Greater<Value> = new Greater();\n\n  /**\n   * Private property of the `Less` primitive wrapper `object` indicates the value of `number` type less than the given.\n   */\n  #less: Less<Value> = new Less();\n  //#endregion instance private properties.\n\n  //#region constructor.\n  /**\n   * Creates a child class instance with the given primitive `value`.\n   * @param value The value of the generic type variable `Value` is the primitive value of a new child class instance.\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n    value && (this.#greater = new Greater(value));\n    value && (this.#less = new Less(value));\n  }\n  //#endregion constructor.\n\n  //#region instance public methods.\n  /**\n   * The `isBetween()` method checks whether the primitive value is between the range of a specified object.\n   * @param min The minimum range of number type to test.\n   * @param max The maximum range of number type to test.\n   * @returns The return value is a `boolean` type indicating whether the primitive value is between the range of a specified object.\n   * @angularpackage\n   */\n  public isBetween(min: number, max: number): boolean {\n    return min < max\n      ? (this.greaterThan(min) && this.lessThan(max)) ||\n          min === this.valueOf() ||\n          max === this.valueOf()\n      : false;\n  }\n\n  /**\n   * Checks whether the primitive value is between every range of the given `ranges`.\n   * @param ranges A rest parameter of `array` type ranges to test.\n   * @returns The return value is a `boolean` type indicating whether the primitive value is between every range of the\n   * given `ranges`.\n   * @angularpackage\n   */\n  public isBetweenEvery(...ranges: [number, number][]): boolean {\n    return ranges.every((range) => this.isBetween(range[0], range[1]));\n  }\n\n  /**\n   * Checks whether the primitive value is between some given `ranges`.\n   * @param ranges A rest parameter of `array` type ranges to test.\n   * @returns The return value is a `boolean` type indicating whether the primitive value is between some given `ranges`.\n   * @angularpackage\n   */\n  public isBetweenSome(...ranges: [number, number][]): boolean {\n    return ranges.some((range) => this.isBetween(range[0], range[1]));\n  }\n\n  /**\n   * Checks whether the primitive value of a child class instance is greater than the given `value`.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value of a child class instance is greater than the given\n   * `value`.\n   * @angularpackage\n   */\n  public greaterThan(value: number): boolean {\n    return this.#greater.than(value);\n  }\n\n  /**\n   * Checks whether the primitive value of a child class instance is greater than every value of the given `values`.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value of a child class instance is greater than every value\n   * of the given `values`.\n   * @angularpackage\n   */\n  public greaterThanEvery(...values: number[]): boolean {\n    return this.#greater.thanEvery(...values);\n  }\n\n  /**\n   * Checks whether the primitive value of a child class instance is greater than some given `values`.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value of a child class instance is greater than some given\n   * `values`.\n   * @angularpackage\n   */\n  public greaterThanSome(...values: number[]): boolean {\n    return this.#greater.thanSome(...values);\n  }\n\n  /**\n   * Checks whether the primitive value of a child class instance is less than the given `value`.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value of a child class instance is **less** than the given\n   * `value`.\n   * @angularpackage\n   */\n  public lessThan(value: number): boolean {\n    return this.#less.than(value);\n  }\n\n  /**\n   * Checks whether the primitive value of a child class instance is less than every given value.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value of a child class instance is less than every value of\n   * the given `values`.\n   * @angularpackage\n   */\n  public lessThanEvery(...values: number[]): boolean {\n    return this.#less.thanEvery(...values);\n  }\n\n  /**\n   * Checks whether the primitive value of a child class instance is less than some given `values`.\n   * @param values A rest parameter of the numbers to test.\n   * @returns The return value is a `boolean` indicating whether the primitive value of a child class instance is less than some given\n   * `values`.\n   * @angularpackage\n   */\n  public lessThanSome(...values: number[]): boolean {\n    return this.#less.thanSome(...values);\n  }\n  //#endregion instance public methods.\n}\n","// Class.\nimport { Inequality } from './inequality.class';\n/**\n * The `Maximum` primitive wrapper object extended by the `Inequality` abstract primitive wrapper `object` represents the maximum number\n * greater or less than the given.\n */\nexport class Maximum<Value extends number> extends Inequality<Value> {\n  //#region instance public properties.\n  /**\n   * The `get` accessor, with the help of `toStringTag`, changes the default tag to `'Maximum'` for an instance of `Maximum`. It can be read\n   * by the `typeOf()` function of `@angular-package/type`.\n   */\n  public get [Symbol.toStringTag](): string {\n    return 'Maximum';\n  }\n  //#endregion instance public properties.\n\n  //#region static public methods.\n  /**\n   * Creates the `Maximum` instance with the given primitive `value`.\n   * @param value The maximum number of generic type variable `Value` to set with a new instance.\n   * @returns The return value is the `Maximum` instance of the given primitive `value`.\n   * @angularpackage\n   */\n  public static create<Value extends number>(value?: Value): Maximum<Value> {\n    return new this(value);\n  }\n\n  /**\n   * Checks whether the value of any type is the `Maximum` instance of any or the given primitive value.\n   * @param value The value of any type to test against the `Maximum` instance.\n   * @param max Optional maximum of the generic type variable `Value` to check if it's the primitive value of the given `value`.\n   * @returns The return value is a `boolean` indicating whether the provided value is an instance of `Maximum`.\n   * @angularpackage\n   */\n  public static isMaximum<Value extends number>(\n    value: any,\n    max?: Value\n  ): value is Maximum<Value> {\n    return (\n      typeof value === 'object' &&\n      value instanceof this &&\n      (typeof max === 'number' ? value.valueOf() === max : true)\n    );\n  }\n  //#endregion static methods.\n\n  //#region constructor.\n  /**\n   * Creates the `Maximum` instance of the given primitive `value`.\n   * @param value The value of the generic type variable `Value` is the primitive value of the new instance.\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n  }\n  //#endregion constructor.\n\n  //#region instance public methods.\n  /**\n   * The `valueOf()` method returns the primitive value of the generic type variable `Value` of the specified `Maximum` object.\n   * @returns The return value is the primitive value of the generic type variable `Value`.\n   * @angularpackage\n   */\n  public valueOf(): Value {\n    return super.valueOf() as Value;\n  }\n  //#endregion instance public methods.\n}\n","// Class.\nimport { Inequality } from './inequality.class';\n/**\n * The `Minimum` primitive wrapper object extended by the `Inequality` abstract primitive wrapper `object` represents the minimum number\n * greater or less than the given.\n */\nexport class Minimum<Value extends number> extends Inequality<Value> {\n  //#region instance public properties.\n  /**\n   * The property, with the help of `toStringTag`, changes the default tag to `'Minimum'` for an instance of `Minimum`. It can be read by\n   * the `typeOf()` function of `@angular-package/type`.\n   */\n  public get [Symbol.toStringTag](): string {\n    return 'Minimum';\n  }\n  //#endregion instance public properties.\n\n  //#region static public methods.\n  /**\n   * The static `create()` method creates the `Minimum` instance with the given primitive `value`.\n   * @param value The minimum number of generic type variable `Value` to set with a new instance.\n   * @returns The return value is the `Minimum` instance with the primitive value of the given `value`.\n   */\n  public static create<Value extends number>(value: Value | undefined): Minimum<Value> {\n    return new this(value);\n  }\n\n  /**\n   * The static `isMinimum()` method checks the provided `value` of any type whether is an instance of `Minimum` of any or the given `min`.\n   * @param value The value of any type to test against the `Minimum` instance.\n   * @param max Optional minimum of the generic type variable `Value` to check if it's the primitive value of the given `value`.\n   * @returns The return value is a `boolean` indicating whether the provided `value` is an instance of `Minimum` of any or the given `min`.\n   */\n  public static isMinimum<Value extends number>(\n    value: any,\n    min?: Value\n  ): value is Minimum<Value> {\n    return (\n      typeof value === 'object' &&\n      value instanceof this &&\n      (typeof min === 'number' ? value.valueOf() : true)\n    );\n  }\n  //#endregion static public methods.\n\n  //#region constructor.\n  /**\n   * Creates the `Minimum` instance of the given primitive `value`.\n   * @param value The value of the generic type variable `Value` is the primitive value of the new instance.\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n  }\n  //#endregion constructor.\n\n  //#region instance public methods.\n  /**\n   * The `valueOf()` method returns the primitive value of generic type variable `Value` of the specified `Minimum` object.\n   * @returns The return value is the primitive value of generic type variable `Value`.\n   * @angularpackage\n   */\n  public valueOf(): Value {\n    return super.valueOf() as Value;\n  }\n  //#endregion instance public methods.\n}\n","// Class.\nimport { Inequality } from './inequality.class';\n/**\n * The `Number` primitive wrapper object extended by the `Inequality` abstract primitive wrapper `object` represents the number greater or\n * less than the given.\n */\nexport class Number<Value extends number> extends Inequality<Value> {\n  //#region static public methods.\n  /**\n   * Creates the `Number` instance with the given primitive `value`.\n   * @param value The number of generic type variable `Value` to set with a new instance.\n   * @returns The return value is the `Number` instance of the given primitive `value`.\n   * @angularpackage\n   */\n  public static create<Value extends number>(value?: Value): Number<Value> {\n    return new this(value);\n  }\n\n  /**\n   * Checks whether the value of any type is the `Number` instance of any or the given primitive value.\n   * @param value The value of any type to test against the `Number` instance.\n   * @param numberValue Optional number of the generic type variable `Value` to check if it's the primitive value of the given `value`.\n   * @returns The return value is a `boolean` indicating whether the provided value is an instance of `Number` of any or the given\n   * `numberValue`.\n   * @angularpackage\n   */\n  public static isNumber<Value extends number>(\n    value: any,\n    numberValue?: Value\n  ): value is Number<Value> {\n    return (\n      typeof value === 'object' &&\n      value instanceof this &&\n      (typeof numberValue === 'number' ? value.valueOf() === numberValue : true)\n    );\n  }\n  //#endregion static methods.\n\n  //#region constructor.\n  /**\n   * Creates the `Number` instance of the given primitive `value`.\n   * @param value The value of the generic type variable `Value` is the primitive value of the new instance.\n   * @angularpackage\n   */\n  constructor(value?: Value) {\n    super(value);\n  }\n  //#endregion constructor.\n\n  //#region instance public methods.\n  /**\n   * The `valueOf()` method returns the primitive value of the generic type variable `Value` of the specified `Number` object.\n   * @returns The return value is the primitive value of the generic type variable `Value`.\n   * @angularpackage\n   */\n  public valueOf(): Value {\n    return super.valueOf() as Value;\n  }\n  //#endregion instance public methods.\n}\n","// Class.\nimport { Maximum } from './maximum.class';\nimport { Minimum } from './minimum.class';\n/**\n * The `Range` object represents a range between a minimum and maximum.\n */\nexport class Range<\n  Min extends number,\n  Max extends number,\n  Step extends number = 1\n> {\n  //#region instance accessors.\n  /**\n   * The `get` accessor obtains the range of an `Array` of the minimum to the maximum with the step of a specified `Range` object.\n   * @returns The return value is the range from minimum to the maximum of a read-only `Array` of number.\n   * @angularpackage\n   */\n  public get range(): Readonly<Array<number>> {\n    return this.getRange();\n  }\n\n  /**\n   * The `get` accessor obtains the step of a specified `Range` object. It's used to return the entire range, get the step of the range\n   * value, and change the range value.\n   * @returns The return value is the step of generic type variable `Step`.\n   * @angularpackage\n   */\n  public get step(): Step {\n    return this.#step;\n  }\n\n  /**\n   * The `get` accessor retrieves the number of steps of the specified `Range` object.\n   * @returns The return value is the number of steps of the `number` type.\n   * @angularpackage\n   */\n  public get steps(): number {\n    return this.getRange().length;\n  }\n\n  /**\n   * The `get` accessor retrieves the `#value` property that indicates the range current value of the `number` type of a specified `Range`\n   * object. It can be set by the `setValue()` method.\n   * @returns The return value is the range current value of `number` type if set, otherwise `undefined`.\n   * @angularpackage\n   */\n  public get value(): number | undefined {\n    return this.#value;\n  }\n\n  /**\n   * The `set` accessor sets the range current value of the `number` type between the minimum and maximum of a specified `Range`\n   * object.\n   * @returns The return value is the range current value of `number` type if set, otherwise `undefined`.\n   * @angularpackage\n   */\n  public set value(value: number | undefined) {\n    typeof value === 'number'\n      ? this.has(value) && (this.#value = value)\n      : undefined;\n  }\n\n  /**\n   * The property, with the help of `toStringTag`, changes the default tag to `'Range'` for an instance of `Range`. It can be read by the\n   * `typeOf()` function of `@angular-package/type`.\n   * @returnsThe return value is the word 'Range` of a `string`.\n   * @angularpackage\n   */\n  public get [Symbol.toStringTag](): string {\n    return 'Range';\n  }\n  //#endregion instance accessors.\n\n  //#region instance properties.\n  //#region public instance properties.\n  /**\n   * The `max` read-only property is the maximum range of generic type variable `Max` of a specified `Range` object.\n   */\n  public readonly max!: Max;\n\n  /**\n   * The `min` read-only property is the minimum range of generic type variable `Min` of a specified `Range` object.\n   */\n  public readonly min!: Min;\n  //#endregion public instance properties.\n\n  //#region private instance properties.\n  /**\n   * Private property of the `Maximum` primitive wrapper `object` with a primitive value from a given `max` of the `Range` constructor\n   * indicates the maximum range.\n   */\n  #maximum: Maximum<Max>;\n\n  /**\n   * Private property of the `Minimum` primitive wrapper `object` with a primitive value from a given `min` of the `Range` constructor\n   * indicates the minimum range.\n   */\n  #minimum: Minimum<Min>;\n\n  /**\n   * The private property of the generic type variable `Step` indicates the range step. It's used to return the entire range, get the\n   * step of the range value, and change the range value.\n   */\n  #step: Step;\n\n  /**\n   * The private property of the `number` type indicates the range value. It can be set by the `setValue()` method and setter `value`.\n   */\n  #value?: number;\n  //#endregion private instance properties.\n  //#endregion instance properties.\n\n  //#region static public methods.\n  /**\n   * The static `create()` method returns a new instance of `Range` with a range of the given required `min`, `max` and optional current\n   * `value`, `step`.\n   * @param min The **minimum** range of generic type variable `Min` to set with a new `Range` instance.\n   * @param max The **maximum** range of generic type variable `Max` to set with a new `Range` instance.\n   * @param value The optional value of the `number` type between the given `min` and `max` specifies the default value of a new `Range`\n   * instance.\n   * @param step Optional step of generic type variable `Step` to set with a new `Range` instance, by default `1`.\n   * @returns The return value is the `Range` instance with a range of the given required `min`, `max` and optional current `value`, `step`.\n   * @angularpackage\n   */\n  public static create<\n    Min extends number,\n    Max extends number,\n    Step extends number = 1\n  >(min: Min, max: Max, value?: number, step?: Step): Range<Min, Max, Step> {\n    return new this(min, max, value, step);\n  }\n\n  /**\n   * Creates the `Range` instance from the given random numbers and the step.\n   * @param numbers An `Array` of numbers to find a range and create a new instance.\n   * @param step Optional step of generic type variable `Step` to set with a new `Range` instance, by default `1`.\n   * @returns The return value is the `Range` instance created from the given required random numbers and the optional step.\n   * @angularpackage\n   */\n  public static createFrom<Step extends number = 1>(\n    numbers: number[],\n    step: Step = 1 as Step\n  ): Range<number, number, Step> {\n    return Range.create(\n      Math.min.apply(0, numbers),\n      Math.max.apply(0, numbers),\n      step\n    );\n  }\n\n  /**\n   * The static `createMaximum()` method returns the `Maximum` instance of the given maximum `value`.\n   * @param value The maximum range of a generic type variable `Value` to set with a new instance of `Maximum`.\n   * @returns The return value is the `Maximum` instance with the primitive value from the given `value`.\n   * @angularpackage\n   */\n  public static createMaximum<Value extends number>(\n    value: Value\n  ): Maximum<Value> {\n    return Maximum.create(value);\n  }\n\n  /**\n   * The static `createMinimum()` method returns the `Minimum` instance of the given minimum `value`.\n   * @param value The minimum range of a generic type variable `Value` to set with a new instance of `Minimum`.\n   * @returns The return value is the `Minimum` instance with the primitive value from the given `value`.\n   * @angularpackage\n   */\n  public static createMinimum<Value extends number>(\n    value: Value\n  ): Minimum<Value> {\n    return Minimum.create(value);\n  }\n\n  /**\n   * The static `isRange()` method checks whether the `value` is an instance of `Range` of any or the given minimum, maximum, and step.\n   * @param value The value of any type to test against the `Range` instance.\n   * @param min The optional minimum range of generic type variable `Min` to check whether it's equal to a minimum of the given `value`.\n   * @param max The optional maximum range of generic type variable `Max` to check whether it's equal to a maximum of the given `value`.\n   * @param step Optional step of generic type variable `Step` to check whether it's equal to the step of the given `value`.\n   * @returns The return value is a boolean indicating whether the provided `value` is an instance of `Range` of any or the given minimum,\n   * maximum range and step.\n   * @angularpackage\n   */\n  public static isRange<\n    Min extends number,\n    Max extends number,\n    Step extends number\n  >(\n    value: any,\n    min?: Min,\n    max?: Max,\n    step?: Step\n  ): value is Range<Min, Max, Step> {\n    return typeof value === 'object' && value instanceof this\n      ? (typeof min === 'number' ? value.min === min : true) &&\n          (typeof max === 'number' ? value.max === max : true) &&\n          (typeof step === 'number' ? value.step === step : true)\n      : false;\n  }\n  //#endregion static public methods.\n\n  //#region constructor.\n  /**\n   * Creates the `Range` instance with a range of the given required `min`, `max` and optional current `value`, `step`.\n   * @param min The minimum range of generic type variable `Min` to set with a new `Range` instance.\n   * @param max The maximum range of generic type variable `Max` to set with a new `Range` instance.\n   * @param value The optional value of the `number` type between the given `min` and `max` specifies the default value of a new `Range`\n   * instance.\n   * @param step Optional step of generic type variable `Step` to set with a new `Range` instance, by default `1`. The step is used by the\n   * `range` accessor, `getRange()` , `getRangeOfStep()` and `stepByStep()` methods to return the entire range and also by the\n   * `valueDown()`, valueUp() methods to respectively decrement, increment range value.\n   * @returns The return value is a new instance of `Range` of the given minimum and maximum.\n   * @angularpackage\n   */\n  constructor(min: Min, max: Max, value?: number, step: Step = 1 as Step) {\n    this.#maximum = new Maximum(max);\n    this.#minimum = new Minimum(min);\n    this.#step = step;\n    // Sets the range value between the given `min` and `max`.\n    this.value = value;\n    // Define the `min` and `max` property.\n    Object.defineProperties(this, {\n      min: {\n        value: min,\n        enumerable: true,\n        writable: false,\n      },\n      max: {\n        value: max,\n        enumerable: true,\n        writable: false,\n      },\n    });\n  }\n  //#endregion constructor.\n\n  //#region instance public methods.\n  /**\n   * The `forEachStep()` method performs the specified action for each step in the maximum range of an `Array`.\n   * @param forEachStep A `function` that accepts up to three arguments. It's called one time for each step in the range.\n   * @returns The return value is the `Range` instance.\n   * @angularpackage\n   */\n  public forEachStep(\n    forEachStep: (value: number, step: number, range: readonly number[]) => void\n  ): this {\n    this.range.forEach(forEachStep);\n    return this;\n  }\n\n  /**\n   * The `getCurrentRange()` method returns a range of numbers from minimum to the current value by the step of a specified `Range` object.\n   * @returns The return value is a range of numbers of a read-only `Array` from minimum to the current value, if the current value is set,\n   * otherwise `undefined`.\n   * @angularpackage\n   */\n  public getCurrentRange(): Readonly<Array<number>> | undefined {\n    return typeof this.value === 'number'\n      ? this.getRange(this.value)\n      : undefined;\n  }\n\n  /**\n   * The `getCurrentStep()` method returns the step of the range value.\n   * @returns The return value is the step of `number` type, if range value is set, otherwise `undefined`.\n   * @angularpackage\n   */\n  public getCurrentStep(): number | undefined {\n    return typeof this.value === 'number'\n      ? Math.floor(this.value / this.#step)\n      : undefined;\n  }\n\n  /**\n   * @deprecated\n   * The `getMax()` method gets the maximum range of a specified `Range` object.\n   * @returns The return value is the maximum range of a generic type variable `Max`.\n   * @angularpackage\n   */\n  public getMax(): Max {\n    return this.#maximum.valueOf();\n  }\n\n  /**\n   * @deprecated\n   * The `getMin()` method gets the minimum range of a specified `Range` object.\n   * @returns The return value is the minimum range of a generic type variable `Min`.\n   * @angularpackage\n   */\n  public getMin(): Min {\n    return this.#minimum.valueOf();\n  }\n\n  /**\n   * The `getRange ()` method returns a range of numbers by the specified step from minimum to the given `value` of the specified` Range`\n   * object.\n   * @param value Optional maximum range value of `number` type of returned `array` by default it's the maximum range.\n   * @returns The return value is a range of numbers of a read-only `Array` from minimum to the given `value`.\n   * @angularpackage\n   */\n  public getRange(value: number = this.max): Readonly<Array<number>> {\n    const range = [];\n    let current: number = this.min;\n    while (current <= value) {\n      current <= this.max && range.push(current), (current += this.#step);\n    }\n    return range;\n  }\n\n  /**\n   * The `getRangeOfStep()` method returns a range of numbers by the specified step from the minimum to the given `step` of a specified\n   * `Range` object.\n   * @param step Step of `number` type is the maximum range of the returned `array`. The value must be less or equal to the number of range\n   * steps.\n   * @returns The return value is a range of numbers of a read-only `Array` from minimum to step of the given `step` if the given `step`\n   * is within a range, otherwise an empty `Array`.\n   * @angularpackage\n   */\n  public getRangeOfStep(step: number): Readonly<Array<number>> {\n    const range = [];\n    if (step > 0 && step <= this.steps) {\n      for (let value = 0; value < step; value++) {\n        range.push(this.min + value * this.#step);\n      }\n    }\n    return range;\n  }\n\n  /**\n   * The `getValueOfStep()` method returns the range value of the given `step`. If the given `step` is not within range returns `undefined`.\n   * @param step Step parameter of `number` type to retrieve the range value.\n   * @returns The return value is the range value of the given `step` within a range otherwise `undefined`.\n   * @angularpackage\n   */\n  public getValueOfStep(step: number): number | undefined {\n    return step > 0 && step <= this.steps ? this.range[step - 1] : undefined;\n  }\n\n  /**\n   * The `has()` method checks whether the value is in the range of a specified `Range` object.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` indicating whether the given `value` is in the range of a specified `Range` object.\n   * @angularpackage\n   */\n  public has(value: number): boolean {\n    return (\n      (this.minLessThan(value) && this.maxGreaterThan(value)) ||\n      value === this.min ||\n      value === this.max\n    );\n  }\n\n  /**\n   * The `hasEvery()` method checks whether every value of the given `values` is in the range of a specified `Range` object.\n   * @param value A rest parameter of numbers to test.\n   * @returns The return value is a `boolean` indicating whether every value of the given `values` is in the range of a specified `Range`\n   * object.\n   * @angularpackage\n   */\n  public hasEvery(...values: number[]): boolean {\n    return values.every((value) => this.has(value));\n  }\n\n  /**\n   * Checks whether some `values` are in the range of a specified `Range` object.\n   * @param value A rest parameter of numbers to test.\n   * @returns The return value is a `boolean` indicating whether some `values` are in the range of a specified `Range` object.\n   * @angularpackage\n   */\n  public hasSome(...values: number[]): boolean {\n    return values.some((value) => this.has(value));\n  }\n\n  /**\n   * The `isBetween()` method checks whether range of the given `min` and `max` is between the range of a specified `Range` object.\n   * @param min The **minimum** range of `number` type to test.\n   * @param max The **maximum** range of `number` type to test.\n   * @returns The return value is a `boolean` type indicating whether the range of a specified `Range` object is between a range of the\n   * given `min` and `max`.\n   * @angularpackage\n   */\n  public isBetween(min: number, max: number): boolean {\n    return min <= max ? this.hasEvery(min, max) : false;\n  }\n\n  /**\n   * Checks whether the range of a specified `Range` object is between every range of the given `ranges`.\n   * @param ranges A rest parameter of ranges of an `array` type to test.\n   * @returns The return value is a `boolean` type indicating whether the range of a specified `Range` object is between every range of the\n   * given `ranges`.\n   * @angularpackage\n   */\n  public isBetweenEvery(...ranges: [number, number][]): boolean {\n    return ranges.every((range) =>\n      range[0] <= range[1] ? this.hasEvery(...range) : false\n    );\n  }\n\n  /**\n   * Checks whether the range of a specified `Range` object is between some given `ranges`.\n   * @param ranges A rest parameter of an `array` type ranges to test.\n   * @returns The return value is a `boolean` type indicating whether the range of a specified `Range` object is between some given\n   * `ranges`.\n   * @angularpackage\n   */\n  public isBetweenSome(...ranges: [number, number][]): boolean {\n    return ranges.some((range) =>\n      range[0] <= range[1] ? this.hasEvery(...range) : false\n    );\n  }\n\n  /**\n   * The `maxGreaterThan()` method checks whether the value is less than the maximum range of a specified `Range` object.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` type indicating whether the given `value` is less than maximum range of a specified `Range`\n   * object.\n   * @angularpackage\n   */\n  public maxGreaterThan(value: number): boolean {\n    return this.#maximum.greaterThan(value);\n  }\n\n  /**\n   * The `maxLessThan()` method checks whether the value is greater than the maximum range of a specified `Range` object.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` type indicating whether the given `value` is greater than maximum range of a specified `Range`\n   * object.\n   * @angularpackage\n   */\n  public maxLessThan(value: number): boolean {\n    return this.#maximum.lessThan(value);\n  }\n\n  /**\n   * The `minGreaterThan()` method checks whether the value is less than a minimum range of a specified `Range` object.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` type indicating whether the given `value` is less than minimum range of a specified `Range`\n   * object.\n   * @angularpackage\n   */\n  public minGreaterThan(value: number): boolean {\n    return this.#minimum.greaterThan(value);\n  }\n\n  /**\n   * The method `minLessThan()` checks whether the value is greater than the minimum range of a specified `Range` object.\n   * @param value The value of `number` type to test.\n   * @returns The return value is a `boolean` type indicating whether the given `value` is greater than minimum range of a specified `Range`\n   * object.\n   * @angularpackage\n   */\n  public minLessThan(value: number): boolean {\n    return this.#minimum.lessThan(value);\n  }\n\n  /**\n   * The method `setValue()` sets the range value between the minimum and maximum of a specified `Range` object. If the given `value` is not\n   * within range, it's not set.\n   * @param value The value of `number` type to set.\n   * @returns The return value is the `Range` instance.\n   * @angularpackage\n   */\n  public setValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  /**\n   * The method `setValueToStep()` sets the value of the specified `Range` object to the value of the given `step`. If the given `step` is\n   * not within range the value is not changed.\n   * @param step Step of `number` type to retrieve the value from the range and set it as the range current `value`.\n   * @returns The return value is the `Range` instance.\n   * @angularpackage\n   */\n  public setValueToStep(step: number): this {\n    step > 0 && (this.value = this.getValueOfStep(step));\n    return this;\n  }\n\n  /**\n   * The `stepByStep()` method performs a callback function with the ability to decide when to move to the next step of the range.\n   * @param callbackFn A function that accepts up to three arguments. The `value` is a function generator that allows deciding when to move\n   * to the next step, `step` is the step, and `max` is the maximum of a specified `Range` object.\n   * @returns The return value is the `Range` instance.\n   * @angularpackage\n   */\n  public stepByStep(\n    callbackFn: (value: Generator<number>, step: Step, max: Max) => void\n  ): this {\n    const t = this;\n    callbackFn(\n      (function* stepByStep(current = t.min - t.step): Generator<number> {\n        while (current < t.max) {\n          yield (current += t.step);\n        }\n      })(),\n      t.step,\n      t.max\n    );\n    return this;\n  }\n\n  /**\n   * @deprecated\n   * The `toArray()` method returns a read-only array of the range in order minimum and maximum.\n   * @returns The return value is a read-only array of the range in order minimum and maximum.\n   * @angularpackage\n   */\n  public toArray(): readonly [Min, Max] {\n    return [this.#minimum.valueOf(), this.#maximum.valueOf()];\n  }\n\n  /**\n   * The `valueDown()` method decrements the range value of a specified `Range` object by the range step or given `stepDecrement`.\n   * @param stepIncrement The optional `stepDecrement` parameter of the `number` type decrements the range value. If no parameter is passed,\n   * `stepDecrement` defaults to `1`.\n   * @returns The return value is the `Range` instance.\n   * @angularpackage\n   */\n  public valueDown(stepDecrement = 1): this {\n    typeof this.value === 'number' &&\n      stepDecrement > 0 &&\n      this.setValue(this.value - stepDecrement * this.#step);\n    return this;\n  }\n\n  /**\n   * @deprecated\n   * The `valueOf()` method returns a read-only object consisting of the primitive values of `Minimum` and `Maximum` instances.\n   * @returns The return value is a frozen `object` consisting of the primitive values of `Minimum` and `Maximum` instances.\n   * @angularpackage\n   */\n  public valueOf(): Readonly<{ min: Min; max: Max }> {\n    return Object.freeze({\n      min: this.#minimum.valueOf(),\n      max: this.#maximum.valueOf(),\n    });\n  }\n\n  /**\n   * The `valueUp()` method increments the range value of a specified `Range` object by the range step or given `stepIncrement`.\n   * @param stepIncrement The optional `stepIncrement` parameter of the `number` type increments the range value. If no parameter is passed,\n   * `stepIncrement` defaults to `1`.\n   * @returns The return value is the `Range` instance.\n   * @angularpackage\n   */\n  public valueUp(stepIncrement = 1): this {\n    typeof this.value === 'number' &&\n      stepIncrement > 0 &&\n      this.setValue(this.value + stepIncrement * this.#step);\n    return this;\n  }\n  //#endregion instance public methods.\n}\n","// Rxjs.\nimport { Subject } from 'rxjs';\n\n// Range.\nimport { Number } from '../range';\n\n/**\n *\n */\nexport class Duration<T extends number> extends Number<T> {\n  /**\n   *\n   */\n  public get doneSubject(): Subject<boolean> {\n    return this.#done;\n  }\n\n  /**\n   *\n   */\n  public get duration(): number {\n    return super.valueOf();\n  }\n\n  /**\n   *\n   */\n  #done: Subject<boolean>;\n  #durationTimeOut?: NodeJS.Timeout;\n\n  /**\n   *\n   * @param duration\n   * @angularpackage\n   */\n  constructor(duration: T) {\n    super(duration);\n\n    // Set done subject.\n    this.#done = new Subject();\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public clearTimeOut(): this {\n    this.#durationTimeOut && clearTimeout(this.#durationTimeOut);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public doAfter(callbackFn: (duration: number) => void): this {\n    this.hasDuration(\n      (duration) =>\n        (this.#durationTimeOut = setTimeout(() => {\n          callbackFn(duration);\n          this.#done.next(true);\n        }, duration))\n    );\n    return this;\n  }\n\n  /**\n   *\n   * @param callbackFn\n   * @returns\n   * @angularpackage\n   */\n  public hasDuration(callbackFn?: (duration: number) => void): boolean {\n    return this.duration > 0\n      ? (callbackFn && callbackFn(this.duration), true)\n      : false;\n  }\n}\n","// Type.\nimport { Sizes } from '../type/sizes.type';\n\n/**\n *\n */\nexport const AVAILABLE_SIZES: Sizes[] = ['xs', 'sm', 'md', 'none', 'lg', 'xl'];\n","// Rxjs.\nimport { Observer } from 'rxjs';\n\n// Class.\nimport { AffixedName, Name } from '../../name';\n\n// Constant.\nimport { AVAILABLE_SIZES } from './available-sizes.const';\n\n// Type.\nimport { Sizes } from '../type/sizes.type';\nimport { SizesConfig } from '../type/sizes-config.type';\n\n// Interface.\nimport { SizeOptions } from '../interface/size-options.interface';\n\n/**\n *\n */\nexport class Size<\n  Prefix extends string | undefined = 'size',\n  Value extends Sizes = Sizes,\n  Suffix extends string | undefined = undefined\n> extends Name<Sizes, Prefix, Value, Suffix> {\n  /**\n   *\n   */\n  public get size(): AffixedName<Prefix, Value, Suffix> | undefined {\n    return super.get;\n  }\n\n  /**\n   *\n   */\n  public get sizesConfig(): SizesConfig | undefined {\n    return this.#config;\n  }\n\n  /**\n   *\n   */\n  #config?: SizesConfig;\n\n  /**\n   *\n   * @param size\n   * @param sizesConfig\n   * @angularpackage\n   */\n  constructor(\n    size?: Value,\n    options?: SizeOptions<Prefix, Suffix>,\n    sizesConfig?: SizesConfig\n  ) {\n    super(size, {\n      availableNames: options?.availableSizes || AVAILABLE_SIZES,\n      // FIXME: change the size to use options\n      prefix: options?.prefix || 'size' as Prefix,\n      suffix: options?.suffix,\n    });\n    this.#config = sizesConfig;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public lg(emit = true): this {\n    this.set('lg' as Value, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public md(emit = true): this {\n    this.set('md' as Value, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @param emit\n   * @returns\n   * @angularpackage\n   */\n  public none(emit = true): this {\n    this.set('none' as Value, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public set<Selected extends Value>(size?: Selected, emit = true): this {\n    size === undefined ? super.unset() : super.set(size, emit);\n    return this;\n  }\n\n  /**\n   * TODO: Change the css variables.\n   * @param config\n   * @returns\n   * @angularpackage\n   */\n  public setConfig(config?: SizesConfig): this {\n    typeof config === 'object' &&\n      ((this.#config = config),\n      Object.keys(config).forEach((size) =>\n        document.documentElement.style.setProperty(\n          `--${this.prefix?.value}-${size}`,\n          config[size as keyof typeof config] as string\n        )\n      ));\n\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public sm(emit = true): this {\n    this.set('sm' as Value, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public subscribe<Type = Sizes>(\n    observer?: Partial<Observer<Type | undefined>>\n  ): this {\n    super.subscribe(observer);\n    return this;\n  }\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public xl(emit = true): this {\n    this.set('xl' as Value, emit);\n    return this;\n  }\n\n  /**\n   *\n   * @returns\n   * @angularpackage\n   */\n  public xs(emit = true): this {\n    this.set('xs' as Value, emit);\n    return this;\n  }\n}\n","// Class.\nimport { Size } from '../../size/src/size.class';\n\n// Type.\nimport { SizesConfig } from '../../size/type/sizes-config.type';\nimport { Sizes } from '../../size/type/sizes.type';\n\n/**\n *\n */\nexport class Margin<\n  Prefix extends string | undefined = 'margin',\n  Value extends Sizes = Sizes,\n  Suffix extends string | undefined = string\n> extends Size<Prefix, Value, Suffix> {\n  /**\n   *\n   * @param size\n   * @param options\n   * @param config\n   * @angularpackage\n   */\n  constructor(\n    size?: Value,\n    options?: {\n      prefix?: Prefix;\n      suffix?: Suffix;\n    },\n    config?: SizesConfig\n  ) {\n    super(\n      size,\n      {\n        prefix: 'margin' as Prefix,\n        ...options,\n      },\n      config\n    );\n  }\n}\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Class.\nimport { Margin } from './margin.class';\n\n// Type.\nimport { Sizes } from '../../size';\n\n/**\n *\n */\n@Injectable()\nexport class MarginService<\n  Prefix extends string | undefined = 'margin',\n  Suffix extends string | undefined = undefined\n> extends Margin<Prefix, Sizes, Suffix> {}\n","// Class.\nimport { Size } from '../../size/src/size.class';\n\n// Type.\nimport { SizesConfig } from '../../size/type/sizes-config.type';\nimport { Sizes } from '../../size/type/sizes.type';\n\n/**\n *\n */\nexport class Padding<\n  Prefix extends string | undefined = 'padding',\n  Value extends Sizes = Sizes,\n  Suffix extends string | undefined = string\n> extends Size<Prefix, Value, Suffix> {\n  /**\n   *\n   * @param size\n   * @param options\n   * @param config\n   * @angularpackage\n   */\n  constructor(\n    size: Value,\n    options?: {\n      prefix?: Prefix;\n      suffix?: Suffix;\n    },\n    config?: SizesConfig\n  ) {\n    super(\n      size,\n      {\n        prefix: 'padding' as Prefix,\n        ...options,\n      },\n      config\n    );\n  }\n}\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Class.\n// import { CommonService } from '../../lib/common-service';\nimport { Padding } from './padding.class';\n\n// Type.\nimport {\n  Sizes,\n  // SizeConfig\n} from '../../size';\n\n/**\n *\n */\n@Injectable()\nexport class PaddingService<\n  Prefix extends string | undefined = 'padding',\n  Suffix extends string | undefined = undefined\n> extends Padding<Prefix, Sizes, Suffix> {}\n","import { PatternTypes } from '../type/pattern-types.type';\n\nexport class Pattern {\n  static #types = ['email', 'password', `search`, 'tel', `url`, 'text'];\n  #pattern: Map<PatternTypes, string> = new Map();\n\n  public static isAllowedType(type: string): type is PatternTypes {\n    return this.#types.includes(type) ? true : false;\n  }\n\n  constructor() {\n    this.#pattern\n      .set('email', `[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,14}$`)\n      .set('password', `^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9]).{8,}$`)\n      // .set('search', ``)\n      // .set('tel', ``)\n      // .set('text', ``)\n      .set('url', `https://.*`);\n  }\n\n  public get(type: PatternTypes): string {\n    return this.#pattern.get(type) || ``;\n  }\n\n  public has(type: PatternTypes): type is PatternTypes {\n    return Pattern.isAllowedType(type) ? this.#pattern.has(type) : false;\n  }\n\n  public set(type: PatternTypes, value: string): this {\n    Pattern.isAllowedType(type) && this.#pattern.set(type, value);\n    return this;\n  }\n}\n","import { BottomPositions } from '../../type/bottom-positions.type';\n\n/**\n * Bottom positions that can be used in the `Position` class to check.\n */\nexport const BOTTOM_POSITIONS: BottomPositions[] = [\n  'bottom',\n  'bottom-center',\n  'bottom-left',\n  'bottom-right'\n];\n","import { LeftPositions } from '../../type/left-positions.type';\n\n/**\n * Left positions that can be used in the `Position` class to check.\n */\nexport const LEFT_POSITIONS: LeftPositions[] = [\n  'left',\n  'left-bottom',\n  'left-center',\n  'left-middle',\n  'left-top'\n];\n","import { MiddlePositions } from '../../type/middle-positions.type';\n\n/**\n * Middle positions that can be used in the `Position` class to check.\n */\nexport const MIDDLE_POSITIONS: MiddlePositions[] = [\n  'middle',\n  'middle-center',\n  'middle-left',\n  'middle-right'\n];\n","import { OutsidePositions } from '../../type/outside-positions.type';\n\n/**\n * Outside positions that can be used in the `Position` class to check.\n */\nexport const OUTSIDE_POSITIONS: OutsidePositions[] = [\n  'outside-bottom',\n  'outside-left',\n  'outside-right',\n  'outside-top',\n];\n","import { RightPositions } from '../../type/right-positions.type';\n\n/**\n * Right positions that can be used in the `Position` class to check.\n */\nexport const RIGHT_POSITIONS: RightPositions[] = [\n  'right',\n  'right-bottom',\n  'right-center',\n  'right-middle',\n  'right-top'\n];\n","import { TopPositions } from '../../type/top-positions.type';\n\n/**\n * Top positions that can be used in the `Position` class to check.\n */\nexport const TOP_POSITIONS: TopPositions[] = [\n  'top',\n  'top-center',\n  'top-left',\n  'top-right'\n];\n","// Type.\nimport { Positions } from '../../type/positions.type';\n\n// Constant.\nimport { BOTTOM_POSITIONS } from './bottom-positions.const';\nimport { LEFT_POSITIONS } from './left-positions.const';\nimport { MIDDLE_POSITIONS } from './middle-positions.const';\nimport { OUTSIDE_POSITIONS } from './outside-positions.const';\nimport { RIGHT_POSITIONS } from './right-positions.const';\nimport { TOP_POSITIONS } from './top-positions.const';\n\n/**\n * Available positions that are used in the `Position` class to check.\n */\nexport const AVAILABLE_POSITIONS: Positions[] = [\n  // Bottom.\n  ...BOTTOM_POSITIONS,\n\n  // Left.\n  ...LEFT_POSITIONS,\n\n  // Middle.\n  ...MIDDLE_POSITIONS,\n\n  // Outside.\n  ...OUTSIDE_POSITIONS,\n\n  // Right.\n  ...RIGHT_POSITIONS,\n\n  // Top.\n  ...TOP_POSITIONS\n];\n","// Class.\nimport { Name } from '../../name/src/name.class';\n\n// Constant.\nimport { AVAILABLE_POSITIONS } from './constant/available-positions.const';\n\n// Type.\nimport { Positions } from '../type/positions.type';\n\n/**\n *\n */\nexport class Position<\n  AvailablePositions extends string = Positions,\n  Prefix extends string | undefined = 'position',\n  Value extends AvailablePositions = AvailablePositions,\n  Suffix extends string | undefined = undefined\n> extends Name<AvailablePositions, Prefix, Value, Suffix> {\n  constructor(\n    position?: Value,\n    options?: {\n      availablePositions?: AvailablePositions[],\n      prefix?: Prefix;\n      suffix?: Suffix;\n    }\n  ) {\n    super(position, {\n      availableNames: options?.availablePositions || AVAILABLE_POSITIONS as AvailablePositions[],\n      prefix: 'position' as Prefix,\n      suffix: options?.suffix,\n    });\n  }\n}\n","import { InjectionToken } from '@angular/core';\n\n/**\n *\n */\nexport const POSITIONAL_PREFIX = new InjectionToken<string>('s-positional-prefix');\n","// @angular.\nimport { InjectionToken } from '@angular/core';\n\n/**\n *\n */\nexport const POSITIONAL_SUFFIX = new InjectionToken<string>('s-positional-suffix');\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Class.\nimport { Size } from './size.class';\n\n// Type.\nimport { Sizes } from '../type/sizes.type';\n\n/**\n *\n */\n@Injectable()\nexport class SizeService<\n  PrefixValue extends string | undefined = undefined,\n  SuffixValue extends string | undefined = undefined\n> extends Size<PrefixValue, Sizes, SuffixValue> {}\n","// @angular.\nimport { Injectable } from '@angular/core';\n\n// Utilities.\nimport { Ability } from '../../ability';\nimport { Active } from '../../active';\nimport { Expandable } from '../../expandable';\nimport { Size } from '../../size';\n\n/**\n *\n */\n@Injectable()\nexport class SidebarService {\n\n  public get ability(): Ability {\n    return this.#ability;\n  }\n\n  public get active(): Active {\n    return this.#active;\n  }\n\n  public get expandable(): Expandable {\n    return this.#expandable;\n  }\n\n  public get size(): Size<'sidebar-size'> {\n    return this.#size;\n  }\n\n  #active = new Active(false);\n  #ability = new Ability(false);\n  #expandable = new Expandable(false);\n  #size = new Size(undefined, { prefix: 'sidebar-size' });\n\n  /**\n   *\n   */\n  public unsubscribe(): void {\n    this.ability.unsubscribe();\n    this.active.unsubscribe();\n    this.expandable.unsubscribe();\n    this.#size.unsubscribe();\n  }\n}\n","import { TxtAlign } from '../type/txt-align.type';\n\nexport const AVAILABLE_TEXT_ALIGN: TxtAlign[] = [\n  'bottom',\n  'center',\n  'justify',\n  'left',\n  'right',\n  'top',\n];\n","// Class.\nimport { Align } from '../../align/src/align.class';\n\n// Constant.\nimport { AVAILABLE_TEXT_ALIGN } from './available-text-align.const';\n\n// Type.\nimport { TxtAlign } from '../type/txt-align.type';\n\n/**\n *\n */\nexport class TextAlign<\n  AvailableAlign extends string = TxtAlign,\n  Value extends AvailableAlign = AvailableAlign\n> extends Align<'text', AvailableAlign, Value> {\n  constructor(\n    align: Value,\n    availableAlign = AVAILABLE_TEXT_ALIGN as AvailableAlign[]\n  ) {\n    super(align, {\n      prefix: 'text',\n      availableAlign,\n    });\n  }\n}\n"],"names":["Boolean","String","_a","Number"],"mappings":"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"}