{"version":3,"file":"dshch-rad-ui-common.mjs","sources":["../../../projects/rad-ui/common/class-list.ts","../../../projects/rad-ui/common/color.ts","../../../projects/rad-ui/common/directives/input-trim.directive.ts","../../../projects/rad-ui/common/helpers/element.ts","../../../projects/rad-ui/common/helpers/error-message.ts","../../../projects/rad-ui/common/tokens/max-file-size.token.ts","../../../projects/rad-ui/common/module.ts","../../../projects/rad-ui/common/dshch-rad-ui-common.ts"],"sourcesContent":["import { Constructor } from './constructor';\n\nexport interface ClassList {\n  label: string;\n  wrapClassList: string;\n  labelClassList: string;\n  inputClassList: string;\n  getWrapClassList: () => { [key: string]: boolean };\n  getInputClassList: () => { [key: string]: boolean };\n  getLabelClassList: () => { [key: string]: boolean };\n}\n\nexport type ClassListCtor = Constructor<ClassList>;\n\nexport function mixinClassList<T extends Constructor<any>>(base: T): ClassListCtor & T {\n  return class extends base {\n    label: string = '';\n    wrap = true;\n\n    set inputClassList(value: string) {\n      if (value && value.length) {\n        this._inputClassList = value.split(' ').reduce((classList, className) => {\n          classList[className.trim()] = true;\n          return classList;\n        }, {} as { [key: string]: boolean });\n      } else {\n        this._inputClassList = {};\n      }\n    }\n    private _inputClassList: { [key: string]: boolean } = {};\n\n    set labelClassList(value: string) {\n      if (value && value.length) {\n        this._labelClassList = value.split(' ').reduce((classList, className) => {\n          classList[className.trim()] = true;\n          return classList;\n        }, {} as { [key: string]: boolean });\n      } else {\n        this._labelClassList = {};\n      }\n    }\n    private _labelClassList: { [key: string]: boolean } = {};\n\n    set wrapClassList(value: string) {\n      if (value && value.length) {\n        this._wrapClassList = value.split(' ').reduce((classList, className) => {\n          classList[className.trim()] = true;\n          return classList;\n        }, {} as { [key: string]: boolean });\n      } else {\n        this._wrapClassList = {};\n      }\n    }\n    private _wrapClassList: { [key: string]: boolean } = {};\n\n    constructor(...args: any[]) {\n      super(...args);\n    }\n\n    getInputClassList() {\n      return {\n        ...this._defaultInputClassList(),\n        ...this._inputClassList,\n      };\n    }\n\n    getLabelClassList() {\n      return {\n        ...this._defaultLabelClassList(),\n        ...this._labelClassList,\n      };\n    }\n\n    getWrapClassList() {\n      return {\n        ...this._defaultWrapClassList(),\n        ...this._wrapClassList,\n      };\n    }\n\n    private _defaultInputClassList(): { [key: string]: boolean } {\n      return {\n        'col-12 pr-0': true,\n        'col-md-6': !!this.label,\n        'pl-0': !this.label,\n        'form-control-static': true,\n      };\n    }\n\n    private _defaultLabelClassList(): { [key: string]: boolean } {\n      return {\n        'col-12': true,\n        'col-md-6': true,\n        'pl-0': true,\n      };\n    }\n\n    private _defaultWrapClassList(): { [key: string]: boolean } {\n      return {\n        row: this.wrap,\n        'form-group': true,\n        'mx-0': true,\n      };\n    }\n  };\n}\n","import { Constructor } from './constructor';\nimport { ElementRef } from '@angular/core';\n\nexport interface CanColor {\n  color: ThemePalette;\n}\n\nexport type CanColorCtor = Constructor<CanColor>;\n\nexport interface HasElementRef {\n  _elementRef: ElementRef;\n}\n\nexport type ThemePalette = 'default' | undefined;\n\nexport function mixinColor<T extends Constructor<HasElementRef>>(base: T, defaultColor?: ThemePalette): CanColorCtor & T {\n  return class extends base {\n    private _color: ThemePalette;\n\n    get color(): ThemePalette {\n      return this._color;\n    }\n    set color(value: ThemePalette) {\n      const colorPalette = value || defaultColor;\n\n      if (colorPalette !== this._color) {\n        if (this._color) {\n          this._elementRef.nativeElement.classList.remove(`rad-${this._color}`);\n        }\n        if (colorPalette) {\n          this._elementRef.nativeElement.classList.add(`rad-${colorPalette}`);\n        }\n\n        this._color = colorPalette;\n      }\n    }\n\n    constructor(...args: any[]) {\n      super(...args);\n\n      this.color = defaultColor;\n    }\n  };\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n  selector: 'input[trim],textarea[trim]',\n})\nexport class InputTrimDirective {\n  @Input() trim?: string;\n\n  private getCaret(el: HTMLInputElement) {\n    return {\n      start: el.selectionStart,\n      end: el.selectionEnd,\n    };\n  }\n\n  private setCaret(el: HTMLInputElement, start: number, end: number) {\n    el.selectionStart = start;\n    el.selectionEnd = end;\n\n    el.focus();\n  }\n\n  private dispatchEvent(el: HTMLInputElement, eventType: string) {\n    const event = document.createEvent('Event');\n    event.initEvent(eventType, false, false);\n    el.dispatchEvent(event);\n  }\n\n  private trimValue(el: HTMLInputElement, value: string) {\n    el.value = value.trim();\n\n    this.dispatchEvent(el, 'input');\n  }\n\n  @HostListener('blur', ['$event.target', '$event.target.value'])\n  onBlur(el: any, value: string): void {\n    if ((!this.trim || 'blur' === this.trim) && 'function' === typeof value.trim && value.trim() !== value) {\n      this.trimValue(el, value);\n      this.dispatchEvent(el, 'blur'); // in case updateOn is set to blur\n    }\n  }\n\n  @HostListener('input', ['$event.target', '$event.target.value'])\n  onInput(el: any, value: string): void {\n    if (!this.trim && 'function' === typeof value.trim && value.trim() !== value) {\n      let {start, end} = this.getCaret(el);\n\n      if (value[0] === ' ' && start === 1 && end === 1) {\n        start = 0;\n        end = 0;\n      }\n\n      this.trimValue(el, value);\n\n      this.setCaret(el, start ?? 0, end ?? 0);\n    }\n  }\n}\n","/**\n * Класс содержит вспомогательные функции для разных компонентов\n */\nexport class Element {\n\n  /**\n   * Генерирует случайный идентификатор для элемента\n   */\n  public static generateId(): string {\n    const salt = Math.random().toString(36).substring(2, 11);\n    return 'form_element_' + salt;\n  }\n\n  /**\n   * Получение позиции элемента по оси X\n   * @param obj\n   */\n  public static findPosX(obj: any) {\n    let curleft = 0;\n    if (obj.offsetParent) {\n      while (1) {\n        curleft += obj.offsetLeft;\n        if (!obj.offsetParent) {\n          break;\n        }\n        obj = (obj.offsetParent);\n      }\n    } else if (obj.x) {\n      curleft += obj.x;\n    }\n    return curleft;\n  }\n\n  /**\n   * Получение позиции элемента по оси Y\n   * @param obj\n   */\n  public static findPosY(obj: any) {\n    let curtop = 0;\n    if (obj.offsetParent) {\n      while (1) {\n        curtop += obj.offsetTop;\n        if (!obj.offsetParent) {\n          break;\n        }\n        obj = obj.offsetParent;\n      }\n    } else if (obj.y) {\n      curtop += obj.y;\n    }\n    return curtop;\n  }\n\n  /**\n   * Возвращает значение в пикселях на сколько прокручена текущая страница по оси Y\n   */\n  public static getBodyScrollTop(): number {\n    if (document.documentElement && document.documentElement.scrollTop) {\n      return document.documentElement.scrollTop;\n    } else if (document.body && document.body.scrollTop) {\n      return document.body.scrollTop;\n    } else {\n      return 0;\n    }\n  }\n\n  /**\n   * Возвращает значение в пикселях на сколько прокручена текущая страница по оси X\n   */\n  public static getBodyScrollLeft(): number {\n    if (document.documentElement && document.documentElement.scrollLeft) {\n      return document.documentElement.scrollLeft;\n    } else if (document.body && document.body.scrollLeft) {\n      return document.body.scrollLeft;\n    } else {\n      return 0;\n    }\n  }\n\n  /**\n   * Получение абсолютной позиции элемента по оси X\n   * @param obj\n   */\n  public static findAbsPosX(obj: any) {\n    return Element.findPosX(obj) - Element.getBodyScrollTop();\n  }\n\n  /**\n   * Получение абсолютной позиции элемента по оси Y\n   * @param obj\n   */\n  public static findAbsPosY(obj: any) {\n    return Element.findPosY(obj) - Element.getBodyScrollLeft();\n  }\n}\n","/**\n * Класс содержит типовые тексты ошибок отображаемые на площадке\n */\n\nexport class ErrorMessage {\n  static MAX_UPLOAD_FILE_SIZE_MB = 0;\n  static pattern = 'Введено некорректное значение';\n  static required = 'Данное поле является обязательным';\n  static compare = 'Введенные значения не совпадают';\n  static email = 'Некорректный адрес электронной почты';\n  static loginUsed = 'Данный логин уже используется в системе';\n  static maxlength = 'Превышена максимальная длина текста';\n  static minlength = 'Слишком короткое значение';\n  static max = 'Указано слишком большое значение';\n  static min = 'Указано слишком маленькое значение';\n  static snils = 'Введенное значение не прошло проверку на контрольное значение';\n  static kppLength = 'КПП может состоять только из 9 знаков (цифр или заглавных букв латинского алфавита от A до Z)';\n  static kppFormat = 'Неправильный формат КПП';\n  static emptyFile = 'Вы прикрепили пустой файл';\n  static get file() {\n    return (\n      'Допустимые форматы прикрепляемых файлов: zip, rar, txt, rtf, doc, xls, docx,' +\n      ' xlsx, odt, ods, odf, pdf, jpg, jpeg,' +\n      ' gif, bmp, tif, tiff, png, psd, djvu. Максимальный допустимый размер прикрепляемого файла ' +\n      ErrorMessage.MAX_UPLOAD_FILE_SIZE_MB +\n      'Мб'\n    );\n  }\n  static tooBig = 'Максимальный допустимый размер прикрепляемого файла 40Мб';\n  static wrongExtension =\n    'Допустимые форматы прикрепляемых файлов: zip, rar, txt, rtf, doc, xls, docx,' +\n    ' xlsx, odt, ods, odf, pdf, jpg, jpeg, gif, bmp, tif, tiff, png, psd, djvu.';\n  static documents = 'Необходимо прикрепить файл и заполнить его имя';\n  static documentTitle = 'Слишком короткое имя файла';\n  static phone = 'Введите номер телефона в формате {код страны}-{код города}-{номер телефона}';\n  static atLeastOne = 'Необходимо выбрать хотя бы один элемент';\n  static smpDeclaration = 'Необходимо выбрать дополнительное значение';\n  static minmax = 'Максимальное значение не может быть меньше минимального';\n  static priceLt = 'Введено слишком маленькое значение';\n  static priceGt = 'Введено слишком большое значение';\n  static priceLte = 'Введено слишком маленькое значение';\n  static priceGte = 'Введено слишком большое значение';\n  static priceRequired = 'Данное поле является обязательным';\n  static minDate = 'Должна быть установлена дата не ранее чем текущая дата плюс 1 календарный день';\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const MAX_UPLOAD_FILE_SIZE_MB = new InjectionToken<number>('maxUploadFileSizeMb');\n","import { Inject, NgModule, Optional, Self, SkipSelf } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { InputTrimDirective } from \"./directives/input-trim.directive\";\nimport { MAX_UPLOAD_FILE_SIZE_MB } from \"./tokens/max-file-size.token\";\nimport { ErrorMessage } from \"./helpers/error-message\";\n\n@NgModule({\n  imports: [\n    CommonModule,\n  ],\n  exports: [\n    InputTrimDirective,\n  ],\n  declarations: [\n    InputTrimDirective,\n  ],\n  providers: [\n    {\n      provide: MAX_UPLOAD_FILE_SIZE_MB,\n      useValue: 40,\n    }\n  ],\n})\nexport class RadUICommonModule {\n  constructor(\n    @Optional() @Self() @Inject(MAX_UPLOAD_FILE_SIZE_MB) private selfMaxUploadFileSizeMb: number|null,\n    @Optional() @SkipSelf() @Inject(MAX_UPLOAD_FILE_SIZE_MB) private parentMaxUploadFileSizeMb: number|null,\n  ) {\n    ErrorMessage.MAX_UPLOAD_FILE_SIZE_MB = parentMaxUploadFileSizeMb || selfMaxUploadFileSizeMb || 0;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}