{"version":3,"file":"great-ngform.mjs","sources":["../../src/app/models/common-model.ts","../../src/app/models/layout-config.ts","../../src/app/models/rest-response.model.ts","../../src/app/models/form-validator.model.ts","../../src/app/models/http-response-alert-status.model.ts","../../src/app/models/page-info.model.ts","../../src/app/service/http.service.ts","../../src/app/service/form-validator.service.ts","../../src/app/guard/can-deactivate.guard.ts","../../src/app/guard/rediect-router.guard.ts","../../src/app/great-pipe/base64.pipe.ts","../../src/app/great-pipe/great-date.pipe.ts","../../src/app/great-pipe/great-pipe.module.ts","../../src/app/great-validate/great-validate-data.ts","../../src/app/great-validate/great-validate.utils.ts","../../src/app/great-validate/byte-length.directive.ts","../../src/app/great-validate/mobile.directive.ts","../../src/app/great-validate/mac.directive.ts","../../src/app/great-validate/url.directive.ts","../../src/app/great-validate/identity-card.directive.ts","../../src/app/great-validate/regexp.directive.ts","../../src/app/enum/decimal-digit-constraint-type.ts","../../src/app/great-validate/number.directive.ts","../../src/environments/environment.ts","../../src/app/great-validate/async.directive.ts","../../src/app/great-validate/range-number.directive.ts","../../src/app/great-validate/async2.directive.ts","../../src/app/great-validate/great-validate.module.ts","../../src/app/great-modal/modal-template/modal-template.component.ts","../../src/app/great-modal/modal-template/modal-template.component.html","../../src/app/great-modal/great-modal.service.ts","../../src/app/great-modal/great-modal.module.ts","../../src/app/great-layout/great-layout-full/great-layout-full.component.ts","../../src/app/great-layout/great-layout-full/great-layout-full.component.html","../../src/app/great-layout/great-layout.module.ts","../../src/app/great-menu/menu/menu.component.ts","../../src/app/great-menu/menu/menu.component.html","../../src/app/great-menu/great-menu.module.ts","../../src/app/great-directive/great-table-column-drag.directive.ts","../../src/app/great-directive/great-drag.directive.ts","../../src/app/great-directive/great-trim.directive.ts","../../src/app/great-directive/great-blur-trim.directive.ts","../../src/app/great-directive/great-directive.module.ts","../../src/app/zhtt-directive/zhtt-number.directive.ts","../../src/app/zhtt-directive/zhtt-directive.module.ts","../../src/app/editor/great-ueditor/great-ueditor.component.ts","../../src/app/editor/great-ueditor/great-ueditor.component.html","../../src/app/editor/great-ueditor/great-ueditor.module.ts","../../public-api.ts","../../great-ngform.ts"],"sourcesContent":["/**\r\n * Created by zhaott on 2018/8/23.\r\n */\r\nimport {DataTypeUtils, TimeUtils} from 'great-jsutils';\r\n\r\nexport class CommonModel {\r\n\r\n  constructor(public checked?: boolean) {\r\n  }\r\n\r\n  static instanceByJson(json): CommonModel {\r\n    const model = new this();\r\n    Object.assign(model, json);\r\n    return model;\r\n  }\r\n\r\n  clone?(): CommonModel {\r\n    const copy = JSON.parse(JSON.stringify(this));\r\n    return copy;\r\n  }\r\n\r\n  getPropertyNames(): Array<string> {\r\n    const propertyNames = Object.getOwnPropertyNames(this);\r\n    return propertyNames || [];\r\n  }\r\n\r\n  /**\r\n   * 默认值为属性名\r\n   */\r\n  initValueByPropertyName() {\r\n    const propertyNames = this.getPropertyNames();\r\n    for (let i = 0, j = propertyNames.length; i < j; i++) {\r\n      const name = propertyNames[i];\r\n      this[name] = name;\r\n    }\r\n    return this;\r\n  }\r\n\r\n  validate?(): boolean {\r\n    const propertyNames = this.getPropertyNames();\r\n    for (const name of propertyNames) {\r\n      if (this[name]) {\r\n        return true;\r\n      }\r\n    }\r\n    return false;\r\n  }\r\n\r\n\r\n  /**\r\n   * 不会增加json中的新属性\r\n   */\r\n  setValueByJson(json) {\r\n    if (json) {\r\n      const propertyNames = Object.getOwnPropertyNames(this);\r\n      for (let i = 0, j = propertyNames.length; i < j; i++) {\r\n        const name = propertyNames[i];\r\n        if (typeof json[name] !== 'undefined') {\r\n          this[name] = json[name];\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 会增加json中的新属性\r\n   */\r\n  copyValueByJson(json) {\r\n    if (json) {\r\n      const propertyNames = this.getPropertyNames();\r\n      for (let i = 0, j = propertyNames.length; i < j; i++) {\r\n        const name = propertyNames[i];\r\n        this[name] = json[name];\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 数字转字符串\r\n   */\r\n  numberToString() {\r\n    Object.keys(this).forEach(key => {\r\n      if (typeof this[key] === 'number') {\r\n        this[key] = this[key] + '';\r\n      }\r\n    });\r\n  }\r\n\r\n  /**\r\n   * 日期类型的值，转为字符串\r\n   */\r\n  dateToString(format = TimeUtils.FORMAT_FULL) {\r\n    Object.keys(this).forEach(key => {\r\n      if (DataTypeUtils.isDate(this[key])) {\r\n        this[key] = TimeUtils.format(this[key], format);\r\n      }\r\n    });\r\n  }\r\n}\r\n","import {CommonModel} from './common-model';\r\n\r\nexport class LayoutConfig extends CommonModel {\r\n  // 头部高度\r\n  headerHeight = 0;\r\n  // 底部高度\r\n  footerHeight = 0;\r\n  // 左侧宽度\r\n  leftWidth = 0;\r\n  // 主区域宽度\r\n  mainWidth = 0;\r\n  // 整体高度偏移量\r\n  heightOffset = 0;\r\n  // 整体最大高度\r\n  maxHeight = 0;\r\n}\r\n","/**\r\n * Created by ztt on 2019/1/22.\r\n */\r\nimport {DataTypeUtils} from 'great-jsutils';\r\n\r\nexport class RestResponse {\r\n\r\n  public id: string;\r\n\r\n  /**\r\n   * 操作成功、失败的消息\r\n   */\r\n  public message = '操作失败！';\r\n\r\n  /**\r\n   * 是否执行成功\r\n   */\r\n  public success = false;\r\n\r\n  /**\r\n   * 响应代码\r\n   */\r\n  public code = '99999';\r\n\r\n  /**\r\n   * 业务数据\r\n   */\r\n  public data: any;\r\n\r\n  /**\r\n   * 业务数据\r\n   */\r\n  public result: any;\r\n\r\n  /**\r\n   * 扩展字段\r\n   */\r\n  [key: string]: any;\r\n\r\n  static init(obj: any): RestResponse {\r\n    const model = new RestResponse();\r\n    if (typeof obj === 'string') {\r\n      model.data = obj;\r\n    } else if (obj instanceof RestResponse) {\r\n      return obj;\r\n    } else if (typeof obj === 'object') {\r\n      Object.keys(obj).forEach(key => {\r\n        if (key in model) {\r\n          model[key] = obj[key];\r\n        }\r\n      });\r\n    }\r\n    return model;\r\n  }\r\n\r\n  /**\r\n   * 后台接口返回成功\r\n   * @param result：后台服务返回的数据\r\n   */\r\n  static isSuccess(result): boolean {\r\n    return result && result.success;\r\n  }\r\n\r\n  /**\r\n   * 后台接口返回成功，结果且非空\r\n   * @param result：后台服务返回的数据\r\n   */\r\n  static isNotNullResult(result): boolean {\r\n    return this.isSuccess(result) && result.data;\r\n  }\r\n\r\n  /**\r\n   * 后台接口返回成功，结果为非空数组\r\n   * @param result：后台服务返回的数据\r\n   */\r\n  static isNotEmptyArray(result): boolean {\r\n    return this.isNotNullResult(result) && DataTypeUtils.isArray(result.data) && result.data.length > 0;\r\n  }\r\n\r\n  /**\r\n   * 后台接口返回成功，结果为非空分页数据\r\n   * @param result：后台服务返回的数据\r\n   */\r\n  static isNotNullPageInfo(result): boolean {\r\n    return this.isNotNullResult(result) && DataTypeUtils.isArray(result.data.list) && result.data.list.length > 0;\r\n  }\r\n\r\n  /**\r\n   * 创建失败时的对象\r\n   * @param message：失败提醒信息\r\n   */\r\n  static error(message: string): RestResponse {\r\n    const model = new RestResponse();\r\n    model.success = false;\r\n    model.code = '0';\r\n    model.message = message;\r\n    return model;\r\n  }\r\n\r\n  /**\r\n   * 创建成功时的对象\r\n   * @param data：参数、数据\r\n   */\r\n  static success(data: any): RestResponse {\r\n    const model = new RestResponse();\r\n    model.success = true;\r\n    model.data = data;\r\n    model.message = '操作成功！';\r\n    model.code = '1';\r\n    return model;\r\n  }\r\n\r\n  /**\r\n   * 判断是否成功\r\n   */\r\n  isSuccess() {\r\n    return this.success;\r\n  }\r\n\r\n  /**\r\n   * 获取提醒消息\r\n   */\r\n  getMessage() {\r\n    if (this.resultMsg) {\r\n      return this.resultMsg;\r\n    } else {\r\n      const message = this.defaultMessage(this.resultCode);\r\n      if (message) {\r\n        return message;\r\n      } else {\r\n        return '未知的操作结果！';\r\n      }\r\n    }\r\n  }\r\n  defaultMessage(code) {\r\n    switch (code) {\r\n      case '-1': return '操作出现错误！';\r\n      case 0: return '操作失败！';\r\n      case 1: return '操作成功！';\r\n      case 2: return '操作成功，即将进行一下步操作！';\r\n      default: return  '操作出现错误！';\r\n    }\r\n  }\r\n\r\n}\r\n","import {ObjectUtils, DataTypeUtils, StringUtils} from 'great-jsutils';\r\n\r\nexport class FormValidatorModel {\r\n  // 大于指定数字\r\n  greaterThan: number;\r\n  // 小于指定数字\r\n  lessThan: number;\r\n  // 最小数字\r\n  min: number;\r\n  // 最大数\r\n  max: number;\r\n  // 最大小数位数\r\n  maxScale: number;\r\n  // 最小小数位数\r\n  minScale: number;\r\n  // 小数位数\r\n  scale: number;\r\n  // 指定长度\r\n  length: number;\r\n  // 最小长度\r\n  minLength: number;\r\n  // 最大长度\r\n  maxLength: number;\r\n  // 左空格是否去除\r\n  trimL: boolean;\r\n  // 右空格是否去除\r\n  trimR: boolean;\r\n  // 左、右空格是否去除\r\n  trimLR: boolean;\r\n  // 左、右、中空格是否去除\r\n  trim: boolean;\r\n  // 严格模式：禁止输入不合法的内容\r\n  strict: boolean;\r\n  // 校验规则\r\n  value: any;\r\n  // 校验结果key，默认为：pattern\r\n  key: string;\r\n  // 错误消息key，默认为：error\r\n  errorMsgKey: string;\r\n  // 错误消息\r\n  errorMsg: string;\r\n  // 校验规则\r\n  validateRules: string;\r\n\r\n  [key: string]: any;\r\n\r\n  static init(obj: any, validateRules: string): FormValidatorModel {\r\n    const model = new FormValidatorModel();\r\n    model.validateRules = validateRules;\r\n    if (StringUtils.isStr(obj)) {\r\n      model.value = obj;\r\n    } else if (obj instanceof FormValidatorModel) {\r\n      return obj;\r\n    } else if (ObjectUtils.isObject(obj)) {\r\n      Object.assign(model, obj);\r\n    }\r\n    return model;\r\n  }\r\n\r\n  defaultValue(params: FormValidatorModel = new FormValidatorModel()): FormValidatorModel {\r\n    const model = new FormValidatorModel();\r\n    model.key = params.key || 'pattern';\r\n    model.errorMsgKey = params.errorMsgKey || 'error';\r\n    model.errorMsg = params.errorMsg || '表单校验未通过';\r\n    return model;\r\n  }\r\n}\r\n\r\n/**\r\n * 校验规则常量\r\n */\r\nexport enum ValidateRules {\r\n  BYTE_LENGTH = 'byteLength',  // 字节校验\r\n  STR_LENGTH = 'strLength',  // 字节校验\r\n  CHINESE = 'chinese', // 中文校验\r\n  ALPHANUMERIC = 'alphanumeric', // 字母数字\r\n  REGEX = 'regex', // 根据输入正则校验\r\n  IDENTITY_CARD = 'identityCard', // 身份证\r\n  EMAIL = 'email', // 邮箱\r\n  MOBILE = 'mobile', // 手机号\r\n  PHONE_NUMBER = 'phoneNumber', // 手机号、座机号\r\n  LAND_LINE = 'landline', // 座机号\r\n  REQUIRED = 'required', // 必填\r\n  URL = 'url', // url\r\n  INTEGER = 'integer', // 整数\r\n  DECIMAL = 'decimal', // 数字验证\r\n  WEBCHAT = 'webchat', // 微信\r\n  UNIFIED_SOCIAL_CREDIT_CODE = 'unifiedSocialCreditCode', // 统一社会信用代码\r\n  CHECK_TAXID = 'checkTaxId', // 纳税人识别号\r\n  BANK_CARD = 'bankCard', // 银行卡\r\n  SPACE = 'space', // 空格校验\r\n}\r\n","/**\r\n * http请求响应后，是否在http-util中统一提醒\r\n */\r\nexport enum HttpResponseAlertStatus {\r\n  ALL= 1, // 无论成功失败都消息提醒\r\n  SUCCESS= 2, // 仅成功时消息提醒\r\n  FAIL= 3, // 仅失败时消息提醒\r\n  NONE // 不作统一消息提醒\r\n}\r\n","/**\r\n * 分页数据\r\n */\r\nimport {CommonModel} from './common-model';\r\n\r\nexport class PageInfo<T> extends CommonModel {\r\n\r\n  defaultSelectedRowIndex = -1;\r\n\r\n  constructor(\r\n    public pageNum?: number, // 当前页码（与current冗余，推荐用pageNum）\r\n    public pageSize?: number, // 每页行数（与size冗余，推荐用pageSize）\r\n    public pages?: number, // 总页数\r\n    public list?: Array<T>, // 实际数据集合\r\n    public total?: number, // 总行数\r\n\r\n    public pageIndex?: number, // 当前页码\r\n    public current?: number, // 当前页码\r\n    public size?: number, // 当前页实际多少行\r\n    public totalPages?: number, // 总页数\r\n    public totalRows?: number, // 总行数\r\n    public rows?: Array<T>, // 实际数据\r\n\r\n    public endRow?: number, // 当前页结束行号，基于1为第一行\r\n    public startRow?: number, // 当前页开始行号，基于1为第一行\r\n\r\n    public resultCode?: string,\r\n    public resultMsg?: string,\r\n    public selectedIndex?: number, // 当前选中的行号\r\n    public loading?: boolean,\r\n    public expandForm?: boolean,\r\n    public selectedRowIndex?: number,\r\n  ) {\r\n    super();\r\n    if (this.pageNum) {\r\n      this.current = this.pageNum;\r\n    }\r\n    if (this.pageSize) {\r\n      this.size = this.size;\r\n    }\r\n    // 当前页码\r\n    this.pageNum = !pageNum ? 1 : pageNum;\r\n    this.pageSize = !pageSize ? 10 : pageSize;\r\n    this.size = !size ? 10 : size;\r\n    this.totalRows = !totalRows ? 0 : totalRows;\r\n    this.total = !total ? 0 : total;\r\n    this.list = !list ? [] : list;\r\n    this.rows = !rows ? [] : rows;\r\n    this.loading = true;\r\n    this.expandForm = false;\r\n    this.selectedRowIndex = -1;\r\n  }\r\n\r\n  static fromJson<T>(json: object): PageInfo<T> {\r\n    if (!json) {\r\n      return new PageInfo<T>();\r\n    }\r\n    return Object.setPrototypeOf(json, PageInfo.prototype);\r\n  }\r\n\r\n  [key: string]: any;\r\n\r\n  reset() {\r\n    this.pageSize = !this.pageSize ? 20 : this.pageSize;\r\n    this.pageNum = 1;\r\n    this.pageIndex = 1;\r\n    this.current = 1;\r\n    this.pages = 0;\r\n    this.total = 0;\r\n    this.list = [];\r\n  }\r\n\r\n  get offset(): number {\r\n    return this.pageNum - 1;\r\n  }\r\n\r\n  set offset(offset: number) {\r\n    this.pageNum = offset + 1;\r\n  }\r\n\r\n  isSelected(): boolean {\r\n    return this.selectedRowIndex > -1;\r\n  }\r\n\r\n  removeBySelectedRowIndex() {\r\n    this.list.splice(this.selectedRowIndex, 1);\r\n    this.selectedRowIndex = this.defaultSelectedRowIndex;\r\n    this.list = [...this.list];\r\n  }\r\n}\r\n","/**\r\n * Created by zhaotiantian on 2018/11/16.\r\n */\r\nimport {inject, Injectable} from '@angular/core';\r\nimport {HttpClient, HttpHeaders, HttpParams, HttpRequest, HttpResponse} from '@angular/common/http';\r\nimport {catchError, filter, map} from 'rxjs/operators';\r\nimport {saveAs} from 'file-saver';\r\nimport {Observable, of} from 'rxjs';\r\nimport {RestResponse} from '../models/great-model.api';\r\nimport {DataTypeUtils, ObjectUtils, StringUtils} from 'great-jsutils';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class HttpService {\r\n\r\n  private http = inject(HttpClient);\r\n  constructor() {\r\n  }\r\n\r\n  /**\r\n   * GET请求处理（一般用于获取数据）\r\n   * @param url:请求地址\r\n   * @param data：header等参数\r\n   */\r\n  get(url: string, data: any = {}): Observable<RestResponse | any> {\r\n    //noinspection TypeScriptValidateTypes\r\n    return this.http.get<RestResponse | any>(url, data).pipe(\r\n      map(restResponse => {\r\n        return this.callback(restResponse);\r\n      }),\r\n      catchError(this.handleError(url, []))\r\n    );\r\n  }\r\n\r\n  /**\r\n   * POST请求处理（一般用于保存数据）\r\n   * @param url:请求地址\r\n   * @param data：参数\r\n   * @param httpOptions：配置\r\n   */\r\n  post(url: string, data: any = {}, httpOptions: any = {}): Observable<RestResponse> {\r\n    //noinspection TypeScriptValidateTypes\r\n    return this.http.post<RestResponse>(url, data, httpOptions).pipe(\r\n      map(restResponse => {\r\n        return this.callback(restResponse);\r\n      }),\r\n      catchError(this.handleError(url, []))\r\n    );\r\n  }\r\n\r\n  /** PUT请求处理（一般用于更新数据）\r\n   * @param url:请求地址\r\n   * @param data：参数\r\n   * @param httpOptions：配置\r\n   */\r\n  put(url: string, data: any = {}, httpOptions: any = {}): Observable<RestResponse | any> {\r\n    //noinspection TypeScriptValidateTypes\r\n    return this.http.put<RestResponse | any>(url, data).pipe(\r\n      map(restResponse => {\r\n        return this.callback(restResponse);\r\n      }),\r\n      catchError(this.handleError(url, []))\r\n    );\r\n  }\r\n\r\n  /** DELETE请求处理（一般用于删除数据）\r\n   * @param url:请求地址\r\n   * @param data：header等参数\r\n   */\r\n  delete(url: string, data: any = {}): Observable<RestResponse | any> {\r\n    //noinspection TypeScriptValidateTypes\r\n    return this.http.delete<RestResponse | any>(url, data).pipe(\r\n      map(restResponse => {\r\n        return this.callback(restResponse);\r\n      }),\r\n      catchError(this.handleError(url, []))\r\n    );\r\n  }\r\n\r\n  downLoad(url: string, datas: DownloadParamsModel|any={params: null, fileName: null, headers: null, method: 'POST'}) {\r\n    let {params, fileName, headers, method} = datas;\r\n    method = method || 'POST';\r\n    console.log(datas);\r\n    let options: any = {\r\n      reportProgress: true,\r\n      responseType: 'blob',\r\n      headers: headers\r\n    };\r\n    options = this.removeNullKey(options);\r\n    const req = new HttpRequest(method, url, params, options);\r\n    if(!method || method.toUpperCase()==='POST'){\r\n      return this.downloadByPost(req, fileName);\r\n    }else{\r\n      return  this.downloadByGet(req, fileName);\r\n    }\r\n  }\r\n\r\n  upload(\r\n    url: string,\r\n    { files = null, params = null, fileKey = 'files', method = 'POST' } = {},\r\n    { headers = null } = {}\r\n  ): Observable<any> {\r\n    const uploadUrl = url;\r\n    const formData = new FormData();\r\n    if (params) {\r\n      Object.keys(params).forEach(key => {\r\n        formData.set(key, params[key]);\r\n      });\r\n    }\r\n    if (files) {\r\n      files.forEach((file: any) => {\r\n        formData.append(fileKey, file);\r\n      });\r\n    }\r\n    const req = new HttpRequest(method, uploadUrl, formData, {\r\n      headers\r\n    });\r\n    return this.http.request(req).pipe(filter(e => e instanceof HttpResponse));\r\n  }\r\n\r\n  private downloadByPost(req, fileName: string){\r\n    return this.http.request(req).subscribe(event => {\r\n      console.log(event);\r\n      if (event instanceof HttpResponse) {\r\n        console.log(event.headers);\r\n        if(!fileName && event.headers.get('Content-Disposition')){\r\n          console.log(event.headers.get('Content-Disposition'));\r\n          fileName = fileName || decodeURIComponent(event.headers.get('Content-Disposition').split(';')[1].split('filename=')[1]);\r\n        }\r\n        saveAs(event.body, fileName || Date.now());\r\n      }\r\n    });\r\n  }\r\n\r\n  private downloadByGet(req, fileName: string){\r\n    this.http.request(req).subscribe(event => {\r\n      if (event instanceof HttpResponse) {\r\n        if(event.body instanceof Blob){\r\n          saveAs(event.body, fileName||'download');\r\n        }else{\r\n          let blob = new Blob([JSON.stringify(event.body as string)], { type: 'text/plain' });\r\n          saveAs(blob, fileName||'download');\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  callback(restResponse) {\r\n    if (!restResponse) {\r\n      // this.popup.error(\"未获取到数据！\");\r\n    }\r\n    // if (restResponse.success) {\r\n    //   // if(!!restResponse.message && restResponse.message.length>0){\r\n    //   //   this.popup.success(restResponse.message);\r\n    //   // }\r\n    //   return restResponse;\r\n    // } else {\r\n    //   if (errorFn) {\r\n    //     errorFn(restResponse);\r\n    //   } else {\r\n    //     //this.popup.error(restResponse.message);\r\n    //   }\r\n    //   return restResponse;\r\n    // }\r\n    return restResponse;\r\n  }\r\n\r\n  /**\r\n   * Handle Http operation that failed.\r\n   * Let the app continue.\r\n   * @param operation - name of the operation that failed\r\n   * @param result - optional value to return as the observable result\r\n   */\r\n  handleError<T>(operation = 'operation', result?: T) {\r\n    return (error: any): Observable<T> => {\r\n      // TODO: send the error to remote logging infrastructure\r\n      console.error(error); // log to console instead\r\n      // TODO: better job of transforming error for user consumption\r\n      console.log(`${operation} failed: ${error.message}`);\r\n      // Let the app keep running by returning an empty result.\r\n      return of(result as T);\r\n    };\r\n  }\r\n\r\n  createHttpParams(data): HttpParams {\r\n    if (!data) {\r\n      return new HttpParams();\r\n    } else {\r\n      return new HttpParams({\r\n        fromObject: ObjectUtils.filter(data)\r\n      });\r\n    }\r\n  }\r\n\r\n  createHeaders(cfg: any = {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', name: ''}): HttpHeaders {\r\n    const newCfg = ObjectUtils.filter(cfg);\r\n    const headers = new HttpHeaders({\r\n      'X-Requested-With': 'true',\r\n      'service-request-flag': 'true',\r\n      ...newCfg\r\n    });\r\n    return headers;\r\n  }\r\n\r\n  /**\r\n   * @method\r\n   * 空值过滤掉\r\n   * @param obj：去除值为null、undefined、空字符串的字段\r\n   * @param trim：如果是字符串，是否去除空格后再验证\r\n   */\r\n  removeNullKey(obj: any, trim=false) {\r\n    if (ObjectUtils.isObject(obj)) {\r\n      Object.keys(obj).forEach(key => {\r\n        if (this.isNullValue(obj[key])) {\r\n          delete obj[key];\r\n        }\r\n      });\r\n    }\r\n    return obj;\r\n  }\r\n\r\n  isNullValue(v) {\r\n    if(StringUtils.isStr(v)){\r\n      return !!v.replace(/\\s+/g, '');\r\n    }\r\n    if(ObjectUtils.isObject(v)){\r\n      return Object.keys(v).length === 0;\r\n    }\r\n    if(Array.isArray(v)){\r\n      return v.length===0;\r\n    }\r\n    return DataTypeUtils.isUndefined(v) || DataTypeUtils.isNull(v) || v === null || v === '';\r\n  }\r\n}\r\ninterface DownloadParamsModel{\r\n  params: any|null|undefined;\r\n  headers: any|null|undefined;\r\n  fileName: string|null|undefined;\r\n  mothed: string|null|undefined;\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AbstractControl, FormGroup, ValidatorFn} from '@angular/forms';\r\nimport {FormValidatorModel, ValidateRules} from '../models/form-validator.model';\r\nimport {DataTypeUtils, LuhnCheck, RegexpUtils, ValueUtils} from 'great-jsutils';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class FormValidatorService {\r\n\r\n  constructor() {\r\n  }\r\n\r\n  /**\r\n   * 验证是否全为中文\r\n   * @param model:校验规则\r\n   */\r\n  chinese(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.CHINESE);\r\n    const regExp: RegExp = /^[\\u4e00-\\u9fa5]+$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = regExp.test(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 字母数字\r\n   * @param model:校验规则\r\n   */\r\n  alphanumeric(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.ALPHANUMERIC);\r\n    const regExp: RegExp = /^[A-Za-z0-9]+$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = regExp.test(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 根据输入正则校验\r\n   * @param model:校验规则\r\n   */\r\n  regex(model?: FormValidatorModel): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.REGEX);\r\n    const regExp: RegExp = model.value;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = regExp.test(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 身份证\r\n   * @param model:校验规则\r\n   */\r\n  identityCard(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.IDENTITY_CARD);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = RegexpUtils.identityCard.test(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 邮箱\r\n   * @param model:校验规则\r\n   */\r\n  email(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.EMAIL);\r\n    const regExp: RegExp = /^[A-Za-z0-9\\u4e00-\\u9fa5]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = regExp.test(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 手机号\r\n   * @param model:校验规则\r\n   */\r\n  mobile(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.MOBILE);\r\n    const regExp: RegExp = /^[1][3,4,5,7,8][0-9]{9}$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (control.value) {\r\n        const result = regExp.test(control.value);\r\n        return this.buildReturnResult(result, model, control);\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 手机号、座机号\r\n   * @param model:校验规则\r\n   */\r\n  phoneNumber(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.PHONE_NUMBER);\r\n    const isPhone: RegExp = /([0-9]{3,4}-)?[0-9]{7,8}$/;\r\n    const isMob: RegExp = /^[1][3,4,5,7,8][0-9]{9}$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (control.value) {\r\n        const result = isMob.test(control.value) || isPhone.test(control.value);\r\n        return this.buildReturnResult(result, model, control);\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 座机号\r\n   * @param model：校验规则\r\n   */\r\n  landline(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.LAND_LINE);\r\n    const regExp = /0\\d{2,3}-*\\d{7,8}$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (control.value) {\r\n        const result = regExp.test(control.value);\r\n        return this.buildReturnResult(result, model, control);\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 必填\r\n   * @param model：校验规则\r\n   */\r\n  required(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.REQUIRED);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      return this.buildReturnResult(!!control.value, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * url\r\n   * @param model:校验规则\r\n   */\r\n  url(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.URL);\r\n    const regExp: RegExp = /^((ht|f)tps?):\\/\\/([\\w\\-]+(\\.[\\w\\-]+)*\\/)*[\\w\\-]+(\\.[\\w\\-]+)*\\/?(\\?([\\w\\-\\.,@?^=%&:\\/~\\+#]*)+)?/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      if (control.value && model.trimLR) {\r\n        control.setValue(control.value.trim());\r\n      }\r\n      this.trimValue(model, control);\r\n      if (control.value) {\r\n        const result = regExp.test(control.value);\r\n        return this.buildReturnResult(result, model, control);\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 整数\r\n   * @param model:\r\n   */\r\n  integer(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.INTEGER);\r\n    const regExp: RegExp = /(^-?)\\d+$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (control.value) {\r\n        let result = regExp.test(control.value);\r\n        if (result) {\r\n          const num = +control.value;\r\n          result = this.checkNumber(result, num, model);\r\n        }\r\n        return this.buildReturnResult(result, model, control);\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 数字验证\r\n   * @param model: {max:max, min:min, maxScan:maxScan}\r\n   */\r\n  decimal(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.DECIMAL);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (control.value) {\r\n        const value = control.value + '';\r\n        const regExp1: RegExp = /(^-?)\\d+$/;\r\n        const regExp2: RegExp = /(^-?)\\d+\\.\\d*$/;\r\n        let result = regExp1.test(control.value) || regExp2.test(control.value);\r\n        if (result) {\r\n          const num = parseFloat(value);\r\n          const len = value.substr(value.indexOf('.')).length - 1;\r\n          if (result && !isNaN(model.scale)) {\r\n            result = len === model.scale;\r\n          }\r\n          if (result && !isNaN(model.minScale)) {\r\n            result = len >= model.minScale;\r\n          }\r\n          if (result && !isNaN(model.maxScale)) {\r\n            result = len <= model.maxScale;\r\n          }\r\n          result = this.checkNumber(result, num, model);\r\n        }\r\n        return this.buildReturnResult(result, model, control);\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n\r\n  /**\r\n   * @param model:{minLength,maxLength,length}\r\n   */\r\n  byteLength(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.BYTE_LENGTH);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      this.trimValue(model, control);\r\n      const regExp: RegExp = /[\\u4e00-\\u9fa5]+/gm;\r\n      const cnStr = control.value.match(regExp);\r\n      let cnStrLength = 0;\r\n      if (cnStr && cnStr.length > 0) {\r\n        cnStrLength = cnStr.join('').length;\r\n      }\r\n      const length = control.value.length + cnStrLength;\r\n      let result = false;\r\n      if (!isNaN(model.minLength) && !isNaN(model.maxLength)) {\r\n        result = length >= model.minLength && length <= model.maxLength;\r\n      } else if (!isNaN(model.maxLength)) {\r\n        result = length <= model.maxLength;\r\n      } else if (!isNaN(model.minLength)) {\r\n        result = length >= model.minLength;\r\n      } else if (!isNaN(model.length)) {\r\n        result = length === model.length;\r\n      }\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * @param model:{minLength,maxLength,length}\r\n   */\r\n  strLength(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.STR_LENGTH);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      this.trimValue(model, control);\r\n      return this.buildReturnResult(true, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 微信\r\n   * @param model：校验规则\r\n   */\r\n  webchat(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.WEBCHAT);\r\n    const regExp = /^[a-zA-Z][a-zA-Z0-9_-]{5,19}$/;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = regExp.test(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 统一社会信用代码\r\n   * @param model：校验规则\r\n   */\r\n  unifiedSocialCreditCode(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.UNIFIED_SOCIAL_CREDIT_CODE);\r\n    const regExp = /^[^_IOZSVa-z\\W]{2}\\d{6}[^_IOZSVa-z\\W]{10}$/g;\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = regExp.test(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 纳税人识别号\r\n   * @param model：校验规则\r\n   */\r\n  checkTaxId(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.CHECK_TAXID);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const result = RegexpUtils.isTaxpayerIdentificationNumber(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 银行卡\r\n   * @param model：校验规则\r\n   */\r\n  bankCard(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.BANK_CARD);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      this.trimValue(model, control);\r\n      if (!control.value) {\r\n        return null;\r\n      }\r\n      const luhnCheck = new LuhnCheck();\r\n      const result = luhnCheck.luhnCheck(control.value);\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  /**\r\n   * 空格校验\r\n   * @param model：校验规则\r\n   */\r\n  space(model?: FormValidatorModel | any): ValidatorFn {\r\n    model = FormValidatorModel.init(model, ValidateRules.SPACE);\r\n    return (control: AbstractControl): { [key: string]: any } | null => {\r\n      let result = false;\r\n      if (control.value) {\r\n        result = model.trimLR && /(^\\s+)|(\\s+$)/g.test(control.value) || model.trim && /\\s+/g.test(control.value);\r\n        if (result) {\r\n          // control.setValue(control.value.replace(/(^\\s+)/g, ''));\r\n        }\r\n      }\r\n      return this.buildReturnResult(result, model, control);\r\n    };\r\n  }\r\n\r\n  private checkStringLength(result: boolean, str: string | number, model?: FormValidatorModel | any): boolean {\r\n    if (result) {\r\n      const length = DataTypeUtils.isNull(str) ? 0 : (str + '').length;\r\n      if (result && !isNaN(model.maxLength)) {\r\n        result = length <= model.maxLength;\r\n      }\r\n      if (result && !isNaN(model.minLength)) {\r\n        result = length >= model.minLength;\r\n      }\r\n      if (result && !isNaN(model.length)) {\r\n        result = length === model.length;\r\n      }\r\n      return result;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  private checkNumber(result: boolean, num: number, model?: FormValidatorModel | any): boolean {\r\n    if (!result || isNaN(num)) {\r\n      return false;\r\n    } else {\r\n      if (result && !isNaN(model.max)) {\r\n        result = num <= model.max;\r\n      }\r\n      if (result && !isNaN(model.min)) {\r\n        result = num >= model.min;\r\n      }\r\n      if (result && !isNaN(model.greaterThan)) {\r\n        result = num > model.greaterThan;\r\n      }\r\n      if (result && !isNaN(model.lessThan)) {\r\n        result = num < model.lessThan;\r\n      }\r\n      return result;\r\n    }\r\n  }\r\n\r\n  private buildReturnResult(regExpResult, model: FormValidatorModel, control) {\r\n    if (model.validateRules !== ValidateRules.BYTE_LENGTH) {\r\n      regExpResult = this.checkStringLength(regExpResult, control.value, model);\r\n    }\r\n    const defaultModel = model.defaultValue(model);\r\n    if (regExpResult) {\r\n      return null;\r\n    } else {\r\n      const result = {};\r\n      const key = defaultModel.key;\r\n      result[key] = {value: control.value};\r\n      result[key][defaultModel.errorMsgKey] = defaultModel.errorMsg;\r\n      if (typeof control.value === 'string') {\r\n        result[key].currentLength = control.value.length;\r\n      }\r\n      return result;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 删除空格\r\n   * @param model：配置\r\n   * @param control：控件\r\n   */\r\n  private trimValue(model: FormValidatorModel, control: AbstractControl) {\r\n    if (control.value === null) {\r\n      return;\r\n    }\r\n    if (model.trimLR && /(^\\s+)|(\\s+$)/g.test(control.value)) {\r\n      if (control.value) {\r\n        control.setValue(control.value.replace(/(^\\s+)|(\\s+$)/g, ''));\r\n      }\r\n      return;\r\n    }\r\n    if (model.trimL && /(^\\s+)/g.test(control.value)) {\r\n      if (control.value) {\r\n        control.setValue(control.value.replace(/(^\\s+)|/g, ''));\r\n      }\r\n      return;\r\n    }\r\n    if (model.trim && /\\s+/g.test(control.value)) {\r\n      if (control.value) {\r\n        control.setValue(control.value.replace(/\\s+/g, ''));\r\n      }\r\n      return;\r\n    }\r\n    return;\r\n  }\r\n\r\n  /**\r\n   * 获取错误消息\r\n   * @param controlName：响应表单项名\r\n   */\r\n  getFormErrorTip(controlName: string, form: FormGroup, errorMesage): string {\r\n    const control = form.get(controlName);\r\n    if (control && control.errors && control.dirty) {\r\n      const errorMessage = [];\r\n      Object.keys(control.errors).forEach((v, i, arr) => {\r\n        const error = control.errors[v];\r\n        if (errorMessage.length < 1) {\r\n          if (errorMesage[controlName][v]) {\r\n            errorMessage.push(errorMesage[controlName][v]);\r\n          } else if (DataTypeUtils.isObject(error)) {\r\n            if (error.error) {\r\n              errorMessage.push(error.error);\r\n            }\r\n          }\r\n        }\r\n      });\r\n      return errorMessage.join('、');\r\n    }\r\n    return '输入信息未通过校验！';\r\n  }\r\n\r\n  /**\r\n   * 检查验证表单是否合法\r\n   * @param form:表单\r\n   */\r\n  checkForm(form: FormGroup|any): void {\r\n    Object.keys(form.controls).forEach(key => {\r\n      form.controls[key].markAsDirty();\r\n      form.controls[key].updateValueAndValidity();\r\n    });\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot, UrlTree} from '@angular/router';\r\nimport {Observable} from 'rxjs';\r\n\r\nexport interface CanComponentDeactivate {\r\n  // canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\r\n  // tslint:disable-next-line:max-line-length\r\n  canDeactivate(component: CanComponentDeactivate, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot);\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class CanDeactivateGuard implements CanDeactivate<CanComponentDeactivate> {\r\n  // tslint:disable-next-line:max-line-length\r\n  canDeactivate(component: CanComponentDeactivate, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot) {\r\n    if (component.canDeactivate) {\r\n      return component.canDeactivate(component, currentRoute, currentState, nextState);\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, ActivatedRoute, Router} from '@angular/router';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class RediectRouterGuard implements CanActivate {\r\n\r\n  constructor(\r\n    private activeRoute: ActivatedRoute,\r\n    private router: Router) {\r\n  }\r\n\r\n  canActivate(\r\n    next: ActivatedRouteSnapshot,\r\n    state: RouterStateSnapshot) {\r\n    const url: string = state.url;\r\n    const queryParams = state.root.queryParams;\r\n    const hasParams = state.root.queryParamMap.keys.length > 0;\r\n    return this.checkRouter(url, queryParams, hasParams);\r\n  }\r\n\r\n  private checkRouter(url: string, queryParams, hasParams) {\r\n    const hash = window.location.hash;\r\n    if (hash != null && hash.startsWith('#/fullscreen/')) {\r\n      const rediect = hasParams ? url.substring(0, url.indexOf('?')) : url;\r\n      this.router.navigate([rediect.startsWith('#/fullscreen/') ? rediect : `/fullscreen${rediect}`], {\r\n        skipLocationChange: true,\r\n        queryParams\r\n      });\r\n      return false;\r\n    } else {\r\n      return true;\r\n    }\r\n  }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {Base64} from 'great-jsutils';\r\n\r\n@Pipe({\r\n  name: 'base64'\r\n})\r\n// ng g pipe great-pipe/base64 -m=great-pipe\r\nexport class Base64Pipe implements PipeTransform {\r\n\r\n  constructor() {\r\n  }\r\n\r\n  transform(value: any, args?: any): any {\r\n    try {\r\n      if (typeof value === 'string') {\r\n        if (args) {\r\n          return Base64.decode(value);\r\n        } else {\r\n          return Base64.encode(value);\r\n        }\r\n      }\r\n    } catch (e) {\r\n      return value + '（解析失败）';\r\n    }\r\n    return null;\r\n  }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n  name: 'greatDate'\r\n})\r\nexport class GreatDatePipe implements PipeTransform {\r\n\r\n  transform(value: any, args?: any): any {\r\n    return null;\r\n  }\r\n\r\n}\r\n","import {ModuleWithProviders, NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {Base64Pipe} from './base64.pipe';\r\nimport {GreatDatePipe} from './great-date.pipe';\r\n\r\nconst PIPES = [Base64Pipe, GreatDatePipe];\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    ...PIPES\r\n  ],\r\n  declarations: [...PIPES]\r\n})\r\nexport class GreatPipeModule {\r\n  static forRoot(): ModuleWithProviders<GreatPipeModule> {\r\n    return {\r\n        ngModule: GreatPipeModule,\r\n        providers: [],\r\n    };\r\n  }\r\n}\r\nexport {\r\n  Base64Pipe, GreatDatePipe\r\n};\r\n","/**\r\n * Created by ztt on 2018/10/22.\r\n */\r\nexport class GreatValidateData {\r\n  public static errorMsgKey = 'errorMsg';\r\n  public static fieldName = 'pattern';\r\n}\r\n","import {GreatValidateData} from './great-validate-data';\r\n\r\n/**\r\n * Created by zhaott on 2018/10/22.\r\n */\r\nexport class GreatValidateUtils {\r\n\r\n  static buildResutl(errorMsg, errorMsgKey, fieldName?) {\r\n    const result = {};\r\n    if (fieldName) {\r\n      result[fieldName] = {};\r\n      result[fieldName][errorMsgKey] = errorMsg;\r\n    } else {\r\n      result[GreatValidateData.fieldName] = {};\r\n      result[GreatValidateData.fieldName][errorMsgKey] = errorMsg;\r\n    }\r\n    return result;\r\n  }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {NG_VALIDATORS, Validator, AbstractControl, ValidatorFn} from '@angular/forms';\r\nimport {RegexpUtils} from 'great-jsutils';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\n\r\n@Directive({\r\n  selector: '[greatByteLength]',\r\n  providers: [{provide: NG_VALIDATORS, useExisting: ByteLengthDirective, multi: true}]\r\n})\r\nexport class ByteLengthDirective implements Validator {\r\n\r\n  @Input('greatByteLength') byteLength: string;\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg = '超过最大允许的长度！';\r\n  @Input() strict = false;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  validate(control: AbstractControl): { [key: string]: any } {\r\n    if (typeof this.strict === 'string') {\r\n      this.strict = 'true' === this.strict;\r\n    }\r\n    if (control.value) {\r\n      let result = this.byteLength ? this.greatByteLengthValidator()(control) : null;\r\n      if (result && this.strict && !!control.value.substring) {\r\n        control.setValue(control.value.substring(0, control.value.length - 1));\r\n        result = this.byteLength ? this.greatByteLengthValidator()(control) : null;\r\n      }\r\n      return result;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  greatByteLengthValidator(): ValidatorFn {\r\n    // tslint:disable-next-line:radix\r\n    const maxLength = parseInt(this.byteLength);\r\n    return (control: AbstractControl): { [key: string]: any } => {\r\n      const strs = RegexpUtils.matchChinese(control.value);\r\n      const actualLength = control.value.length + (strs == null ? 0 : strs.length);\r\n      if (actualLength > maxLength) {\r\n        const result = GreatValidateUtils.buildResutl(this.errorMsg, this.failName || this.errorMsgKey, this.fieldName);\r\n        if (this.fieldName) {\r\n          // tslint:disable-next-line:radix\r\n          result[this.fieldName].maxLength = maxLength;\r\n          // tslint:disable-next-line:radix\r\n          result[this.fieldName].actualLength = actualLength;\r\n        } else {\r\n          // tslint:disable-next-line:radix\r\n          result[GreatValidateData.fieldName].maxLength = maxLength;\r\n          // tslint:disable-next-line:radix\r\n          result[GreatValidateData.fieldName].actualLength = actualLength;\r\n        }\r\n        return result;\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n}\r\n","import {Directive, forwardRef, Input} from '@angular/core';\r\nimport {NG_VALIDATORS, Validator, AbstractControl} from '@angular/forms';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\n\r\n@Directive({\r\n  selector: '[greatMobile]',\r\n  providers: [{\r\n    provide: NG_VALIDATORS,\r\n    useExisting: forwardRef(() => MobileDirective),\r\n    multi: true\r\n  }]\r\n})\r\nexport class MobileDirective implements Validator {\r\n\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg = '手机号格式有误！';\r\n\r\n  constructor() {\r\n  }\r\n\r\n  validate(c: AbstractControl): { [key: string]: any; } {\r\n    const value: string = c.value || '';\r\n    const reg = /^[1][3,4,5,7,8][0-9]{9}$/;\r\n    if (!reg.test(value)) {\r\n      return GreatValidateUtils.buildResutl(this.errorMsg, this.failName || this.errorMsgKey, this.fieldName);\r\n    }\r\n    return null;\r\n  }\r\n\r\n}\r\n","import {Directive, forwardRef, Input} from '@angular/core';\r\nimport {NG_VALIDATORS, Validator, AbstractControl} from '@angular/forms';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\nimport {RegexpUtils} from 'great-jsutils';\r\n\r\n@Directive({\r\n  selector: '[greatMac]',\r\n  providers: [{\r\n    provide: NG_VALIDATORS,\r\n    useExisting: forwardRef(() => MacDirective),\r\n    multi: true\r\n  }]\r\n})\r\nexport class MacDirective implements Validator {\r\n\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg = 'Mac地址格式有误！';\r\n\r\n  constructor() {\r\n  }\r\n\r\n  validate(c: AbstractControl): { [key: string]: any; } {\r\n    const value: string = c.value || '';\r\n    if (!RegexpUtils.isMac(value)) {\r\n      return GreatValidateUtils.buildResutl(this.errorMsg, this.failName || this.errorMsgKey, this.fieldName);\r\n    }\r\n    return null;\r\n  }\r\n\r\n}\r\n","import {Directive, forwardRef, Input} from '@angular/core';\r\nimport {NG_VALIDATORS, Validator, AbstractControl} from '@angular/forms';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\n\r\n@Directive({\r\n  selector: '[greatUrl]',\r\n  providers: [{\r\n    provide: NG_VALIDATORS,\r\n    useExisting: forwardRef(() => UrlDirective),\r\n    multi: true\r\n  }]\r\n})\r\nexport class UrlDirective implements Validator {\r\n\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg = 'Url地址格式有误！';\r\n\r\n  constructor() {\r\n  }\r\n\r\n  validate(c: AbstractControl): {[key: string]: any} {\r\n    const value: string = c.value || '';\r\n    const reg = /^((ht|f)tps?):\\/\\/([\\w\\-]+(\\.[\\w\\-]+)*\\/)*[\\w\\-]+(\\.[\\w\\-]+)*\\/?(\\?([\\w\\-\\.,@?^=%&:\\/~\\+#]*)+)?/;\r\n    if (!reg.test(value)) {\r\n      return GreatValidateUtils.buildResutl(this.errorMsg, this.failName || this.errorMsgKey, this.fieldName);\r\n    }\r\n    return null;\r\n  }\r\n\r\n}\r\n","import {Directive, Input, forwardRef} from '@angular/core';\r\nimport {NG_VALIDATORS, Validator, AbstractControl} from '@angular/forms';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\nimport {RegexpUtils} from 'great-jsutils';\r\n\r\n@Directive({\r\n  selector: '[greatIdentityCard]',\r\n  providers: [{\r\n    provide: NG_VALIDATORS,\r\n    useExisting: forwardRef(() => IdentityCardDirective),\r\n    multi: true\r\n  }]\r\n})\r\nexport class IdentityCardDirective implements Validator {\r\n\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg = '身份证格式有误！';\r\n\r\n  constructor() {\r\n  }\r\n\r\n  validate(c: AbstractControl): { [key: string]: any; } {\r\n    const value: string = c.value || '';\r\n    if (!RegexpUtils.isIdentityCard(value)) {\r\n      return GreatValidateUtils.buildResutl(this.errorMsg, this.failName || this.errorMsgKey, this.fieldName);\r\n    }\r\n    return null;\r\n  }\r\n\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {NG_VALIDATORS, Validator, AbstractControl, ValidatorFn} from '@angular/forms';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\n\r\n@Directive({\r\n  selector: '[greatRegexp]',\r\n  providers: [{provide: NG_VALIDATORS, useExisting: RegexpDirective, multi: true}]\r\n})\r\nexport class RegexpDirective implements Validator {\r\n\r\n  // tslint:disable-next-line:no-input-rename\r\n  @Input('greatRegexp') greatRegexp: string;\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg = '正则信息不匹配';\r\n  @Input() inverse = false;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  validate(control: AbstractControl): { [key: string]: any } {\r\n    if (control.value) {\r\n      return this.greatRegexp ? this.greatByteLengthValidator()(control) : null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  greatByteLengthValidator(): ValidatorFn {\r\n    if (typeof this.inverse === 'string') {\r\n      this.inverse = 'true' === this.inverse;\r\n    }\r\n    const regexp = new RegExp(this.greatRegexp);\r\n    return (control: AbstractControl): { [key: string]: any } => {\r\n      let result = regexp.test(control.value);\r\n      result = this.inverse ? !result : result;\r\n      if (!result) {\r\n        return GreatValidateUtils.buildResutl(this.errorMsg, this.failName || this.errorMsgKey, this.fieldName);\r\n      } else {\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n}\r\n","export enum DecimalDigitConstraintType {\r\n  EQ=\"eq\",\r\n  GT=\"gt\",\r\n  GE=\"ge\",\r\n  LT=\"lt\",\r\n  LE=\"le\"\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn} from '@angular/forms';\r\nimport {DecimalDigitConstraintType} from '../enum/decimal-digit-constraint-type';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\n\r\n@Directive({\r\n  selector: '[greatNumber]',\r\n  providers: [{provide: NG_VALIDATORS, useExisting: NumberDirective, multi: true}]\r\n})\r\nexport class NumberDirective implements Validator {\r\n\r\n  // tslint:disable-next-line:no-input-rename\r\n  @Input('greatNumber') greatNumber: number;\r\n  @Input() scale = 0;\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg = '';\r\n  //noinspection TypeScriptValidateTypes\r\n  @Input() constraintType: string = DecimalDigitConstraintType.LE;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n  }\r\n\r\n  validate(control: AbstractControl): ValidationErrors | null {\r\n    if (control.value || (typeof control.value === 'string' && control.value.length > 0)) {\r\n      return this.greatNumber ? this.greatNumberValidator()(control) : null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  greatNumberValidator(): ValidatorFn {\r\n    return (control: AbstractControl): { [key: string]: any } => {\r\n      let value = control.value;\r\n      let message = null;\r\n      if (isNaN(value)) {\r\n        message = '只能输入数字！';\r\n      } else {\r\n        value = typeof value === 'number' ? value + '' : value;\r\n        const [numStr1 = '', numStr2 = '', other] = value.split('.');\r\n        if (numStr2.length > this.scale) {\r\n          message = this.scale === 0 ? '只能输入整数！' : '超过最大允许的小数位数！';\r\n        } else if (numStr1.length + numStr2.length > this.greatNumber) {\r\n          message = '超过最大允许的数字位数！';\r\n        }\r\n      }\r\n      if (message) {\r\n        return GreatValidateUtils.buildResutl(this.errorMsg ? this.errorMsg : message, this.failName || this.errorMsgKey, this.fieldName);\r\n      }\r\n      return null;\r\n    };\r\n  }\r\n\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n  production: false,\r\n  prefix: 'great'\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error';  // Included with Angular CLI.\r\n","import {Directive, forwardRef, Input} from '@angular/core';\r\nimport {\r\n  AsyncValidator,\r\n  AbstractControl,\r\n  NG_ASYNC_VALIDATORS,\r\n  ValidationErrors\r\n} from '@angular/forms';\r\nimport {catchError, map} from 'rxjs/operators';\r\nimport {Observable, of} from 'rxjs';\r\nimport {HttpService} from '../service/http.service';\r\nimport {HttpParams} from '@angular/common/http';\r\nimport {GreatValidateData} from './great-validate-data';\r\nimport {environment} from '../../environments/environment';\r\nimport {FormValidatorModel} from '../models/great-model.api';\r\n\r\n\r\n@Directive({\r\n  selector: environment.prefix + '[Async]',\r\n  providers: [\r\n    {\r\n      provide: NG_ASYNC_VALIDATORS,\r\n      useExisting: forwardRef(() => AsyncDirective),\r\n      multi: true\r\n    }\r\n  ]\r\n})\r\nexport class AsyncDirective implements AsyncValidator {\r\n\r\n  @Input() greatAsync: string;\r\n  @Input() fieldName: string = GreatValidateData.fieldName;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  @Input() errorMsg: string = null;\r\n  @Input() paramName: string;\r\n  @Input() params: any;\r\n  @Input() greatAsync2: FormValidatorModel;\r\n\r\n  constructor(private httpService: HttpService) {\r\n  }\r\n\r\n  validate(ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\r\n    const url = this.greatAsync;\r\n    const result: ValidationErrors = {};\r\n    const value = ctrl.value;\r\n    if (!value) {\r\n      return of(null);\r\n    }\r\n    if (url) {\r\n      const params = new HttpParams({\r\n        fromObject: this.params\r\n      }).set(this.paramName, value);\r\n      return this.httpService.get(url, {params}).pipe(\r\n        map(data => {\r\n          if ((typeof data === 'boolean' && data === false) ||\r\n            (typeof data === 'object' && typeof data.result === 'boolean' && data.result === false) ||\r\n            (typeof data === 'object' && typeof data.data === 'boolean' && data.data === false)) {\r\n            // data[this.errorMsgKey] = this.errorMsg;\r\n            return null;\r\n          } else {\r\n            if (this.errorMsg) {\r\n              const errorMsgKey = this.failName || this.errorMsgKey;\r\n              data = {};\r\n              data[errorMsgKey] = this.errorMsg;\r\n            }\r\n            result[this.fieldName] = data;\r\n          }\r\n          return result;\r\n        }),\r\n        catchError(() => null)\r\n      );\r\n    } else {\r\n      result[this.failName || this.errorMsgKey] = 'url undefined';\r\n      result[this.fieldName] = true;\r\n      return of(result);\r\n    }\r\n  }\r\n}\r\n","import {Directive, Input} from '@angular/core';\r\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn} from '@angular/forms';\r\nimport {DecimalDigitConstraintType} from '../enum/decimal-digit-constraint-type';\r\nimport {GreatValidateUtils} from './great-validate.utils';\r\nimport {GreatValidateData} from './great-validate-data';\r\n\r\n@Directive({\r\n  selector: '[greatRangeNumber]',\r\n  providers: [{provide: NG_VALIDATORS, useExisting: RangeNumberDirective, multi: true}]\r\n})\r\nexport class RangeNumberDirective implements Validator {\r\n\r\n  // tslint:disable-next-line:no-input-rename\r\n  @Input('greatRangeNumber') greatRangeNumber: number;\r\n  @Input() scale = 0;\r\n  @Input() fieldName: string;\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey: string = GreatValidateData.errorMsgKey;\r\n  //noinspection TypeScriptValidateTypes\r\n  @Input() constraintType: string = DecimalDigitConstraintType.LE;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n  }\r\n\r\n  validate(control: AbstractControl): ValidationErrors | null {\r\n    if (control.value || (typeof control.value === 'string' && control.value.length > 0)) {\r\n      return this.greatRangeNumber ? this.greatRangeNumberValidator()(control) : null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  greatRangeNumberValidator(): ValidatorFn {\r\n    return (control: AbstractControl): { [key: string]: any } => {\r\n      let value = control.value;\r\n      if (isNaN(value)) {\r\n        return GreatValidateUtils.buildResutl('只能输入数字！', this.failName || this.errorMsgKey, this.fieldName);\r\n      } else {\r\n        value = typeof value === 'number' ? value + '' : value;\r\n        const [numStr1 = '', numStr2 = '', other] = value.split('.');\r\n        if (numStr2.length > this.scale) {\r\n          // tslint:disable-next-line:max-line-length\r\n          return GreatValidateUtils.buildResutl(this.scale === 0 ? '只能输入整数！' : '超过最大允许的小数位数！', this.failName || this.errorMsgKey, this.fieldName);\r\n        } else if (numStr1.length + numStr2.length > this.greatRangeNumber) {\r\n          return GreatValidateUtils.buildResutl('超过最大允许的数字位数！', this.failName || this.errorMsgKey, this.fieldName);\r\n        }\r\n        return null;\r\n      }\r\n    };\r\n  }\r\n\r\n}\r\n","import { Directive } from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[appAsync2]'\r\n})\r\nexport class Async2Directive {\r\n\r\n  constructor() { }\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ByteLengthDirective} from './byte-length.directive';\r\nimport {MobileDirective} from './mobile.directive';\r\nimport {MacDirective} from './mac.directive';\r\nimport {UrlDirective} from './url.directive';\r\nimport {IdentityCardDirective} from './identity-card.directive';\r\nimport {RegexpDirective} from './regexp.directive';\r\nimport {NumberDirective} from './number.directive';\r\nimport {AsyncDirective} from './async.directive';\r\nimport {RangeNumberDirective} from './range-number.directive';\r\nimport { Async2Directive } from './async2.directive';\r\n\r\nconst DIRECTIVES = [\r\n  ByteLengthDirective,\r\n  MobileDirective,\r\n  IdentityCardDirective,\r\n  RegexpDirective,\r\n  NumberDirective,\r\n  MacDirective,\r\n  UrlDirective,\r\n  AsyncDirective,\r\n  RangeNumberDirective,\r\n];\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    ...DIRECTIVES\r\n  ],\r\n  declarations: [\r\n    ...DIRECTIVES,\r\n    Async2Directive\r\n  ]\r\n})\r\nexport class GreatValidateModule {\r\n}\r\nexport {\r\n  ByteLengthDirective,\r\n  MobileDirective,\r\n  IdentityCardDirective,\r\n  RegexpDirective,\r\n  NumberDirective,\r\n  MacDirective,\r\n  UrlDirective,\r\n  AsyncDirective,\r\n  RangeNumberDirective\r\n};\r\n// ng g directive great-validate/url\r\n","import {Component, EventEmitter, Input,  Output} from '@angular/core';\r\nimport {AnimationEvent} from '@angular/animations';\r\nimport {animate, state, style, transition, trigger} from '@angular/animations';\r\n\r\n@Component({\r\n  selector: 'great-modal-template',\r\n  templateUrl: './modal-template.component.html',\r\n  styleUrls: ['./modal-template.component.scss'],\r\n  animations: [\r\n    trigger('state', [\r\n      state('opened', style({transform: 'translateY(0%)'})),\r\n      state('void, closed', style({transform: 'translateY(100%)', opacity: 0})),\r\n      transition('* => *', animate('100ms ease-in')),\r\n    ])\r\n  ],\r\n})\r\nexport class ModalTemplateComponent  {\r\n\r\n  title = '消息提醒';\r\n  // tslint:disable-next-line:variable-name\r\n  _message: string;\r\n  private state: 'opened' | 'closed' = 'closed';\r\n  @Output()\r\n  closed = new EventEmitter<PopupBtnState>();\r\n\r\n  @Input()\r\n  set message(message: string) {\r\n    this._message = message;\r\n    this.state = 'opened';\r\n    setTimeout(() => this.state = 'closed', 65000);\r\n  }\r\n\r\n  get message(): string {\r\n    return this._message;\r\n  }\r\n\r\n  onAnimationDone(e: AnimationEvent) {\r\n    if (e.toState === 'closed') {\r\n      this.closed.next(null);\r\n    }\r\n  }\r\n\r\n  close() {\r\n    this.closed.emit(PopupBtnState.CLOSE);\r\n  }\r\n\r\n  cancle() {\r\n    this.closed.emit(PopupBtnState.CANCLE);\r\n  }\r\n\r\n  leave() {\r\n    this.closed.emit(PopupBtnState.LEAVE);\r\n  }\r\n\r\n  leaveAndSave() {\r\n    this.closed.emit(PopupBtnState.LEAVE_AND_SAVE);\r\n  }\r\n}\r\n\r\nexport enum PopupBtnState {\r\n  CLOSE,\r\n  CANCLE,\r\n  LEAVE,\r\n  LEAVE_AND_SAVE,\r\n}\r\n","<div class=\"great-modal-mask\">\r\n  <div class=\"great-modal\">\r\n    <div class=\"great-modal-header\">\r\n      <h3>{{title}}</h3>\r\n      <a (click)=\"close()\" class=\"great-hander great-modal-close\">关闭</a>\r\n    </div>\r\n    <div class=\"great-modal-body\">\r\n      {{message}}\r\n    </div>\r\n    <div class=\"great-modal-footer\">\r\n      <a (click)=\"cancle()\" class=\"great-hander great-modal-btn\">取消</a>\r\n      <a (click)=\"leave()\" class=\"great-hander great-modal-btn\">离开</a>\r\n      <a (click)=\"leaveAndSave()\" class=\"great-hander great-modal-btn great-modal-btn-primary\">离开并保存</a>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import {ApplicationRef, ComponentFactoryResolver, Injectable, Injector} from '@angular/core';\r\nimport {Observable} from 'rxjs';\r\nimport {ModalTemplateComponent} from './modal-template/modal-template.component';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class GreatModalService {\r\n\r\n  constructor(\r\n    private injector: Injector,\r\n    private applicationRef: ApplicationRef,\r\n    private componentFactoryResolver: ComponentFactoryResolver\r\n  ) {\r\n  }\r\n\r\n\r\n  openDialog(\r\n    saveCallback: any,\r\n    cancleCallback: any | null,\r\n    {\r\n      title = '表单离开确认！',\r\n      message = '表单内容有变更，确认离开吗！',\r\n    } = {}\r\n  ): Observable<boolean> {\r\n    return new Observable(observer => {\r\n      const popup = document.createElement('great-modal-component');\r\n      const factory = this.componentFactoryResolver.resolveComponentFactory(ModalTemplateComponent);\r\n      const popupComponentRef = factory.create(this.injector, [], popup);\r\n      this.applicationRef.attachView(popupComponentRef.hostView);\r\n      popupComponentRef.instance.closed.subscribe((data) => {\r\n        document.body.removeChild(popup);\r\n        this.applicationRef.detachView(popupComponentRef.hostView);\r\n        if (data === 0 || data === 1) {\r\n          if (cancleCallback) {\r\n            cancleCallback((canDeactivate: boolean) => {\r\n              observer.next(canDeactivate);\r\n              observer.complete();\r\n            });\r\n          } else {\r\n            observer.next(false);\r\n            observer.complete();\r\n          }\r\n        } else if (data === 2) {\r\n          observer.next(true);\r\n          observer.complete();\r\n        } else {\r\n          if (saveCallback) {\r\n            saveCallback((canDeactivate: boolean) => {\r\n              observer.next(canDeactivate);\r\n              observer.complete();\r\n            });\r\n          } else {\r\n            observer.next(true);\r\n            observer.complete();\r\n          }\r\n        }\r\n      });\r\n      popupComponentRef.instance.message = message;\r\n      document.body.appendChild(popup);\r\n    });\r\n  }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {ModalTemplateComponent} from './modal-template/modal-template.component';\r\nimport {GreatModalService} from './great-modal.service';\r\n\r\nconst COMPONENTS = [\r\n  ModalTemplateComponent\r\n];\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    ...COMPONENTS\r\n  ],\r\n  providers: [GreatModalService],\r\n  declarations: [...COMPONENTS],\r\n  //entryComponents: COMPONENTS\r\n})\r\nexport class GreatModalModule {\r\n}\r\nexport {\r\n  ModalTemplateComponent\r\n};\r\n","import {Component, ElementRef, HostListener, Input, OnInit, ViewChild, Output, EventEmitter} from '@angular/core';\r\nimport {ObjectUtils} from \"great-jsutils\";\r\n\r\n@Component({\r\n  selector: 'great-layout-full',\r\n  templateUrl: './great-layout-full.component.html',\r\n  styleUrls: ['./great-layout-full.component.scss']\r\n})\r\nexport class GreatLayoutFullComponent implements OnInit {\r\n\r\n  config: LayoutConfig;\r\n  @Input() layoutConfig: any;\r\n  @Output() layoutInit = new EventEmitter<any>();\r\n  @ViewChild('greatLayoutFullBox', {static: true}) greatLayoutBox: ElementRef;\r\n  @ViewChild('greatLayoutHeader', {static: true}) greatLayoutHeader: ElementRef;\r\n  @ViewChild('greatLayoutLeftBox', {static: true}) greatLayoutLeftBox: ElementRef;\r\n  @ViewChild('greatLayoutMainBox', {static: true}) greatLayoutMainBox: ElementRef;\r\n  @ViewChild('greatLayoutCenter', {static: true}) greatLayoutCenter: ElementRef;\r\n  @ViewChild('greatLayoutFooter', {static: true}) greatLayoutFooter: ElementRef;\r\n\r\n  constructor() {\r\n  }\r\n\r\n  onLayoutInit() {\r\n    this.layoutInit.emit();\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.config = new LayoutConfig();\r\n    if (this.layoutConfig) {\r\n      this.config.setValueByJson(this.layoutConfig);\r\n    }\r\n    this.onResize(null);\r\n  }\r\n\r\n  @HostListener('window:resize', ['$event'])\r\n  onResize(event) {\r\n    // const clientHeight = document.body.offsetHeight;\r\n    const clientHeight = this.config.maxHeight || document.documentElement.clientHeight;\r\n    const boxHeight = clientHeight +\r\n      (typeof this.config.heightOffset === 'string' ?\r\n        parseFloat(this.config.heightOffset + '') : this.config.heightOffset);\r\n    // 整理布局容器\r\n    this.greatLayoutBox.nativeElement.style.height = boxHeight + 'px';\r\n\r\n    // 头部容器\r\n    if (this.greatLayoutHeader && this.greatLayoutHeader.nativeElement) {\r\n      this.greatLayoutHeader.nativeElement.style.height = this.config.headerHeight + 'px';\r\n    }\r\n\r\n    // 中间容器\r\n    if (this.greatLayoutCenter && this.greatLayoutCenter.nativeElement) {\r\n      this.greatLayoutCenter.nativeElement.style.height = (boxHeight - this.config.headerHeight - this.config.footerHeight) + 'px';\r\n      this.greatLayoutCenter.nativeElement.style.marginTop = this.config.headerHeight + 'px';\r\n    }\r\n\r\n    // 左侧菜单栏容器\r\n    if (this.greatLayoutLeftBox && this.greatLayoutLeftBox.nativeElement) {\r\n      if (this.config.leftWidth > 0) {\r\n        this.greatLayoutLeftBox.nativeElement.style.width = this.config.leftWidth + 'px';\r\n      }\r\n    }\r\n\r\n    // 底部容器\r\n    if (this.greatLayoutFooter && this.greatLayoutFooter.nativeElement) {\r\n      this.greatLayoutFooter.nativeElement.style.height = this.config.footerHeight + 'px';\r\n    }\r\n  }\r\n\r\n}\r\n\r\nexport class LayoutConfig {\r\n  // 头部高度\r\n  headerHeight = 0;\r\n  // 底部高度\r\n  footerHeight = 0;\r\n  // 左侧宽度\r\n  leftWidth = 0;\r\n  // 主区域宽度\r\n  mainWidth = 0;\r\n  // 整体高度偏移量\r\n  heightOffset = 0;\r\n  // 整体最大高度\r\n  maxHeight = 0;\r\n\r\n  setValueByJson(json){\r\n    ObjectUtils.clone(json, this);\r\n  }\r\n}\r\n","<div #greatLayoutFullBox class=\"great-layout-full-box\">\r\n  <div #greatLayoutHeader class=\"great-layout-header-box\">\r\n    <ng-content select=\".great-layout-header\"></ng-content>\r\n  </div>\r\n  <div #greatLayoutCenter class=\"great-layout-center-box\">\r\n    <div #greatLayoutLeftBox class=\"great-layout-left-box\">\r\n      <ng-content select=\".great-layout-left\"></ng-content>\r\n    </div>\r\n    <div #greatLayoutMainBox class=\"great-layout-main-box\">\r\n      <ng-content select=\".great-layout-main\"></ng-content>\r\n    </div>\r\n    <ng-content></ng-content>\r\n  </div>\r\n  <div #greatLayoutFooter>\r\n    <ng-content select=\".great-layout-footer\"></ng-content>\r\n  </div>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {GreatLayoutFullComponent} from './great-layout-full/great-layout-full.component';\r\n\r\nconst COMPONENTS = [\r\n  GreatLayoutFullComponent\r\n];\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule\r\n    ],\r\n    exports: [\r\n        ...COMPONENTS\r\n    ],\r\n    declarations: [...COMPONENTS]\r\n})\r\nexport class GreatLayoutModule {\r\n}\r\nexport {\r\n  GreatLayoutFullComponent\r\n};\r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {Router} from '@angular/router';\r\n\r\n@Component({\r\n  // tslint:disable-next-line:component-selector\r\n  selector: 'great-menu',\r\n  templateUrl: './menu.component.html',\r\n  styleUrls: ['./menu.component.scss']\r\n})\r\nexport class MenuComponent implements OnInit {\r\n\r\n  activeMenuIndex = 0;\r\n  activeSecondMenuIndex = 0;\r\n  @Input() menuList: GreatMenu[];\r\n\r\n  constructor(\r\n    private router: Router\r\n  ) {\r\n  }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  /**\r\n   * 点击菜单分组\r\n   * @param menu：菜单数据\r\n   * @param index：菜单索引\r\n   */\r\n  clickGroup(menu: GreatMenu, index: number): void {\r\n    // console.log($event.target);\r\n    this.activeMenuIndex = index;\r\n    if (Array.isArray(menu.children) && menu.children.length > 0) {\r\n      const childrenMenu = menu.children.find(v => `#/${v.routerLink}` === window.location.hash);\r\n      if (!childrenMenu) {\r\n        this.activeSecondMenuIndex = this.activeSecondMenuIndex === 0 ? 0 : this.activeSecondMenuIndex;\r\n        this.activeSecondMenuIndex = 0;\r\n        const routerLink = menu.children[this.activeSecondMenuIndex].routerLink;\r\n        if (routerLink) {\r\n          this.router.navigate([routerLink]);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 点击菜单分\r\n   * @param index：菜单索引\r\n   */\r\n  clickSecondMenu(index: number): void {\r\n    this.activeSecondMenuIndex = index;\r\n  }\r\n\r\n}\r\n\r\nexport class GreatMenu {\r\n  constructor(\r\n    public menuId?: string,\r\n    public text?: string,\r\n    public routerLink?: string,\r\n    public icon?: string,\r\n    public children?: GreatMenu[]\r\n  ) {\r\n  }\r\n}\r\n","<div class=\"menu-list\">\r\n  <ul>\r\n    <li\r\n      class=\"first-menu\"\r\n      *ngFor=\"let menu of menuList;let i = index;\"\r\n      [class.active]=\"activeMenuIndex==i\"\r\n    >\r\n      <i class=\"great-menu-icon\" *ngIf=\"menu.children\"></i>\r\n      <i [class]=\"menu.icon+' great-icon'\"></i>\r\n      <a [routerLink]=\"menu.routerLink\"  (click)=\"clickGroup(menu, i)\">{{menu.text}}</a>\r\n      <ul>\r\n        <li\r\n          class=\"second-menu\"\r\n          [class.active]=\"activeSecondMenuIndex===childrenIndex\"\r\n          *ngFor=\"let children of menu.children;let childrenIndex=index;\"\r\n          (click)=\"clickSecondMenu(childrenIndex)\"\r\n        >\r\n          <a [routerLink]=\"children.routerLink\">{{children.text}}</a>\r\n        </li>\r\n      </ul>\r\n    </li>\r\n  </ul>\r\n</div>\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {MenuComponent} from './menu/menu.component';\r\nimport {RouterModule} from '@angular/router';\r\n\r\n\r\nconst COMPONENTS = [\r\n  MenuComponent\r\n];\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule,\r\n        RouterModule\r\n    ],\r\n    exports: [\r\n        ...COMPONENTS\r\n    ],\r\n    declarations: [...COMPONENTS]\r\n})\r\nexport class GreatMenuModule {\r\n}\r\nexport {\r\n  MenuComponent\r\n};\r\n","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[greatTableColumnDrag]'\r\n})\r\nexport class GreatTableColumnDragDirective {\r\n\r\n  constructor(private el: ElementRef) {\r\n  }\r\n\r\n  @Input() greatTableColumnDrag: any;\r\n  @Input() columnName: string;\r\n\r\n  @HostListener('mousedown', ['$event']) onMouseDown(event) {\r\n    this.el.nativeElement.style.cursor = 'col-resize';\r\n    this.greatTableColumnDrag.canChangeWidth = true;\r\n    this.greatTableColumnDrag.oldX = event.x;\r\n  }\r\n\r\n  @HostListener('mouseup', ['$event']) onMouseUp(event) {\r\n    this.greatTableColumnDrag.canChangeWidth = false;\r\n    this.el.nativeElement.style.cursor = 'default';\r\n  }\r\n\r\n  @HostListener('mouseout', ['$event']) onMouseOut(event) {\r\n    this.greatTableColumnDrag.canChangeWidth = false;\r\n    this.el.nativeElement.style.cursor = 'default';\r\n  }\r\n\r\n  @HostListener('mousemove', ['$event']) mousemove(event) {\r\n    if (this.valid()) {\r\n      this.el.nativeElement.style.cursor = 'col-resize';\r\n      if (this.greatTableColumnDrag.canChangeWidth) {\r\n        const width = parseFloat(this.greatTableColumnDrag[this.columnName]) + (event.x - this.greatTableColumnDrag.oldX);\r\n        if (width < 30) {\r\n          return;\r\n        }\r\n        this.greatTableColumnDrag.x = (parseFloat(this.greatTableColumnDrag.x) + (event.x - this.greatTableColumnDrag.oldX)) + 'px';\r\n        this.greatTableColumnDrag[this.columnName] = width + 'px';\r\n        this.greatTableColumnDrag.oldX = event.x;\r\n        this.el.nativeElement.style.width = this.greatTableColumnDrag[this.columnName];\r\n      }\r\n    }\r\n  }\r\n\r\n  private valid() {\r\n    if (this.greatTableColumnDrag && this.greatTableColumnDrag[this.columnName]) {\r\n      return true;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n}\r\n","import {Directive, ElementRef, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n  selector: '[greatDrag]'\r\n})\r\nexport class GreatDragDirective {\r\n\r\n  public isDown = false;\r\n  public disX; // 记录鼠标点击事件的位置 X\r\n  public disY; // 记录鼠标点击事件的位置 Y\r\n  private totalOffsetX = 0; // 记录总偏移量 X轴\r\n  private totalOffsetY = 0; // 记录总偏移量 Y轴\r\n\r\n  constructor(public el: ElementRef) {\r\n    this.el.nativeElement.style.position = 'relative';\r\n  }\r\n\r\n  // 点击事件\r\n  @HostListener('mousedown', ['$event']) onMousedown(event) {\r\n    this.isDown = true;\r\n    this.disX = event.clientX;\r\n    this.disY = event.clientY;\r\n  }\r\n\r\n  // 监听document移动事件事件\r\n  @HostListener('document:mousemove', ['$event']) onMousemove(event) {\r\n    // 判断该元素是否被点击了。\r\n    if (this.isDown) {\r\n      this.el.nativeElement.style.left = this.totalOffsetX + event.clientX - this.disX + 'px';\r\n      this.el.nativeElement.style.top = this.totalOffsetY + event.clientY - this.disY + 'px';\r\n    }\r\n  }\r\n\r\n  // 监听document离开事件\r\n  @HostListener('document:mouseup', ['$event']) onMouseup(event) {\r\n    // 只用当元素移动过了，离开函数体才会触发。\r\n    if (this.isDown) {\r\n      this.totalOffsetX += event.clientX - this.disX;\r\n      this.totalOffsetY += event.clientY - this.disY;\r\n      this.isDown = false;\r\n    }\r\n  }\r\n}\r\n","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\r\nimport {RegexpUtils} from 'great-jsutils';\r\n\r\n@Directive({\r\n  selector: '[greatTrim]'\r\n})\r\nexport class GreatTrimDirective {\r\n\r\n  @Input('greatTrim') greatTrim;\r\n\r\n  constructor(\r\n    private el: ElementRef,\r\n  ) {\r\n  }\r\n\r\n  @HostListener('window:keyup')\r\n  trim() {\r\n    switch (this.greatTrim) {\r\n      case 'left':\r\n        this.el.nativeElement.value = RegexpUtils.trimLeft(this.el.nativeElement.value);\r\n        break;\r\n      case 'around':\r\n        this.el.nativeElement.value = RegexpUtils.trimLeft(this.el.nativeElement.value);\r\n        break;\r\n      case 'right':\r\n        break;\r\n      default :\r\n        this.el.nativeElement.value = RegexpUtils.trim(this.el.nativeElement.value);\r\n        break;\r\n    }\r\n  }\r\n\r\n  @HostListener('blur')\r\n  trim2() {\r\n    console.log(event);\r\n    switch (this.greatTrim) {\r\n      case 'left':\r\n        break;\r\n      case 'around':\r\n        this.el.nativeElement.value = RegexpUtils.trimAround(this.el.nativeElement.value);\r\n        break;\r\n      case 'right':\r\n        this.el.nativeElement.value = RegexpUtils.trimRight(this.el.nativeElement.value);\r\n        break;\r\n      default :\r\n        break;\r\n    }\r\n  }\r\n\r\n}\r\n","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\r\nimport {RegexpUtils} from 'great-jsutils';\r\nimport {NgControl} from '@angular/forms';\r\n\r\n@Directive({\r\n  selector: '[greatBlurTrim]'\r\n})\r\nexport class GreatBlurTrimDirective {\r\n\r\n  @Input() greatBlurTrim;\r\n\r\n  constructor(\r\n    private el: ElementRef,\r\n    public model: NgControl\r\n  ) { }\r\n\r\n  @HostListener('blur')\r\n  blurTrim() {\r\n    this.el.nativeElement.value = RegexpUtils.trimRight(this.el.nativeElement.value);\r\n    this.model.control.setValue(this.el.nativeElement.value);\r\n    this.model.viewToModelUpdate(this.el.nativeElement.value);\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GreatTableColumnDragDirective } from './great-table-column-drag.directive';\r\nimport { GreatDragDirective } from './great-drag.directive';\r\nimport { GreatTrimDirective } from './great-trim.directive';\r\nimport {GreatBlurTrimDirective} from './great-blur-trim.directive';\r\n\r\nconst DIRECTIVES = [\r\n  GreatDragDirective,\r\n  GreatTrimDirective,\r\n  GreatBlurTrimDirective,\r\n  GreatTableColumnDragDirective\r\n  ];\r\n@NgModule({\r\n  exports: [\r\n    ...DIRECTIVES\r\n  ],\r\n  declarations: [\r\n    ...DIRECTIVES,\r\n  ],\r\n  imports: [\r\n    CommonModule\r\n  ]\r\n})\r\nexport class GreatDirectiveModule { }\r\nexport {\r\n  GreatDragDirective,\r\n  GreatTrimDirective,\r\n  GreatBlurTrimDirective,\r\n  GreatTableColumnDragDirective\r\n};\r\n","import {Directive, Input} from '@angular/core';\r\nimport {AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn} from '@angular/forms';\r\n\r\n@Directive({\r\n  selector: '[appZhttNumber]',\r\n  providers: [{provide: NG_VALIDATORS, useExisting: ZhttNumberDirective, multi: true}]\r\n})\r\nexport class ZhttNumberDirective  implements Validator {\r\n\r\n  @Input('appZhttNumber') appZhttNumber: number;\r\n  @Input() scale = 0;\r\n  @Input() fieldName = 'fieldName';\r\n  @Input() failName: string;\r\n  @Input() errorMsgKey = 'errorMsgKey';\r\n  @Input() errorMsg = '';\r\n  @Input() constraintType = 'le';\r\n\r\n  constructor() {\r\n  }\r\n\r\n  registerOnValidatorChange(fn: () => void): void {\r\n  }\r\n\r\n  validate(control: AbstractControl): ValidationErrors | null {\r\n    if (control.value || (typeof control.value === 'string' && control.value.length > 0)) {\r\n      return this.appZhttNumber ? this.greatNumberValidator()(control) : null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  greatNumberValidator(): ValidatorFn {\r\n    return (control: AbstractControl): { [key: string]: any } => {\r\n      let value = control.value;\r\n      let message = null;\r\n      if (isNaN(value)) {\r\n        message = '只能输入数字！';\r\n      } else {\r\n        value = typeof value === 'number' ? value + '' : value;\r\n        const [numStr1 = '', numStr2 = '', other] = value.split('.');\r\n        if (numStr2.length > this.scale) {\r\n          message = this.scale === 0 ? '只能输入整数！' : '超过最大允许的小数位数！';\r\n        } else if (numStr1.length + numStr2.length > this.appZhttNumber) {\r\n          message = '超过最大允许的数字位数！';\r\n        }\r\n      }\r\n      if (message) {\r\n        return this.buildResutl(this.errorMsg ? this.errorMsg : message, this.failName || this.errorMsgKey, this.fieldName);\r\n      }\r\n      return null;\r\n    };\r\n  }\r\n\r\n  buildResutl(errorMsg, errorMsgKey, fieldName?) {\r\n    const result = {};\r\n    if (fieldName) {\r\n      result[fieldName] = {};\r\n      result[fieldName][errorMsgKey] = errorMsg;\r\n    } else {\r\n      result[this.fieldName] = {};\r\n      result[this.fieldName][errorMsgKey] = errorMsg;\r\n    }\r\n    return result;\r\n  }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ZhttNumberDirective } from './zhtt-number.directive';\r\n\r\nconst DIRECTIVES = [\r\n  ZhttNumberDirective,\r\n  ];\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule\r\n  ],\r\n  exports: [\r\n    ...DIRECTIVES\r\n  ],\r\n  declarations: [\r\n    ...DIRECTIVES\r\n  ]\r\n})\r\nexport class ZhttDirectiveModule { }\r\n","import {Component, forwardRef, Input, NgZone, OnInit} from '@angular/core';\r\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\r\nimport {CommonUtils, LoadjsUtils} from 'great-jsutils';\r\n\r\n@Component({\r\n  selector: 'great-ueditor',\r\n  templateUrl: './great-ueditor.component.html',\r\n  styleUrls: ['./great-ueditor.component.scss'],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => GreatUeditorComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class GreatUeditorComponent implements OnInit, ControlValueAccessor {\r\n\r\n  isready = false;\r\n  private value: string;\r\n  ueditor;\r\n  @Input() editorConfig = {\r\n    readonly: false,\r\n    wordCount: true,\r\n    initialFrameHeight: 400, // 设置高度\r\n    initialFrameWidth: '100%', // 设置宽度\r\n    enableAutoSave: false,\r\n    allHtmlEnabled: true,\r\n    catchRemoteImageEnable: false,\r\n    elementPathEnabled: false,\r\n    serverUrl: './ueditorUploadImg',\r\n    toolbars: [\r\n      [\r\n        'bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'removeformat', 'formatmatch', 'autotypeset',\r\n        'blockquote', 'pasteplain', '|',\r\n        'fontfamily', 'fontsize', 'customstyle', 'paragraph', '|', 'forecolor', 'backcolor', '|',\r\n        'rowspacingtop', 'rowspacingbottom', 'lineheight', '|',\r\n        '|', 'undo', 'redo', '|',\r\n        'indent', 'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|', 'touppercase', 'tolowercase', '|',\r\n        'horizontal', 'date', 'time', 'spechars', '|',\r\n        'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol',\r\n        'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols', '|',\r\n        'searchreplace'\r\n      ]\r\n    ]\r\n  };\r\n  id = CommonUtils.uuid();\r\n\r\n  private onChange: (value: string) => void = () => {\r\n  }\r\n  private onTouched: () => void = () => {\r\n  }\r\n  constructor(\r\n    private zone: NgZone,\r\n  ) {\r\n  }\r\n\r\n  ngOnInit() {\r\n    this.initEditor(0);\r\n  }\r\n\r\n  // 链接：https://pan.baidu.com/s/1ajfa2rgl6wL71hM3dtPt_A\r\n  // 提取码：1111\r\n  // 复制这段内容后打开百度网盘手机App，操作更方便哦\r\n  private initEditor(nums: number) {\r\n    if (nums < 3) {\r\n      LoadjsUtils.dynamicLoads([\r\n        `./assets/ueditor/ueditor.config.js`,\r\n        `./assets/ueditor/ueditor.all.js`,\r\n        `./assets/ueditor/lang/zh-cn/zh-cn.js`\r\n      ]).then(() => {\r\n        // @ts-ignore\r\n        if (UE && UE.getEditor) {\r\n          // @ts-ignore\r\n          this.ueditor = UE.getEditor(this.id, {UEDITOR_HOME_URL: './assets/ueditor/'});\r\n          this.ueditor.ready(() => {\r\n            this.isready = true;\r\n            if (this.value) {\r\n              this.ueditor.setContent(this.value);\r\n            }\r\n          });\r\n          this.ueditor.addListener('contentChange', () => {\r\n            this.value = this.ueditor.getContent();\r\n            this.zone.run(() => this.onChange(this.value));\r\n            console.log(this.value);\r\n          });\r\n        } else {\r\n          this.initEditor(++nums);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  writeValue(obj: any): void {\r\n    this.value = obj;\r\n    if (this.ueditor) {\r\n      this.ueditor.setContent(this.value);\r\n    }\r\n  }\r\n  get counterValue() {\r\n    return this.value;\r\n  }\r\n\r\n  set counterValue(value) {\r\n    this.value = value;\r\n    this.onChange(this.value);\r\n  }\r\n}\r\n","<div id=\"{{id}}\"></div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GreatUeditorComponent } from './great-ueditor.component';\r\n\r\nconst COMPONENTS = [GreatUeditorComponent];\r\n\r\n@NgModule({\r\n    imports: [\r\n        CommonModule\r\n    ],\r\n    declarations: COMPONENTS,\r\n    exports: COMPONENTS\r\n})\r\nexport class GreatUeditorModule { }\r\nexport {\r\n  GreatUeditorComponent\r\n};\r\n","/*实体*/\r\nexport * from './src/app/models/great-model.api';\r\n/*服务*/\r\nexport * from './src/app/service/great-service.api';\r\n/*路由*/\r\nexport * from './src/app/guard/great-guard.api';\r\n/*管道*/\r\nexport * from './src/app/great-pipe/great-pipe.module';\r\n/*校验*/\r\nexport * from './src/app/great-validate/great-validate.module';\r\nexport * from './src/app/great-modal/great-modal.module';\r\nexport * from './src/app/great-modal/great-modal.service';\r\n/*布局*/\r\nexport * from './src/app/great-layout/great-layout.module';\r\n/*布局*/\r\nexport * from './src/app/great-menu/great-menu.module';\r\n/*指令*/\r\nexport * from './src/app/great-directive/great-directive.module';\r\nexport * from './src/app/zhtt-directive/zhtt-directive.module';\r\nexport * from './src/app/zhtt-directive/zhtt-number.directive';\r\n/*编辑器*/\r\nexport * from './src/app/editor/great-ueditor/great-ueditor.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.HttpService","DIRECTIVES","COMPONENTS","i1"],"mappings":"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"}