{"version":3,"file":"ng-stalk-core-model.mjs","sources":["../../components/core/model/api-model.ts","../../components/core/model/serializable.ts","../../components/core/model/mag-color.ts","../../components/core/model/mag-colors.ts","../../components/core/model/override.ts","../../components/core/model/mag-form-field2.ts","../../components/core/model/mag-i18n-pair-base.ts","../../components/core/model/mag-dynamic-config.ts","../../components/core/model/mag-table-column-builder.ts","../../components/core/model/page.ts","../../components/core/model/paging.ts","../../components/core/model/on-change-search-query-event.ts","../../components/core/model/public-api.ts","../../components/core/model/ng-stalk-core-model.ts"],"sourcesContent":["/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\n/**\n * 대상 클래스가 API 스펙의 DTO 와 완전히 동일하게 매핑되어있음을 선언한다.\n *\n * 본 클래스는 기능적인 요소를 포함하지 않으며, 문서화를 위한 데코레이터이다.\n */\nexport function ApiModel(packageName: string) {\n  // tslint:disable-next-line:no-any\n  return (target: any) => {\n    if (!target) {\n      console.error('API 문서를 참조하여서 매핑되는 클래스의 풀패키지명 혹은 Dto 클래스명을 입력해주세요.');\n    }\n\n    // @ts-ignore\n    if (!target.prototype.fillFromJSONObject) {\n      console.error('ApiModel 클래스는 Serializable 를 반드시 상속해야합니다. invalid:', packageName);\n    }\n    return target;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport * as _ from 'lodash';\nimport { SerializableOptions } from \"./serializable-options\";\n\nexport class Serializable {\n\n  constructor(object?: any) {\n    if (object) {\n      this.fillFromJSONObject(object);\n    }\n  }\n\n  /**\n   * json string 역직렬화시 인스턴스할 Type 정보\n   *\n   *\n   * many to one\n   * ```\n   * item: Item,\n   * items: Item[],\n   * genericItem: SomeWrapper<ChildItem>,\n   * genericItems: SomeWrapper<ChildItem>[] = [],\n   *\n   * getPropsSchema() {\n   *     return {\n   *         item: Item,\n   *         items: Item, // Array 인 경우도 1개의 인스턴스 사용 방식과 동일하게 선언한다.\n   *         genericItem: {\n   *           constructor: SomeWrapper, // Generic Container Type\n   *           genericType: ChildItem, // T type\n   *         },\n   *         genericItems: {\n   *           constructor: SomeWrapper, // Generic Container Type\n   *           genericType: ChildItem, // T type\n   *         },\n   *         mapItem: {\n   *             map: true,\n   *             keyConstructor: SomeKeyType, // optional. TODO\n   *             keyGenericType: T // optional. keyConstructor 가 반드시 필요해야한다.\n   *             valueIsArray: boolean, // optional\n   *             valueConstructor: SomeValueType // TODO\n   *             valueGenericType: T // optional.\n   *         }\n   *     }\n   * }\n   * ```\n   *\n   */\n  getPropsSchema(): undefined | object {\n    return undefined;\n  }\n\n  fillFromJSON(jsonString: string) {\n    const jsonObj = JSON.parse(jsonString);\n    this.fillFromJSONObject(jsonObj);\n    return this;\n  }\n\n  fillFromJSONObject(jsonObj: any, option: SerializableOptions = {\n    mapToObject: false,\n  }) {\n    const schema = this.getPropsSchema();\n    if (jsonObj) {\n      for (const propName in jsonObj) {\n        const value = jsonObj[propName];\n        // console.log('porpName:', propName, 'value:',value);\n        if (value !== undefined && value !== null && propName !== 'constructor') {\n          // @ts-ignore\n          if (schema && schema[propName]) { // 스키마에 정의된 프로퍼티인 경우\n            // @ts-ignore\n            const schemeValue = schema[propName];\n            if (value.constructor === Array) { // 입력된 값이 배열 형태인 경우\n              // @ts-ignore\n              const array = [];\n              // @ts-ignore\n              _.forEach(value, (inItem, index) => {\n                if (typeof schemeValue === 'function') {\n                  const instanced = new schemeValue();\n                  if (!instanced.fillFromJSONObject) {\n                    console.error('instance has no fillFromJSONObject method. instance:', instanced);\n                  }\n                  array.push(instanced.fillFromJSONObject(inItem));\n                } else {\n                  array.push(new schemeValue.constructor(schemeValue.genericType).fillFromJSONObject(inItem));\n                }\n              });\n              // @ts-ignore\n              this[propName] = array;\n            } else { // 입력된 값이 배열이 아닌 경우\n              // console.log('value.constructor :', value.constructor );\n              if (typeof schemeValue === 'function') {\n                const instanced = new schemeValue();\n                if (!instanced.fillFromJSONObject) {\n                  console.error('instance has no fillFromJSONObject method. instance:', instanced, 'propName:', propName, 'scheme:', schemeValue);\n                  // @ts-ignore\n                  this[propName] = value;\n                } else {\n                  // @ts-ignore\n                  this[propName] = instanced.fillFromJSONObject(value);\n                }\n              } else if(schemeValue.map) {\n                // 맵 유형인 경우\n\n                if (schemeValue.keyConstructor || schemeValue.valueConstructor) {\n                  // map 의 key 나 value 에 gene\n\n                  // @ts-ignore\n                  let tryMap: any;\n                  if (value instanceof Map) {\n                    tryMap = value;\n                  } else {\n                    // @ts-ignore\n                    tryMap = new Map(Object.entries(value));\n                  }\n\n                  const result = new Map();\n                  // @ts-ignore\n                  for (const [key, value] of tryMap) {\n                    let newKey = key;\n                    if (schemeValue.keyConstructor) {\n                      newKey = new schemeValue.keyConstructor(schemeValue.keyGenericType).fillFromJSONObject(key);\n                    }\n                    let newValue = value;\n                    if (schemeValue.valueConstructor) {\n                      if (schemeValue.valueIsArray) {\n                        // @ts-ignore\n                        const array = [];\n                        // @ts-ignore\n                        _.forEach(value, (inItem, index) => {\n                          if (typeof schemeValue.valueConstructor === 'function') {\n                            const instanced = new schemeValue.valueConstructor();\n                            if (!instanced.fillFromJSONObject) {\n                              console.error('instance has no fillFromJSONObject method. instance:', instanced);\n                            }\n                            array.push(instanced.fillFromJSONObject(inItem));\n                          } else {\n                            array.push(new schemeValue.valueConstructor(schemeValue.valueGenericType).fillFromJSONObject(inItem));\n                          }\n                        });\n                        // @ts-ignore\n                        newValue = array;\n                      } else {\n                        newValue = new schemeValue.valueConstructor(schemeValue.valueGenericType).fillFromJSONObject(value);\n                      }\n\n                    }\n                    // @ts-ignore\n                    result.set(newKey, newValue);\n                  }\n                  // @ts-ignore\n                  this[propName] = result;\n                } else {\n                  // @ts-ignore\n                  this[propName] = new Map(Object.entries(value));\n                }\n              } else{\n                // 제너릭 유형인 경우\n                // @ts-ignore\n                this[propName] = new schemeValue.constructor(schemeValue.genericType).fillFromJSONObject(value);\n              }\n            }\n          } else {\n            if (option.mapToObject) {\n              if (value instanceof Map) {\n                const newValue = {};\n                // @ts-ignore\n                value.forEach ((v, k) => { newValue[k] = v });\n                // @ts-ignore\n                this[propName] = newValue;\n              } else {\n                // @ts-ignore\n                this[propName] = value;\n              }\n            } else {\n              // @ts-ignore\n              this[propName] = value;\n            }\n          }\n        } else {\n          if (option.mapToObject) {\n            if (value instanceof Map) {\n              const newValue = {};\n              // @ts-ignore\n              value.forEach ((v, k) => { newValue[k] = v });\n              // @ts-ignore\n              this[propName] = newValue;\n            } else {\n              // @ts-ignore\n              this[propName] = value;\n            }\n          } else {\n            // @ts-ignore\n            this[propName] = value;\n          }\n        }\n      }\n    }\n\n    return this;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Serializable } from './serializable';\n\nexport class MagColor extends Serializable {\n  // @ts-ignore\n  code: string;\n  // @ts-ignore\n  value: string;\n  // @ts-ignore\n  invertColor: string;\n  // @ts-ignore\n  invertTextColor: string;\n\n  constructor(obj?: any) {\n    super(obj);\n    this.fillFromJSONObject(obj);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { MagUtil } from 'ng-stalk/core/util';\nimport { MagColor } from './mag-color';\n\nexport class MagColors {\n  static supportNumbers = 13;\n  static supportRandomSeed = 8;\n  static nzColors = [\n    'pink',\n    'red',\n    'yellow',\n    'orange',\n    'cyan',\n    'green',\n    'blue',\n    'purple',\n    'geekblue',\n    'magenta',\n    'volcano',\n    'gold',\n    'lime'\n  ];\n\n  public static red = new MagColor({\n    code: 'red',\n    value: '#d84315',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static green = new MagColor({\n    code: 'green',\n    value: '#7cb342',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static darkblue = new MagColor({\n    code: 'darkblue',\n    value: '#607d8b',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static blue = new MagColor({\n    code: 'blue',\n    value: '#03a9f4',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static yellow = new MagColor({\n    code: 'yellow',\n    value: '#FFC107',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static orange = new MagColor({\n    code: 'orange',\n    value: '#FF6F00',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static pink = new MagColor({\n    code: 'pink',\n    value: '#EC0B8E',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static purple = new MagColor({\n    code: 'purple',\n    value: '#673AB7',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  // no random color\n  public static white = new MagColor({\n    code: 'white',\n    value: '#FFFFFF',\n    invertColor: '#000000',\n    invertTextColor: '#000000'\n  });\n\n  public static black = new MagColor({\n    code: 'black',\n    value: '#000000',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static accent = new MagColor({\n    code: 'accent',\n    value: '#039be5',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static error = new MagColor({\n    code: 'error',\n    value: '#f44336',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static disabled = new MagColor({\n    code: 'disabled',\n    value: '#ebebeb',\n    invertColor: '#FFFFFF',\n    invertTextColor: '#FFFFFF'\n  });\n\n  public static fromName(name: string, defaultValue?: MagColor): MagColor | undefined {\n    switch (name) {\n      case 'red':\n        return MagColors.red;\n      case 'green':\n        return MagColors.green;\n      case 'darkblue':\n        return MagColors.darkblue;\n      case 'blue':\n        return MagColors.blue;\n      case 'yellow':\n        return MagColors.yellow;\n      case 'orange':\n        return MagColors.orange;\n      case 'pink':\n        return MagColors.pink;\n      case 'purple':\n        return MagColors.purple;\n      case 'white':\n        return MagColors.white;\n      case 'black':\n        return MagColors.black;\n      case 'accent':\n        return MagColors.accent;\n      case 'error':\n        return MagColors.error;\n      case 'disabled':\n        return MagColors.disabled;\n    }\n    return defaultValue;\n  }\n\n  public static fromRandom(name: string): MagColor {\n    // @ts-ignore\n    const hashValue: number = MagUtil.hashFnv32a(name, false) % MagColors.supportRandomSeed;\n    return this.fromIndex(hashValue);\n  }\n\n  public static fromIndex(index: number): MagColor {\n    // @ts-ignore\n    switch (index % MagColors.supportRandomSeed) {\n      case 0:\n        return MagColors.red;\n      case 1:\n        return MagColors.green;\n      case 2:\n        return MagColors.darkblue;\n      case 3:\n        return MagColors.blue;\n      case 4:\n        return MagColors.yellow;\n      case 5:\n        return MagColors.orange;\n      case 6:\n        return MagColors.pink;\n      case 7:\n        return MagColors.purple;\n    }\n    throw Error('invalid index');\n  }\n\n  public static fromRandomColor2(name: string): string {\n    // @ts-ignore\n    const hashValue: number = MagUtil.hashFnv32a(name, false) % MagColors.nzColors.length;\n    return MagColors.nzColors[hashValue];\n  }\n\n  static hashCode(s: string): number {\n    return s.split('').reduce(MagColors.hashCallback, 0);\n  }\n\n  static hashCallback(a: any, b: any): number {\n    // tslint:disable-next-line:no-bitwise\n    a = (a << 5) - a + b.charCodeAt(0);\n    // tslint:disable-next-line:no-bitwise\n    return a & a;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\n/**\n * 대상 메서드가 상위 클래스의 메서드를 오버라이드 했음을 문서화하는 데코레이터.\n */\n// @ts-ignore\nexport function Override(target: Object, propertyKey: string, descriptor: TypedPropertyDescriptor<any>) {\n  return descriptor;\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { AfterViewInit, ChangeDetectorRef, Directive, DoCheck, Input, OnDestroy, OnInit } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport * as _ from 'lodash';\nimport { MagUtil } from 'ng-stalk/core/util';\nimport { NzConfigService } from 'ng-zorro-antd/core/config';\nimport { InputBoolean } from 'ng-zorro-antd/core/util';\nimport { Subject } from 'rxjs';\nimport { Override } from './override';\n\n// TODO 향후 nz zorro 베이스로 변경할 공통 폼 필드임. 아직 작업 안함\n// @Component({\n//   template: ''\n// })\n@Directive()\nexport abstract class MagFormField2<T> implements ControlValueAccessor, OnInit, AfterViewInit, DoCheck, OnDestroy {\n  protected _unsubscribeAll: Subject<boolean>;\n  public componentId: string;\n  stateChanges = new Subject<void>();\n\n  // --------------------------------------------------------------------------\n  // Common Properties\n  // --------------------------------------------------------------------------\n\n  /**\n   * output 모델과 동일\n   */\n  // @ts-ignore\n  public value: T;\n\n  // -----\n  // 여기서 nz zorro style\n  onChange: (value: T) => void = () => null;\n  onTouched: () => void = () => null;\n  // @ViewChild('switchElement', { static: true }) private switchElement: ElementRef;\n  @Input() @InputBoolean() nzLoading = false;\n  @Input() @InputBoolean() nzDisabled = false;\n  @Input() @InputBoolean() nzControl = false;\n  // @Input() nzCheckedChildren: string | TemplateRef<void>;\n  // @Input() nzUnCheckedChildren: string | TemplateRef<void>;\n  // @Input() @WithConfig(NZ_CONFIG_COMPONENT_NAME) nzSize: NzSizeDSType = 'default';\n\n  // nz-zoroo style end\n\n  // mag style\n\n  constructor(public nzConfigService: NzConfigService, protected cdr: ChangeDetectorRef, protected focusMonitor: FocusMonitor) {\n    this._unsubscribeAll = new Subject();\n    this.componentId = MagUtil.generateGUID();\n\n    // this.model = new FileFieldModel();\n  }\n\n  ngOnInit(): void {}\n\n  ngAfterViewInit(): void {\n    // this.focusMonitor.monitor(this.switchElement.nativeElement, true).subscribe(focusOrigin => {\n    //   if (!focusOrigin) {\n    //     // When a focused element becomes disabled, the browser *immediately* fires a blur event.\n    //     // Angular does not expect events to be raised during change detection, so any state change\n    //     // (such as a form control's 'ng-touched') will cause a changed-after-checked error.\n    //     // See https://github.com/angular/angular/issues/17793. To work around this, we defer\n    //     // telling the form control it has been touched until the next tick.\n    //     Promise.resolve().then(() => this.onTouched());\n    //   }\n    // });\n  }\n\n  ngOnDestroy(): void {\n    // this.focusMonitor.stopMonitoring(this.switchElement.nativeElement);\n\n    // features\n    this._unsubscribeAll.next(true);\n    this._unsubscribeAll.complete();\n  }\n\n  // @ts-ignore\n  hostClick(e: MouseEvent): void {\n    // e.preventDefault();\n    if (!this.nzDisabled && !this.nzLoading && !this.nzControl) {\n      // this.updateValue(!this.checked);\n    }\n  }\n\n  /**\n   * 외부로부터 값을 주입받는다.\n   * 본 메서드는 반드시 변경 이벤트를 발행하지 않고, 내부 값을 업데이트해야한다.\n   * MagFormField 에서는 다음과 같은 기본 로직만 수행한다.\n   * - value 설정\n   * - 화면 렌더링 트리거\n   *\n   * Note. 기본 기능(value 설정 및 화면 렌더링 트리거) 외에 변경이 필요한 경우 본 메서드를 오버라이드해서 직접 구현해야한다.\n   * @param value\n   */\n  @Override\n  writeValue(value: T): void {\n    console.log('Mag from field .wrtie vale:', value);\n    // 1. 내부 value 갑 업데이트 (필수)\n    this.value = value;\n\n    // 2. 비즈니스 로직 수행\n    // 이 부분에서 커스텀 폼 컴포넌트 내에서만 동작하는 동작을 수행한다.\n    // ex) 화면 표시용 폼 조작 등\n    //\n    // if (value instanceof RichFile) {\n    //   if (value.type === 'url') {\n    //     this.model.url = value.url;\n    //     if (value.url.startsWith('http:') || value.url.startsWith('https')) {\n    //       this.model.synchronizedStatus = FormFiledSynchronizedStatus.SYNCHRONIZED;\n    //     }\n    //   } else {\n    //     this.model.binary = value.binary;\n    //     this.model.synchronizedStatus = FormFiledSynchronizedStatus.SYNCHRONIZED;\n    //   }\n    // }\n\n    // 3. 변경 사항 알림 (필수)\n    this.cdr.markForCheck();\n  }\n\n  /**\n   * 외부로 값을 출력하고, 내부 값을 갱신한다.\n   *\n   * 메소드 구현 주의사항: 내부 값 변경시에만 output 이벤트를 발행하고 ChangeDetector 를 트리거해야한다.\n   *\n   * MagFormField 에서는 다음과 같은 기본 로직만 수행한다.\n   * - 전달된 value 가 저장된 value 와 동일한지(deep check) 체크 후, 다른 경우에 value 값을 설정\n   * - 값이 변경된 경우 변경 이벤트(onChange) 발행\n   * - 화면 렌더링 트리거\n   *\n   * Note. 기본 기능(value 변경 여부 확인 및 설정 후 필요시 변경 이벤트 발행 및 화면 렌더링 트리거) 외에 변경이 필요한 경우 본 메서드를 오버라이드해서 직접 구현해야한다.\n   * @param value\n   */\n  protected updateValue(value: T): void {\n    // 1. 값의 변경 사항이 발생했는지 체크한다. (필수)\n    if (!_.isEqual(this.value, value)) {\n      // 2. value 값을 변경한다. (필수)\n      this.value = value;\n\n      // 3. 비즈니스 로직 수행 (옵션)\n      // 이 부분에서 커스텀 폼 컴포넌트 내에서만 동작하는 동작을 수행한다.\n      // ex) 화면 표시용 폼 조작 등\n      // this.draw();\n\n      // 4. 변경 이벤트 발행 (필수)\n      this.onChange(this.value);\n\n      // 5. 화면 렌더링 트리거 (필수)\n      this.cdr.markForCheck();\n    }\n  }\n\n  focus(): void {\n    // this.focusMonitor.focusVia(this.switchElement.nativeElement, 'keyboard');\n  }\n\n  blur(): void {\n    // this.switchElement.nativeElement.blur();\n  }\n\n  /**\n   * @description\n   * Registers a callback function that is called when the control's value\n   * changes in the UI.\n   *\n   * This method is called by the forms API on initialization to update the form\n   * model when values propagate from the view to the model.\n   *\n   * When implementing the `registerOnChange` method in your own value accessor,\n   * save the given function so your class calls it at the appropriate time.\n   *\n   * @usageNotes\n   * ### Store the change function\n   *\n   * The following example stores the provided function as an internal method.\n   * @param fn\n   */\n  @Override\n  registerOnChange(fn: (v: T) => void): void {\n    this.onChange = fn;\n  }\n\n  @Override\n  registerOnTouched(fn: () => void): void {\n    this.onTouched = fn;\n  }\n\n  @Override\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n    this.stateChanges.next();\n    this.cdr.markForCheck();\n  }\n\n  ngDoCheck(): void {}\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { MagI18nPair } from \"./mag-i18n-pair\";\nimport { Serializable } from './serializable';\n\nexport class MagI18nPairBase extends Serializable implements MagI18nPair {\n  // @ts-ignore\n  lang: string;\n  value?: string;\n\n  constructor(obj?: any) {\n    super(obj);\n    this.fillFromJSONObject(obj);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { GlobalLink, MagAvatar, ToolMenuItem } from 'ng-stalk/core/types';\nimport { Serializable } from './serializable';\n\nexport class MagDynamicConfig extends Serializable {\n  /**\n   * TODO draft\n   */\n  // @ts-ignore\n  cacheKey: string;\n\n  fixedShortcutItems: GlobalLink[] = [];\n  shortcutItems: GlobalLink[] = [];\n  gnbMenuItems: GlobalLink[] = [];\n\n  toolMenus: ToolMenuItem[] = [];\n  // @ts-ignore\n  loginUser: MagAvatar;\n\n  currentTimezoneId = 'Asia/Seoul';\n  currentTimezoneOffset = '+09:00';\n  currentLanguage = 'en';\n\n  // @ts-ignore\n  phase: string;\n\n  constructor(obj?: any) {\n    super(obj);\n    this.fillFromJSONObject(obj);\n    if (!this.fixedShortcutItems) {\n      this.fixedShortcutItems = [];\n    }\n    if (!this.shortcutItems) {\n      this.shortcutItems = [];\n    }\n    if (!this.toolMenus) {\n      this.toolMenus = [];\n    }\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport { NzTableFilterList, NzTableSortFn, NzTableSortOrder } from 'ng-zorro-antd/table';\nimport { MagTableColumn } from './mag-table-column';\n\nexport interface WidthOption {\n  min?: number;\n  max?: number;\n}\n\nexport class MagTableColumnBuilder {\n  value: MagTableColumn;\n\n  constructor(public key: string, public name: string, icon?: string) {\n    this.value = {\n      key: this.key,\n      name: this.name,\n      icon: icon,\n      visible: true\n    }\n  }\n\n  sort(sortFunc: NzTableSortFn, initOrder?: NzTableSortOrder): MagTableColumnBuilder {\n    this.value.sortFn = sortFunc;\n    if (initOrder) {\n      this.value.sortOrder = initOrder;\n    }\n    return this;\n  }\n\n  width(width: string, option?: WidthOption): MagTableColumnBuilder  {\n    this.value.width = width;\n    if (option) {\n      this.value.maxWidth = option.max;\n      this.value.minWidth = option.min;\n    }\n    return this;\n  }\n\n  filter(multiple: boolean, filterItems: NzTableFilterList, filterChange?: NzSafeAny): MagTableColumnBuilder {\n    this.value.filterMultiple = multiple;\n    this.value.listOfFilter = filterItems || [];\n    this.value.filterChange = filterChange;\n    return this;\n  }\n\n  visible(visible: boolean, immutableVisibility?: boolean): MagTableColumnBuilder  {\n    this.value.visible = visible;\n    if (typeof immutableVisibility !== 'undefined') {\n      this.value.immutableVisibility = immutableVisibility;\n    }\n    return this;\n  }\n\n  tooltip(tooltip: string, icon: string = 'question-circle'): MagTableColumnBuilder {\n    this.value.tooltip = tooltip;\n    this.value.tooltipIcon = icon;\n    return this;\n  }\n\n  build(): MagTableColumn {\n    return this.value;\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Serializable } from \"./serializable\";\n\nexport class Page<T> extends Serializable {\n\n  content?: T[];\n\n  totalPages?: number;\n\n  totalElements?: number;\n\n  constructor(obj?: any) {\n    super(obj);\n    this.fillFromJSONObject(obj);\n  }\n\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { Serializable } from \"./serializable\";\n\nexport class Paging extends Serializable {\n  total: number = 0;\n  pageSize: number = 100;\n  pageSizeOptions: number[] = [5, 10, 25, 100];\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nimport { ParsedSearchQuery } from './parsed-search-query';\nimport { Serializable } from './serializable';\n\nexport class OnChangeSearchQueryEvent<SM> extends Serializable {\n  searchQuery?: string;\n  detail?: ParsedSearchQuery;\n  searchModel?: SM;\n\n  constructor(obj?: any) {\n    super(obj);\n    this.fillFromJSONObject(obj);\n  }\n}\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './api-model';\nexport * from './condition';\nexport * from './locale';\nexport * from './mag-color';\nexport * from './mag-colors';\nexport * from './mag-form-field2';\nexport * from './mag-i18n-pair';\nexport * from './mag-i18n-pair-base';\nexport * from './mag-init-config';\nexport * from './mag-dynamic-config';\nexport * from './mag-support';\nexport * from './mag-table-column';\nexport * from './mag-table-column-builder';\nexport * from './override';\nexport * from './serializable';\nexport * from './sidebar-item';\nexport * from './page';\nexport * from './pageable';\nexport * from './paging';\nexport * from './on-change-lanauge-callback';\nexport * from './on-change-time-zone-callback';\nexport * from './on-change-search-query-event';\nexport * from './parsed-search-query';\nexport * from './text-segment';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}