{"version":3,"file":"meow-angular.mjs","sources":["../../../projects/meow-angular/src/lib/auth/auth.service.ts","../../../projects/meow-angular/src/lib/auth/auth-guard.ts","../../../projects/meow-angular/src/lib/common/internal/uuid.ts","../../../projects/meow-angular/src/lib/common/const.ts","../../../projects/meow-angular/src/lib/common/eventbus.ts","../../../projects/meow-angular/src/lib/common/helper.ts","../../../projects/meow-angular/src/lib/config/author-config.ts","../../../projects/meow-angular/src/lib/config/app-config.ts","../../../projects/meow-angular/src/lib/common/ioc.ts","../../../projects/meow-angular/src/lib/html/scroll.ts","../../../projects/meow-angular/src/lib/html/model/mouse-location.ts","../../../projects/meow-angular/src/lib/html/mouse.ts","../../../projects/meow-angular/src/lib/html/style.ts","../../../projects/meow-angular/src/lib/html/element.ts","../../../projects/meow-angular/src/lib/html/theme.ts","../../../projects/meow-angular/src/lib/html/html.ts","../../../projects/meow-angular/src/lib/message/message.ts","../../../projects/meow-angular/src/lib/common/loading.ts","../../../projects/meow-angular/src/lib/common/storage.ts","../../../projects/meow-angular/src/lib/config/module-config.ts","../../../projects/meow-angular/src/lib/common/url.ts","../../../projects/meow-angular/src/lib/http/http-method.ts","../../../projects/meow-angular/src/lib/http/http-content-type.ts","../../../projects/meow-angular/src/lib/http/http-request.ts","../../../projects/meow-angular/src/lib/http/http.ts","../../../projects/meow-angular/src/lib/config/i18n-keys.ts","../../../projects/meow-angular/src/lib/response/fail-result.ts","../../../projects/meow-angular/src/lib/response/state-code-enum.ts","../../../projects/meow-angular/src/lib/webapi/web-api-request.ts","../../../projects/meow-angular/src/lib/webapi/web-api.ts","../../../projects/meow-angular/src/lib/meow.ts","../../../projects/meow-angular/src/lib/component/component-base.ts","../../../projects/meow-angular/src/lib/html/model/style.ts","../../../projects/meow-angular/src/lib/model/coordinates-2d.ts","../../../projects/meow-angular/src/lib/model/coordinates-3d.ts","../../../projects/meow-angular/src/lib/model/key.ts","../../../projects/meow-angular/src/lib/model/model.ts","../../../projects/meow-angular/src/lib/model/page-list.ts","../../../projects/meow-angular/src/lib/config/default-config.ts","../../../projects/meow-angular/src/lib/model/query-parameter.ts","../../../projects/meow-angular/src/lib/model/sort.ts","../../../projects/meow-angular/src/lib/model/select-item.ts","../../../projects/meow-angular/src/lib/model/view-model.ts","../../../projects/meow-angular/src/lib/response/result.ts","../../../projects/meow-angular/src/lib/service/service-base.ts","../../../projects/meow-angular/src/lib/meow.module.ts","../../../projects/meow-angular/src/public-api.ts","../../../projects/meow-angular/src/meow-angular.ts"],"sourcesContent":["//================== 授权服务 ==========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//======================================================\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\n\r\n/**\r\n * 授权服务\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthService {\r\n  /**\r\n   * 是否已认证\r\n   */\r\n  private _isAuthenticatedSubject$ = new BehaviorSubject<boolean>(false);\r\n  /**\r\n   * 是否已认证\r\n   */\r\n  isAuthenticated$ = this._isAuthenticatedSubject$.asObservable();\r\n  /**\r\n   * 发现文档是否加载完成\r\n   */\r\n  private _isDoneLoadingSubject$ = new BehaviorSubject<boolean>(false);\r\n  /**\r\n   * 发现文档是否加载完成\r\n   */\r\n  isDoneLoading$ = this._isDoneLoadingSubject$.asObservable();\r\n\r\n  /**\r\n   * 初始化授权服务\r\n   * @param oauthService OAuth服务\r\n   * @param router 路由\r\n   */\r\n  constructor(private oauthService: OAuthService, private router: Router) {\r\n    this.subscribeEvents();\r\n  }\r\n\r\n  /**\r\n   * 订阅事件\r\n   */\r\n  private subscribeEvents() {\r\n    this.oauthService.events.subscribe(_ => {\r\n      this._isAuthenticatedSubject$.next(this.oauthService.hasValidAccessToken());\r\n    });\r\n    this.oauthService.events\r\n      .pipe(filter(e => ['token_received'].includes(e.type)))\r\n      .subscribe(e => this.oauthService.loadUserProfile());\r\n    this.oauthService.events\r\n      .pipe(filter(e => ['session_terminated', 'session_error'].includes(e.type)))\r\n      .subscribe(e => this.login());\r\n    this.oauthService.events\r\n      .pipe(filter(e => ['token_expires'].includes(e.type)))\r\n      .subscribe(e => this.refreshToken());\r\n  }\r\n\r\n  /**\r\n   * 触发发现文档加载完成\r\n   */\r\n  nextIsDoneLoading() {\r\n    this._isDoneLoadingSubject$.next(true);\r\n  }\r\n\r\n  /**\r\n   * 登录\r\n   * @param url 目标地址\r\n   */\r\n  login(url?: string) {\r\n    this.oauthService.initLoginFlow(url || this.router.url);\r\n  }\r\n\r\n  /**\r\n   * 注销\r\n   */\r\n  logout() {\r\n    this.oauthService.logOut();\r\n  }\r\n\r\n  /**\r\n   * 刷新令牌\r\n   */\r\n  refreshToken() {\r\n    return this.oauthService.refreshToken();\r\n  }\r\n\r\n  /**\r\n   * 是否拥有有效访问令牌\r\n   */\r\n  hasToken() {\r\n    return this.oauthService.hasValidAccessToken();\r\n  }\r\n\r\n  /**\r\n   * 加载发现文档并登录\r\n   */\r\n  loadDiscoveryDocumentAndTryLogin() {\r\n    return this.oauthService.loadDiscoveryDocumentAndTryLogin();\r\n  }\r\n\r\n  /**\r\n   * 获取声明集合\r\n   */\r\n  getIdentityClaims() {\r\n    return this.oauthService.getIdentityClaims();\r\n  }\r\n\r\n  /**\r\n   * 获取状态\r\n   */\r\n  get state() {\r\n    return this.oauthService.state;\r\n  }\r\n}\r\n","//============== 授权路由守卫 ==========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//======================================================\r\nimport { inject } from '@angular/core';\r\nimport { CanActivateFn, CanActivateChildFn, CanMatchFn, Router } from '@angular/router';\r\nimport { filter, switchMap, tap } from 'rxjs/operators';\r\nimport { AuthService } from \"./auth.service\";\r\n\r\n/**\r\n* 授权路由守卫\r\n*/\r\nexport const AuthGuard: CanMatchFn | CanActivateFn | CanActivateChildFn = () => {\r\n  const authService = inject(AuthService);\r\n  const router = inject(Router);\r\n  return authService.isDoneLoading$.pipe(\r\n    filter(isDone => isDone),\r\n    switchMap(_ => authService.isAuthenticated$),\r\n    tap(isAuthenticated => isAuthenticated || authService.login(router.url))\r\n  );\r\n};\r\n","//来源：https://github.com/wulfsolter/angular2-uuid/blob/master/src/uuid.ts\r\n\"use strict\";\r\n\r\nexport class UUID {\r\n\r\n  public static UUID(): string {\r\n    if (typeof (window) !== \"undefined\" && typeof (window.crypto) !== \"undefined\" && typeof (window.crypto.getRandomValues) !== \"undefined\") {\r\n      // If we have a cryptographically secure PRNG, use that\r\n      // http://stackoverflow.com/questions/6906916/collisions-when-generating-uuids-in-javascript\r\n      let buf: Uint16Array = new Uint16Array(8);\r\n      window.crypto.getRandomValues(buf);\r\n      return (this.pad4(buf[0]) + this.pad4(buf[1]) + \"-\" + this.pad4(buf[2]) + \"-\" + this.pad4(buf[3]) + \"-\" + this.pad4(buf[4]) + \"-\" + this.pad4(buf[5]) + this.pad4(buf[6]) + this.pad4(buf[7]));\r\n    } else {\r\n      // Otherwise, just use Math.random\r\n      // https://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript\r\n      // https://stackoverflow.com/questions/11605068/why-does-jshint-argue-against-bitwise-operators-how-should-i-express-this-code\r\n      return this.random4() + this.random4() + \"-\" + this.random4() + \"-\" + this.random4() + \"-\" +\r\n        this.random4() + \"-\" + this.random4() + this.random4() + this.random4();\r\n    }\r\n  }\r\n\r\n  private static pad4(num: number): string {\r\n    let ret: string = num.toString(16);\r\n    while (ret.length < 4) {\r\n      ret = \"0\" + ret;\r\n    }\r\n    return ret;\r\n  }\r\n\r\n  private static random4(): string {\r\n    return Math.floor((1 + Math.random()) * 0x10000)\r\n      .toString(16)\r\n      .substring(1);\r\n  }\r\n}\r\n","//============== Url常量 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//===============================================\r\nimport { UUID } from './internal/uuid';\r\n\r\n/**\r\n * 常量操作\r\n */\r\nexport class Const {\r\n  /**\r\n   * 空GUID\r\n   */\r\n  static guidEmpty = \"00000000-0000-0000-0000-000000000000\";\r\n  /**\r\n   * 默认GUID\r\n   */\r\n  static guidDefault = \"00000000-0000-0000-0000-000000000001\";\r\n\r\n  /**\r\n   * 创建唯一标识\r\n   */\r\n  static uuid = (): string => {\r\n    return UUID.UUID();\r\n  }\r\n\r\n  /**\r\n   * 当前时间戳\r\n   */\r\n  static timestamp = (): number => {\r\n    return new Date().getTime();\r\n  }\r\n}\r\n","//============== 事件总线操作 ==========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//======================================================\r\nimport { NgEventBus } from 'ng-event-bus';\r\nimport { Meow } from \"../meow\";\r\n\r\n/**\r\n * 事件总线操作\r\n */\r\nexport class EventBus {\r\n  /**\r\n   * 事件总线服务\r\n   */\r\n  private _eventbus: NgEventBus;\r\n\r\n  /**\r\n   * 初始化事件总线操作\r\n   * @param meow 公共操作\r\n   */\r\n  constructor(private meow: Meow) {\r\n    this._eventbus = this.meow.ioc.get(NgEventBus);\r\n  }\r\n\r\n  /**\r\n   * 发布事件\r\n   * @param key 键\r\n   * @param data 数据\r\n   */\r\n  publish(key: string, data) {\r\n    if (!this._eventbus)\r\n      return;\r\n    return this._eventbus.cast(key, data);\r\n  }\r\n\r\n  /**\r\n   * 订阅事件\r\n   * @param key 键\r\n   * @param handler 事件处理操作\r\n   */\r\n  on<T>(key: string, handler: (result: T) => void) {\r\n    if (!this._eventbus)\r\n      return null;\r\n    return this._eventbus.on(key).subscribe(value => {\r\n      handler(<T>value.data);\r\n    });\r\n  }\r\n}\r\n","//============== 辅助操作 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport {\r\n  trimEnd as systemTrimEnd, trimStart as systemTrimStart, remove as systemRemove, isEmpty as systemIsEmpty, groupBy as systemGroupBy,\r\n  hasIn, cloneDeep, assign as systemAssign, toString as systemToString, split as systemSplit, toPairs, uniqBy\r\n} from \"lodash-es\";\r\nimport { format as systemFormat } from 'date-fns'\r\nimport { Const } from './const';\r\n\r\n//==================== 判断 ====================\r\n\r\n/**\r\n * 是否未定义\r\n * @param value 值\r\n */\r\nexport let isUndefined = (value: any): boolean => {\r\n  return typeof value === 'undefined';\r\n}\r\n\r\n/**\r\n * 是否字符串\r\n * @param value 值\r\n */\r\nexport let isString = (value: any): boolean => {\r\n  return typeof value === 'string';\r\n}\r\n\r\n/**\r\n * 是否空值，当值为undefined、null、空对象,空字符串、空Guid时返回true，其余返回false\r\n * @param value 值\r\n */\r\nexport let isEmpty = (value: any): boolean => {\r\n  if (typeof value === \"number\")\r\n    return false;\r\n  if (typeof value == \"boolean\")\r\n    return false;\r\n  if (value && value.trim)\r\n    value = value.trim();\r\n  if (!value)\r\n    return true;\r\n  if (value === Const.guidEmpty)\r\n    return true;\r\n  return systemIsEmpty(value);\r\n}\r\n\r\n/**\r\n * 是否数字，字符串\"1\"返回true\r\n * @param value 值\r\n */\r\nexport let isNumber = (value: any): boolean => {\r\n  return !isNaN(parseFloat(value)) && isFinite(value);\r\n}\r\n\r\n/**\r\n * 是否数组\r\n * @param value 值\r\n */\r\nexport let isArray = (value: any): boolean => {\r\n  return Array.isArray(value);\r\n}\r\n\r\n/**\r\n * 是否空数组,undefined和null返回false,[]返回true\r\n * @param value 值\r\n */\r\nexport let isEmptyArray = (value: any): boolean => {\r\n  return isArray(value) && value.length === 0;\r\n}\r\n\r\n/**\r\n * 是否Promise类型\r\n * @param obj 对象\r\n */\r\nexport function isPromise<T>(obj): obj is Promise<T> {\r\n  return !!obj && typeof obj.then === 'function' && typeof obj.catch === 'function';\r\n}\r\n\r\n/**\r\n * 是否为Json字符串\r\n * @param value 值\r\n */\r\nexport let isJson = (json: string): boolean => {\r\n  if (typeof json != 'string') {\r\n    console.log('It is not a string!')\r\n    return false;\r\n  }\r\n  try {\r\n    var obj = JSON.parse(json);\r\n    return typeof obj == 'object' && obj;\r\n  } catch (e) {\r\n    console.log('error：' + json + '!!!' + e);\r\n    return false;\r\n  }\r\n}\r\n\r\n//==================== 添加 ====================\r\n\r\n/**\r\n * 添加到数组\r\n * @param source 数组\r\n * @param item 项\r\n * @param index 索引\r\n */\r\nexport let add = (source: any[], item, index?: number) => {\r\n  if (isUndefined(source) || source == null)\r\n    return [];\r\n  if (isUndefined(index)) {\r\n    source.push(item);\r\n    return source;\r\n  }\r\n  source.splice(index, 0, item);\r\n  return source;\r\n}\r\n\r\n//==================== 移除 ====================\r\n\r\n/**\r\n * 从数组中移除子集\r\n * @param source 源数组\r\n * @param predicate 条件\r\n */\r\nexport let removeBy = <T>(source: Array<T>, predicate: (value: T) => boolean): Array<T> => {\r\n  return systemRemove(source, t => predicate(t));\r\n}\r\n\r\n/**\r\n * 移除起始字符串\r\n * @param source 值\r\n * @param start 要移除的值\r\n */\r\nexport let trimStart = (value: string, start: string): string => {\r\n  return systemTrimStart(value, start);\r\n}\r\n\r\n/**\r\n * 移除末尾字符串\r\n * @param source 值\r\n * @param end 要移除的值\r\n */\r\nexport let trimEnd = (value: string, end: string): string => {\r\n  return systemTrimEnd(value, end);\r\n}\r\n\r\n//==================== 转换 ====================\r\n\r\n/**\r\n * 转换为数值\r\n * @param value 输入值\r\n * @param precision 数值精度，即小数位数，可选值为0-20\r\n * @param isTruncate 是否截断，传入true，则按精度截断，否则四舍五入\r\n */\r\nexport let toNumber = (value: any, precision?: number, isTruncate?: boolean): number => {\r\n  if (!isNumber(value))\r\n    return 0;\r\n  value = value.toString();\r\n  if (isEmpty(precision))\r\n    return parseFloat(value);\r\n  if (isTruncate)\r\n    return parseFloat(value.substring(0, value.indexOf(\".\") + parseInt(toString(precision)) + 1));\r\n  return parseFloat(parseFloat(value).toFixed(precision));\r\n}\r\n\r\n/**\r\n * 将分隔符分隔的字符串转换为数组\r\n * @param value 输入值,范例: \"a,b,c\"\r\n * @param separator 分隔符,默认：','\r\n */\r\nexport let toArray = <T>(value: string, separator: string = ','): T[] => {\r\n  return systemSplit(value, separator);\r\n}\r\n\r\n/**\r\n * 转换为字符串\r\n * @param value 输入值\r\n */\r\nexport let toString = (value: any): string => {\r\n  return systemToString(value).trim();\r\n}\r\n\r\n/**\r\n * 转换为json字符串\r\n * @param value 值\r\n */\r\nexport let toJson = (value: any): string => {\r\n  return JSON.stringify(value);\r\n}\r\n\r\n/**\r\n * json字符串转换为对象\r\n * @param json json字符串\r\n */\r\nexport let toJsonObject = <T>(json: string): T => {\r\n  if (!isJson(json))\r\n    return null;\r\n  return JSON.parse(json);\r\n}\r\n\r\n/**\r\n * Blob转换为字符串\r\n * @param value 二进制大对象值\r\n */\r\nexport let toStringFromBlobAsync = async (value: Blob): Promise<string> => {\r\n  var decoder = new TextDecoder('utf-8');\r\n  let buffer = await value.arrayBuffer();\r\n  return decoder.decode(new Uint8Array(buffer));\r\n}\r\n\r\n/**\r\n * 将对象转换为url查询字符串,即?后面的参数\r\n * @param obj 对象\r\n */\r\nexport let toQueryString = (obj: any): string => {\r\n  if (!obj)\r\n    return null;\r\n  return toPairs(obj)\r\n    .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)\r\n    .join('&');\r\n}\r\n\r\n/**\r\n * 泛型集合转换\r\n * @param value 以逗号分隔的元素集合字符串，范例: 1,2\r\n * @param separator 分隔符,默认：','\r\n */\r\nexport let toList = <T>(value: string, separator: string = ','): T[] => {\r\n  var result = new Array<T>();\r\n  if (isEmpty(value))\r\n    return result;\r\n  var array = value.split(separator);\r\n  array.forEach(value => {\r\n    if (!value)\r\n      return;\r\n    result.push(to(value));\r\n  });\r\n  return result;\r\n}\r\n\r\n/**\r\n * 通用泛型转换\r\n * @param value 值\r\n */\r\nexport let to = <T>(value: any): T => {\r\n  return <T>value;\r\n}\r\n\r\n/**\r\n * 转换为时间戳\r\n * @param date 时间\r\n */\r\nexport let toTimestamp = (date: Date): number => {\r\n  return date?.getTime() || 0;\r\n}\r\n\r\n/**\r\n * 时间戳转换为时间\r\n * @param timestamp 时间戳\r\n */\r\nexport let toDateByTimestamp = (timestamp: number): Date => {\r\n  if (timestamp.toString().length < 13)\r\n    timestamp = timestamp * 1000\r\n  return new Date(timestamp);\r\n}\r\n\r\n//==================== 方法 ====================\r\n\r\n/**\r\n * 分组\r\n * @param source 集合\r\n * @param property 分组属性\r\n */\r\nexport let groupBy = <T>(source: T[], property?: (t: T) => any): Map<string, T[]> => {\r\n  let groups = systemGroupBy(source, property);\r\n  let result = new Map<string, T[]>();\r\n  for (var key in groups) {\r\n    if (!key)\r\n      continue;\r\n    result.set(key, groups[key].map(t => <T>t));\r\n  }\r\n  return result;\r\n}\r\n\r\n/**\r\n * 去重复\r\n * @param source 源集合\r\n * @param property 属性\r\n */\r\nexport let distinctBy = <T>(source: T[], property?: (t: T) => any): T[] => {\r\n  return uniqBy(source, property);\r\n}\r\n\r\n/**\r\n * 判断对象上是否存在指定属性,当属性值不为undefined有效,直接属性和继承属性均可\r\n * @param obj 对象\r\n * @param propertyName 属性名称\r\n */\r\nexport function hasProperty(obj: any, propertyName: string): boolean {\r\n  return hasIn(obj, propertyName);\r\n}\r\n\r\n/**\r\n * 复制对象\r\n * @param obj 对象\r\n */\r\nexport let clone = <T>(obj: T): T => {\r\n  return cloneDeep(obj);\r\n}\r\n\r\n/**\r\n * 将源对象赋值给目标对象\r\n * @param destination 目标对象\r\n * @param source 源对象\r\n */\r\nexport let assign = (destination, source) => {\r\n  return systemAssign(destination, source);\r\n}\r\n\r\n/**\r\n *  格式化日期\r\n * @param datetime 日期\r\n * @param format 格式化字符串，范例：yyyy-MM-dd,可选值：(注意：区分大小写)\r\n * (1) 年: yyyy\r\n * (2) 月: MM\r\n * (3) 日: dd\r\n * (4) 时: HH\r\n * (5) 分: mm\r\n * (6) 秒: ss\r\n * (7) 毫秒: SSS\r\n */\r\nexport let formatDate = (datetime, format: string = 'yyyy-MM-dd HH:mm:ss'): string => {\r\n  if (!format)\r\n    format = 'yyyy-MM-dd HH:mm:ss';\r\n  format = format.replace(/Y/g, \"y\").replace(/D/g, \"d\");\r\n  return systemFormat(datetime, format);\r\n}\r\n\r\n/**\r\n * 获取标识列表\r\n * @param data 数据\r\n */\r\nexport function getIds(data) {\r\n  if (!data)\r\n    return null;\r\n  if (!data.map)\r\n    return data.id;\r\n  return data.map(t => t.id);\r\n}\r\n\r\n/**\r\n * 连接url\r\n * @param url 地址\r\n * @param path 路径\r\n */\r\nexport let joinUrl = (url: string, path: string) => {\r\n  if (!url || !path)\r\n    return url;\r\n  url = trimEnd(url, \"/\");\r\n  path = trimStart(path, \"/\");\r\n  return `${url}/${path}`;\r\n}\r\n\r\n/**\r\n * 获取地址\r\n * @param url 请求地址\r\n * @param host 主机\r\n * @param path 路径\r\n */\r\nexport function getUrl(url: string, host: string = null, path: string = null) {\r\n  url = getHostUrl(url, host);\r\n  return joinUrl(url, path);\r\n}\r\n\r\n/**\r\n * 获取地址\r\n */\r\nfunction getHostUrl(url: string, host: string) {\r\n  if (!url)\r\n    return null;\r\n  if (url.startsWith(\"http\"))\r\n    return url;\r\n  host = trimEnd(host, \"/\");\r\n  if (url.startsWith(\"/\")) {\r\n    if (host)\r\n      return `${host}${url}`;\r\n    return url;\r\n  }\r\n  if (host)\r\n    return `${host}/api/${url}`;\r\n  return `/api/${url}`;\r\n}\r\n\r\n/**\r\n * 随机颜色\r\n */\r\nexport let randomColor = () => {\r\n  let value = Math.random().toString(16).substring(2, 8).padEnd(6, '0');\r\n  return `#${value}`;\r\n}\r\n\r\n/**\r\n * 随机简易字符串\r\n * @param len 长度 默认：6 \r\n */\r\nexport let randomEasyString = (len = 6) => {\r\n  return len > 11\r\n    ? randomEasyString(11) + randomEasyString(len - 11)\r\n    : Math.random().toString(36).substring(2, 2 + len).padEnd(len, '0');\r\n}\r\n","//================ 著作配置 ==============================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//========================================================\r\n\r\n/**\r\n * 著作配置\r\n */\r\nexport class AuthorConfig {\r\n  /**\r\n   * app名称\r\n   */\r\n  appName: string = \"\";\r\n  /**\r\n   * 技术支持\r\n   */\r\n  poweredBy: string = \"\";\r\n}\r\n","//================ 应用配置 ==============================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//========================================================\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthorConfig } from './author-config'\r\nimport { TenantConfig } from \"./tenant-config\";\r\n\r\n/**\r\n * 应用配置\r\n */\r\n@Injectable()\r\nexport class AppConfig {\r\n  /**\r\n   * Api端点地址,范例: https://api.a.com\r\n   */\r\n  apiEndpoint?: string;\r\n  /**\r\n   * 著作配置\r\n   */\r\n  author: AuthorConfig = new AuthorConfig();\r\n  /**\r\n   * 租户配置\r\n   */\r\n  tenant?: TenantConfig;\r\n}\r\n\r\n/**\r\n * 初始化应用配置\r\n * @param config 应用配置\r\n */\r\nexport function initAppConfig(config: AppConfig) {\r\n  if (!config)\r\n    return;\r\n}\r\n","//============== Ioc操作 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Injector, Type, InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * Ioc操作\r\n */\r\nexport class Ioc {\r\n  /**\r\n   * 初始化Ioc操作\r\n   * @param injector 全局注入器\r\n   * @param componentInjector 组件注入器\r\n   */\r\n  constructor(private injector: Injector, private componentInjector: Injector | null) {\r\n  }\r\n\r\n  /**\r\n   * 获取实例\r\n   * @param token 实例标记，一般为类或接口名称,范例：meow.ioc.get(Http)\r\n   */\r\n  get<T>(token: Type<T> | InjectionToken<T>): T;\r\n  get(token: any): any;\r\n  get(token: any): any {\r\n    if (this.componentInjector) {\r\n      let result = this.componentInjector.get(token, null, { optional: true });\r\n      if (result != null)\r\n        return result;\r\n    }\r\n    if (this.injector)\r\n      return this.injector.get(token, null, { optional: true });\r\n    return null;\r\n  }\r\n}\r\n","//============== 滚动条操作 ======================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { ElementRef } from '@angular/core';\r\n\r\n/**\r\n * 滚动条操作\r\n */\r\nexport class Scroll {\r\n  /**\r\n   * 初始化滚动条操作\r\n   * @param elementRef 元素\r\n   */\r\n  constructor(private elementRef: ElementRef) {\r\n  }\r\n\r\n  /**\r\n   * 定位\r\n   * @param name 元素名 例：class => .class name\r\n   * @param locate 定位 从顶部开始计算\r\n   */\r\n  location(name: string, locate: number): void {\r\n    var editorhtml = this.elementRef.nativeElement.querySelector(name);\r\n    if (!editorhtml)\r\n      return;\r\n    editorhtml.scrollTop = locate;\r\n  }\r\n\r\n}\r\n","//============== 鼠标位置 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\n\r\n/**\r\n * 鼠标位置\r\n */\r\nexport class MouseLocation {\r\n  /**\r\n   * x轴坐标\r\n   */\r\n  x: number = 0;\r\n  /**\r\n   * y轴坐标\r\n   */\r\n  y: number = 0;\r\n  /**\r\n   * 相对x轴坐标\r\n   */\r\n  relativeX: number = 0;\r\n  /**\r\n   * 相对x轴坐标\r\n   */\r\n  relativeY: number = 0;\r\n  /**\r\n   * 当前 DOM Id\r\n   */\r\n  domId: string = \"\";\r\n}\r\n","//============== 鼠标操作 ======================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\n\r\nimport { MouseLocation } from './model/mouse-location';\r\n\r\n/**\r\n * 鼠标操作\r\n */\r\nexport class Mouse {\r\n  /**\r\n   * 初始化鼠标操作\r\n   */\r\n  constructor() {\r\n  }\r\n\r\n  /**\r\n   * 获取定位\r\n   * @param event 鼠标事件 前端使用 $event\r\n   */\r\n  location(event: any): MouseLocation {\r\n    var result = new MouseLocation();\r\n    if (!event) {\r\n      event = window.event;\r\n    }\r\n    if (event.pageX || event.pageY) {\r\n      result.x = event.pageX;\r\n      result.y = event.pageY;\r\n    }\r\n    else if (event.clientX || event.clientY) {\r\n      result.x = event.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;\r\n      result.y = event.clientY + document.body.scrollTop + document.documentElement.scrollTop;\r\n    }\r\n    result.relativeX = result.x;\r\n    result.relativeY = result.y;\r\n    if (event.target) {\r\n      var offEl = event.target;\r\n      var offX = 0;\r\n      var offY = 0;\r\n      if (typeof (offEl.offsetParent) != \"undefined\") {\r\n        while (offEl) {\r\n          offX += offEl.offsetLeft;\r\n          offY += offEl.offsetTop;\r\n          offEl = offEl.offsetParent;\r\n        }\r\n      }\r\n      else {\r\n        offX = offEl.x;\r\n        offY = offEl.y;\r\n      }\r\n      result.relativeX -= offX;\r\n      result.relativeY -= offY;\r\n    }\r\n    result.domId = event.target.id;\r\n    return result;\r\n  }\r\n}\r\n","//============== 样式操作 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\n\r\n/**\r\n * 样式操作\r\n */\r\nexport class Style {\r\n  /**\r\n   * 初始化样式操作\r\n   */\r\n  constructor() {\r\n  }\r\n\r\n  /**\r\n   * 设置属性\r\n   * @param key 键\r\n   * @param value 值\r\n   * @param id ID\r\n   */\r\n  property(key: string, value: any, id: string | null = null): void {\r\n    const element = id ? document.querySelector(id) as HTMLElement : document.documentElement;\r\n    if (!element)\r\n      return;\r\n    element.style.setProperty(key, value);\r\n  }\r\n\r\n  /**\r\n   * 设置属性\r\n   * @param properties 属性字典\r\n   * @param id ID\r\n   */\r\n  properties(properties: Record<string, any>, id: string | null = null): void {\r\n    const element = id ? document.querySelector(id) as HTMLElement : document.documentElement;\r\n    if (!element)\r\n      return;\r\n    const keys = Object.keys(properties);\r\n    keys.forEach(key => {\r\n      element.style.setProperty(key, properties[key]);\r\n    })\r\n  }\r\n}\r\n","//============== 元素操作 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\n\r\n/**\r\n * 元素操作\r\n */\r\nexport class Element {\r\n  /**\r\n   * 初始化元素操作\r\n   */\r\n  constructor() {\r\n  }\r\n\r\n  /**\r\n   * Document对象\r\n   * @returns\r\n   */\r\n  document(): Document {\r\n    return document;\r\n  }\r\n\r\n  /**\r\n   * Document元素\r\n   * @returns\r\n   */\r\n  documentElement(): HTMLElement {\r\n    return this.document().documentElement;\r\n  }\r\n\r\n  /**\r\n   * 根据class名获取所有元素\r\n   * @param className class名\r\n   */\r\n  getAllByClassName(className: string): Array<HTMLElement> {\r\n    var result = new Array<HTMLElement>();\r\n    if (!className)\r\n      return result;\r\n    var elements = this.document().getElementsByClassName(className);\r\n    if (!elements)\r\n      return result;\r\n    if (elements.length === 0)\r\n      return result;\r\n    for (var i = 0; i < elements.length; i++) {\r\n      result.push(elements[i] as HTMLElement);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  /**\r\n   * 根据class名获取元素\r\n   * @param className class名\r\n   */\r\n  getByClassName(className: string): HTMLElement {\r\n    var elements = this.getAllByClassName(className);\r\n    if (!elements)\r\n      return null;\r\n    if (elements.length === 0)\r\n      return null;\r\n    return elements[0];\r\n  }\r\n\r\n  /**\r\n   * 根据标识获取元素\r\n   * @param elementId 元素标识\r\n   * @returns Html元素\r\n   */\r\n  getElementById(elementId: string): HTMLElement | null {\r\n    return this.document()?.getElementById(elementId);\r\n  }\r\n\r\n  /**\r\n   * 在hear中创建样式\r\n   * @param styleHtmlStr 样式Html字符串\r\n   * @param styleId 样式标识\r\n   * @param dataType 数据类型\r\n   */\r\n  createStyle(styleHtmlStr: string, styleId?: string, dataType?: string) {\r\n    let style = this.document()?.createElement('style');\r\n    if (!style)\r\n      return;\r\n    style.id = styleId;\r\n    style.setAttribute('data-type', dataType);\r\n    style.innerHTML = styleHtmlStr;\r\n    this.document()?.querySelectorAll('head')[0].appendChild(style);\r\n  }\r\n\r\n}\r\n","//============== 主题操作 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Meow } from \"../meow\";\r\n\r\n/**\r\n * 主题操作\r\n */\r\nexport class Theme {\r\n  /**\r\n   * 储存键\r\n   */\r\n  private STORE_KEY = '___theme___';\r\n\r\n  /**\r\n   * 公共操作\r\n   */\r\n  private _meow: Meow;\r\n\r\n  /**\r\n   * 初始化主题操作\r\n   */\r\n  constructor() {\r\n    this._meow = new Meow();\r\n  }\r\n\r\n  /**\r\n   * 设置自定义主题\r\n   * @param datas 主题数据\r\n   * @param themeId 主题标识\r\n   * @returns 色调\r\n   */\r\n  set(datas: Map<string, Map<string, string>>, themeId?: string): string {\r\n    this.setTheme(datas, themeId);\r\n    return this.setDefaultTone(datas);\r\n  }\r\n\r\n  /**\r\n   * 设置自定义主题\r\n   * @param datas 主题数据\r\n   * @param themeId 主题标识\r\n   */\r\n  private setTheme(datas: Map<string, Map<string, string>>, themeId?: string): void {\r\n    themeId ||= 'customize-theme-style';\r\n    let innerHTML = this.getStyleHtml(datas);\r\n    let theme = this._meow.html.element.getElementById(themeId);\r\n    if (theme) {\r\n      theme.innerHTML = innerHTML;\r\n      return;\r\n    }\r\n    this._meow.html.element.createStyle(innerHTML, themeId, 'customize-theme');\r\n  }\r\n\r\n  /**\r\n   * 设置默认色调\r\n   * @param datas 主题数据\r\n   * @returns 色调\r\n   */\r\n  private setDefaultTone(datas: Map<string, Map<string, string>>): string {\r\n    let tones = new Array<string>();\r\n    datas?.forEach((value, key) => tones.push(key));\r\n    if (tones.length < 1)\r\n      return '';\r\n    var defaultTone = this._meow.storage.getLocalItem<string>(this.STORE_KEY);\r\n    defaultTone = tones.includes(defaultTone) ? defaultTone : tones[0];\r\n    this._meow.storage.setLocalItem(this.STORE_KEY, defaultTone);\r\n    this.select(defaultTone);\r\n    return defaultTone;\r\n  }\r\n\r\n  /**\r\n   * 获取主题样式Html\r\n   * @param datas 主题数据\r\n   * @returns 样式Html\r\n   */\r\n  private getStyleHtml(datas: Map<string, Map<string, string>>): string {\r\n    let innerHTML = ``;\r\n    if (!datas)\r\n      return innerHTML;\r\n    datas.forEach((value, key) => {\r\n      innerHTML += this.getToneStyleHtml(key, value)\r\n    })\r\n    return innerHTML;\r\n  }\r\n\r\n  /**\r\n   * 获取色调主题样式Html\r\n   * @param tone 色调\r\n   * @param properties 属性\r\n   * @returns 样式Html\r\n   */\r\n  private getToneStyleHtml(tone: string, properties: Map<string, string>): string {\r\n    let innerHTML = `\r\n      `;\r\n    if (!properties)\r\n      return innerHTML;\r\n    properties.forEach((value, key) => {\r\n      innerHTML += `   ${key}:${value};\r\n      `;\r\n    })\r\n    return `\r\n      html[data-theme='${tone}'] {${(innerHTML)}}`;\r\n  }\r\n\r\n  /**\r\n   * 选择主题\r\n   * @param tone 色调\r\n   * @returns 色调\r\n   */\r\n  select(tone: string): string {\r\n    if (!tone)\r\n      return '';\r\n    this._meow.storage.setLocalItem(this.STORE_KEY, tone);\r\n    this._meow.html.element.documentElement().dataset['theme'] = tone;\r\n    return tone;\r\n  }\r\n\r\n  /**\r\n   * 获取当前色调\r\n   * @returns 色调\r\n   */\r\n  getTone(): string {\r\n    return this._meow.storage.getLocalItem<string>(this.STORE_KEY);\r\n  }\r\n}\r\n","//============== Html操作 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { ElementRef } from '@angular/core';\r\nimport { Scroll } from './scroll';\r\nimport { Mouse } from './mouse';\r\nimport { Style } from './style';\r\nimport { Element } from './element';\r\nimport { Theme } from './theme';\r\n\r\n/**\r\n * Html操作\r\n */\r\nexport class Html {\r\n\r\n  /**\r\n   * 滚动条操作\r\n   */\r\n  private _scroll: Scroll | undefined;\r\n\r\n  /**\r\n   * 鼠标操作\r\n   */\r\n  private _mouse: Mouse | undefined;\r\n\r\n  /**\r\n   * 样式操作\r\n   */\r\n  private _style: Style | undefined;\r\n\r\n  /**\r\n   * 元素操作\r\n   */\r\n  private _element: Element | undefined;\r\n\r\n  /**\r\n   * 主题操作\r\n   */\r\n  private _theme: Theme | undefined;\r\n\r\n  /**\r\n   * 初始化Ioc操作\r\n   * @param elementRef 元素\r\n   */\r\n  constructor(private elementRef: ElementRef) {\r\n  }\r\n\r\n  /**\r\n   * 滚动条操作\r\n   * @returns\r\n   */\r\n  get scroll(): Scroll {\r\n    if (!this._scroll)\r\n      this._scroll = new Scroll(this.elementRef);\r\n    return this._scroll;\r\n  }\r\n\r\n  /**\r\n   * 鼠标操作\r\n   * @returns\r\n   */\r\n  get mouse(): Mouse {\r\n    if (!this._mouse)\r\n      this._mouse = new Mouse();\r\n    return this._mouse;\r\n  }\r\n\r\n  /**\r\n   * 样式操作\r\n   * @returns\r\n   */\r\n  get style(): Style {\r\n    if (!this._style)\r\n      this._style = new Style();\r\n    return this._style;\r\n  }\r\n\r\n  /**\r\n   * 元素操作\r\n   * @returns\r\n   */\r\n  get element(): Element {\r\n    if (!this._element)\r\n      this._element = new Element();\r\n    return this._element;\r\n  }\r\n\r\n  /**\r\n   * 主题操作\r\n   * @returns\r\n   */\r\n  get theme(): Theme {\r\n    if (!this._theme)\r\n      this._theme = new Theme();\r\n    return this._theme;\r\n  }\r\n}\r\n","//============== 消息操作 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Meow } from '../meow';\r\nimport { AppConfig, initAppConfig } from '../config/app-config';\r\n\r\n/**\r\n * 消息操作\r\n */\r\nexport class Message {\r\n  /**\r\n   * 应用配置\r\n   */\r\n  private _config: AppConfig;\r\n\r\n  /**\r\n   * \r\n   * @param ioc Ioc操作\r\n   */\r\n  constructor(private meow: Meow) {\r\n    this._config = this.meow.ioc.get(AppConfig);\r\n    initAppConfig(this._config);\r\n  }\r\n\r\n  /**\r\n   * 成功消息\r\n   * @param message 消息\r\n   */\r\n  success(message: string) {\r\n    if (!message)\r\n      return;\r\n  }\r\n\r\n  /**\r\n   * 信息消息\r\n   * @param message 消息\r\n   */\r\n  info(message: string) {\r\n    if (!message)\r\n      return;\r\n  }\r\n\r\n  /**\r\n   * 警告消息\r\n   * @param message 消息\r\n   */\r\n  warn(message: string) {\r\n    if (!message)\r\n      return;\r\n  }\r\n\r\n  /**\r\n   * 错误消息\r\n   * @param message 消息\r\n   */\r\n  error(message: string) {\r\n    if (!message)\r\n      return;\r\n  }\r\n\r\n}\r\n","//============== 加载操作 ==========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Meow } from \"../meow\";\r\n\r\n/**\r\n * 加载操作\r\n */\r\nexport class Loading {\r\n\r\n  /**\r\n   * 初始化国际化操作\r\n   * @param meow 公共操作\r\n   */\r\n  constructor(private meow: Meow) {\r\n  }\r\n\r\n  /**\r\n   * 启用加载状态\r\n   * @param delay \r\n   */\r\n  open() {\r\n  }\r\n\r\n  /**\r\n   * 关闭加载状态\r\n   */\r\n  close() {\r\n  }\r\n}\r\n","//============== 浏览器本地存储操作 ==========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//====================================================\r\nimport { Meow } from \"../meow\";\r\n\r\n/**\r\n * 浏览器本地存储操作\r\n */\r\nexport class Storage {\r\n  /**\r\n   * 初始化浏览器本地存储操作\r\n   * @param meow 公共操作\r\n   */\r\n  constructor(private meow: Meow) {\r\n  }\r\n\r\n  /**\r\n   * 设置localStorage项\r\n   * @param key 键\r\n   * @param value 值\r\n   * @param expires 过期时间,单位:秒,默认值: 360000\r\n   */\r\n  setLocalItem(key: string, value, expires: number = 360000) {\r\n    if (this.meow.helper.isEmpty(key))\r\n      return;\r\n    this.removeLocalItem(key);\r\n    let content = new StorageWrapper(value, Date.now(), expires * 1000);\r\n    let json = this.meow.helper.toJson(content);\r\n    localStorage.setItem(key, json);\r\n  }\r\n\r\n  /**\r\n   * 获取localStorage项\r\n   * @param key 键\r\n   */\r\n  getLocalItem<T>(key: string): T {\r\n    if (this.meow.helper.isEmpty(key))\r\n      return null;\r\n    let json = localStorage.getItem(key);\r\n    if (this.meow.helper.isEmpty(json))\r\n      return null;\r\n    if (!this.meow.helper.isJson(json))\r\n      return <T>json;\r\n    let content = this.meow.helper.toJsonObject<StorageWrapper>(json);\r\n    if (!content)\r\n      return null;\r\n    if (Date.now() - content.time > content.expires) {\r\n      this.removeLocalItem(key);\r\n      return null;\r\n    }\r\n    return <T>content.data;\r\n  }\r\n\r\n  /**\r\n   * 移除localStorage项\r\n   * @param key 键\r\n   */\r\n  removeLocalItem(key: string) {\r\n    localStorage.removeItem(key);\r\n  }\r\n\r\n  /**\r\n   * 清空localStorage项\r\n   */\r\n  clearLocalItems() {\r\n    localStorage.clear();\r\n  }\r\n\r\n  /**\r\n   * 设置sessionStorage项\r\n   * @param key 键\r\n   * @param value 值\r\n   * @param expires 过期时间,单位:秒,默认值: 360000\r\n   */\r\n  setSessionItem(key: string, value, expires: number = 360000) {\r\n    if (this.meow.helper.isEmpty(key))\r\n      return;\r\n    this.removeSessionItem(key);\r\n    let content = new StorageWrapper(value, Date.now(), expires * 1000);\r\n    let json = this.meow.helper.toJson(content);\r\n    sessionStorage.setItem(key, json);\r\n  }\r\n\r\n  /**\r\n   * 获取sessionStorage项\r\n   * @param key 键\r\n   */\r\n  getSessionItem<T>(key: string): T {\r\n    if (this.meow.helper.isEmpty(key))\r\n      return null;\r\n    let json = sessionStorage.getItem(key);\r\n    if (this.meow.helper.isEmpty(json))\r\n      return null;\r\n    if (!this.meow.helper.isJson(json))\r\n      return <T>json;\r\n    let content = this.meow.helper.toJsonObject<StorageWrapper>(json);\r\n    if (!content)\r\n      return null;\r\n    if (Date.now() - content.time > content.expires) {\r\n      this.removeSessionItem(key);\r\n      return null;\r\n    }\r\n    return <T>content.data;\r\n  }\r\n\r\n  /**\r\n   * 移除sessionStorage项\r\n   * @param key 键\r\n   */\r\n  removeSessionItem(key: string) {\r\n    sessionStorage.removeItem(key);\r\n  }\r\n\r\n  /**\r\n   * 清空sessionStorage项\r\n   */\r\n  clearSessionItems() {\r\n    sessionStorage.clear();\r\n  }\r\n\r\n  /**\r\n   * 获取localStorage全部项\r\n   */\r\n  getLocalItems(): Map<string, any> {\r\n    let result = new Map<string, any>();\r\n    for (var i = 0; i < localStorage.length; i++) {\r\n      let key = localStorage.key(i);\r\n      let value = this.getLocalItem<any>(key);\r\n      result.set(key, value);\r\n    }\r\n    return result;\r\n  }\r\n\r\n  /**\r\n   * 获取sessionStorage全部项\r\n   */\r\n  getSessionItems(): Map<string, any> {\r\n    let result = new Map<string, any>();\r\n    for (var i = 0; i < sessionStorage.length; i++) {\r\n      let key = sessionStorage.key(i);\r\n      let value = this.getSessionItem<any>(key);\r\n      result.set(key, value);\r\n    }\r\n    return result;\r\n  }\r\n}\r\n\r\n/**\r\n * 存储包装器\r\n */\r\nclass StorageWrapper {\r\n  /**\r\n   * 初始化存储包装器\r\n   * @param data 数据\r\n   * @param time 存储时间\r\n   * @param expires 过期间隔\r\n   */\r\n  constructor(public data, public time: number, public expires: number) {\r\n  }\r\n}\r\n","//================ 模块配置 ==============================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//========================================================\r\nimport { Injectable } from '@angular/core';\r\n\r\n/**\r\n * 模块配置\r\n */\r\n@Injectable()\r\nexport class ModuleConfig {\r\n  /**\r\n   * Api前缀,用于设置服务转发路径,范例: order/v1\r\n   */\r\n  apiPrefix?: string;\r\n}\r\n","//============== Url操作 ============================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//===================================================\r\nimport { Meow } from \"../meow\";\r\nimport { ModuleConfig } from \"../config/module-config\";\r\n\r\n/**\r\n * Url操作\r\n */\r\nexport class Url {\r\n  /**\r\n   * 查询对象\r\n   */\r\n  private _query;\r\n\r\n  /**\r\n   * 初始化Url操作\r\n   * @param meow 公共操作\r\n   * @param moduleConfig 模块配置\r\n   */\r\n  constructor(private meow: Meow, private moduleConfig: ModuleConfig = null) {\r\n  }\r\n\r\n  /**\r\n   * 设置查询参数\r\n   * @param obj 查询参数\r\n   */\r\n  query(obj): Url {\r\n    this._query = obj;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 获取Url\r\n   * @param url Url地址\r\n   * @param paths 路径\r\n   */\r\n  get(url: string, ...paths: string[]): string {\r\n    let apiEndpoint = this.meow.getAppConfig().apiEndpoint;\r\n    let path = this.getPath(paths);\r\n    let result = this.meow.helper.getUrl(this.getUrl(url), apiEndpoint, path)\r\n    let queryString = this.meow.helper.toQueryString(this._query);\r\n    if (queryString)\r\n      result += `?${queryString}`;\r\n    return result;\r\n  }\r\n\r\n  /**\r\n   * 获取Api前缀\r\n   */\r\n  private getUrl(url: string) {\r\n    if (!url)\r\n      return url;\r\n    if (url.startsWith(\"/\"))\r\n      return url;\r\n    let apiPrefix = this.getApiPrefix();\r\n    if (!apiPrefix)\r\n      return url;\r\n    apiPrefix = this.meow.helper.trimStart(apiPrefix, \"/\");\r\n    apiPrefix = this.meow.helper.trimEnd(apiPrefix, \"/\");\r\n    return `/${apiPrefix}/api/${url}`;\r\n  }\r\n\r\n  /**\r\n   * 获取Api前缀\r\n   */\r\n  private getApiPrefix() {\r\n    let moduleConfig = this.moduleConfig || this.meow.ioc.get(ModuleConfig);\r\n    return moduleConfig && moduleConfig.apiPrefix;\r\n  }\r\n\r\n  /**\r\n   * 获取路径\r\n   */\r\n  private getPath(paths: string[]) {\r\n    let result = \"\";\r\n    if (!paths || paths.length === 0)\r\n      return result;\r\n    paths.forEach(path => {\r\n      if (this.meow.helper.isEmpty(path))\r\n        return;\r\n      path = path.replace(\"\\\\\", \"/\");\r\n      if (path.endsWith(\"/\"))\r\n        path = this.meow.helper.trimEnd(path, \"/\");\r\n      result += path;\r\n    });\r\n    return result;\r\n  }\r\n}\r\n","//============== Http方法 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\n\r\n/**\r\n * Http方法\r\n */\r\nexport enum HttpMethod {\r\n  Get,\r\n  Post,\r\n  Put,\r\n  Delete\r\n}\r\n","//============== Http内容类型 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//===================================================\r\n\r\n/**\r\n * Http内容类型\r\n */\r\nexport enum HttpContentType {\r\n  /**\r\n   * application/x-www-form-urlencoded\r\n   */\r\n  FormUrlEncoded,\r\n  /**\r\n   * application/json\r\n   */\r\n  Json\r\n}\r\n","//============== Http请求操作 =====================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, retry, lastValueFrom } from 'rxjs';\r\nimport { HttpMethod } from \"./http-method\";\r\nimport { HttpContentType } from \"./http-content-type\";\r\nimport { Ioc } from '../common/ioc';\r\nimport { formatDate } from '../common/helper';\r\n\r\n/**\r\n * Http请求操作\r\n */\r\nexport class HttpRequest<T> {\r\n  /**\r\n   * Http头集合\r\n   */\r\n  private headers: HttpHeaders;\r\n  /**\r\n   * 内容类型\r\n   */\r\n  private httpContentType: HttpContentType;\r\n  /**\r\n   * 请求客户端\r\n   */\r\n  private _client: Observable<T>;\r\n  /**\r\n   * Http参数集合\r\n   */\r\n  private parameters: HttpParams;\r\n  /**\r\n   * 响应类型\r\n   */\r\n  private httpResponseType;\r\n  /**\r\n   * 跨域是否允许携带cookie\r\n   */\r\n  private credentials: boolean;\r\n  /**\r\n  * 请求重试次数\r\n  */\r\n  private retryTimes: number;\r\n\r\n  /**\r\n   * 初始化Http请求操作\r\n   * @param ioc Ioc操作\r\n   * @param httpMethod Http方法\r\n   * @param url 请求地址\r\n   * @param body Http主体\r\n   */\r\n  constructor(private ioc: Ioc, private httpMethod: HttpMethod, private url: string, private body?) {\r\n    this.headers = new HttpHeaders();\r\n    this.parameters = new HttpParams();\r\n    this.credentials = true;\r\n    this.retryTimes = 3;\r\n  }\r\n\r\n  /**\r\n   * 设置请求重试次数\r\n   * @param value 请求重试次数,默认值: 3\r\n   */\r\n  retry(value: number): HttpRequest<T> {\r\n    this.retryTimes = value;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 设置跨域是否允许携带cookie\r\n   * @param value 设置为true则允许携带,默认值: true\r\n   */\r\n  withCredentials(value: boolean): HttpRequest<T> {\r\n    this.credentials = value;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 添加Http头\r\n   * @param name 名称\r\n   * @param value 值\r\n   */\r\n  header(name: string, value): HttpRequest<T> {\r\n    let stringValue = \"\";\r\n    if (value !== undefined && value !== null)\r\n      stringValue = String(value);\r\n    this.headers = this.headers.append(name, stringValue);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 设置内容类型\r\n   * @param contentType 内容类型\r\n   */\r\n  contentType(contentType: HttpContentType): HttpRequest<T> {\r\n    this.httpContentType = contentType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 设置响应类型\r\n   * @param responseType 响应类型\r\n   */\r\n  responseType(responseType): HttpRequest<T> {\r\n    this.httpResponseType = responseType;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n  * 添加Http参数,添加到url查询字符串\r\n  * @param data 参数对象\r\n  */\r\n  param(data): HttpRequest<T>;\r\n  /**\r\n   * 添加Http参数,添加到url查询字符串\r\n   * @param name 名称\r\n   * @param value 值\r\n   */\r\n  param(name: string, value: string): HttpRequest<T>;\r\n  param(data, value?: string): HttpRequest<T> {\r\n    if (typeof data === \"object\") {\r\n      this.paramByObject(data);\r\n      return this;\r\n    }\r\n    if (typeof data === \"string\" && value)\r\n      this.parameters = this.parameters.append(data, value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 添加Http参数\r\n   */\r\n  private paramByObject(data) {\r\n    for (let key in data) {\r\n      if (data.hasOwnProperty(key)) {\r\n        let value = this.getValue(data[key]);\r\n        if (value == null)\r\n          value = \"\";\r\n        this.parameters = this.parameters.append(key, value);\r\n      }\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 获取值\r\n   */\r\n  private getValue(item): string {\r\n    if (!item)\r\n      return item;\r\n    if (item instanceof Date)\r\n      return formatDate(item);\r\n    return item;\r\n  }\r\n\r\n  /**\r\n   * 处理响应\r\n   * @param handler 响应处理函数\r\n   * @param errorHandler 错误处理函数\r\n   * @param beforeHandler 发送前处理函数，返回false则取消发送\r\n   * @param completeHandler 请求完成处理函数\r\n   */\r\n  handle(handler: (value: T) => void, errorHandler?: (error: HttpErrorResponse) => void, beforeHandler?: () => boolean, completeHandler?: () => void) {\r\n    if (beforeHandler && beforeHandler() === false)\r\n      return;\r\n    this.getClient()\r\n      .subscribe({\r\n        next: handler,\r\n        error: errorHandler,\r\n        complete: completeHandler\r\n      });\r\n  }\r\n\r\n  /**\r\n   * 处理响应\r\n   * @param handler 响应处理函数\r\n   * @param errorHandler 错误处理函数\r\n   * @param beforeHandler 发送前处理函数，返回false则取消发送\r\n   * @param completeHandler 请求完成处理函数\r\n   */\r\n  async handleAsync(handler: (value: T) => void, errorHandler?: (error: HttpErrorResponse) => void, beforeHandler?: () => boolean, completeHandler?: () => void) {\r\n    if (beforeHandler && beforeHandler() === false)\r\n      return;\r\n    await lastValueFrom(this.getClient()).then(handler).catch(errorHandler).then(completeHandler);\r\n  }\r\n\r\n  /**\r\n   * 发送请求\r\n   */\r\n  request(): Observable<T> {\r\n    this.initContentType();\r\n    let httpClient = this.ioc.get<HttpClient>(HttpClient);\r\n    let options = { headers: this.headers, params: this.parameters, responseType: this.httpResponseType, withCredentials: this.credentials };\r\n    switch (this.httpMethod) {\r\n      case HttpMethod.Get:\r\n        return httpClient.get<T>(this.url, options);\r\n      case HttpMethod.Post:\r\n        return httpClient.post<T>(this.url, this.getBody(), options);\r\n      case HttpMethod.Put:\r\n        return httpClient.put<T>(this.url, this.getBody(), options);\r\n      case HttpMethod.Delete:\r\n        return httpClient.delete<T>(this.url, options);\r\n      default:\r\n        return httpClient.get<T>(this.url, options);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 初始化内容类型\r\n   */\r\n  private initContentType() {\r\n    return this.header(\"Content-Type\", this.getContentType(this.httpContentType));\r\n  }\r\n\r\n  /**\r\n   * 获取内容类型\r\n   * @param contentType\r\n   */\r\n  private getContentType(contentType: HttpContentType) {\r\n    switch (contentType) {\r\n      case HttpContentType.FormUrlEncoded:\r\n        return \"application/x-www-form-urlencoded\";\r\n      default:\r\n        return \"application/json\";\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 获取body\r\n   */\r\n  private getBody() {\r\n    if (typeof this.body === \"string\")\r\n      return JSON.stringify(this.body);\r\n    this.processBody();\r\n    return this.body;\r\n  }\r\n\r\n  /**\r\n   * 对body进行处理\r\n   */\r\n  private processBody() {\r\n    for (let key in this.body) {\r\n      if (!this.body.hasOwnProperty(key))\r\n        continue;;\r\n      let value = this.getValue(this.body[key]);\r\n      if (value === undefined || value === null || value === '') {\r\n        delete this.body[key];\r\n        continue;;\r\n      }\r\n      this.body[key] = this.getValue(this.body[key]);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 配置请求客户端\r\n   * @param handler 请求客户端配置操作\r\n   */\r\n  configClient(handler: (client: Observable<any>) => Observable<any>): HttpRequest<T> {\r\n    this._client = handler && handler(this.request());\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 获取请求客户端\r\n   */\r\n  private getClient() {\r\n    if (this._client)\r\n      return this._client;\r\n    return this.request()\r\n      .pipe(\r\n        retry(this.retryTimes)\r\n      );\r\n  }\r\n\r\n  /**\r\n   * 下载文件\r\n   * @param fileName 文件名,包含扩展名,范例: a.png\r\n   * @param getUrl 文件名,包含扩展名,范例: a.png\r\n   */\r\n  download(fileName?, getUrl?: (result) => Promise<string>) {\r\n    this.responseType(\"blob\").handle(async result => {\r\n      if (!result)\r\n        return;\r\n      let url = await this.getDownloadUrl(result, getUrl);\r\n      if (!url)\r\n        return;\r\n      const link = document.createElement('a');\r\n      link.href = url;\r\n      if (fileName)\r\n        link.download = fileName;\r\n      link.click();\r\n      window.URL.revokeObjectURL(url);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * 获取下载文件地址\r\n   */\r\n  private async getDownloadUrl(result, getUrl?: (result) => Promise<string>) {\r\n    if (getUrl)\r\n      return await getUrl(result);\r\n    try {\r\n      return window.URL.createObjectURL(<Blob>result)\r\n    }\r\n    catch {\r\n      return result;\r\n    }\r\n  }\r\n}\r\n","//============== Http操作 ==========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//=================================================\r\nimport { HttpMethod } from \"./http-method\";\r\nimport { HttpRequest } from \"./http-request\";\r\nimport { Ioc } from '../common/ioc';\r\n\r\n/**\r\n * Http操作\r\n */\r\nexport class Http {\r\n  /**\r\n   * 初始化Http操作\r\n   * @param ioc Ioc操作\r\n   */\r\n  constructor(private ioc: Ioc) {\r\n  }\r\n\r\n  /**\r\n   * 发送请求\r\n   * @param url 请求地址\r\n   * @param httpMethod http方法\r\n   * @param data 数据\r\n   */\r\n  send<T>(url: string, httpMethod: HttpMethod, data?): HttpRequest<T> {\r\n    switch (httpMethod) {\r\n      case HttpMethod.Get:\r\n        return this.get<T>(url).param(data);\r\n      case HttpMethod.Post:\r\n        return this.post<T>(url, data);\r\n      case HttpMethod.Put:\r\n        return this.put<T>(url, data);\r\n      case HttpMethod.Delete:\r\n        return this.delete<T>(url).param(data);\r\n      default:\r\n        return this.get<T>(url).param(data);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * get请求\r\n   * @param url 请求地址\r\n   */\r\n  get<T>(url: string): HttpRequest<T> {\r\n    return new HttpRequest<T>(this.ioc, HttpMethod.Get, url);\r\n  }\r\n\r\n  /**\r\n   * post请求\r\n   * @param url 请求地址\r\n   * @param body Http主体\r\n   */\r\n  post<T>(url: string, body?): HttpRequest<T> {\r\n    return new HttpRequest<T>(this.ioc, HttpMethod.Post, url, body);\r\n  }\r\n\r\n  /**\r\n   * put请求\r\n   * @param url 请求地址\r\n   * @param body Http主体\r\n   */\r\n  put<T>(url: string, body?): HttpRequest<T> {\r\n    return new HttpRequest<T>(this.ioc, HttpMethod.Put, url, body);\r\n  }\r\n\r\n  /**\r\n   * delete请求\r\n   * @param url 请求地址\r\n   */\r\n  delete<T>(url: string): HttpRequest<T> {\r\n    return new HttpRequest<T>(this.ioc, HttpMethod.Delete, url);\r\n  }\r\n}\r\n","//============== i18n多语言键名 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//=====================================================\r\n\r\n/**\r\n * i18n多语言键名\r\n */\r\nexport class I18nKeys {\r\n  /**\r\n   * 未选择待删除项\r\n   */\r\n  static noDeleteItemSelected = \"meow.noDeleteItemSelected\";\r\n  /**\r\n   * 未选择\r\n   */\r\n  static notSelected = \"meow.notSelected\";\r\n  /**\r\n   * 提示\r\n   */\r\n  static tips = \"meow.tips\";\r\n  /**\r\n   * 取消\r\n   */\r\n  static cancel = \"meow.cancel\";\r\n  /**\r\n   * 确定\r\n   */\r\n  static ok = \"meow.ok\";\r\n  /**\r\n   * 操作成功\r\n   */\r\n  static succeeded = \"meow.succeeded\";\r\n  /**\r\n   * 删除成功\r\n   */\r\n  static deleteSuccessed = \"meow.deleteSuccessed\";\r\n  /**\r\n   * 无需保存\r\n   */\r\n  static noNeedSave = \"meow.noNeedSave\";\r\n  /**\r\n   * 加载状态\r\n   */\r\n  static loading = \"meow.loading\";\r\n  /**\r\n   * 删除确认\r\n   */\r\n  static deleteConfirmation = \"meow.deleteConfirmation\";\r\n  /**\r\n   * 启用确认\r\n   */\r\n  static enableConfirmation = \"meow.enableConfirmation\";\r\n  /**\r\n   * 禁用确认\r\n   */\r\n  static disableConfirmation = \"meow.disableConfirmation\";\r\n  /**\r\n   * 保存确认\r\n   */\r\n  static saveConfirmation = \"meow.saveConfirmation\";\r\n  /**\r\n   * 必填验证消息\r\n   */\r\n  static requiredMessage = \"meow.requiredMessage\";\r\n  /**\r\n   * 最小长度验证消息\r\n   */\r\n  static minLengthMessage = \"meow.minLengthMessage\";\r\n  /**\r\n   * 最小值验证消息\r\n   */\r\n  static minMessage = \"meow.minMessage\";\r\n  /**\r\n   * 最大值验证消息\r\n   */\r\n  static maxMessage = \"meow.maxMessage\";\r\n  /**\r\n   * 电子邮件验证消息\r\n   */\r\n  static emailMessage = \"meow.emailMessage\";\r\n  /**\r\n   * 手机号验证消息\r\n   */\r\n  static phoneMessage = \"meow.phoneMessage\";\r\n  /**\r\n   * 身份证验证消息\r\n   */\r\n  static idCardMessage = \"meow.idCardMessage\";\r\n  /**\r\n   * 未授权异常消息\r\n   */\r\n  static unauthorizedMessage = \"meow.unauthorizedMessage\";\r\n}\r\n","//============== 服务端错误结果 =====================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//=================================================\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Result } from \"./result\";\r\n\r\n/**\r\n * 服务端错误结果\r\n */\r\nexport class FailResult {\r\n  /**\r\n   * \r\n   * @param result 结果\r\n   * @param errorResponse Http错误响应\r\n   */\r\n  constructor(result?: Result<any>, public errorResponse?: HttpErrorResponse) {\r\n    if (result) {\r\n      this.code = result.code;\r\n      this.message = result.message;\r\n    }\r\n  }\r\n  /**\r\n   * 状态码\r\n   */\r\n  code: string;\r\n  /**\r\n   * 消息\r\n   */\r\n  message: string;\r\n}\r\n","//============== 服务端状态码约定 =================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//==============================================\r\n\r\n/**\r\n * 状态码\r\n */\r\nexport enum StateCodeEnum {\r\n  /**\r\n   * 成功\r\n   */\r\n  Ok = \"200\",\r\n  /**\r\n   * 未授权\r\n   */\r\n  Unauthorized = \"401\",\r\n  /**\r\n   * 失败\r\n   */\r\n  Fail = \"500\",\r\n}\r\n","//============== WebApi请求操作 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//=======================================================\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { I18nKeys } from \"../config/i18n-keys\";\r\nimport { Result } from '../response/result';\r\nimport { FailResult } from \"../response/fail-result\";\r\nimport { StateCodeEnum } from \"../response/state-code-enum\";\r\nimport { HttpContentType } from \"../http/http-content-type\";\r\nimport { HttpRequest } from \"../http/http-request\";\r\nimport { WebApiHandleOptions } from \"./web-api-handle-options\";\r\nimport { Meow } from \"../meow\";\r\n\r\n/**\r\n * WebApi请求操作\r\n */\r\nexport class WebApiRequest<T> {\r\n  /**\r\n   * 按钮\r\n   */\r\n  private btn;\r\n  /**\r\n   * 是否显示进度条\r\n   */\r\n  private isShowLoading?: boolean;\r\n\r\n  /**\r\n   * 初始化WebApi请求操作\r\n   * @param request Http请求操作\r\n   * @param message 消息操作\r\n   */\r\n  constructor(private request?: HttpRequest<Result<T>>, private meow?: Meow) {\r\n  }\r\n\r\n  /**\r\n   * 设置请求重试次数\r\n   * @param value 请求重试次数,默认值: 3\r\n   */\r\n  retry(value: number): WebApiRequest<T> {\r\n    this.request.retry(value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 设置跨域是否允许携带cookie\r\n   * @param value 设置为true则允许携带,默认值: true\r\n   */\r\n  withCredentials(value: boolean = true): WebApiRequest<T> {\r\n    this.request.withCredentials(value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 添加Http头\r\n   * @param headers Http头集合\r\n   */\r\n  header(headers?: { name: string, value }[]): WebApiRequest<T>;\r\n  /**\r\n   * 添加Http头\r\n   * @param name 名称\r\n   * @param value 值\r\n   */\r\n  header(name: string, value): WebApiRequest<T>;\r\n  header(name, value?): WebApiRequest<T> {\r\n    if (typeof name === \"object\")\r\n      this.addHeaders(name);\r\n    else if (typeof name === \"string\")\r\n      this.request.header(name, value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 设置Content-Language请求头\r\n   * @param culture 语言文化代码\r\n   */\r\n  contentLanguage(culture) {\r\n    this.header(\"Content-Language\", culture);\r\n  }\r\n\r\n  /**\r\n   * 添加Http头\r\n   */\r\n  private addHeaders(param) {\r\n    let headers = param as { name: string, value }[];\r\n    if (!headers)\r\n      return;\r\n    headers.forEach(item => {\r\n      this.request.header(item.name, item.value);\r\n    });\r\n  }\r\n\r\n  /**\r\n   * 设置响应类型\r\n   * @param responseType 响应类型\r\n   */\r\n  responseType(responseType): WebApiRequest<T> {\r\n    this.request.responseType(responseType);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 设置内容类型\r\n   * @param contentType 内容类型\r\n   */\r\n  contentType(contentType: HttpContentType): WebApiRequest<T> {\r\n    this.request.contentType(contentType);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 添加Http参数,添加到url查询字符串\r\n   * @param data 参数对象\r\n   */\r\n  param(data): WebApiRequest<T>;\r\n  /**\r\n   * 添加Http参数,添加到url查询字符串\r\n   * @param name 名称\r\n   * @param value 值\r\n   */\r\n  param(name: string, value: string): WebApiRequest<T>;\r\n  param(data, value?: string): WebApiRequest<T> {\r\n    if (typeof data === \"object\") {\r\n      this.request.param(data);\r\n      return this;\r\n    }\r\n    if (typeof data === \"string\" && value)\r\n      this.request.param(data, value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 根据条件添加http参数\r\n   * @param name 名称\r\n   * @param value 值\r\n   */\r\n  paramIf(data, value: string, condition: boolean): WebApiRequest<T> {\r\n    if (condition)\r\n      this.param(data, value);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 设置按钮\r\n   * @param btn 按钮实例\r\n   */\r\n  button(btn): WebApiRequest<T> {\r\n    this.btn = btn;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 请求时显示进度条\r\n   */\r\n  loading(isShowLoading: boolean = true): WebApiRequest<T> {\r\n    this.isShowLoading = isShowLoading;\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 配置请求客户端\r\n   * @param handler 请求客户端配置操作\r\n   */\r\n  configClient(handler: (client: Observable<T>) => Observable<T>): WebApiRequest<T> {\r\n    this.request.configClient(handler);\r\n    return this;\r\n  }\r\n\r\n  /**\r\n   * 获取请求客户端\r\n   */\r\n  getClient(): Observable<Result<T>> {\r\n    return this.request.request();\r\n  }\r\n\r\n  /**\r\n   * 发送客户端请求\r\n   * @param client Http客户端\r\n   * @param options 响应处理器配置\r\n   */\r\n  sendClient(client: Observable<any>, options: WebApiHandleOptions<T>) {\r\n    if (!client)\r\n      return;\r\n    if (!options)\r\n      return;\r\n    if (options.before && options.before() === false)\r\n      return;\r\n    client.subscribe({\r\n      next: (result: Result<T>) => this.handleOk(options, result),\r\n      error: (error: HttpErrorResponse) => this.handleFail(options, undefined, error),\r\n      complete: () => this.handleComplete(options)\r\n    });\r\n  }\r\n\r\n  /**\r\n   * 处理响应\r\n   * @param options 响应处理器配置\r\n   */\r\n  handle(options: WebApiHandleOptions<T>) {\r\n    if (!options)\r\n      return;\r\n    this.request.handle(\r\n      (result: Result<T>) => this.handleOk(options, result),\r\n      (error: HttpErrorResponse) => this.handleFail(options, undefined, error),\r\n      () => this.handleBefore(options),\r\n      () => this.handleComplete(options)\r\n    );\r\n  }\r\n\r\n  /**\r\n   * 处理响应\r\n   * @param options 响应处理器配置\r\n   */\r\n  async handleAsync(options: WebApiHandleOptions<T>) {\r\n    if (!options)\r\n      return;\r\n    await this.request.handleAsync(\r\n      (result: Result<T>) => this.handleOk(options, result),\r\n      (error: HttpErrorResponse) => this.handleFail(options, undefined, error),\r\n      () => this.handleBefore(options),\r\n      () => this.handleComplete(options)\r\n    );\r\n  }\r\n\r\n  /**\r\n   * 处理成功响应\r\n   */\r\n  private handleOk(options: WebApiHandleOptions<T>, result: Result<T>) {\r\n    if (!result)\r\n      return;\r\n    if (result.code === StateCodeEnum.Ok) {\r\n      options.ok && options.ok(result.data);\r\n      return;\r\n    }\r\n    if (result.code === StateCodeEnum.Unauthorized) {\r\n      this.handleUnauthorize(options);\r\n      return;\r\n    }\r\n    this.handleFail(options, result);\r\n  }\r\n\r\n  /**\r\n   * 处理未授权响应\r\n   */\r\n  private handleUnauthorize(options?: WebApiHandleOptions<T>) {\r\n    if (options && options.unauthorize) {\r\n      options.unauthorize();\r\n      return;\r\n    }\r\n    this.meow.message.error(I18nKeys.unauthorizedMessage);\r\n  }\r\n\r\n  /**\r\n   * 处理失败响应\r\n   */\r\n  private handleFail(options: WebApiHandleOptions<T>, result?: Result<T>, errorResponse?: HttpErrorResponse) {\r\n    let failResult = new FailResult(result, errorResponse);\r\n    this.handleHttpException(failResult);\r\n    this.handleComplete(options);\r\n    if (options.fail) {\r\n      options.fail(failResult);\r\n      return;\r\n    }\r\n    if (result) {\r\n      this.handleBusinessException(result);\r\n      return;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 处理Http异常\r\n   */\r\n  private handleHttpException(failResult: FailResult) {\r\n    if (failResult.errorResponse)\r\n      console.log(this.getHttpExceptionMessage(failResult));\r\n  }\r\n\r\n  /**\r\n   * 获取Http异常消息\r\n   */\r\n  private getHttpExceptionMessage(failResult: FailResult) {\r\n    if (!failResult.errorResponse)\r\n      return \"\";\r\n    let error = failResult.errorResponse;\r\n    if (!error)\r\n      return \"\";\r\n    return `Http Exception：\\nUrl:${error.url}\\nstatus:${error.status},${error.statusText}\\n`\r\n      + `error message:${error.message}\\nerrortext:\\n ${error.error && error.error.text}\\n`;\r\n  }\r\n\r\n  /**\r\n   * 处理业务异常\r\n   */\r\n  private handleBusinessException(result: Result<T>) {\r\n    if (result.code === StateCodeEnum.Fail) {\r\n      this.meow.message.error(result.message);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 发送前操作\r\n   */\r\n  private handleBefore(options: WebApiHandleOptions<T>): boolean {\r\n    let result = options && options.before && options.before();\r\n    if (result === false)\r\n      return false;\r\n    this.showLoading();\r\n    return true;\r\n  }\r\n\r\n  /**\r\n   * 显示加载状态\r\n   */\r\n  private showLoading() {\r\n    if (this.btn)\r\n      this.btn.nzLoading = true;\r\n    if (this.isShowLoading)\r\n      this.meow.loading.open();\r\n  }\r\n\r\n  /**\r\n   * 完成操作\r\n   */\r\n  private handleComplete(options: WebApiHandleOptions<T>) {\r\n    options && options.complete && options.complete();\r\n    this.closeLoading();\r\n  }\r\n\r\n  /**\r\n   * 关闭加载状态\r\n   */\r\n  private closeLoading() {\r\n    if (this.btn) {\r\n      this.btn.nzLoading = false;\r\n      this.btn.cdr.detectChanges();\r\n    }\r\n    if (this.isShowLoading)\r\n      this.meow.loading.close();\r\n  }\r\n\r\n  /**\r\n   * 下载文件\r\n   * @param fileName 文件名,包含扩展名,范例: a.png\r\n   */\r\n  download(fileName?) {\r\n    this.request.download(fileName, async (blob: Blob) => {\r\n      try {\r\n        if (blob.type === \"application/octet-stream\")\r\n          return window.URL.createObjectURL(blob);\r\n        let value = await this.meow.helper.toStringFromBlobAsync(blob);\r\n        if (blob.type === \"text/plain\")\r\n          return value;\r\n        if (blob.type === \"application/json\") {\r\n          let result = this.meow.helper.toJsonObject<Result<any>>(value);\r\n          if (result.code === StateCodeEnum.Ok)\r\n            return result.data;\r\n          if (result.code === StateCodeEnum.Unauthorized) {\r\n            this.handleUnauthorize();\r\n            return null;\r\n          }\r\n          if (result.code === StateCodeEnum.Fail) {\r\n            this.handleBusinessException(result);\r\n            return null;\r\n          }\r\n        }\r\n        return window.URL.createObjectURL(blob);\r\n      }\r\n      catch {\r\n        return blob;\r\n      }\r\n    });\r\n  }\r\n}\r\n","//============== WebApi操作 =======================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Observable } from 'rxjs';\r\nimport { HttpMethod } from \"../http/http-method\";\r\nimport { Meow } from \"../meow\";\r\nimport { WebApiRequest } from \"./web-api-request\";\r\nimport { Result } from \"../response/result\";\r\nimport { WebApiHandleOptions } from \"./web-api-handle-options\";\r\n\r\n/**\r\n * WebApi操作\r\n */\r\nexport class WebApi {\r\n  /**\r\n   * 初始化WebApi操作\r\n   * @param meow 操作入口\r\n   */\r\n  constructor(private meow: Meow) {\r\n  }\r\n\r\n  /**\r\n   * 获取完整url地址,如果配置了Api端点和Api前缀则自动包含\r\n   */\r\n  private getUrl(url: string): string {\r\n    return this.meow.url.get(url);\r\n  }\r\n\r\n  /**\r\n   * 发送请求\r\n   * @param url 请求地址\r\n   * @param httpMethod http方法\r\n   * @param data 数据\r\n   */\r\n  send<T>(url: string, httpMethod: HttpMethod, data?): WebApiRequest<T> {\r\n    switch (httpMethod) {\r\n      case HttpMethod.Get:\r\n        return this.get<T>(url).param(data);\r\n      case HttpMethod.Post:\r\n        return this.post<T>(url, data);\r\n      case HttpMethod.Put:\r\n        return this.put<T>(url, data);\r\n      case HttpMethod.Delete:\r\n        return this.delete<T>(url).param(data);\r\n      default:\r\n        return this.get<T>(url).param(data);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * get请求\r\n   * @param url 请求地址\r\n   */\r\n  get<T>(url: string): WebApiRequest<T> {\r\n    url = this.getUrl(url);\r\n    return new WebApiRequest<T>(this.meow.http.get<Result<T>>(url), this.meow);\r\n  }\r\n\r\n  /**\r\n   * post请求\r\n   * @param url 请求地址\r\n   * @param body Http主体\r\n   */\r\n  post<T>(url: string, body?): WebApiRequest<T> {\r\n    url = this.getUrl(url);\r\n    return new WebApiRequest<T>(this.meow.http.post<Result<T>>(url, body), this.meow);\r\n  }\r\n\r\n  /**\r\n   * put请求\r\n   * @param url 请求地址\r\n   * @param body Http主体\r\n   */\r\n  put<T>(url: string, body?): WebApiRequest<T> {\r\n    url = this.getUrl(url);\r\n    return new WebApiRequest<T>(this.meow.http.put<Result<T>>(url, body), this.meow);\r\n  }\r\n\r\n  /**\r\n   * delete请求\r\n   * @param url 请求地址\r\n   */\r\n  delete<T>(url: string): WebApiRequest<T> {\r\n    url = this.getUrl(url);\r\n    return new WebApiRequest<T>(this.meow.http.delete<Result<T>>(url), this.meow);\r\n  }\r\n\r\n  /**\r\n   * 处理客户端响应\r\n   * @param client Http客户端\r\n   * @param options 响应处理器配置\r\n   */\r\n  handle<T>(client: Observable<any>, options: WebApiHandleOptions<T>) {\r\n    return new WebApiRequest<T>(null, this.meow).sendClient(client, options);\r\n  }\r\n}\r\n","//============== meow操作入口 ====================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Injector, ElementRef } from '@angular/core';\r\nimport { Const } from \"./common/const\";\r\nimport { EventBus } from \"./common/eventbus\";\r\nimport * as Helper from './common/helper';\r\nimport { AppConfig } from './config/app-config';\r\nimport { ModuleConfig } from './config/module-config';\r\nimport { Ioc } from './common/ioc';\r\nimport { Html } from './html/html';\r\nimport { Message } from './message/message';\r\nimport { Loading } from \"./common/loading\";\r\nimport { Storage } from './common/storage';\r\nimport { Url } from \"./common/url\";\r\nimport { Http } from \"./http/http\";\r\nimport { WebApi } from \"./webapi/web-api\";\r\n\r\n/**\r\n * 操作入口\r\n */\r\nexport class Meow {\r\n  /**\r\n   * 事件总线操作\r\n   */\r\n  private _eventbus: EventBus;\r\n  /**\r\n   * Ioc操作\r\n   */\r\n  private _ioc: Ioc | undefined;\r\n  /**\r\n   * 页面操作\r\n   */\r\n  private _html: Html | undefined;\r\n  /**\r\n   * 消息操作\r\n   */\r\n  private _message: Message | undefined;\r\n  /**\r\n   * 加载操作\r\n   */\r\n  private _loading: Loading | undefined;\r\n  /**\r\n   * 浏览器本地存储操作\r\n   */\r\n  private _storage: Storage;\r\n  /**\r\n   * Url操作\r\n   */\r\n  private _url: Url;\r\n  /**\r\n   * Http操作\r\n   */\r\n  private _http: Http;\r\n  /**\r\n   * WebApi操作\r\n   */\r\n  private _webapi: WebApi;\r\n\r\n  /**\r\n   * 初始化操作入口\r\n     * @param componentInjector 组件注入器\r\n     * @param appConfig 应用配置\r\n     * @param moduleConfig 模块配置\r\n   */\r\n  constructor(private componentInjector: Injector | null = null, private appConfig: AppConfig | null = null, private moduleConfig: ModuleConfig | null = null) {\r\n  }\r\n\r\n  /**\r\n   * 全局注入器\r\n   */\r\n  static injector: Injector;\r\n\r\n  /**\r\n   * 常量\r\n   */\r\n  const = Const;\r\n\r\n  /**\r\n   * 公共操作\r\n   */\r\n  helper = Helper;\r\n\r\n  /**\r\n   * 事件总线操作\r\n   */\r\n  get eventbus() {\r\n    if (!this._eventbus)\r\n      this._eventbus = new EventBus(this);\r\n    return this._eventbus;\r\n  };\r\n\r\n  /**\r\n   * Ioc操作\r\n   */\r\n  get ioc() {\r\n    if (!this._ioc)\r\n      this._ioc = new Ioc(Meow.injector, this.componentInjector);\r\n    return this._ioc;\r\n  };\r\n\r\n  /**\r\n   * 页面操作\r\n   */\r\n  get html() {\r\n    if (!this._html)\r\n      this._html = new Html(this.ioc.get(ElementRef));\r\n    return this._html;\r\n  }\r\n\r\n  /**\r\n   * 消息操作\r\n   */\r\n  get message() {\r\n    if (!this._message)\r\n      this._message = new Message(this);\r\n    return this._message;\r\n  };\r\n\r\n  /**\r\n   * 加载操作\r\n   */\r\n  get loading() {\r\n    if (!this._loading)\r\n      this._loading = new Loading(this);\r\n    return this._loading;\r\n  };\r\n\r\n  /**\r\n   * 浏览器本地存储操作\r\n   */\r\n  get storage() {\r\n    if (!this._storage)\r\n      this._storage = new Storage(this);\r\n    return this._storage;\r\n  };\r\n\r\n  /**\r\n   * Url操作\r\n   */\r\n  get url() {\r\n    if (!this._url)\r\n      this._url = new Url(this, this.moduleConfig);\r\n    return this._url;\r\n  };\r\n\r\n  /**\r\n   * Http操作\r\n   */\r\n  get http() {\r\n    if (!this._http)\r\n      this._http = new Http(this.ioc);\r\n    return this._http;\r\n  };\r\n\r\n  /**\r\n   * WebApi操作\r\n   */\r\n  get webapi() {\r\n    if (!this._webapi)\r\n      this._webapi = new WebApi(this);\r\n    return this._webapi;\r\n  };\r\n\r\n  /**\r\n   * 初始化\r\n   * @param injector 全局注入器\r\n   */\r\n  static init(injector: Injector) {\r\n    this.injector = injector;\r\n  }\r\n\r\n  /**\r\n   * 获取应用配置\r\n   */\r\n  getAppConfig(): AppConfig {\r\n    if (this.appConfig)\r\n      return this.appConfig;\r\n    return this.ioc.get(AppConfig);\r\n  }\r\n}\r\n","//============== 组件基类 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Injector, Component } from '@angular/core';\r\nimport { Meow } from \"./../meow\";\r\n\r\n/**\r\n * 组件基类\r\n */\r\n@Component({\r\n  template: ''\r\n})\r\nexport abstract class ComponentBase {\r\n  /**\r\n   * 公共操作\r\n   */\r\n  protected meow: Meow;\r\n\r\n  /**\r\n   * 初始化组件\r\n   * @param injector 注入器\r\n   */\r\n  constructor(injector: Injector) {\r\n    this.meow = new Meow(injector);\r\n  }\r\n}\r\n","//============== 样式 ============================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\n\r\n/**\r\n * 样式\r\n */\r\nexport class Style {\r\n  'align-content': any;\r\n  'align-items': any;\r\n  'align-self': any;\r\n  'all': any;\r\n  'animation': any;\r\n  'animation-delay': any;\r\n  'animation-direction': any;\r\n  'animation-duration': any;\r\n  'animation-fill-mode': any;\r\n  'animation-iteration-count': any;\r\n  'animation-name': any;\r\n  'animation-play-state': any;\r\n  'animation-timing-function': any;\r\n  'backface-visibility': any;\r\n  'background'\r\n  'background-attachment': any;\r\n  'background-blend-mode': any;\r\n  'background-clip': any;\r\n  'background-color': any;\r\n  'background-image': any;\r\n  'background-origin': any;\r\n  'background-position': any;\r\n  'background-repeat': any;\r\n  'background-size': any;\r\n  'border': any;\r\n  'border-bottom': any;\r\n  'border-bottom-color': any;\r\n  'border-bottom-left-radius': any;\r\n  'border-bottom-right-radius': any;\r\n  'border-bottom-style': any;\r\n  'border-bottom-width': any;\r\n  'border-collapse': any;\r\n  'border-color': any;\r\n  'border-image': any;\r\n  'border-image-outset': any;\r\n  'border-image-repeat': any;\r\n  'border-image-slice': any;\r\n  'border-image-source': any;\r\n  'border-image-width': any;\r\n  'border-left': any;\r\n  'border-left-color': any;\r\n  'border-left-style': any;\r\n  'border-left-width': any;\r\n  'border-radius': any;\r\n  'border-right': any;\r\n  'border-right-color': any;\r\n  'border-right-style': any;\r\n  'border-right-width': any;\r\n  'border-spacing': any;\r\n  'border-style': any;\r\n  'border-top': any;\r\n  'border-top-color': any;\r\n  'border-top-left-radius': any;\r\n  'border-top-right-radius': any;\r\n  'border-top-style': any;\r\n  'border-top-width': any;\r\n  'border-width': any;\r\n  'bottom': any;\r\n  'box-decoration-break': any;\r\n  'box-shadow': any;\r\n  'box-sizing': any;\r\n  'break-after': any;\r\n  'break-before': any;\r\n  'break-inside': any;\r\n  'caption-side': any;\r\n  'caret-color': any;\r\n  '@charset': any;\r\n  'clear': any;\r\n  'clip': any;\r\n  'clip-path': any;\r\n  'color': any;\r\n  'column-count': any;\r\n  'column-fill': any;\r\n  'column-gap': any;\r\n  'column-rule': any;\r\n  'column-rule-color': any;\r\n  'column-rule-style': any;\r\n  'column-rule-width': any;\r\n  'column-span': any;\r\n  'column-width': any;\r\n  'columns': any;\r\n  'content': any;\r\n  'counter-increment': any;\r\n  'counter-reset': any;\r\n  'cursor': any;\r\n  'direction': any;\r\n  'display': any;\r\n  'empty-cells': any;\r\n  'filter': any;\r\n  'flex': any;\r\n  'flex-basis': any;\r\n  'flex-direction': any;\r\n  'flex-flow': any;\r\n  'flex-grow': any;\r\n  'flex-shrink': any;\r\n  'flex-wrap': any;\r\n  'float': any;\r\n  'font': any;\r\n  '@font-face': any;\r\n  'font-family': any;\r\n  'font-feature-settings': any;\r\n  'font-kerning': any;\r\n  'font-size': any;\r\n  'font-size-adjust': any;\r\n  'font-stretch': any;\r\n  'font-style': any;\r\n  'font-variant': any;\r\n  'font-variant-caps': any;\r\n  'font-weight': any;\r\n  'gap': any;\r\n  'grid': any;\r\n  'grid-area': any;\r\n  'grid-auto-columns': any;\r\n  'grid-auto-flow': any;\r\n  'grid-auto-rows': any;\r\n  'grid-column': any;\r\n  'grid-column-end': any;\r\n  'grid-column-gap': any;\r\n  'grid-column-start': any;\r\n  'grid-gap': any;\r\n  'grid-row': any;\r\n  'grid-row-end': any;\r\n  'grid-row-gap': any;\r\n  'grid-row-start': any;\r\n  'grid-template': any;\r\n  'grid-template-areas': any;\r\n  'grid-template-columns': any;\r\n  'grid-template-rows': any;\r\n  'hanging-punctuation': any;\r\n  'height': any;\r\n  'hyphens': any;\r\n  '@import': any;\r\n  'isolation': any;\r\n  'justify-content': any;\r\n  'justify-items': any;\r\n  'justify-self': any;\r\n  '@keyframes': any;\r\n  'left': any;\r\n  'letter-spacing': any;\r\n  'line-height': any;\r\n  'list-style': any;\r\n  'list-style-image': any;\r\n  'list-style-position': any;\r\n  'list-style-type': any;\r\n  'margin': any;\r\n  'margin-bottom': any;\r\n  'margin-left': any;\r\n  'margin-right': any;\r\n  'margin-top': any;\r\n  'max-height': any;\r\n  'max-width': any;\r\n  '@media': any;\r\n  'min-height': any;\r\n  'min-width': any;\r\n  'mix-blend-mode': any;\r\n  'object-fit': any;\r\n  'object-position': any;\r\n  'opacity': any;\r\n  'order': any;\r\n  'outline': any;\r\n  'outline-color': any;\r\n  'outline-offset': any;\r\n  'outline-style': any;\r\n  'outline-width': any;\r\n  'overflow': any;\r\n  'overflow-x': any;\r\n  'overflow-y': any;\r\n  'padding': any;\r\n  'padding-bottom': any;\r\n  'padding-left': any;\r\n  'padding-right': any;\r\n  'padding-top': any;\r\n  'page-break-after': any;\r\n  'page-break-before': any;\r\n  'page-break-inside': any;\r\n  'perspective': any;\r\n  'perspective-origin': any;\r\n  'pointer-events': any;\r\n  'position': any;\r\n  'quotes': any;\r\n  'resize': any;\r\n  'right': any;\r\n  'row-gap': any;\r\n  'scroll-behavior': any;\r\n  'tab-size': any;\r\n  'table-layout': any;\r\n  'text-align': any;\r\n  'text-align-last': any;\r\n  'text-decoration': any;\r\n  'text-decoration-color': any;\r\n  'text-decoration-line': any;\r\n  'text-decoration-style': any;\r\n  'text-decoration-thickness': any;\r\n  'text-indent': any;\r\n  'text-justify': any;\r\n  'text-overflow': any;\r\n  'text-shadow': any;\r\n  'text-transform': any;\r\n  'top': any;\r\n  'transform': any;\r\n  'transform-origin': any;\r\n  'transform-style': any;\r\n  'transition': any;\r\n  'transition-delay': any;\r\n  'transition-duration': any;\r\n  'transition-property': any;\r\n  'transition-timing-function': any;\r\n  'unicode-bidi': any;\r\n  'user-select': any;\r\n  'vertical-align': any;\r\n  'visibility': any;\r\n  'white-space': any;\r\n  'width': any;\r\n  'word-break': any;\r\n  'word-spacing': any;\r\n  'word-wrap': any;\r\n  'writing-mode': any;\r\n  'z-index': any;\r\n}\r\n","//============== 2D坐标 ======================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//============================================\r\n\r\n/**\r\n * 2D坐标\r\n */\r\nexport class Coordinates2D {\r\n  /**\r\n   * X轴\r\n   */\r\n  x: number = 0;\r\n  /**\r\n   * Y轴\r\n   */\r\n  y: number = 0;\r\n}\r\n","//============== 3D坐标 ======================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//============================================\r\nimport { Coordinates2D } from './coordinates-2d';\r\n\r\n/**\r\n * 3D坐标\r\n */\r\nexport class Coordinates3D extends Coordinates2D {\r\n  /**\r\n   * Z轴\r\n   */\r\n  z: number = 0;\r\n}\r\n","//============== 标识 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//============================================\r\n\r\n/**\r\n * 标识\r\n */\r\nexport interface IKey {\r\n  /**\r\n   * 标识\r\n   */\r\n  id: string;\r\n}\r\n","//============== 模型 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//============================================\r\n\r\n/**\r\n * 模型\r\n */\r\nexport class Model {\r\n}\r\n","//============== 分页集合=========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Model } from \"./model\";\r\n\r\n/**\r\n * 分页列表\r\n */\r\nexport class PageList<T> extends Model {\r\n  /**\r\n   * 初始化分页列表\r\n   * @param list 列表\r\n   * @param page 页索引\r\n   * @param pageSize 每页显示行数\r\n   * @param total 总行数\r\n   * @param pageCount 总页数\r\n   */\r\n  constructor(list?, page?: number, pageSize?: number, total?: number, pageCount?: number) {\r\n    super();\r\n    if (!list)\r\n      return;\r\n    this.page = page || list.page || 1;\r\n    this.pageSize = pageSize || list.pageSize || list.length;\r\n    this.total = total || list.total;\r\n    this.pageCount = pageCount || list.pageCount;\r\n    this.order = list.order;\r\n    this.data = list.data || list;\r\n  }\r\n\r\n  /**\r\n   * 页索引，即第几页\r\n   */\r\n  page: number;\r\n  /**\r\n   * 每页显示行数\r\n   */\r\n  pageSize: number;\r\n  /**\r\n   * 总行数\r\n   */\r\n  total: number;\r\n  /**\r\n   * 总页数\r\n   */\r\n  pageCount: number;\r\n  /**\r\n   * 排序条件\r\n   */\r\n  order: string;\r\n  /**\r\n   * 数据\r\n   */\r\n  data: T[];\r\n\r\n  /**\r\n   * 初始化行号\r\n   */\r\n  initLineNumbers() {\r\n    if (!this.data)\r\n      return;\r\n    for (let i = 0; i < this.data.length; i++) {\r\n      let line = (this.page - 1) * this.pageSize + i + 1;\r\n      this.data[i][\"lineNumber\"] = line;\r\n    }\r\n  }\r\n}\r\n","//============== 默认配置 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//=================================================\r\n\r\n/**\r\n * 默认配置\r\n */\r\nexport class DefaultConfig {\r\n    /**\r\n     * 默认分页大小\r\n     */\r\n    static pageSize: number = 10;\r\n};\r\n","//============== 查询参数 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//=================================================\r\nimport { Model } from \"./model\";\r\nimport { DefaultConfig } from \"../config/default-config\";\r\n\r\n/**\r\n * 查询参数\r\n */\r\nexport class QueryParameter extends Model {\r\n  /**\r\n   * 初始化查询参数\r\n   */\r\n  constructor() {\r\n    super();\r\n    this.page = 1;\r\n    this.pageSize = DefaultConfig.pageSize;\r\n  }\r\n\r\n  /**\r\n   * 页索引，即第几页\r\n   */\r\n  page?: number;\r\n  /**\r\n   * 每页显示行数\r\n   */\r\n  pageSize?: number;\r\n  /**\r\n   * 排序条件\r\n   */\r\n  order?: string;\r\n  /**\r\n   * 搜索关键字\r\n   */\r\n  keyword?: string;\r\n}\r\n","//================= 排序 =========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\n\r\n/**\r\n * 排序\r\n */\r\nexport interface ISort {\r\n  /**\r\n   * 排序号\r\n   */\r\n  sortId?: number;\r\n}\r\n\r\n/**\r\n * 排序\r\n * @param array 数组\r\n */\r\nexport function sort<T extends ISort>(array: T[]): T[] {\r\n  return array.sort((a, b) => (a.sortId === undefined || b.sortId === undefined) ? 0 : a.sortId - b.sortId);\r\n}\r\n","//=================== 列表项 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//===================================================\r\nimport { ISort } from './sort';\r\n\r\n/**\r\n * 列表项\r\n */\r\nexport class SelectItem implements ISort {\r\n  /**\r\n   * 文本\r\n   */\r\n  text: string;\r\n  /**\r\n   * 值\r\n   */\r\n  value;\r\n  /**\r\n   * 禁用\r\n   */\r\n  disabled?: boolean;\r\n  /**\r\n   * 排序号\r\n   */\r\n  sortId?: number;\r\n  /**\r\n   * 组\r\n   */\r\n  group?: string;\r\n}\r\n","//============== 视图模型 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Model } from \"./model\";\r\nimport { IKey } from \"./key\";\r\n\r\n/**\r\n * 视图模型\r\n */\r\nexport class ViewModel extends Model implements IKey {\r\n  /**\r\n   * 标识\r\n   */\r\n  id: string;\r\n}\r\n","//============== 服务端结果约定 ===================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//==============================================\r\n\r\n/**\r\n * 服务端结果约定\r\n */\r\nexport class Result<T> {\r\n  /**\r\n   * 状态码\r\n   */\r\n  code: string;\r\n  /**\r\n   * 消息\r\n   */\r\n  message: string;\r\n  /**\r\n   * 数据\r\n   */\r\n  data: T;\r\n}\r\n","//============== 服务基类 ========================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { Injector, Injectable } from '@angular/core';\r\nimport { Meow } from \"./../meow\";\r\n\r\n/**\r\n * 服务基类\r\n */\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport abstract class ServiceBase {\r\n  /**\r\n   * 公共操作\r\n   */\r\n  protected meow: Meow;\r\n\r\n  /**\r\n   * 初始化服务\r\n   * @param injector 注入器\r\n   */\r\n  constructor(injector: Injector) {\r\n    this.meow = new Meow(injector);\r\n  }\r\n}\r\n","//================ util模块 ======================\r\n//Copyright 2023 程序喵\r\n//Licensed under the MIT license\r\n//================================================\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n/**\r\n * util模块\r\n */\r\n@NgModule({\r\n  declarations: [\r\n\r\n  ],\r\n  imports: [\r\n    CommonModule, FormsModule\r\n  ],\r\n  exports: [\r\n\r\n  ]\r\n})\r\nexport class MeowModule {\r\n}\r\n","//导出auth\r\nexport * from \"./lib/auth/auth-guard\";\r\nexport * from \"./lib/auth/auth.service\";\r\n\r\n//导出组件\r\nexport * from \"./lib/component/component-base\";\r\n\r\n//导出config\r\nexport * from \"./lib/config/app-config\";\r\n\r\n//导出html操作\r\nexport * from \"./lib/html/model/style\";\r\nexport * from \"./lib/html/model/mouse-location\";\r\n\r\n//导出http\r\nexport * from \"./lib/http/http-method\";\r\nexport * from \"./lib/http/http-content-type\";\r\n\r\n//导出模型\r\nexport * from \"./lib/model/coordinates-2d\";\r\nexport * from \"./lib/model/coordinates-3d\";\r\nexport * from \"./lib/model/key\";\r\nexport * from \"./lib/model/model\";\r\nexport * from \"./lib/model/page-list\";\r\nexport * from \"./lib/model/query-parameter\";\r\nexport * from \"./lib/model/sort\";\r\nexport * from \"./lib/model/select-item\";\r\nexport * from \"./lib/model/view-model\";\r\n\r\n//响应\r\nexport * from \"./lib/response/result\";\r\nexport * from \"./lib/response/fail-result\";\r\nexport * from \"./lib/response/state-code-enum\";\r\n\r\n//导出服务\r\nexport * from \"./lib/service/service-base\";\r\n\r\n//导出meow入口\r\nexport * from \"./lib/meow\";\r\nexport * from \"./lib/meow.module\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["systemIsEmpty","systemRemove","systemTrimStart","systemTrimEnd","systemSplit","systemToString","systemGroupBy","systemAssign","format","systemFormat","Style"],"mappings":"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"}