{"version":3,"sources":["jsdelivr-header.js","/npm/projects/l-52abp-ng/src/common/config.ts","/npm/projects/l-52abp-ng/src/component-base/interfaces.ts","/npm/node_modules/tslib/tslib.es6.js","/npm/projects/l-52abp-ng/src/auth/permission.service.ts","/npm/projects/l-52abp-ng/src/component-base/sample-component-base.ts","/npm/projects/l-52abp-ng/src/session/fake-app-session.service.ts","/npm/projects/l-52abp-ng/src/session/injection.ts","/npm/projects/l-52abp-ng/src/utils/tree-data-helper.service.ts","/npm/projects/l-52abp-ng/src/utils/array-to-tree-converter.service.ts","/npm/projects/l-52abp-ng/src/utils/script-loader.service.ts","/npm/projects/l-52abp-ng/src/utils/enum/enum.service.ts","/npm/projects/l-52abp-ng/src/utils/enum/injection.ts","/npm/projects/l-52abp-ng/src/component-base/app-component-base.ts","/npm/projects/l-52abp-ng/src/component-base/modal-component-base.ts","/npm/projects/l-52abp-ng/src/component-base/paged-listing-component-base.ts","/npm/projects/l-52abp-ng/src/component-base/modal-paged-listing-component-base.ts","/npm/projects/l-52abp-ng/src/component-base/sample-control-component-base.ts","/npm/projects/l-52abp-ng/src/component-base/control-component-base.ts","/npm/projects/l-52abp-ng/src/animations/routerTransition.ts","/npm/projects/l-52abp-ng/src/components/img-show/img-show.component.ts","/npm/projects/l-52abp-ng/src/components/img-show/img-show.component.html","/npm/projects/l-52abp-ng/src/components/no-data/no-data.component.ts","/npm/projects/l-52abp-ng/src/components/page-grid/page-grid.component.ts","/npm/projects/l-52abp-ng/src/components/page-grid/page-grid.component.html","/npm/projects/l-52abp-ng/src/components/pro-langs/pro-langs.component.ts","/npm/projects/l-52abp-ng/src/components/pro-langs/pro-langs.component.html","/npm/projects/l-52abp-ng/src/components/table-checkbox-panel/table-checkbox-panel.component.ts","/npm/projects/l-52abp-ng/src/components/table-checkbox-panel/table-checkbox-panel.component.html","/npm/projects/l-52abp-ng/src/components/l-components.module.ts","/npm/projects/l-52abp-ng/src/directives/auto-focus/auto-focus.directive.ts","/npm/projects/l-52abp-ng/src/directives/scrollbar/interfaces.ts","/npm/projects/l-52abp-ng/src/directives/scrollbar/scrollbar.directive.ts","/npm/projects/l-52abp-ng/src/directives/validation/equal-validator.directive.ts","/npm/projects/l-52abp-ng/src/directives/validation/expression-validator.directive.ts","/npm/projects/l-52abp-ng/src/directives/validation/max-value-validator.directive.ts","/npm/projects/l-52abp-ng/src/directives/validation/min-value-validator.directive.ts","/npm/projects/l-52abp-ng/src/directives/validation/password-complexity-validator.directive.ts","/npm/projects/l-52abp-ng/src/directives/l-directives.module.ts","/npm/projects/l-52abp-ng/src/global-loading/overlay/overlay.component.ts","/npm/projects/l-52abp-ng/src/global-loading/overlay/overlay.component.html","/npm/projects/l-52abp-ng/src/global-loading/l-global-loading.module.ts","/npm/projects/l-52abp-ng/src/global-loading/loading.service.ts","/npm/projects/l-52abp-ng/src/global-loading/loading.interceptor.ts","/npm/projects/l-52abp-ng/src/helpers/request-helper.ts","/npm/projects/l-52abp-ng/src/helpers/message.extension.ts","/npm/projects/l-52abp-ng/src/i18n/localization.service.ts","/npm/projects/l-52abp-ng/src/json-schema/sf-widgets/address/address.widget.ts","/npm/projects/l-52abp-ng/src/json-schema/sf-widgets/markdown/markdown.widget.ts","/npm/projects/l-52abp-ng/src/json-schema/sf-widgets/moment/moment.widget.ts","/npm/projects/l-52abp-ng/src/json-schema/sf-widgets/moment/moment.widget.html","/npm/projects/l-52abp-ng/src/json-schema/sf-widgets/simplemde/simplemde.widget.ts","/npm/projects/l-52abp-ng/src/pipes/moment/moment-format.pipe.ts","/npm/projects/l-52abp-ng/src/pipes/moment/moment-from-now.pipe.ts","/npm/projects/l-52abp-ng/src/pipes/l-pipes.module.ts","/npm/projects/l-52abp-ng/src/json-schema/json-schema-common.ts","/npm/projects/l-52abp-ng/src/json-schema/sf-widgets/sf-widgets.module.ts","/npm/projects/l-52abp-ng/src/json-schema/st-widgets/moment/st-moment.widget.ts","/npm/projects/l-52abp-ng/src/json-schema/st-widgets/moment/st-moment.widget.html","/npm/projects/l-52abp-ng/src/json-schema/st-widgets/st-widgets.module.ts","/npm/projects/l-52abp-ng/src/json-schema/l-json-schema.module.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/date-picker-base.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/date-picker/date-picker.component.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/date-picker/date-picker.component.html","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/year-picker/year-picker.component.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/year-picker/year-picker.component.html","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/month-picker/month-picker.component.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/month-picker/month-picker.component.html","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/week-picker/week-picker.component.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/week-picker/week-picker.component.html","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/range-picker/range-picker.component.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/range-picker/range-picker.component.html","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/time-picker/time-picker.component.ts","/npm/projects/l-52abp-ng/src/ng-zorro/date-picker/time-picker/time-picker.component.html","/npm/projects/l-52abp-ng/src/ng-zorro/l-ng-zorro.module.ts","/npm/projects/l-52abp-ng/src/validation-messages/validation-messages.component.ts","/npm/projects/l-52abp-ng/src/validation-messages/validation-messages.component.html","/npm/projects/l-52abp-ng/src/validation-messages/l-validation-messages.module.ts","/npm/projects/l-52abp-ng/src/l-52abp-common.ts","/npm/projects/l-52abp-ng/src/l-52abp-ng.module.ts","/npm/projects/l-52abp-ng/src/common/module-import-guard.ts"],"names":[],"mappings":"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","file":"/npm/@yoyoboot/l-52abp-ng@0.3.3/bundles/yoyoboot-l-52abp-ng.umd.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@yoyoboot/l-52abp-ng@0.3.3/bundles/yoyoboot-l-52abp-ng.umd.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import { InjectionToken } from '@angular/core';\nimport { IYoyoConfig, IYoyoConfigGrid, IYoyoLang } from './interfaces';\n\nexport const YOYO_CONFIG = new InjectionToken<IYoyoConfig>('yoyo-config', {\n  providedIn: 'root',\n  factory: YOYO_CONFIG_FACTORY\n});\n\nexport function YOYO_CONFIG_FACTORY() {\n  return new YoyoConfig();\n}\n\n\nexport class YoyoConfig implements IYoyoConfig {\n\n  grid = new YoyoConfigGrid();\n\n  lang = new YoyoLang();\n\n  standartErrors = [\n    { error: 'required', localizationKey: 'validation.required' },\n    { error: 'minlength', localizationKey: 'validation.minlength', errorProperty: 'requiredLength' },\n    { error: 'maxlength', localizationKey: 'validation.maxlength', errorProperty: 'requiredLength' },\n    { error: 'email', localizationKey: 'validation.email' },\n    { error: 'pattern', localizationKey: 'validation.pattern' },\n    { error: 'duplicate', localizationKey: 'DuplicateData' },\n    { error: 'min', localizationKey: 'Validation.Common.ValueMustGreaterThan', errorProperty: 'min' },\n    { error: 'max', localizationKey: 'Validation.Common.ValueMustLessThan', errorProperty: 'max' },\n    { error: 'notGreaterThan', localizationKey: 'Validation.Common.ValueMustGreaterThan', errorProperty: 'value' },\n    { error: 'expression', localizationKey: 'ExpressionCheckFailed' },\n    { error: 'exist', localizationKey: 'validation.exist' },\n    { error: 'confirm', localizationKey: 'validation.confirm' },\n  ];\n}\n\n\nexport class YoyoConfigGrid implements IYoyoConfigGrid {\n  defaultPageSize = 20;\n  defaultPageSizes = [20, 50, 80, 100];\n}\n\n\nexport class YoyoLang implements IYoyoLang {\n  defaultSource = 'YoyoCmsTemplate';\n  defaultLang = 'zh-Hans';\n}\n","/**\n * 分页请求必须参数\n */\nexport class PagedResultDto {\n  items: any[];\n  totalCount: number;\n}\n\n/**\n * 实体主键dto\n */\nexport interface IEntityDto {\n  id: number;\n}\n\n/**\n * 分页结果dto\n */\nexport class PagedRequestDto {\n  skipCount: number;\n  maxResultCount: number;\n  sorting: string;\n}\n\n\n/** 排序 */\nexport interface ISortCondition {\n  /** 字段 */\n  field: string | undefined;\n  /** 顺序 */\n  order: number;\n  /** 排序类型 */\n  type: SortType | any;\n}\n\n/** 排序类型 */\nexport enum SortType {\n  None = 'None' as any,\n  Asc = 'Asc' as any,\n  Desc = 'Desc' as any\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { ACLService } from '@delon/acl';\n\n@Injectable()\nexport class PermissionService {\n  constructor(private aclService: ACLService) { }\n\n  /**\n   * 判断是否拥有某权限\n   * @param permissionName (单个/多个) 权限名称\n   */\n  isGranted(permissionName: string | string[]): boolean {\n    if (!permissionName || permissionName.length === 0) {\n      return true;\n    }\n    if (Array.isArray(permissionName)) {\n      return this.aclService.can({\n        role: permissionName,\n        mode: 'allOf'\n      });\n    } else {\n      return this.aclService.can(permissionName);\n    }\n  }\n\n  /**\n   * 添加权限名称\n   * @param permissionName 添加(单个/多个)权限名称\n   */\n  addPermission(permissionName: string | string[]) {\n    if (!permissionName || permissionName.length === 0) {\n      return;\n    }\n\n    if (Array.isArray(permissionName)) {\n      for (const tmppermissionName of permissionName) {\n        if (\n          this.aclService.data.abilities.find(\n            item => item === tmppermissionName\n          )\n        ) {\n          continue;\n        }\n        this.aclService.attachRole([tmppermissionName]);\n      }\n    } else {\n      if (\n        this.aclService.data.abilities.find(item => item === permissionName)\n      ) {\n        return;\n      }\n      this.aclService.attachRole([permissionName]);\n    }\n  }\n\n  /**\n   * 移除单个/多个权限\n   * @param permissionName (单个/多个)权限名称\n   */\n  removePermission(permissionName: string | string[]) {\n    if (!permissionName || permissionName.length === 0) {\n      return;\n    }\n\n    if (Array.isArray(permissionName)) {\n      this.aclService.removeRole(permissionName);\n    } else {\n      this.aclService.removeRole([permissionName]);\n    }\n  }\n\n  /**\n   * 清空所有权限\n   */\n  clear() {\n    const tmppermissionNames: any = this.aclService.data.abilities;\n    this.removePermission(tmppermissionNames);\n  }\n\n  /**\n   * 填充数据\n   * @param auth abp.auth 数据\n   */\n  extend(auth) {\n    const permissions: string[] = [];\n    // tslint:disable-next-line:forin\n    for (const key in auth.grantedPermissions) {\n      permissions.push(key);\n    }\n\n    this.addPermission(permissions);\n  }\n}\n","import { Injector, Input, Directive } from '@angular/core';\nimport { ALAIN_I18N_TOKEN, AlainI18NService } from '@delon/theme';\nimport { PermissionService } from '../auth';\nimport { LocalizationService } from '../i18n';\n\n@Directive()\nexport abstract class SampleComponentBaseDirective {\n\n  /** 加载状态 */\n  @Input() loading: boolean;\n\n  /** 本地化服务 */\n  localization: LocalizationService;\n\n  /** 权限服务 */\n  permission: PermissionService;\n\n\n  constructor(\n    public injector: Injector,\n  ) {\n    this.localization = injector.get<LocalizationService>(ALAIN_I18N_TOKEN);\n    this.permission = injector.get(PermissionService);\n  }\n\n  /**\n   * 本地化\n   * @param key 本地化key\n   * @param args 本地化参数\n   * @returns 本地化结果\n   */\n  l(key: string, ...args: any[]): string {\n    return this.localization.l(key, null, ...args);\n  }\n\n  /**\n   * 权限列表验证\n   * @param permissions 权限名称列表\n   * @returns 是否拥有此权限\n   */\n  isGranted(permissions: string | string[]): boolean {\n    if (!permissions) {\n      return true;\n    }\n\n    return this.permission.isGranted(permissions);\n  }\n\n  /**\n   * 权限列表验证\n   * @param permissions 权限名称列表\n   * @returns 是否拥有此权限\n   */\n  isGrantedAny(...permissions: string[]): boolean {\n    if (!permissions) {\n      return false;\n    }\n    for (const permission of permissions) {\n      if (this.isGranted(permission)) {\n        return true;\n      }\n    }\n    return false;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { AbpSessionService } from 'abp-ng2-module';\nimport { IApplicationInfoDto, IAppSessionService, ITenantLoginInfoDto, IUserLoginInfoDto } from './interfaces';\n\n@Injectable()\nexport class FakeAppSessionService implements IAppSessionService {\n  application: IApplicationInfoDto;\n  user: IUserLoginInfoDto;\n  userId: string;\n  tenant: ITenantLoginInfoDto;\n  tenantId: string;\n\n  init(): Promise<boolean> {\n    throw new Error('Method not implemented.');\n  }\n  getShownLoginName(): string {\n    throw new Error('Method not implemented.');\n  }\n  changeTenantIfNeeded(tenantId?: string): boolean {\n    throw new Error('Method not implemented.');\n  }\n\n}\n","\nimport {InjectionToken} from '@angular/core';\nimport { FakeAppSessionService } from './fake-app-session.service';\nimport { IAppSessionService } from './interfaces';\n\nexport const YOYO_APP_SESSION_SERVICE = new InjectionToken<IAppSessionService>('yoyo-app-session-service', {\n  providedIn: 'root',\n  factory: YOYO_APP_SESSION_SERVICE_FACTORY\n});\n\nexport function YOYO_APP_SESSION_SERVICE_FACTORY() {\n  return new FakeAppSessionService();\n}\n","import { Injectable } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class TreeDataHelperService {\n  findNode(data, selector): any {\n    const nodes = _.filter(data, selector);\n\n    if (nodes && nodes.length === 1) {\n      return nodes[0];\n    }\n\n    let foundNode = null;\n\n    _.forEach(data, d => {\n      if (!foundNode) {\n        foundNode = this.findNode(d.children, selector);\n      }\n    });\n\n    return foundNode;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class ArrayToTreeConverterService {\n  createTree(array: any[], parentIdProperty, idProperty, parentIdValue, childrenProperty: string, fieldMappings): any {\n    const tree = [];\n\n    const nodes = _.filter(array, [parentIdProperty, parentIdValue]);\n\n    _.forEach(nodes, node => {\n      const newNode = {\n        data: node,\n      };\n\n      this.mapFields(node, newNode, fieldMappings);\n\n      newNode[childrenProperty] = this.createTree(\n        array,\n        parentIdProperty,\n        idProperty,\n        node[idProperty],\n        childrenProperty,\n        fieldMappings,\n      );\n\n      tree.push(newNode);\n    });\n\n    return tree;\n  }\n\n  mapFields(node, newNode, fieldMappings): void {\n    _.forEach(fieldMappings, fieldMapping => {\n      if (!fieldMapping.target) {\n        return;\n      }\n\n      if (fieldMapping.hasOwnProperty('value')) {\n        newNode[fieldMapping.target] = fieldMapping.value;\n      } else if (fieldMapping.source) {\n        newNode[fieldMapping.target] = node[fieldMapping.source];\n      } else if (fieldMapping.targetFunction) {\n        newNode[fieldMapping.target] = fieldMapping.targetFunction(node);\n      }\n    });\n  }\n}\n","import {Injectable} from '@angular/core';\n\n// 加载第三方脚本的service\n@Injectable()\nexport class ScriptLoaderService {\n\n    scripts: any = {};\n\n    load(...scripts: string[]) {\n        this.scripts = scripts;\n        const promises: any[] = [];\n        scripts.forEach((script) => promises.push(this.loadScript(script)));\n        return Promise.all(promises);\n    }\n\n    loadScript(name: string) {\n        return new Promise((resolve, reject) => {\n            const script = (document.createElement('script') as any);\n            script.type = 'text/javascript';\n            script.src = name;\n\n            if (script.readyState) {  // IE\n                script.onreadystatechange = () => {\n                    if (script.readyState === 'loaded' || script.readyState === 'complete') {\n                        script.onreadystatechange = null;\n                        resolve({script: name, loaded: true, status: 'Loaded'});\n                    }\n                };\n            } else {  // Others\n                script.onload = () => {\n                    resolve({script: name, loaded: true, status: 'Loaded'});\n                };\n            }\n\n            script.onerror = (error: any) => resolve({script: name, loaded: false, status: 'Loaded'});\n            document.getElementsByTagName('head')[0].appendChild(script);\n        });\n    }\n\n}\n","import { Injectable } from '@angular/core';\nimport { IEnumMap, IEnumService } from './interfaces';\n\n@Injectable()\nexport class EnumService implements IEnumService {\n  constructor() { }\n  getData(type: string): IEnumMap[] {\n    // tslint:disable-next-line:no-string-literal\n    return abp['custom']['EnumMaps'][type];\n  }\n}\n","\n\nimport { InjectionToken } from '@angular/core';\nimport { EnumService } from './enum.service';\nimport { IEnumService } from './interfaces';\n\nexport const YOYO_ENUM_SERVICE = new InjectionToken<IEnumService>('yoyo-enum-service', {\n  providedIn: 'root',\n  factory: YOYO_ENUM_SERVICE_FACTORY\n});\n\nexport function YOYO_ENUM_SERVICE_FACTORY() {\n  return new EnumService();\n}\n","import { Injector, ElementRef, Directive } from '@angular/core';\nimport {\n  FeatureCheckerService,\n  NotifyService,\n  SettingService,\n  MessageService,\n  AbpMultiTenancyService,\n  AbpSessionService,\n} from 'abp-ng2-module';\nimport { ModalHelper, TitleService } from '@delon/theme';\nimport { SFSchemaEnumType } from '@delon/form';\nimport { SampleComponentBaseDirective } from './sample-component-base';\nimport { IYoyoConfig, YOYO_CONFIG } from '../common';\nimport { IAppSessionService, YOYO_APP_SESSION_SERVICE } from '../session';\nimport { IEnumService, YOYO_ENUM_SERVICE } from '../utils';\n\n@Directive()\nexport abstract class AppComponentBaseDirective extends SampleComponentBaseDirective {\n\n\n  /** 保存状态 */\n  saving = false;\n\n  /** 配hi */\n  appConfig: IYoyoConfig;\n  /** 元素服务 */\n  elementRef: ElementRef;\n  /** 模态框服务 */\n  modalHelper: ModalHelper;\n  /** 功能服务 */\n  feature: FeatureCheckerService;\n  /** 通知服务 */\n  notify: NotifyService;\n  /** 配置服务 */\n  setting: SettingService;\n  /** 消息服务 */\n  message: MessageService;\n  /** 多租户服务 */\n  multiTenancy: AbpMultiTenancyService;\n  /** title服务 */\n  titleSrvice: TitleService;\n  /** abp session服务 */\n  abpSession: AbpSessionService;\n  /** app session服务 */\n  appSession: IAppSessionService;\n  /** 枚举服务 */\n  enumService: IEnumService;\n\n  constructor(injector: Injector) {\n    super(injector);\n    this.appConfig = injector.get<IYoyoConfig>(YOYO_CONFIG);\n    this.elementRef = injector.get(ElementRef);\n    this.modalHelper = injector.get(ModalHelper);\n    this.feature = injector.get(FeatureCheckerService);\n    this.notify = injector.get(NotifyService);\n    this.setting = injector.get(SettingService);\n    this.message = injector.get(MessageService);\n    this.multiTenancy = injector.get(AbpMultiTenancyService);\n    this.titleSrvice = injector.get(TitleService);\n    this.abpSession = injector.get(AbpSessionService);\n    this.appSession = injector.get<IAppSessionService>(YOYO_APP_SESSION_SERVICE);\n    this.enumService = injector.get<IEnumService>(YOYO_ENUM_SERVICE);\n  }\n\n\n  /** 将枚举转换SFS的枚举数组 */\n  convertToSFSchemaEnumType(listEnumType: any) {\n    const temp: SFSchemaEnumType[] = [];\n\n    listEnumType.map(item => {\n      temp.push({\n        label: item.key,\n        value: item.value,\n      });\n    });\n\n    return temp;\n  }\n\n\n\n  /** 检查实体历史变更记录是否启用 */\n  checkEntityHistoryEnabled(entityTypeName: string): boolean {\n    const customSettings = (abp as any).custom;\n\n    const entityTypeHistoryEnabled = (customSettings.EntityHistory.enabledEntities as any[]).filter((entityType) => entityType === entityTypeName).length === 1;\n    return (\n      customSettings.EntityHistory &&\n      customSettings.EntityHistory.isEnabled &&\n      entityTypeHistoryEnabled\n    );\n  }\n\n  /** 获取枚举显示名称 */\n  getEnumDisplayName(enumName: string, key: number | string): string {\n    let result = '';\n    if (\n      enumName === undefined ||\n      enumName == null ||\n      key == null ||\n      key === undefined\n    ) {\n      return result;\n    }\n\n    if (typeof (key) === 'number') {\n      return this.l(this.enumService.getData(enumName)[key].displayName);\n    }\n\n    if (typeof (key) === 'string') {\n      const enums = this.enumService.getData(enumName);\n      if (enums.length > 0) {\n        enums.forEach(element => {\n          if (element.value === key) {\n            result = this.l(element.displayName);\n          }\n        });\n      }\n    }\n\n    return result;\n  }\n\n}\n","import { Injector, Directive } from '@angular/core';\nimport { NzModalRef } from 'ng-zorro-antd/modal';\nimport { AppComponentBaseDirective } from './app-component-base';\n\n/** 基于模态框弹出 Form表单提交的基类信息 */\n@Directive()\nexport abstract class ModalComponentBaseDirective extends AppComponentBaseDirective {\n\n  title = '';\n  nzModalRef: NzModalRef;\n\n  /**\n   * 构造函数\n   * @param injector 注入器\n   * @param _nzModalRef nzModal 模态框关闭、销毁等处理帮助，只能在modal中打开的组件中注入，非modal打开的组件注入null即可，否则报错。因为nzModalRef是建立在nzModalComponent之上的。\n   */\n  constructor(injector: Injector) {\n    super(injector);\n    this.nzModalRef = injector.get(NzModalRef);\n  }\n  /**\n   * 带参数回传关闭\n   * @param result 回传参数\n   */\n  success(result: any = true) {\n    if (result) {\n      this.nzModalRef.close(result);\n    } else {\n      this.close();\n    }\n  }\n\n  close($event?: MouseEvent): void {\n    this.nzModalRef.close();\n  }\n}\n","import { AppComponentBaseDirective } from './app-component-base';\nimport { Injector, OnInit, Directive } from '@angular/core';\nimport { ISortCondition, PagedRequestDto, PagedResultDto, SortType } from './interfaces';\nimport { STChange } from '@delon/abc/st';\n\n\n/**\n * 分页列表基类，包含一些分页通用方法。注意 派生类中的 `ngOnInit` 会覆盖此类中的此方法。\n */\n@Directive()\nexport abstract class PagedListingComponentBaseDirective<TEntity> extends AppComponentBaseDirective\n  implements OnInit {\n\n  /** 分页大小 */\n  pageSize = this.appConfig.grid.defaultPageSize;\n\n  /** 当前页 */\n  pageSizeOptions = this.appConfig.grid.defaultPageSizes;\n\n  /** 当前页 */\n  pageNumber = 1;\n\n  /** 总页数 */\n  totalPages = 1;\n  /** 总记录数 */\n  totalItems: number;\n\n  /** 数据是否处于加载状态 */\n  isTableLoading = true;\n\n  /** 是否全部选中 */\n  allChecked = false;\n\n  /** 全选框是否禁用 */\n  allCheckboxDisabled = false;\n\n  /** 选择框非全选状态，控制全选框的样式：☒ */\n  checkboxIndeterminate = false;\n\n  /** 已选中数据项列表 */\n  selectedDataItems: any[] = [];\n\n  /** 排序条件 - 表达式 */\n  sortConditions: ISortCondition[] = [];\n\n  /** 排序 */\n  sorting: string = undefined;\n\n  /** 模糊搜索的文本 */\n  filterText = '';\n\n  /** 数据表的数据源 */\n  dataList: TEntity[] = [];\n\n  /**\n   * 构造函数\n   * @param injector 注入器\n   * @param nzModalRef (optional) nzModal 模态框关闭、销毁等处理帮助，只能在modal中打开的组件中注入，非modal打开的组件注入null即可，否则报错。因为nzModalRef是建立在nzModalComponent之上的。\n   */\n  constructor(injector: Injector) {\n    super(injector);\n  }\n\n  ngOnInit(): void {\n    this.refresh();\n  }\n\n  /** 刷新表格数据 */\n  refresh(): void {\n    this.restCheckStatus(this.dataList);\n    this.getDataPage(this.pageNumber);\n  }\n\n  /** 刷新表格数据并跳转到第一页（`pageNumber = 1`） */\n  refreshGoFirstPage(): void {\n    this.pageNumber = 1;\n    this.restCheckStatus(this.dataList);\n    this.getDataPage(this.pageNumber);\n  }\n\n  /** 布尔类型表格列头过滤列表 */\n  booleanFilterList: any[] = [\n    { text: this.l('All'), value: 'All' },\n    { text: this.l('Yes'), value: true },\n    { text: this.l('No'), value: false }\n  ];\n\n  /** 获取数据页 */\n  getDataPage(page: number): void {\n    const req = new PagedRequestDto();\n    req.maxResultCount = this.pageSize;\n    req.skipCount = (page - 1) * this.pageSize;\n    req.sorting = this.sorting;\n    this.isTableLoading = true;\n    this.fetchDataList(req, page, () => {\n      this.isTableLoading = false;\n      // 更新全选框禁用状态\n      this.refreshAllCheckBoxDisabled();\n    });\n  }\n\n  /** 刷新全选框是否禁用 */\n  refreshAllCheckBoxDisabled(): void {\n    this.allCheckboxDisabled = this.dataList.length <= 0;\n  }\n\n\n  /** 当页码发生改变 */\n  pageNumberChange(): void {\n    if (this.pageNumber > 0) {\n      this.refresh();\n    }\n  }\n\n  /**\n   * 选中全部记录\n   * @param value 是否选中\n   */\n  checkAll(value: boolean): void {\n    this.dataList.forEach(data => (data as any).checked = this.allChecked);\n    this.refreshCheckStatus(this.dataList);\n  }\n\n  /**\n   * 刷新选中状态\n   * @param entityList 数据集合\n   */\n  refreshCheckStatus(entityList: any[]): void {\n    // 是否全部选中\n    const allChecked = entityList.every(value => value.checked === true);\n    // 是否全部未选中\n    const allUnChecked = entityList.every(value => !value.checked);\n    // 是否全选\n    this.allChecked = allChecked;\n    // 全选框样式控制\n    this.checkboxIndeterminate = !allChecked && !allUnChecked;\n    // 已选中数据\n    this.selectedDataItems = entityList.filter(value => value.checked);\n  }\n\n  /**\n   * 重置选中状态\n   * @param entityList 数据集合\n   */\n  restCheckStatus(entityList: any[]): void {\n    if (!Array.isArray(entityList)) {\n      entityList = this.dataList as any[];\n    }\n    this.allChecked = false;\n    this.checkboxIndeterminate = false;\n    // 已选中数据\n    this.selectedDataItems = [];\n    // 设置数据为未选中状态\n    entityList.forEach(value => (value.checked = false));\n  }\n\n  /**\n   * 计算分页\n   * @param result 分页结果Dto\n   * @param pageNumber 当前页码\n   */\n  showPaging(result: PagedResultDto): void {\n    this.totalItems = result.totalCount;\n    this.totalPages = Math.ceil(this.totalItems / this.pageSize);\n  }\n\n  /** 排序条件发生改变 */\n  onSortChange(sortConditions: ISortCondition[], sorting: string) {\n    this.sortConditions = sortConditions ?? [];\n    this.sorting = sorting;\n    this.refresh();\n  }\n\n  /** 数据表格排序 */\n  gridSort(sort: { key: string; value: string }) {\n    this.sorting = undefined;\n    this.sortConditions = [];\n\n    let ascOrDesc = sort.value; // 'ascend' or 'descend' or null\n    const filedName = sort.key; // 字段名\n    if (ascOrDesc) {\n      ascOrDesc = abp.utils.replaceAll(ascOrDesc, 'end', '');\n      const args = ['{0} {1}', filedName, ascOrDesc];\n      const sortingStr = abp.utils.formatString.apply(this, args);\n      this.sorting = sortingStr;\n\n      this.sortConditions.push({\n        field: filedName,\n        order: 0,\n        type: ascOrDesc === 'asc' ? SortType.Asc : SortType.Desc\n      });\n    }\n    this.refresh();\n  }\n\n  /**\n   * 权限列表验证\n   * @param permissions 权限名称列表\n   */\n  isGrantedAny(...permissions: string[]): boolean {\n    if (!permissions) {\n      return false;\n    }\n    for (const permission of permissions) {\n      if (this.isGranted(permission)) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /** st change事件 */\n  stChange(e: STChange): void {\n    switch (e.type) {\n      case 'checkbox': // 多选\n        const checked = e.checkbox;\n        this.refreshCheckStatus(checked);\n        break;\n      case 'radio': // 单选\n        this.refreshCheckStatus([e.radio]);\n        break;\n      case 'sort': // 排序\n        const sortMap = this.processSorting(e);\n        this.onSortChange(this.toSortConditions(sortMap), this.toSortingString(sortMap));\n        break;\n      case 'pi': // page index 修改\n        this.pageNumber = e.pi;\n        this.pageNumberChange();\n        break;\n      case 'ps': // page size 修改\n        this.pageSize = e.ps;\n        this.refresh();\n        break;\n    }\n  }\n\n  /** STChange 转 sort cond */\n  protected toSortConditions(sortMap: { [name: string]: SortType }): ISortCondition[] {\n    if (!sortMap) {\n      return [];\n    }\n\n    let index = 0;\n    const sortConditions: ISortCondition[] = [];\n    // tslint:disable-next-line:forin\n    for (const key in sortMap) {\n      sortConditions.push({\n        field: key,\n        order: index++,\n        type: sortMap[key]\n      });\n    }\n    return sortConditions;\n  }\n\n  /** STChange 转 sorting */\n  protected toSortingString(sortMap: { [name: string]: SortType }): string {\n    if (!sortMap) {\n      return '';\n    }\n    // 处理数据\n    let sorting = '';\n    // tslint:disable-next-line:forin\n    for (const key in sortMap) {\n      sorting += `${key} ${sortMap[key]},`;\n    }\n\n    // 截取最后的字符串\n    if (sorting.endsWith(',')) {\n      sorting = sorting.substr(0, sorting.length - 1);\n    }\n\n    return sorting;\n  }\n\n  /** 预处理sorting数据 */\n  protected processSorting(input: STChange): { [name: string]: SortType } {\n    // 结果集\n    const sortMap: { [name: string]: SortType } = {};\n    if (input.type !== 'sort') {\n      return sortMap;\n    }\n\n    let sortType = SortType.None;\n    // tslint:disable-next-line:no-string-literal\n    const inputSortStringArr = input.sort!.map['sort'].split('-');\n    inputSortStringArr.forEach(o => {\n      const lastIndex = o.lastIndexOf('.');\n      const field = o.substring(0, lastIndex);\n      const fieldSortType = o.substring(lastIndex + 1, o.length);\n\n      sortType = SortType.None;\n      switch (fieldSortType) {\n        case 'descend':\n          sortType = SortType.Desc;\n          break;\n        case 'ascend':\n          sortType = SortType.Asc;\n          break;\n      }\n\n      if (sortType !== SortType.None) {\n        sortMap[field] = sortType;\n      }\n    });\n\n    return sortMap;\n  }\n\n  /**\n   * 获取数据抽象接口，必须实现\n   * @param request 请求必需参数 skipCount: number; maxResultCount: number;\n   * @param pageNumber 当前页码\n   * @param finishedCallback 完成后回调函数\n   */\n  protected abstract fetchDataList(\n    request: PagedRequestDto,\n    pageNumber: number,\n    finishedCallback?: () => void\n  ): void;\n}\n","import { OnInit, Injector, Directive } from '@angular/core';\nimport { PagedListingComponentBaseDirective } from './paged-listing-component-base';\nimport { NzModalRef } from 'ng-zorro-antd/modal';\n\n\n@Directive()\nexport abstract class ModalPagedListingComponentBaseDirective<TEntity>\n  extends PagedListingComponentBaseDirective<TEntity>\n  implements OnInit {\n\n  title = '';\n  nzModalRef: NzModalRef;\n\n  /**\n   * 构造函数\n   * @param injector 注入器\n   * @param _nzModalRef nzModal 模态框关闭、销毁等处理帮助，只能在modal中打开的组件中注入，非modal打开的组件注入null即可，否则报错。因为nzModalRef是建立在nzModalComponent之上的。\n   */\n  constructor(injector: Injector) {\n    super(injector);\n    this.nzModalRef = injector.get(NzModalRef);\n  }\n  /**\n   * 带参数回传关闭\n   * @param result 回传参数\n   */\n  success(result: any = true) {\n    if (result) {\n      this.nzModalRef.close(result);\n    } else {\n      this.close();\n    }\n  }\n\n  close($event?: MouseEvent): void {\n    this.nzModalRef.close();\n  }\n\n}\n","import {\n  AfterViewInit,\n  ChangeDetectorRef,\n  EventEmitter,\n  Injector,\n  Input,\n  OnChanges,\n  OnDestroy,\n  OnInit,\n  Output,\n  SimpleChange,\n  SimpleChanges,\n  Directive\n} from '@angular/core';\nimport { SampleComponentBaseDirective } from './sample-component-base';\n\n/***\n * 简单控件基类\n */\n@Directive()\nexport abstract class SampleControlComponentBaseDirective<T> extends SampleComponentBaseDirective\n  implements OnInit, AfterViewInit, OnDestroy, OnChanges {\n\n  /** 占位符 */\n  @Input()\n  placeholder = '';\n\n  /** 启用清除,默认为false */\n  @Input()\n  enabledClear: boolean;\n\n  /** 启用过滤,默认为false */\n  @Input()\n  enabledFileter: boolean;\n\n  /** 禁用,默认为false */\n  @Input()\n  disabled: boolean;\n\n  /** 值 */\n  @Input()\n  value: T;\n\n  /** 值发生更改事件 */\n  @Output()\n  valueChange = new EventEmitter<T>();\n\n  cdr: ChangeDetectorRef;\n\n  constructor(injector: Injector) {\n    super(injector);\n\n    this.cdr = injector.get(ChangeDetectorRef);\n  }\n\n  ngOnInit(): void {\n    this.onInit();\n  }\n\n  ngAfterViewInit(): void {\n    this.onAfterViewInit();\n  }\n\n  ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges): void {\n    this.onInputChange(changes);\n  }\n\n  ngOnDestroy(): void {\n    this.onDestroy();\n  }\n\n  emitValueChange(val: T) {\n    this.value = val;\n    this.valueChange.emit(val);\n  }\n\n  /** 初始化 */\n  abstract onInit(): void;\n\n  /** 视图初始化完成 */\n  abstract onAfterViewInit(): void;\n\n  /** @Input()标记的值发生改变 */\n  abstract onInputChange(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges);\n\n  /** 释放资源 */\n  abstract onDestroy(): void;\n}\n","import {\n  ChangeDetectorRef,\n  Injector,\n  Input,\n  OnChanges,\n  SimpleChange,\n  SimpleChanges,\n  Directive,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { SampleControlComponentBaseDirective } from './sample-control-component-base';\n\n/***\n * 表单控件基类\n */\n@Directive()\nexport abstract class ControlComponentBaseDirective<T> extends SampleControlComponentBaseDirective<T>\n  implements OnChanges, ControlValueAccessor {\n\n  /** 控件名称 */\n  @Input()\n  name: string;\n\n  constructor(injector: Injector) {\n    super(injector);\n\n    this.cdr = injector.get(ChangeDetectorRef);\n  }\n\n  ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges): void {\n    if (changes.value) {\n      this.writeValue(changes.value.currentValue);\n    }\n    this.onInputChange(changes);\n  }\n\n  registerOnChange(fn: any): void {\n    this.valueChange.emit = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.disabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    this.value = obj;\n    this.cdr.detectChanges();\n  }\n}\n","import { trigger, state, animate, style, transition } from '@angular/animations';\n\nexport function appModuleAnimation() {\n  return slideFromBottom();\n}\n\nexport function accountModuleAnimation() {\n  return slideFromUp();\n}\n\nexport function slideFromBottom() {\n  return trigger('routerTransition', [\n    state('void', style({ 'padding-top': '20px', opacity: '0' })),\n    state('*', style({ 'padding-top': '0px', opacity: '1' })),\n    transition(':enter', [\n      animate('0.33s ease-out', style({ opacity: '1', 'padding-top': '0px' }))\n    ])\n  ]);\n}\n\nexport function slideFromUp() {\n  return trigger('routerTransition', [\n    state('void', style({ 'margin-top': '10px', opacity: '0' })),\n    state('*', style({ 'margin-top': '0px', opacity: '1' })),\n    transition(':enter', [\n      animate('0.3s ease-out', style({ opacity: '1', 'margin-top': '0px' }))\n    ])\n  ]);\n}\n","import {Component, Injector} from '@angular/core';\nimport {ModalComponentBaseDirective} from '../../component-base';\n\n@Component({\n  selector: 'l-img-show',\n  templateUrl: './img-show.component.html',\n  styles: []\n})\nexport class ImgShowComponent extends ModalComponentBaseDirective {\n  imgUrl = '';\n\n  constructor(injector: Injector) {\n    super(injector);\n  }\n}\n","<img [src]=\"imgUrl\" style=\"width:100%;height:100%;margin-top: 20px;\" />\n","import {Component, Input, OnInit, Injector} from '@angular/core';\nimport {SampleComponentBaseDirective} from '../../component-base';\n\n@Component({\n  selector: 'l-no-data',\n  template: `\n    <span class=\"no-result-data\">\n      <i *ngIf=\"icon\" [class]=\"icon\"></i>\n      <span>{{ text }}</span>\n    </span>\n  `,\n  styles: [\n    `\n      .no-result-data {\n        color: rgba(0, 0, 0, 0.25);\n        text-align: center;\n        line-height: 64px;\n        font-size: 16px;\n        margin: 0 auto;\n      }\n\n      .no-result-data i {\n        font-size: 24px;\n        margin-right: 16px;\n        position: relative;\n        top: 3px;\n      }\n    `,\n  ],\n  preserveWhitespaces: false,\n})\nexport class NoDataComponent extends SampleComponentBaseDirective implements OnInit {\n  // region fields\n  /**\n   * 显示文本\n   */\n  @Input()\n  text: string;\n\n  /**\n   * 图标\n   */\n  @Input()\n  icon = 'iconfont icon-frown-o';\n\n  // endregion\n  constructor(injector: Injector) {\n    super(injector);\n  }\n\n  ngOnInit() {\n    if (!this.text) {\n      this.text = this.l('NoData');\n    }\n  }\n}\n","import {\n  Component,\n  Input,\n  Optional,\n  Inject,\n  AfterViewInit,\n  Renderer2,\n  ElementRef,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { InputBoolean } from '@delon/util';\nimport { TitleService } from '@delon/theme';\nimport { ReuseTabService } from '@delon/abc/reuse-tab';\n\n@Component({\n  selector: 'l-page-grid',\n  templateUrl: './page-grid.component.html',\n  host: {\n    '[class.alain-pro__page-grid]': 'true',\n    '[class.alain-pro__page-grid-no-spacing]': 'noSpacing',\n    '[class.alain-pro__page-grid-wide]': 'false',\n  },\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PageGridComponent implements AfterViewInit {\n  @Input() @InputBoolean() loading = false;\n\n  @Input() @InputBoolean() noSpacing = false;\n\n  @Input() style: any;\n\n  @Input()\n  set title(value: string) {\n    if (value) {\n      if (this.titleSrv) {\n        this.titleSrv.setTitle(value);\n      }\n      if (this.reuseSrv) {\n        this.reuseSrv.title = value;\n      }\n    }\n  }\n\n  constructor(\n    private el: ElementRef,\n    private rend: Renderer2,\n    @Optional() @Inject(TitleService) private titleSrv: TitleService,\n    @Optional() @Inject(ReuseTabService) private reuseSrv: ReuseTabService,\n  ) { }\n\n  ngAfterViewInit() {\n    if (this.style) {\n      Object.keys(this.style).forEach((key: string) => {\n        this.rend.setStyle(this.el.nativeElement, key, this.style[key]);\n      });\n    }\n  }\n}\n","<nz-spin [nzSpinning]=\"loading\">\n  <div *ngIf=\"loading\" class=\"brand-page-loading\"></div>\n  <ng-template nzDrawerContent></ng-template>\n</nz-spin>\n","import { Component, Input, OnInit, Injector } from '@angular/core';\nimport { UtilsService } from 'abp-ng2-module';\nimport { NzPlacementType } from 'ng-zorro-antd/dropdown';\nimport { SampleComponentBaseDirective } from '../../component-base';\n\n@Component({\n  selector: 'l-pro-langs',\n  templateUrl: './pro-langs.component.html',\n  styles: [],\n})\nexport class ProLangsComponent extends SampleComponentBaseDirective implements OnInit {\n  languages: abp.localization.ILanguageInfo[];\n  currentLanguage: abp.localization.ILanguageInfo;\n\n  @Input() placement: NzPlacementType = 'bottomRight';\n  @Input() btnClass = 'alain-pro__header-item';\n  @Input() btnIconClass = 'alain-pro__header-item-icon';\n\n  constructor(injector: Injector, private utilsService: UtilsService) {\n    super(injector);\n  }\n\n  ngOnInit() {\n    this.languages = this.localization.languages.filter(l => !l.isDisabled);\n    //  _.filter(this.localization.languages, l => !l.isDisabled);\n    this.currentLanguage = this.localization.currentLanguage;\n  }\n\n  changeLanguage(languageName: string): void {\n    this.utilsService.setCookieValue(\n      'Abp.Localization.CultureName',\n      languageName,\n      new Date(new Date().getTime() + 5 * 365 * 86400000), // 5 year\n      abp.appPath,\n    );\n\n    location.reload();\n  }\n}\n","<div nz-dropdown [nzDropdownMenu]=\"langMenu\" [nzPlacement]=\"placement\" [ngClass]=\"btnClass\">\n  <i nz-icon nzType=\"global\" [ngClass]=\"btnIconClass\"></i>\n</div>\n<nz-dropdown-menu #langMenu=\"nzDropdownMenu\">\n  <div nz-menu class=\"width-sm\" *ngIf=\"languages && currentLanguage\">\n    <li nz-menu-item *ngFor=\"let item of languages\" [nzSelected]=\"item.name == currentLanguage.name\" (click)=\"changeLanguage(item.name)\">\n      <i class=\"anticon {{ item.icon }}\"></i>\n      <span>{{ item.displayName }}</span>\n    </li>\n  </div>\n</nz-dropdown-menu>\n","import {Component, OnInit, Output, EventEmitter, Injector, Input} from '@angular/core';\nimport {SampleComponentBaseDirective} from '../../component-base';\n\n@Component({\n  selector: 'l-table-checkbox-panel',\n  templateUrl: './table-checkbox-panel.component.html',\n  styles: [],\n})\nexport class TableCheckboxPanelComponent extends SampleComponentBaseDirective implements OnInit {\n\n  @Output() onClear = new EventEmitter<void>();\n\n  @Output() onRefresh = new EventEmitter<void>();\n\n  @Input() selectLength = 0;\n\n  constructor(injector: Injector) {\n    super(injector);\n  }\n\n  ngOnInit() {\n  }\n\n  onClearClick() {\n    this.onClear.emit();\n  }\n\n  // 触发刷新方法，调用绑定的onRefresh事件\n  onRefreshClick() {\n    this.onRefresh.emit();\n  }\n}\n","<!-- 复选框提示的内容数据部分 -->\n<div class=\"my-md\">\n  <nz-alert [nzType]=\"'info'\" [nzShowIcon]=\"true\" [nzMessage]=\"message\">\n    <ng-template #message>\n      <span [innerHTML]=\"l('GridSelectedXItemsTips', selectLength)\"></span>\n      <a (click)=\"onClearClick()\" class=\"ml-md\">\n        {{ l('ClearEmpty') }}\n      </a>\n      <nz-divider nzType=\"vertical\"></nz-divider>\n      <a (click)=\"onRefreshClick()\"> {{ l('Refresh') }} </a>\n    </ng-template>\n  </nz-alert>\n</div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {NzSelectModule} from 'ng-zorro-antd/select';\nimport {NzDropDownModule} from 'ng-zorro-antd/dropdown';\nimport {NzSpinModule} from 'ng-zorro-antd/spin';\nimport {NzAlertModule} from 'ng-zorro-antd/alert';\nimport {NzDividerModule} from 'ng-zorro-antd/divider';\n\nimport {ImgShowComponent} from './img-show';\nimport {NoDataComponent} from './no-data';\nimport {PageGridComponent} from './page-grid';\nimport {ProLangsComponent} from './pro-langs';\nimport {TableCheckboxPanelComponent} from './table-checkbox-panel';\n\nconst NG_ZORRO_MODULES = [\n  NzSelectModule,\n  NzDropDownModule,\n  NzSpinModule,\n  NzAlertModule,\n  NzDividerModule,\n];\n\nconst ENTRY_COMPONENTS = [\n  ImgShowComponent,\n];\n\nconst ALL_COMPONENTS = [\n  NoDataComponent,\n  PageGridComponent,\n  ProLangsComponent,\n  TableCheckboxPanelComponent,\n  ...ENTRY_COMPONENTS\n];\n\n/** 自定义组件模块 */\n@NgModule({\n  imports: [\n    CommonModule,\n    ...NG_ZORRO_MODULES\n  ],\n  declarations: [\n    ...ALL_COMPONENTS\n  ],\n  exports: [\n    ...ALL_COMPONENTS\n  ],\n  entryComponents: [\n    ...ENTRY_COMPONENTS\n  ]\n})\nexport class LComponentsModule {\n\n}\n","import { Directive, ElementRef, AfterViewInit } from '@angular/core';\n\n@Directive({\n  selector: '[autoFocus]',\n})\nexport class AutoFocusDirective implements AfterViewInit {\n  constructor(private element: ElementRef) { }\n\n  ngAfterViewInit(): void {\n    const ele = this.element.nativeElement as HTMLElement;\n    if (ele) {\n      ele.focus();\n    }\n  }\n}\n","import PerfectScrollbar from 'perfect-scrollbar';\n\nexport interface ScrollbarOptions extends PerfectScrollbar.Options {\n  /**\n   * 延迟初始化\n   */\n  delay?: number;\n}\n\nexport type PerfectScrollbarEvent =\n  | 'psScrollY'\n  | 'psScrollX'\n  | 'psScrollUp'\n  | 'psScrollDown'\n  | 'psScrollLeft'\n  | 'psScrollRight'\n  | 'psYReachEnd'\n  | 'psYReachStart'\n  | 'psXReachEnd'\n  | 'psXReachStart';\n\nexport const PerfectScrollbarEvents: PerfectScrollbarEvent[] = [\n  'psScrollY',\n  'psScrollX',\n\n  'psScrollUp',\n  'psScrollDown',\n  'psScrollLeft',\n  'psScrollRight',\n\n  'psYReachEnd',\n  'psYReachStart',\n  'psXReachEnd',\n  'psXReachStart',\n];\n","import {\n  Directive,\n  AfterViewInit,\n  OnDestroy,\n  ElementRef,\n  NgZone,\n  Input,\n  Output,\n  EventEmitter\n} from '@angular/core';\nimport PerfectScrollbar from 'perfect-scrollbar';\nimport {toBoolean} from '@delon/util';\nimport {ScrollbarOptions, PerfectScrollbarEvents, PerfectScrollbarEvent} from './interfaces';\nimport {fromEvent, Subject} from 'rxjs';\nimport {debounceTime, takeUntil} from 'rxjs/operators';\n\n@Directive({\n  selector: '[Scrollbar]',\n  exportAs: 'scrollbarComp',\n})\nexport class ScrollbarDirective implements AfterViewInit, OnDestroy {\n  private instance: PerfectScrollbar = null;\n  private readonly ngDestroy: Subject<void> = new Subject();\n  private _disabled = false;\n\n  @Input('scrollbar') options: ScrollbarOptions = {};\n\n  @Input()\n  set disabled(value: boolean) {\n    this._disabled = toBoolean(value);\n    if (this._disabled) {\n      this.ngOnDestroy();\n    } else {\n      this.init();\n    }\n  }\n\n  @Output() readonly psScrollX: EventEmitter<any> = new EventEmitter<any>();\n  @Output() readonly psScrollY: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() readonly psScrollUp: EventEmitter<any> = new EventEmitter<any>();\n  @Output() readonly psScrollDown: EventEmitter<any> = new EventEmitter<any>();\n  @Output() readonly psScrollLeft: EventEmitter<any> = new EventEmitter<any>();\n  @Output() readonly psScrollRight: EventEmitter<any> = new EventEmitter<any>();\n\n  @Output() readonly psXReachStart: EventEmitter<any> = new EventEmitter<any>();\n  @Output() readonly psXReachEnd: EventEmitter<any> = new EventEmitter<any>();\n  @Output() readonly psYReachStart: EventEmitter<any> = new EventEmitter<any>();\n  @Output() readonly psYReachEnd: EventEmitter<any> = new EventEmitter<any>();\n\n  constructor(private elRef: ElementRef, private zone: NgZone) {\n  }\n\n  private get el() {\n    return this.elRef.nativeElement as HTMLElement;\n  }\n\n  scrollToBottom() {\n    this.el.scrollTop = this.el.scrollHeight - this.el.clientHeight;\n  }\n\n  scrollToTop() {\n    this.el.scrollTop = 0;\n  }\n\n  scrollToLeft() {\n    this.el.scrollLeft = 0;\n  }\n\n  scrollToRight() {\n    this.el.scrollLeft = this.el.scrollWidth - this.el.clientWidth;\n  }\n\n  private init() {\n    this.zone.runOutsideAngular(() => {\n      const options = {\n        wheelSpeed: 0.5,\n        swipeEasing: true,\n        wheelPropagation: false,\n        minScrollbarLength: 40,\n        maxScrollbarLength: 300,\n        ...this.options,\n      };\n      setTimeout(() => {\n        if (this._disabled) {\n          return;\n        }\n\n        this.instance = new PerfectScrollbar(this.el, options);\n\n        PerfectScrollbarEvents.forEach((eventName: PerfectScrollbarEvent) => {\n          const eventType = eventName.replace(/([A-Z])/g, c => `-${c.toLowerCase()}`);\n\n          fromEvent<Event>(this.el, eventType)\n            .pipe(debounceTime(20), takeUntil(this.ngDestroy))\n            .subscribe((event: Event) => {\n              this[eventName].emit(event);\n            });\n        });\n      }, this.options.delay || 0);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.ngDestroy.next();\n    this.ngDestroy.complete();\n    this.zone.runOutsideAngular(() => {\n      if (this.instance) {\n        this.instance.destroy();\n      }\n      this.instance = null;\n    });\n  }\n\n  ngAfterViewInit(): void {\n    this.init();\n  }\n}\n","import { Directive, forwardRef, Attribute, Input } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS, ValidationErrors } from '@angular/forms';\n\n// Got from: https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2\n\n@Directive({\n  selector: '[validateEqual][formControlName],[validateEqual][formControl],[validateEqual][ngModel],:not([type=checkbox])[confirm][formControlName],:not([type=checkbox])[confirm][formControl],:not([type=checkbox])[confirm][ngModel]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => EqualValidator),\n      multi: true,\n    },\n  ],\n})\nexport class EqualValidator implements Validator {\n\n  private _default = {};\n  private _enabled = false;\n  private _onChange?: () => void;\n  private _confirmValue: string;\n\n  constructor() {\n  }\n\n  @Input()\n  set confirm(value: string) {\n    this._confirmValue = value;\n    this._enabled = typeof (value) === 'string';\n    if (this._onChange) {\n      this._onChange();\n    }\n  }\n\n  @Input()\n  set validateEqual(value: string) {\n    this.confirm = value;\n  }\n\n  validate(control: AbstractControl): ValidationErrors | null {\n    if (!this._enabled) {\n      return this._default;\n    }\n    if (!control.value || control.value.trim() === '') {\n      return this._default;\n    }\n    if (control.value !== this._confirmValue) {\n      return { validateEqual: true, confirm: true, error: true };\n    }\n\n    return this._default;\n  }\n\n  registerOnValidatorChange(fn: () => void): void {\n    this._onChange = fn;\n  }\n}\n","import { Directive, forwardRef, Input } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n  selector: '[expression]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => ExpressionValidator),\n      multi: true,\n    },\n  ],\n})\nexport class ExpressionValidator implements Validator {\n\n  /** 条件表达式 */\n  @Input() expression: string[] | string;\n\n  validate(control: AbstractControl): { [key: string]: any } {\n    let validationResult = null;\n\n    if (!this.expression) {\n      return validationResult;\n    }\n\n    if (!control.value || control.value.length < 0) {\n      return validationResult;\n    }\n\n    const currentValue = control.value;\n\n\n    let error = false;\n    let regexp: RegExp;\n    if (Array.isArray(this.expression)) {\n      for (const item of this.expression) {\n        regexp = new RegExp(item);\n        if (!regexp.test(currentValue)) {\n          error = true;\n          break;\n        }\n      }\n    } else {\n      regexp = new RegExp(this.expression);\n      error = !regexp.test(currentValue);\n    }\n\n\n    if (error) {\n      validationResult = {};\n      validationResult.expression = true;\n    } else {\n      validationResult = null;\n    }\n\n    return validationResult;\n  }\n}\n","import { Directive, forwardRef, Attribute, Input } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n  selector: '[maxValue]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => MaxValueValidator),\n      multi: true,\n    },\n  ],\n})\nexport class MaxValueValidator implements Validator {\n\n  @Input() maxValue: number;\n\n  validate(control: AbstractControl): { [key: string]: any } {\n    const currentValue = control.value;\n    let validationResult = null;\n\n    if (!currentValue) { return validationResult; }\n\n    const maxValue = this.maxValue;\n    if (maxValue && currentValue > maxValue) {\n      validationResult = validationResult || {};\n      validationResult.maxValue = true;\n    }\n\n    return validationResult;\n  }\n}\n","import { Directive, forwardRef, Attribute, Input } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n  selector: '[minValue]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => MinValueValidator),\n      multi: true,\n    },\n  ],\n})\nexport class MinValueValidator implements Validator {\n\n  @Input() minValue: number;\n\n  validate(control: AbstractControl): { [key: string]: any } {\n    const currentValue = control.value;\n    let validationResult = null;\n\n    if (!currentValue) {\n      return validationResult;\n    }\n\n\n\n    const minValue = this.minValue;\n    if (minValue && currentValue < minValue) {\n      validationResult = validationResult || {};\n      validationResult.minValue = true;\n    }\n\n    return validationResult;\n  }\n}\n","import { Directive, forwardRef, Attribute, Input } from '@angular/core';\nimport { Validator, AbstractControl, NG_VALIDATORS } from '@angular/forms';\n\n@Directive({\n  selector: '[requireDigit],[requireLowercase],[requireNonAlphanumeric],[requireUppercase],[requiredLength]',\n  providers: [\n    {\n      provide: NG_VALIDATORS,\n      useExisting: forwardRef(() => PasswordComplexityValidator),\n      multi: true,\n    },\n  ],\n})\nexport class PasswordComplexityValidator implements Validator {\n\n  @Input() requireDigit: boolean;\n\n  @Input() requireUppercase: boolean;\n\n  @Input() requireLowercase: boolean;\n\n  @Input() requireNonAlphanumeric: boolean;\n\n  @Input() requiredLength: number;\n\n  validate(control: AbstractControl): { [key: string]: any } {\n    const givenPassword = control.value;\n    let validationResult = null;\n\n    const requireDigit = this.requireDigit;\n    if (requireDigit && givenPassword && !/[0-9]/.test(givenPassword)) {\n      validationResult = validationResult || {};\n      validationResult.requireDigit = true;\n    }\n\n    const requireUppercase = this.requireUppercase;\n    if (requireUppercase && givenPassword && !/[A-Z]/.test(givenPassword)) {\n      validationResult = validationResult || {};\n      validationResult.requireUppercase = true;\n    }\n\n    const requireLowercase = this.requireLowercase;\n    if (requireLowercase && givenPassword && !/[a-z]/.test(givenPassword)) {\n      validationResult = validationResult || {};\n      validationResult.requireLowercase = true;\n    }\n\n    const requiredLength = this.requiredLength;\n    if (\n      requiredLength &&\n      givenPassword &&\n      givenPassword.length < requiredLength\n    ) {\n      validationResult = validationResult || {};\n      validationResult.requiredLength = true;\n    }\n\n    // use upperCaseLetters\n    const requireNonAlphanumeric = this.requireNonAlphanumeric;\n    if (\n      requireNonAlphanumeric &&\n      givenPassword &&\n      /^[0-9a-zA-Z]+$/.test(givenPassword)\n    ) {\n      validationResult = validationResult || {};\n      validationResult.requireNonAlphanumeric = true;\n    }\n\n    return validationResult;\n  }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule, ModuleWithProviders} from '@angular/core';\n\nimport {AutoFocusDirective} from './auto-focus';\nimport {ScrollbarDirective} from './scrollbar';\nimport {\n  MinValueValidator,\n  PasswordComplexityValidator,\n  EqualValidator,\n  ExpressionValidator,\n  MaxValueValidator\n} from './validation';\n\n\nconst VALIDATION_DIRECTIVES = [\n  EqualValidator,\n  MinValueValidator,\n  PasswordComplexityValidator,\n  ExpressionValidator,\n  MaxValueValidator,\n];\n\nconst ALL_DIRECTIVES = [\n  AutoFocusDirective,\n  ScrollbarDirective,\n  ...VALIDATION_DIRECTIVES\n];\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [\n    ...ALL_DIRECTIVES\n  ],\n  exports: [\n    ...ALL_DIRECTIVES\n  ],\n})\n\n/** 自定义指令模块 */\nexport class LDirectivesModule {\n  static forRoot(): ModuleWithProviders<LDirectivesModule> {\n    return {ngModule: LDirectivesModule};\n  }\n}\n","import {Component, OnInit, Injector} from '@angular/core';\nimport {ALAIN_I18N_TOKEN, AlainI18NService} from '@delon/theme';\n\n@Component({\n\n  selector: 'l-overlay',\n  templateUrl: './overlay.component.html',\n  styleUrls: ['./overlay.component.less']\n})\nexport class OverlayComponent implements OnInit {\n\n  loadingThreeDot: any;\n  i18nSer: AlainI18NService;\n\n  constructor(\n    public injector: Injector,\n  ) {\n    this.i18nSer = injector.get<AlainI18NService>(ALAIN_I18N_TOKEN);\n  }\n\n  ngOnInit() {\n    this.loadingThreeDot = this.i18nSer.fanyi('LoadingThreeDot');\n  }\n}\n","<!-- <nz-spin [nzTip]=\"loadingThreeDot\" nzSimple [nzSize]=\"'large'\"></nz-spin> -->\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {OverlayComponent} from './overlay/overlay.component';\n\nconst ENTRY_COMPONENTS = [\n  OverlayComponent\n];\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [\n    ...ENTRY_COMPONENTS\n  ],\n  entryComponents: [\n    ...ENTRY_COMPONENTS\n  ]\n})\nexport class LGlobalLoadingModule {\n}\n","import {Overlay, OverlayRef, OverlayConfig} from '@angular/cdk/overlay';\nimport {ComponentPortal} from '@angular/cdk/portal';\nimport {\n  Injectable,\n  ViewContainerRef,\n  Type\n} from '@angular/core';\nimport {OverlayComponent} from './overlay/overlay.component';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class LoadingService {\n  static appliedComponents = [];\n\n  showLoading = false;\n\n  overlayRef: OverlayRef;\n\n  constructor(public overlay: Overlay) {\n  }\n\n  /** 显示加载效果 */\n  show(message = '', target?: ViewContainerRef) {\n    if (!this.showLoading) {\n      const config = new OverlayConfig();\n      if (target) {\n        config.positionStrategy = this.overlay\n          .position()\n          .flexibleConnectedTo(target.element)\n          .withPositions([\n            {\n              originY: 'center',\n              originX: 'center',\n              overlayX: 'start',\n              overlayY: 'top'\n            }\n          ]);\n      } else {\n        config.positionStrategy = this.overlay\n          .position()\n          .global()\n          .centerHorizontally() // 水平居中\n          .centerVertically();\n      }\n      config.hasBackdrop = true;\n      this.overlayRef = this.overlay.create(config); // OverlayRef, overlay层\n      this.overlayRef.attach(new ComponentPortal(OverlayComponent, target));\n      this.showLoading = true;\n    }\n  }\n\n  /** 隐藏 */\n  hide() {\n    if (this.showLoading) {\n      this.overlayRef.dispose();\n      this.showLoading = false;\n    }\n  }\n\n\n  static include(componentType: string | Type<any>): any {\n    if (!LoadingService.appliedComponents.includes(componentType)) {\n      LoadingService.appliedComponents.push(componentType);\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\n\nimport { Observable } from 'rxjs';\nimport { LoadingService } from './loading.service';\nimport { finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class LoadingInterceptor implements HttpInterceptor {\n  constructor(private loadingOverlayService: LoadingService) {\n\n  }\n  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\n    this.loadingOverlayService.show();\n    return next.handle(req).pipe(finalize(() => {\n      setTimeout(() => {\n        this.loadingOverlayService.hide();\n      }, 500);\n    }));\n  }\n}\n","import {HttpHeaders, HttpClient, HttpRequest, HttpEvent} from '@angular/common/http';\nimport {Observable} from 'rxjs';\n\n/** 请求帮助器 */\nexport class RequestHelper {\n\n  /**\n   * 创建请求头\n   */\n  public static createHttpHeaders(): HttpHeaders {\n    let modifiedHeaders = new HttpHeaders();\n    modifiedHeaders.append('Pragma', 'no-cache');\n    modifiedHeaders.append('Cache-Control', 'no-cache');\n    modifiedHeaders.append('Expires', 'Sat, 01 Jan 2000 00:00:00 GMT');\n    modifiedHeaders = this.addXRequestedWithHeader(modifiedHeaders);\n    modifiedHeaders = this.addAuthorizationHeaders(modifiedHeaders);\n    modifiedHeaders = this.addAspNetCoreCultureHeader(modifiedHeaders);\n    modifiedHeaders = this.addAcceptLanguageHeader(modifiedHeaders);\n    modifiedHeaders = this.addTenantIdHeader(modifiedHeaders);\n    return modifiedHeaders;\n  }\n\n\n  /**\n   * 创建请求\n   * @param httpClient http客户端\n   * @param url 地址\n   * @param methad 请求方式, GET\\POST\\PUT\\DELETE,默认值get\n   * @param formDate formDate\n   * @param headers 请求头\n   */\n  public static createRequest(httpClient: HttpClient, url: string, methad?: string, formDate?: FormData, headers?: HttpHeaders): Observable<HttpEvent<{}>> {\n    if (!headers) {\n      headers = RequestHelper.createHttpHeaders();\n    }\n    if (!methad) {\n      methad = 'GET';\n    }\n\n    const request = new HttpRequest(methad, url, formDate, {\n      headers\n    });\n    return httpClient.request(request);\n  }\n\n  public static addXRequestedWithHeader(headers: HttpHeaders): HttpHeaders {\n    if (headers) {\n      headers = headers.set('X-Requested-With', 'XMLHttpRequest');\n    }\n\n    return headers;\n  }\n\n  public static addAspNetCoreCultureHeader(headers: HttpHeaders): HttpHeaders {\n    const cookieLangValue = abp.utils.getCookieValue('Abp.Localization.CultureName');\n    if (cookieLangValue && headers && !headers.has('.AspNetCore.Culture')) {\n      headers = headers.set('.AspNetCore.Culture', cookieLangValue);\n    }\n\n    return headers;\n  }\n\n  public static addAcceptLanguageHeader(headers: HttpHeaders): HttpHeaders {\n    const cookieLangValue = abp.utils.getCookieValue('Abp.Localization.CultureName');\n    if (cookieLangValue && headers && !headers.has('Accept-Language')) {\n      headers = headers.set('Accept-Language', cookieLangValue);\n    }\n\n    return headers;\n  }\n\n  public static addTenantIdHeader(headers: HttpHeaders): HttpHeaders {\n    const cookieTenantIdValue = abp.utils.getCookieValue('Abp.TenantId');\n    if (cookieTenantIdValue && headers && !headers.has('Abp.TenantId')) {\n      headers = headers.set('Abp.TenantId', cookieTenantIdValue);\n    }\n\n    return headers;\n  }\n\n  public static addAuthorizationHeaders(headers: HttpHeaders): HttpHeaders {\n    let authorizationHeaders = headers ? headers.getAll('Authorization') : null;\n    if (!authorizationHeaders) {\n      authorizationHeaders = [];\n    }\n\n    if (!this.itemExists(authorizationHeaders, (item: string) => item.indexOf('Bearer ') === 0)) {\n      const token = abp.auth.getToken();\n      if (headers && token) {\n        headers = headers.set('Authorization', 'Bearer ' + token);\n      }\n    }\n\n    return headers;\n  }\n\n  private static itemExists<T>(items: T[], predicate: (item: T) => boolean): boolean {\n    for (const item of items) {\n      if (predicate(item)) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n}\n","import {NzNotificationService} from 'ng-zorro-antd/notification';\nimport {NzModalService} from 'ng-zorro-antd/modal';\nimport {NzMessageService} from 'ng-zorro-antd/message';\n\nexport class MessageExtension {\n  /**\n   * 覆盖abp.message替换为ng-zorro的全局message\n   * @param _nzMessageService 消息服务\n   * @param _nzModalService 模态框服务\n   */\n\n  static overrideAbpMessageByMini(_nzMessageService: NzMessageService, _nzModalService?: NzModalService) {\n    if (_nzModalService) {\n      if ((abp as any).nzModal) {\n        return;\n      }\n\n      (abp as any).nzModal = _nzModalService;\n    }\n    if ((abp as any).nzMessage) {\n      return;\n    }\n    (abp as any).nzMessage = _nzMessageService;\n\n    abp.message.info = (message: string, title?: string) => {\n      //   const timingCounts = parseInt(title, 0);\n      // (<any>abp).nzMessage.info(message, { nzDuration: timingCounts });\n      (abp as any).nzMessage.info(message);\n    };\n\n    abp.message.warn = (message: string, title?: string) => {\n      (abp as any).nzMessage.warning(message);\n    };\n    abp.message.error = (message: string, title?: string) => {\n      (abp as any).nzMessage.error(message);\n    };\n    abp.message.success = (message: string, title?: string) => {\n      (abp as any).nzMessage.success(message);\n    };\n    abp.message.confirm = this.confirm;\n  }\n\n  /**\n   * 覆盖abp.message替换为ng-zorro的模态框\n   * @param _nzModalService 模态框服务\n   */\n  static overrideAbpMessageByNgModal(_nzModalService: NzModalService) {\n    if ((abp as any).nzModal) {\n      return;\n    }\n\n    (abp as any).nzModal = _nzModalService;\n\n    abp.message.info = (message: string, title?: string) => {\n      (abp as any).nzModal.info({\n        nzTitle: title,\n        nzContent: message,\n        nzMask: true,\n      });\n    };\n\n    abp.message.warn = (message: string, title?: string) => {\n      (abp as any).nzModal.warning({\n        nzTitle: title,\n        nzContent: message,\n        nzMask: true,\n      });\n    };\n    abp.message.error = (message: string, title?: string) => {\n      (abp as any).nzModal.error({\n        nzTitle: title,\n        nzContent: message,\n        nzMask: true,\n      });\n    };\n    abp.message.success = (message: string, title?: string) => {\n      (abp as any).nzModal.success({\n        nzTitle: title,\n        nzContent: message,\n        nzMask: true,\n      });\n    };\n    abp.message.confirm = this.confirm;\n  }\n\n  // 覆盖abp.message替换为ng-zorro的notify\n  static overrideAbpNotify(_nzNotificationService: NzNotificationService) {\n    if ((abp as any).nzNotify) {\n      return;\n    }\n\n    (abp as any).nzNotify = _nzNotificationService;\n\n    abp.notify.info = (message: string, title?: string, options?: any) => {\n      (abp as any).nzNotify.info(message, title, options);\n    };\n    abp.notify.warn = (message: string, title?: string, options?: any) => {\n      (abp as any).nzNotify.warning(message, title, options);\n    };\n    abp.notify.error = (message: string, title?: string, options?: any) => {\n      (abp as any).nzNotify.error(message, title, options);\n    };\n    abp.notify.success = (message: string, title?: string, options?: any) => {\n      (abp as any).nzNotify.success(message, title, options);\n    };\n  }\n\n  // msg confirm\n  private static confirm(message: string, callback?: (result: boolean) => void): any;\n\n  private static confirm(message: string, title?: string, callback?: (result: boolean) => void): any;\n\n  private static confirm(\n    message: string,\n    titleOrCallBack?: string | ((result: boolean) => void),\n    callback?: (result: boolean) => void,\n  ): any {\n    if (typeof titleOrCallBack === 'string' || typeof titleOrCallBack === 'undefined') {\n      (abp as any).nzModal.confirm({\n        nzTitle: titleOrCallBack,\n        nzContent: message,\n        nzOnOk() {\n          if (callback) {\n            callback(true);\n          }\n        },\n        nzOnCancel() {\n          if (callback) {\n            callback(false);\n          }\n        },\n      });\n    } else {\n      (abp as any).nzModal.confirm({\n        nzTitle: abp.localization.localize('MessageConfirmOperation', abp.localization.defaultSourceName),\n        nzContent: message,\n        nzOnOk() {\n          if (titleOrCallBack) {\n            titleOrCallBack(true);\n          }\n        },\n        nzOnCancel() {\n          if (titleOrCallBack) {\n            titleOrCallBack(false);\n          }\n        },\n      });\n    }\n  }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { AlainI18NService } from '@delon/theme';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport { IYoyoConfig, YOYO_CONFIG } from '../common';\n\n// @Injectable()\n@Injectable({ providedIn: 'root' })\nexport class LocalizationService implements AlainI18NService {\n\n  [key: string]: any;\n\n  private change$ = new BehaviorSubject<string>(null);\n\n  languages: any[];\n\n  currentLanguage: any;\n\n  defaultLang = 'zh-Hans';\n  currentLang: string;\n\n  defaultSource: string;\n\n  constructor(\n    public injector: Injector\n  ) {\n    const appConfig = injector.get<IYoyoConfig>(YOYO_CONFIG);\n    this.defaultSource = appConfig.lang.defaultSource;\n  }\n\n\n  use(lang: string, data?: Record<string, string>): void {\n  }\n\n  getLangs(): any[] {\n    return this.languages;\n  }\n\n  get change(): Observable<string> {\n    return this.change$.asObservable().pipe(filter(w => w != null));\n  }\n\n  fanyi(key: string, params?: { [key: string]: any; }, isSafe?: boolean): string {\n    return this.l(key, null);\n  }\n\n  /**\n   * ABP的本地化翻译\n   * @param key 国际化键值\n   * @param sourceName 语言源\n   * @param args 参数\n   */\n  l(key: string, sourceName?: string, ...args: any[]): string {\n    sourceName = sourceName || abp.localization.defaultSourceName || this.defaultSource;\n\n    const localizedText = abp.localization.localize(key, sourceName);\n\n    // 无参数\n    if (!args || !args.length) {\n      return localizedText;\n    }\n\n    // 有参数\n    return abp.utils.formatString(localizedText, ...args);\n  }\n\n  /**\n   * 填充数据\n   * @param localization 本地化信息\n   * @param defaultSourceName 默认数据源\n   */\n  extend(localization: any, defaultSourceName: string) {\n    abp.localization.defaultSourceName = defaultSourceName || this.defaultSource;\n    this.languages = localization.languages;\n    this.currentLang = abp.localization.currentLanguage.name;\n    this.currentLanguage = localization.currentLanguage;\n  }\n}\n","import { Component } from '@angular/core';\nimport { ControlWidget } from '@delon/form';\n\n@Component({\n  selector: 'sf-address',\n  template: `\n    <sf-item-wrap\n      [id]=\"id\"\n      [schema]=\"schema\"\n      [ui]=\"ui\"\n      [showError]=\"showError\"\n      [error]=\"error\"\n      [showTitle]=\"schema.title\"\n    >\n      <address [ngModel]=\"value\" name=\"sf.address\" (ngModelChange)=\"_change($event)\"></address>\n    </sf-item-wrap>\n  `,\n  preserveWhitespaces: false,\n})\n// tslint:disable-next-line: component-class-suffix\nexport class AddressWidget extends ControlWidget {\n  static readonly KEY = 'address';\n\n  _change(value: string) {\n    this.setValue(value);\n  }\n}\n","import { Component } from '@angular/core';\nimport { ControlWidget, SFSchema } from '@delon/form';\n\n@Component({\n  selector: 'sf-markdown',\n  template: `\n    <sf-item-wrap\n      [id]=\"id\"\n      [schema]=\"schema\"\n      [ui]=\"ui\"\n      [showError]=\"showError\"\n      [error]=\"error\"\n      [showTitle]=\"schema.title\"\n    >\n      <sf name=\"markdown\" [schema]=\"schema\" (formSubmit)=\"_change($event)\"></sf>\n    </sf-item-wrap>\n  `,\n  preserveWhitespaces: false,\n})\n// tslint:disable-next-line: component-class-suffix\nexport class MarkdownWidget extends ControlWidget {\n  static readonly KEY = 'markdown';\n\n  schema: SFSchema = {\n    properties: {\n      remark: {\n        type: 'string',\n        ui: {\n          widget: 'md',\n        },\n      },\n    },\n  };\n\n  _change(value: {}) {\n\n    this.setValue(value);\n  }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ControlUIWidget, FormProperty, SFDateWidgetSchema, SFValue, toBool } from '@delon/form';\nimport { format } from 'date-fns';\nimport { toDate } from '@delon/util/date-time';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\nimport * as moment from 'moment';\nimport { SFMomentWidgetSchema } from './schema';\n\n@Component({\n  selector: 'sf-moment',\n  templateUrl: './moment.widget.html',\n})\n// tslint:disable-next-line:component-class-suffix\nexport class MomentWidget extends ControlUIWidget<SFMomentWidgetSchema> implements OnInit {\n  /* 用于注册小部件 KEY 值 */\n  static readonly KEY = 'moment';\n\n  private startFormat: string;\n  private endFormat: string;\n  private flatRange = false;\n  mode: string;\n  displayValue: Date | Date[] | null = null;\n  displayFormat: string;\n  i: any;\n\n  ngOnInit(): void {\n    const { mode, end, displayFormat, allowClear, showToday } = this.ui;\n    this.mode = mode || 'date';\n    this.flatRange = end != null;\n    // 构建属性对象时会对默认值进行校验，因此可以直接使用 format 作为格式化属性\n    this.startFormat = this.ui._format!;\n    if (this.flatRange) {\n      this.mode = 'range';\n      const endUi = this.endProperty.ui as SFDateWidgetSchema;\n      this.endFormat = endUi.format ? endUi._format : this.startFormat;\n    }\n    if (!displayFormat) {\n      switch (this.mode) {\n        case 'year':\n          this.displayFormat = `yyyy`;\n          break;\n        case 'month':\n          this.displayFormat = `yyyy-MM`;\n          break;\n        case 'week':\n          this.displayFormat = `yyyy-ww`;\n          break;\n      }\n    } else {\n      this.displayFormat = displayFormat;\n    }\n    this.i = {\n      allowClear: toBool(allowClear, true),\n      // nz-date-picker\n      showToday: toBool(showToday, true),\n    };\n    if (!this.startFormat) {\n      this.startFormat = 'yyyy-MM-dd';\n    }\n    if (!this.endFormat) {\n      this.endFormat = 'yyyy-MM-dd';\n    }\n  }\n\n  reset(value: SFValue): void {\n    const toDateOptions = { formatString: this.startFormat, defaultValue: null };\n    if (Array.isArray(value)) {\n      value = value.map(o => {\n        if (moment.isMoment(o)) {\n          return (o as moment.Moment).toDate();\n        } else if (moment.isDate(o)) {\n          return o;\n        }\n        return o;\n      }).map(v => toDate(v, toDateOptions));\n    } else {\n      let tmpVal: any;\n      if (moment.isMoment(value)) {\n        tmpVal = (value as moment.Moment).toDate();\n      } else if (moment.isDate(value)) {\n        tmpVal = value;\n      }\n      value = toDate(tmpVal, toDateOptions);\n    }\n    if (this.flatRange) {\n      const endValue = toDate(this.endProperty.formData as NzSafeAny, {\n        formatString: this.endFormat || this.startFormat,\n        defaultValue: null,\n      });\n      this.displayValue = value == null || endValue == null ? [] : [value, endValue];\n    } else {\n      this.displayValue = value;\n    }\n    this.detectChanges();\n    // TODO: Need to wait for the rendering to complete, otherwise it will be overwritten of end widget\n    if (this.displayValue) {\n      setTimeout(() => this._change(this.displayValue, false));\n    }\n  }\n\n  _change(value: Date | Date[] | null, emitModelChange: boolean = true): void {\n    if (emitModelChange && this.ui.change) {\n      if (Array.isArray(value)) {\n        this.ui.change(value.map(o => moment(o)));\n      } else {\n        this.ui.change(\n          !!value ? moment(value) : null,\n        );\n      }\n    }\n    if (value == null || (Array.isArray(value) && value.length < 2)) {\n      this.setValue(null);\n      this.setEnd(null);\n      return;\n    }\n\n    const res = Array.isArray(value)\n      ? [format(value[0], this.startFormat), format(value[1], this.endFormat || this.startFormat)]\n      : format(value, this.startFormat);\n\n    if (this.flatRange) {\n      this.setValue(moment(res[0]));\n      this.setEnd(res[1]);\n    } else {\n      this.setValue(moment(res));\n    }\n  }\n\n  _openChange(status: boolean): void {\n    if (this.ui.onOpenChange) {\n      this.ui.onOpenChange(status);\n    }\n  }\n\n  _ok(value: Date | Date[] | null): void {\n    if (this.ui.onOk) {\n      if (!value) {\n        this.ui.onOk(null);\n        return;\n      }\n      if (!Array.isArray(value)) {\n        this.ui.onOk(moment(value));\n        return;\n      }\n\n      this.ui.onOk(value.map(o => moment(o)));\n    }\n  }\n\n  private get endProperty(): FormProperty {\n    return (this.formProperty.parent!.properties as { [key: string]: FormProperty })[this.ui.end!];\n  }\n\n  private setEnd(value: string | null): void {\n    if (!this.flatRange) {\n      return;\n    }\n\n    this.endProperty.setValue(value, true);\n    this.endProperty.updateValueAndValidity();\n  }\n}\n","<sf-item-wrap [id]=\"id\" [schema]=\"schema\" [ui]=\"ui\" [showError]=\"showError\" [error]=\"error\" [showTitle]=\"schema.title\">\n  <ng-container [ngSwitch]=\"mode\">\n    <nz-year-picker\n      *ngSwitchCase=\"'year'\"\n      [nzId]=\"id\"\n      [nzDisabled]=\"disabled\"\n      [nzSize]=\"ui.size!\"\n      [nzFormat]=\"displayFormat\"\n      [(ngModel)]=\"displayValue\"\n      (ngModelChange)=\"_change($event)\"\n      [nzAllowClear]=\"i.allowClear\"\n      [ngClass]=\"ui.className!\"\n      [nzDisabledDate]=\"ui.disabledDate\"\n      [nzLocale]=\"ui.locale!\"\n      [nzPlaceHolder]=\"ui.placeholder!\"\n      [nzPopupStyle]=\"ui.popupStyle!\"\n      [nzDropdownClassName]=\"ui.dropdownClassName\"\n      (nzOnOpenChange)=\"_openChange($event)\"\n      [nzRenderExtraFooter]=\"ui.renderExtraFooter\"\n      [nzInputReadOnly]=\"ui.inputReadOnly\"\n      [nzInline]=\"ui.inline!\"\n    ></nz-year-picker>\n\n    <nz-month-picker\n      *ngSwitchCase=\"'month'\"\n      [nzId]=\"id\"\n      [nzDisabled]=\"disabled\"\n      [nzSize]=\"ui.size!\"\n      [nzFormat]=\"displayFormat\"\n      [(ngModel)]=\"displayValue\"\n      (ngModelChange)=\"_change($event)\"\n      [nzAllowClear]=\"i.allowClear\"\n      [ngClass]=\"ui.className!\"\n      [nzDisabledDate]=\"ui.disabledDate\"\n      [nzLocale]=\"ui.locale!\"\n      [nzPlaceHolder]=\"ui.placeholder!\"\n      [nzPopupStyle]=\"ui.popupStyle!\"\n      [nzDropdownClassName]=\"ui.dropdownClassName\"\n      (nzOnOpenChange)=\"_openChange($event)\"\n      [nzRenderExtraFooter]=\"ui.renderExtraFooter\"\n      [nzInputReadOnly]=\"ui.inputReadOnly\"\n      [nzInline]=\"ui.inline!\"\n    ></nz-month-picker>\n\n    <nz-week-picker\n      *ngSwitchCase=\"'week'\"\n      [nzId]=\"id\"\n      [nzDisabled]=\"disabled\"\n      [nzSize]=\"ui.size!\"\n      [nzFormat]=\"displayFormat\"\n      [(ngModel)]=\"displayValue\"\n      (ngModelChange)=\"_change($event)\"\n      [nzAllowClear]=\"i.allowClear\"\n      [ngClass]=\"ui.className!\"\n      [nzDisabledDate]=\"ui.disabledDate\"\n      [nzLocale]=\"ui.locale!\"\n      [nzPlaceHolder]=\"ui.placeholder!\"\n      [nzPopupStyle]=\"ui.popupStyle!\"\n      [nzDropdownClassName]=\"ui.dropdownClassName\"\n      [nzInputReadOnly]=\"ui.inputReadOnly\"\n      [nzInline]=\"ui.inline!\"\n      (nzOnOpenChange)=\"_openChange($event)\"\n    ></nz-week-picker>\n\n    <nz-range-picker\n      *ngSwitchCase=\"'range'\"\n      [nzId]=\"id\"\n      [nzDisabled]=\"disabled\"\n      [nzSize]=\"ui.size!\"\n      [nzFormat]=\"displayFormat\"\n      [(ngModel)]=\"displayValue\"\n      (ngModelChange)=\"_change($event)\"\n      [nzAllowClear]=\"i.allowClear\"\n      [ngClass]=\"ui.className!\"\n      [nzDisabledDate]=\"ui.disabledDate\"\n      [nzLocale]=\"ui.locale!\"\n      [nzPlaceHolder]=\"ui.placeholder!\"\n      [nzPopupStyle]=\"ui.popupStyle!\"\n      [nzDropdownClassName]=\"ui.dropdownClassName\"\n      (nzOnOpenChange)=\"_openChange($event)\"\n      [nzDisabledTime]=\"ui.disabledTime\"\n      [nzRenderExtraFooter]=\"ui.renderExtraFooter\"\n      [nzRanges]=\"ui.ranges\"\n      [nzShowTime]=\"ui.showTime\"\n      [nzMode]=\"ui.rangeMode\"\n      [nzInputReadOnly]=\"ui.inputReadOnly\"\n      [nzInline]=\"ui.inline!\"\n      (nzOnOk)=\"_ok($event)\"\n    ></nz-range-picker>\n\n    <nz-date-picker\n      *ngSwitchDefault\n      [nzId]=\"id\"\n      [nzDisabled]=\"disabled\"\n      [nzSize]=\"ui.size!\"\n      [nzFormat]=\"displayFormat\"\n      [(ngModel)]=\"displayValue\"\n      (ngModelChange)=\"_change($event)\"\n      [nzAllowClear]=\"i.allowClear\"\n      [ngClass]=\"ui.className!\"\n      [nzDisabledDate]=\"ui.disabledDate\"\n      [nzLocale]=\"ui.locale!\"\n      [nzPlaceHolder]=\"ui.placeholder!\"\n      [nzPopupStyle]=\"ui.popupStyle!\"\n      [nzDropdownClassName]=\"ui.dropdownClassName\"\n      (nzOnOpenChange)=\"_openChange($event)\"\n      [nzDisabledTime]=\"ui.disabledTime\"\n      [nzRenderExtraFooter]=\"ui.renderExtraFooter\"\n      [nzShowTime]=\"ui.showTime\"\n      [nzShowToday]=\"i.showToday\"\n      [nzInputReadOnly]=\"ui.inputReadOnly\"\n      [nzInline]=\"ui.inline!\"\n      (nzOnOk)=\"_ok($event)\"\n    ></nz-date-picker>\n  </ng-container>\n</sf-item-wrap>\n","import { Component } from '@angular/core';\nimport { ControlWidget } from '@delon/form';\n\n@Component({\n    selector: 'sf-editor',\n    template: `\n    <sf-item-wrap\n      [id]=\"id\"\n      [schema]=\"schema\"\n      [ui]=\"ui\"\n      [showError]=\"showError\"\n      [error]=\"error\"\n      [showTitle]=\"schema.title\"\n    >\n      <simplemde\n        [ngModel]=\"value\"\n        (ngModelChange)=\"_change($event)\"\n        [options]=\"ui.options\"\n        [delay]=\"ui.delay || 300\"\n      ></simplemde>\n    </sf-item-wrap>\n  `,\n    preserveWhitespaces: false,\n})\n// tslint:disable-next-line: component-class-suffix\nexport class SimplemdeWidget extends ControlWidget {\n    static readonly KEY = 'md';\n\n    _change(value: string) {\n        this.setValue(value);\n        if (this.ui.contentChanged) { this.ui.contentChanged(value); }\n    }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({ name: '_moment' })\nexport class MomentFormatPipe implements PipeTransform {\n  transform(value: moment.MomentInput, format?: string) {\n    if (!value) {\n      return '';\n    }\n    if (!format) {\n      format = 'YYYY-MM-DD HH:mm:ss';\n    }\n\n    return moment(value).format(format);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'moment';\n\n@Pipe({ name: 'momentFromNow' })\nexport class MomentFromNowPipe implements PipeTransform {\n    transform(value: moment.MomentInput) {\n        if (!value) {\n            return '';\n        }\n\n        return moment(value).fromNow();\n    }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MomentFormatPipe} from './moment/moment-format.pipe';\nimport {MomentFromNowPipe} from './moment/moment-from-now.pipe';\n\nconst MOMENT_PIPES = [\n  MomentFormatPipe,\n  MomentFromNowPipe\n];\n\n@NgModule({\n  imports: [\n    CommonModule\n  ],\n  declarations: [\n    ...MOMENT_PIPES\n  ],\n  exports: [\n    ...MOMENT_PIPES\n  ]\n})\nexport class LPipesModule {\n}\n","import {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {DelonACLModule} from '@delon/acl';\nimport {DelonFormModule} from '@delon/form';\nimport {LPipesModule} from '../pipes';\nimport {NzButtonModule} from 'ng-zorro-antd/button';\nimport {NzTimePickerModule} from 'ng-zorro-antd/time-picker';\nimport {NzDatePickerModule} from 'ng-zorro-antd/date-picker';\nimport {STModule} from '@delon/abc/st';\nimport {NzFormModule} from 'ng-zorro-antd/form';\nimport {NzSelectModule} from 'ng-zorro-antd/select';\nimport {NzDropDownModule} from 'ng-zorro-antd/dropdown';\nimport {NzSpinModule} from 'ng-zorro-antd/spin';\nimport {NzMenuModule} from 'ng-zorro-antd/menu';\nimport {NzIconModule} from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\n\nexport const JSON_SCHEMA_NG_MODULES = [\n  CommonModule,\n  FormsModule,\n  ReactiveFormsModule,\n];\n\nexport const JSON_SCHEMA_NG_ZORRO_MODULES = [\n  NzInputModule,\n  NzButtonModule,\n  NzTimePickerModule,\n  NzDatePickerModule,\n  NzFormModule,\n  NzSelectModule,\n  NzDropDownModule,\n  NzSpinModule,\n  NzMenuModule,\n  NzIconModule,\n];\n\nexport const JSON_SCHEMA_NG_ALAIN_MODULES = [\n  DelonACLModule,\n  DelonFormModule,\n  STModule,\n];\n\nexport const JSON_SCHEMA_MODULES = [\n  ...JSON_SCHEMA_NG_MODULES,\n  ...JSON_SCHEMA_NG_ZORRO_MODULES,\n  ...JSON_SCHEMA_NG_ALAIN_MODULES,\n  LPipesModule,\n];\n","import {NgModule} from '@angular/core';\n//\nimport {WidgetRegistry} from '@delon/form';\nimport {AddressWidget} from './address/address.widget';\nimport {SimplemdeWidget} from './simplemde/simplemde.widget';\nimport {MarkdownWidget} from './markdown/markdown.widget';\nimport {MomentWidget} from './moment';\nimport {JSON_SCHEMA_MODULES} from '../json-schema-common';\nimport {SimplemdeModule} from 'ngx-simplemde';\n\n\nexport const SCHEMA_THIRDS_COMPONENTS = [\n  AddressWidget,\n  SimplemdeWidget,\n  MarkdownWidget,\n  MomentWidget,\n];\n\n@NgModule({\n  declarations: SCHEMA_THIRDS_COMPONENTS,\n  entryComponents: SCHEMA_THIRDS_COMPONENTS,\n  imports: [\n    ...JSON_SCHEMA_MODULES,\n    SimplemdeModule\n  ],\n  exports: [...SCHEMA_THIRDS_COMPONENTS],\n})\nexport class SfWidgetsModule {\n  constructor(widgetRegistry: WidgetRegistry) {\n    widgetRegistry.register(AddressWidget.KEY, AddressWidget);\n    widgetRegistry.register(SimplemdeWidget.KEY, SimplemdeWidget);\n    widgetRegistry.register(MarkdownWidget.KEY, MarkdownWidget);\n    widgetRegistry.register(MomentWidget.KEY, MomentWidget);\n  }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport * as moment from 'moment';\n\n@Component({\n  selector: 'st-widget-moment',\n  templateUrl: './st-moment.widget.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\n// tslint:disable-next-line:component-class-suffix\nexport class StMomentWidget implements OnInit {\n  static readonly KEY = 'moment';\n\n  date: moment.Moment;\n\n  mode: string;\n  format: string;\n\n  constructor() {}\n\n  ngOnInit(): void {\n    /* 优先级：\n        1. 自定义的format\n        2. mode\n      */\n\n    if (this.format) {\n      return;\n    }\n\n    switch (this.mode) {\n      case 'year':\n        this.format = `yyyy`;\n        break;\n      case 'month':\n        this.format = `yyyy-MM`;\n        break;\n      case 'week':\n        this.format = `yyyy-ww`;\n        break;\n      case 'day':\n        this.format = `YYYY-MM-DD`;\n        break;\n      case 'date':\n        this.format = `YYYY-MM-DD HH:mm`;\n        break;\n      default:\n        this.format = `YYYY-MM-DD HH:mm:ss`;\n        break;\n    }\n  }\n}\n","<ng-container>\n  <ng-container> {{date|_moment:format}} </ng-container>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { STWidgetRegistry } from '@delon/abc/st';\nimport { JSON_SCHEMA_MODULES } from '../json-schema-common';\nimport { StMomentWidget } from './moment';\n\n\n\nexport const STWIDGET_COMPONENTS = [\n  StMomentWidget\n];\n\n@NgModule({\n  declarations: STWIDGET_COMPONENTS,\n  imports: [\n    ...JSON_SCHEMA_MODULES\n  ],\n  exports: [...STWIDGET_COMPONENTS],\n})\nexport class StWidgetsModule {\n  constructor(widgetRegistry: STWidgetRegistry) {\n    widgetRegistry.register(StMomentWidget.KEY, StMomentWidget);\n  }\n}\n","import {NgModule} from '@angular/core';\n\n\nimport {SfWidgetsModule} from './sf-widgets';\nimport {StWidgetsModule} from './st-widgets';\n\n@NgModule({\n  imports: [],\n  exports: [SfWidgetsModule, StWidgetsModule],\n})\nexport class LJsonSchemaModule {\n  constructor() {\n  }\n}\n","import { EventEmitter, Input, Output, TemplateRef, Directive } from '@angular/core';\n\n@Directive()\nexport abstract class DatePickerBase {\n\n  /**\n   * 名称\n   */\n  @Input()\n  name: string;\n\n\n  /**\n   * 是否显示清除按钮\n   */\n  @Input() nzAllowClear = true;\n\n  /**\n   * 自动获取焦点\n   */\n  @Input() nzAutoFocus = false;\n\n  /**\n   * 选择器\n   */\n  @Input() nzClassName = '';\n\n  /**\n   * 自定义日期单元格的内容（month-picker/year-picker不支持）\n   */\n  @Input() nzDateRender: TemplateRef<Date> | string | ((d: Date) => TemplateRef<Date> | string);\n\n  /**\n   * 禁用\n   */\n  @Input() nzDisabled = false;\n\n  /**\n   * 不可选择的日期\n   */\n  @Input() nzDisabledDate: (current: Date) => boolean;\n\n  /**\n   * 国际化配置  object\n   */\n  @Input() nzLocale: any;\n\n  /**\n   * 控制弹层是否展开,暂时无用\n   */\n  @Input() nzOpen: boolean;\n\n  /**\n   * 额外的弹出日历样式\n   */\n  @Input() nzPopupStyle: any = {};\n\n  /**\n   * 额外的弹出日历 className\n   */\n  @Input() nzDropdownClassName: string;\n\n  /**\n   * 输入框大小\n   */\n  @Input() nzSize: 'large' | 'small' | 'default' = 'default';\n\n  /**\n   * 自定义输入框样式\n   */\n  @Input() nzStyle: any = {};\n\n  /**\n   * 弹出日历和关闭日历的回调\n   */\n  @Output() nzOnOpenChange = new EventEmitter<boolean>();\n\n  constructor() {\n\n  }\n\n  /**\n   * 控制弹层展开状态发生改变\n   * @param event 是否展开\n   */\n  onNzOnOpenChange(event: boolean) {\n    this.nzOpen = event;\n    this.nzOnOpenChange.emit(event);\n  }\n}\n","import { Component, EventEmitter, forwardRef, Input, Output, TemplateRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as moment from 'moment';\nimport { CompatibleDate } from 'ng-zorro-antd/date-picker';\nimport { DatePickerBase } from '../date-picker-base';\n\n@Component({\n  selector: 'l-date-picker',\n  templateUrl: './date-picker.component.html',\n  styleUrls: ['./date-picker.component.less'],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => DatePickerComponent),\n    multi: true,\n  }],\n})\nexport class DatePickerComponent\n  extends DatePickerBase\n  implements ControlValueAccessor {\n\n  /**\n   * 内部用的值\n   */\n  value: Date;\n\n  /**\n   * 日期 Moment\n   */\n  @Input()  ngModel: moment.Moment;\n\n  /**\n   * 不可选择的时间\n   */\n  @Input()  nzDisabledTime: (current: Date) => { nzDisabledHours, nzDisabledMinutes, nzDisabledSeconds };\n\n  /**\n   * 展示的日期格式，见nzFormat特别说明\n   */\n  @Input()  nzFormat = 'yyyy-MM-dd';\n\n  /**\n   * 在面板中添加额外的页脚\n   */\n  @Input()  nzRenderExtraFooter: TemplateRef<any> | string | (() => TemplateRef<any> | string);\n\n\n  /**\n   * 增加时间选择功能\n   */\n  @Input()  nzShowTime: object | boolean;\n\n  /**\n   * nzShowToday\n   */\n  @Input()  nzShowToday = true;\n\n  /**\n   * 输入框提示文字\n   */\n  @Input()  nzPlaceHolder: string;\n\n  /**\n   * 点击确定按钮的回调\n   */\n  @Output()  nzOnOk = new EventEmitter<moment.Moment>();\n\n  /**\n   * 时间发生变化的回调\n   */\n  @Output()  ngModelChange = new EventEmitter<moment.Moment>();\n\n\n  constructor() {\n    super();\n  }\n\n\n  onNzOk(event: CompatibleDate) {\n    if (event && moment.isDate(event)) {\n      this.nzOnOk.emit(moment(event));\n    } else {\n      this.nzOnOk.emit(undefined);\n    }\n\n  }\n\n  onNgModelChangeChange(event: Date) {\n    if (event && moment.isDate(event)) {\n      this.ngModelChange.emit(moment(event));\n    } else {\n      this.ngModelChange.emit(undefined);\n    }\n  }\n\n\n  registerOnChange(fn: any): void {\n    this.ngModelChange.emit = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    if (obj && moment.isMoment(obj)) {\n      this.value = obj.toDate();\n    } else {\n      this.value = obj;\n    }\n  }\n\n}\n","<nz-date-picker\n        [nzAllowClear]=\"nzAllowClear\"\n        [nzAutoFocus]=\"nzAutoFocus\"\n        [nzDateRender]=\"nzDateRender\"\n        [nzDisabled]=\"nzDisabled\"\n        [nzDisabledDate]=\"nzDisabledDate\"\n        [nzLocale]=\"nzLocale\"\n        [nzPopupStyle]=\"nzPopupStyle\"\n        [nzDropdownClassName]=\"nzDropdownClassName\"\n        [nzSize]=\"nzSize\"\n\n\n        [nzDisabledTime]=\"nzDisabledTime\"\n        [nzFormat]=\"nzFormat\"\n        [nzRenderExtraFooter]=\"nzRenderExtraFooter\"\n        [nzShowTime]=\"nzShowTime\"\n        [nzShowToday]=\"nzShowToday\"\n        [nzPlaceHolder]=\"nzPlaceHolder\"\n\n        [(ngModel)]=\"value\"\n        (nzOnOk)=\"onNzOk($event)\"\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\">\n\n</nz-date-picker>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, TemplateRef } from '@angular/core';\nimport { DatePickerBase } from '../date-picker-base';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as moment from 'moment';\n\n@Component({\n  selector: 'l-year-picker',\n  templateUrl: './year-picker.component.html',\n  styles: [],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => YearPickerComponent),\n    multi: true\n  }]\n})\nexport class YearPickerComponent\n  extends DatePickerBase\n  implements ControlValueAccessor {\n\n  /**\n   * 内部用的值\n   */\n  value: Date;\n\n  /**\n   * 日期 Moment\n   */\n  @Input() ngModel: moment.Moment;\n\n  /**\n   * 展示的日期格式，见nzFormat特别说明\n   */\n  @Input() nzFormat = 'yyyy';\n\n  /**\n   * 在面板中添加额外的页脚\n   */\n  @Input() nzRenderExtraFooter: TemplateRef<any> | string | (() => TemplateRef<any> | string);\n\n  /**\n   * 输入框提示文字\n   */\n  @Input() nzPlaceHolder: string;\n\n  /**\n   * 时间发生变化的回调\n   */\n  @Output() ngModelChange = new EventEmitter<moment.Moment>();\n\n\n  constructor() {\n    super();\n  }\n\n  onNgModelChangeChange(event: Date) {\n    if (event && moment.isDate(event)) {\n      this.ngModelChange.emit(moment(event));\n    } else {\n      this.ngModelChange.emit(undefined);\n    }\n  }\n\n\n  registerOnChange(fn: any): void {\n    this.ngModelChange.emit = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    if (obj && moment.isMoment(obj)) {\n      this.value = obj.toDate();\n    } else {\n      this.value = obj;\n    }\n  }\n\n}\n","<nz-year-picker\n        [nzAllowClear]=\"nzAllowClear\"\n        [nzAutoFocus]=\"nzAutoFocus\"\n        [nzDisabled]=\"nzDisabled\"\n        [nzDisabledDate]=\"nzDisabledDate\"\n        [nzLocale]=\"nzLocale\"\n        [nzPopupStyle]=\"nzPopupStyle\"\n        [nzDropdownClassName]=\"nzDropdownClassName\"\n        [nzSize]=\"nzSize\"\n\n\n        [nzFormat]=\"nzFormat\"\n        [nzRenderExtraFooter]=\"nzRenderExtraFooter\"\n        [nzPlaceHolder]=\"nzPlaceHolder\"\n\n        [(ngModel)]=\"value\"\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\">\n\n</nz-year-picker>\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output, TemplateRef } from '@angular/core';\nimport { DatePickerBase } from '../date-picker-base';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as moment from 'moment';\n\n@Component({\n  selector: 'l-month-picker',\n  templateUrl: './month-picker.component.html',\n  styles: [],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => MonthPickerComponent),\n    multi: true\n  }]\n})\nexport class MonthPickerComponent\n  extends DatePickerBase\n  implements ControlValueAccessor {\n\n  /**\n   * 内部用的值\n   */\n  value: Date;\n\n  /**\n   * 日期 Moment\n   */\n  @Input() ngModel: moment.Moment;\n\n  /**\n   * 不可选择的时间\n   */\n  @Input() nzDisabledTime: (current: Date) => { nzDisabledHours, nzDisabledMinutes, nzDisabledSeconds };\n\n  /**\n   * 展示的日期格式，见nzFormat特别说明\n   */\n  @Input() nzFormat = 'yyyy-MM';\n\n  /**\n   * 在面板中添加额外的页脚\n   */\n  @Input() nzRenderExtraFooter: TemplateRef<any> | string | (() => TemplateRef<any> | string);\n\n  /**\n   * 输入框提示文字\n   */\n  @Input() nzPlaceHolder: string;\n\n  /**\n   * 时间发生变化的回调\n   */\n  @Output() ngModelChange = new EventEmitter<moment.Moment>();\n\n\n  constructor() {\n    super();\n  }\n\n  onNgModelChangeChange(event: Date) {\n    if (event && moment.isDate(event)) {\n      this.ngModelChange.emit(moment(event));\n    } else {\n      this.ngModelChange.emit(undefined);\n    }\n  }\n\n\n  registerOnChange(fn: any): void {\n    this.ngModelChange.emit = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    if (obj && moment.isMoment(obj)) {\n      this.value = obj.toDate();\n    } else {\n      this.value = obj;\n    }\n  }\n\n}\n","<nz-month-picker\n        [nzAllowClear]=\"nzAllowClear\"\n        [nzAutoFocus]=\"nzAutoFocus\"\n        [nzDisabled]=\"nzDisabled\"\n        [nzDisabledDate]=\"nzDisabledDate\"\n        [nzLocale]=\"nzLocale\"\n        [nzPopupStyle]=\"nzPopupStyle\"\n        [nzDropdownClassName]=\"nzDropdownClassName\"\n        [nzSize]=\"nzSize\"\n\n        [nzFormat]=\"nzFormat\"\n        [nzRenderExtraFooter]=\"nzRenderExtraFooter\"\n        [nzPlaceHolder]=\"nzPlaceHolder\"\n\n        [(ngModel)]=\"value\"\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\">\n\n</nz-month-picker>\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { DatePickerBase } from '../date-picker-base';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as moment from 'moment';\n\n@Component({\n  selector: 'l-week-picker',\n  templateUrl: './week-picker.component.html',\n  styles: [],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => WeekPickerComponent),\n    multi: true\n  }]\n})\nexport class WeekPickerComponent\n  extends DatePickerBase\n  implements ControlValueAccessor {\n\n  /**\n   * 内部用的值\n   */\n  value: Date;\n\n  /**\n   * 日期 Moment\n   */\n  @Input() ngModel: moment.Moment;\n\n  /**\n   * 展示的日期格式，见nzFormat特别说明\n   */\n  @Input() nzFormat = 'yyyy-ww';\n\n  /**\n   * 输入框提示文字\n   */\n  @Input() nzPlaceHolder: string;\n\n  /**\n   * 时间发生变化的回调\n   */\n  @Output() ngModelChange = new EventEmitter<moment.Moment>();\n\n\n  constructor() {\n    super();\n  }\n\n  onNgModelChangeChange(event: Date) {\n    if (event && moment.isDate(event)) {\n      this.ngModelChange.emit(moment(event));\n    } else {\n      this.ngModelChange.emit(undefined);\n    }\n  }\n\n\n  registerOnChange(fn: any): void {\n    this.ngModelChange.emit = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    if (obj && moment.isMoment(obj)) {\n      this.value = obj.toDate();\n    } else {\n      this.value = obj;\n    }\n  }\n\n}\n","<nz-week-picker\n        [nzAllowClear]=\"nzAllowClear\"\n        [nzAutoFocus]=\"nzAutoFocus\"\n        [nzDisabled]=\"nzDisabled\"\n        [nzDisabledDate]=\"nzDisabledDate\"\n        [nzLocale]=\"nzLocale\"\n        [nzPopupStyle]=\"nzPopupStyle\"\n        [nzDropdownClassName]=\"nzDropdownClassName\"\n        [nzSize]=\"nzSize\"\n\n\n        [nzFormat]=\"nzFormat\"\n        [nzPlaceHolder]=\"nzPlaceHolder\"\n\n        [(ngModel)]=\"value\"\n        (ngModelChange)=\"onNgModelChangeChange($event)\"\n        (nzOnOpenChange)=\"onNzOnOpenChange($event)\"\n>\n\n</nz-week-picker>\n","import { Component, EventEmitter, forwardRef, Input, Output, TemplateRef } from '@angular/core';\nimport { DatePickerBase } from '../date-picker-base';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as moment from 'moment';\nimport { CompatibleDate } from 'ng-zorro-antd/date-picker';\n\n@Component({\n  selector: 'l-range-picker',\n  templateUrl: './range-picker.component.html',\n  styles: [],\n  providers: [{\n    provide: NG_VALUE_ACCESSOR,\n    useExisting: forwardRef(() => RangePickerComponent),\n    multi: true,\n  }],\n})\nexport class RangePickerComponent\n  extends DatePickerBase\n  implements ControlValueAccessor {\n\n  /**\n   * 内部用的值\n   */\n  value: Date[];\n\n  /**\n   * 日期 Moment\n   */\n  @Input() ngModel: moment.Moment[];\n\n  /**\n   * 不可选择的时间\n   */\n  @Input() nzDisabledTime: (current: Date) => { nzDisabledHours, nzDisabledMinutes, nzDisabledSeconds };\n\n  /**\n   * 展示的日期格式，见nzFormat特别说明\n   */\n  @Input() nzFormat = 'yyyy-MM-dd';\n\n  /**\n   * 预设时间范围快捷选择\n   */\n  @Input() nzRanges: { [key: string]: Date[] } | { [key: string]: () => Date[] };\n\n  /**\n   * 在面板中添加额外的页脚\n   */\n  @Input() nzRenderExtraFooter: TemplateRef<any> | string | (() => TemplateRef<any> | string);\n\n\n  /**\n   * 增加时间选择功能\n   */\n  @Input() nzShowTime: object | boolean;\n\n  /**\n   * 输入框提示文字\n   */\n  @Input() nzPlaceHolder: string;\n\n  /**\n   * 点击确定按钮的回调\n   */\n  @Output() nzOnOk = new EventEmitter<moment.Moment[]>();\n\n  /**\n   * 时间发生变化的回调\n   */\n  @Output() ngModelChange = new EventEmitter<moment.Moment[]>();\n\n  /**\n   * 待选日期发生变化的回调\n   */\n  @Output() nzOnCalendarChange = new EventEmitter<moment.Moment[]>();\n\n\n  constructor() {\n    super();\n  }\n\n\n  /**\n   * 点击确定按钮的回调\n   * @param event 数据\n   */\n  onNzOk(event: CompatibleDate) {\n    if (Array.isArray(event) && moment.isDate(event[0] && moment.isDate(event[1]))) {\n      this.nzOnOk.emit(event.map(o => {\n        return moment(o);\n      }));\n    } else {\n      this.nzOnOk.emit(undefined);\n    }\n\n  }\n\n  /**\n   * 时间发生变化的回调\n   * @param event 数据\n   */\n  onNgModelChangeChange(event: Date[]) {\n    if (Array.isArray(event) && event.length === 2) {\n      this.ngModelChange.emit(event.map(o => {\n        return moment(o);\n      }));\n    } else {\n      this.ngModelChange.emit(undefined);\n    }\n  }\n\n  /**\n   * 待选日期发生变化的回调\n   * @param event 数据\n   */\n  onNzOnCalendarChange(event: Date[]) {\n    if (Array.isArray(event) && event.length === 2) {\n      this.nzOnCalendarChange.emit(event.map(o => {\n        return moment(o);\n      }));\n    } else {\n      this.nzOnCalendarChange.emit(undefined);\n    }\n  }\n\n\n  registerOnChange(fn: any): void {\n    this.ngModelChange.emit = fn;\n  }\n\n  registerOnTouched(fn: any): void {\n  }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    if (obj && Array.isArray(obj) && obj.length === 2 && moment.isMoment(obj[0]) && moment.isMoment(obj[1])) {\n      this.value = [obj[0].toDate(), obj[1].toDate()];\n    } else {\n      this.value = obj;\n    }\n  }\n\n}\n","<nz-range-picker\n  [nzAllowClear]='nzAllowClear'\n  [nzAutoFocus]='nzAutoFocus'\n  [nzDateRender]='nzDateRender'\n  [nzDisabled]='nzDisabled'\n  [nzDisabledDate]='nzDisabledDate'\n  [nzLocale]='nzLocale'\n  [nzPopupStyle]='nzPopupStyle'\n  [nzDropdownClassName]='nzDropdownClassName'\n  [nzSize]='nzSize'\n  [nzDisabledTime]='nzDisabledTime'\n  [nzFormat]='nzFormat'\n  [nzRenderExtraFooter]='nzRenderExtraFooter'\n  [nzShowTime]='nzShowTime'\n  [nzPlaceHolder]='nzPlaceHolder'\n  [nzRanges]='nzRanges'\n  [(ngModel)]='value'\n  (nzOnOk)='onNzOk($event)'\n  (ngModelChange)='onNgModelChangeChange($event)'\n  (nzOnCalendarChange)='onNzOnCalendarChange($event)'\n  (nzOnOpenChange)='onNzOnOpenChange($event)'\n>\n</nz-range-picker>\n","import { Component, EventEmitter, forwardRef, Input, Output, TemplateRef } from '@angular/core';\nimport { DatePickerBase } from '../date-picker-base';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as moment from 'moment';\n\n@Component({\n  selector: 'l-time-picker',\n  templateUrl: './time-picker.component.html',\n  styles: [],\n  providers: [\n    {\n      provide: NG_VALUE_ACCESSOR,\n      useExisting: forwardRef(() => TimePickerComponent),\n      multi: true,\n    },\n  ],\n})\nexport class TimePickerComponent extends DatePickerBase implements ControlValueAccessor {\n  /**\n   * 内部用的值\n   */\n  value: Date;\n\n  /**\n   * 日期 Moment\n   */\n  @Input() ngModel: moment.Moment;\n\n  /**\n   * 不可选择的时间\n   */\n  @Input() nzDisabledTime: (current: Date) => { nzDisabledHours; nzDisabledMinutes; nzDisabledSeconds };\n\n  /**\n   * 展示的日期格式，见nzFormat特别说明\n   */\n  @Input() nzFormat = 'HH:mm:ss';\n\n  /**\n   * 预设时间范围快捷选择\n   */\n  @Input() nzRanges: { [key: string]: Date[] } | { [key: string]: () => Date[] };\n\n  /**\n   * 在面板中添加额外的页脚\n   */\n  @Input() nzRenderExtraFooter: TemplateRef<any> | string | (() => TemplateRef<any> | string);\n\n  /**\n   * 增加时间选择功能\n   */\n  @Input() nzShowTime: object | boolean;\n\n  /**\n   * 输入框提示文字\n   */\n  @Input() nzPlaceHolder: string;\n\n  /**\n   * 选择框底部显示自定义的内容\n   */\n  @Input() nzAddOn: TemplateRef<void>;\n  /**\n   * 自动获取焦点\n   */\n  @Input() nzAutoFocus = false;\n  /**\n   * 禁止选择部分小时选项\n   */\n  @Input() nzDisabledHours: () => number[];\n  /**\n   * 禁止选择部分分钟选项\n   */\n  @Input() nzDisabledMinutes: (hour: number) => number[];\n  /**\n   * 禁止选择部分秒选项\n   */\n  @Input() nzDisabledSeconds: (hour: number, minute: number) => number[];\n  /**\n   * 隐藏禁止选择的选项\n   */\n  @Input() nzHideDisabledOptions = false;\n  /**\n   * 小时选项间隔\n   */\n  @Input() nzHourStep = 1;\n  /**\n   * 分钟选项间隔\n   */\n  @Input() nzMinuteStep = 1;\n  /**\n   * \t秒选项间隔\n   */\n  @Input() nzSecondStep = 1;\n  /**\n   * 面板是否打开，可双向绑定\n   */\n  @Input() nzOpen = false;\n  /**\n   * 弹出层类名\n   */\n  @Input() nzPopupClassName = '';\n  /**\n   * 当 [ngModel] 不存在时，可以设置面板打开时默认选中的值\n   */\n  @Input() nzDefaultOpenValue = new Date();\n\n  /**\n   * 使用12小时制，为true时format默认为h:mm:ss a\n   */\n  @Input() nzUse12Hours = false;\n\n  /**\n   * 点击确定按钮的回调\n   */\n  @Output() nzOnOk = new EventEmitter<moment.Moment[]>();\n\n  /**\n   * 时间发生变化的回调\n   */\n  @Output() ngModelChange = new EventEmitter<moment.Moment[]>();\n\n  /**\n   * 待选日期发生变化的回调\n   */\n  @Output() nzOnCalendarChange = new EventEmitter<moment.Moment[]>();\n\n  constructor() {\n    super();\n  }\n\n  /**\n   * 点击确定按钮的回调\n   * @param event 数据\n   */\n  onNzOk(event: Date[]) {\n    if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {\n      this.nzOnOk.emit(\n        event.map(o => {\n          return moment(o);\n        }),\n      );\n    } else {\n      this.nzOnOk.emit(undefined);\n    }\n  }\n\n  /**\n   * 时间发生变化的回调\n   * @param event 数据\n   */\n  onNgModelChangeChange(event: Date[]) {\n    if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {\n      this.ngModelChange.emit(\n        event.map(o => {\n          return moment(o);\n        }),\n      );\n    } else {\n      this.ngModelChange.emit(undefined);\n    }\n  }\n\n  /**\n   * 待选日期发生变化的回调\n   * @param event 数据\n   */\n  onNzOnCalendarChange(event: Date[]) {\n    if (event && moment.isDate(event[0] && moment.isDate(event[1]))) {\n      this.nzOnCalendarChange.emit(\n        event.map(o => {\n          return moment(o);\n        }),\n      );\n    } else {\n      this.nzOnCalendarChange.emit(undefined);\n    }\n  }\n\n  registerOnChange(fn: any): void {\n    this.ngModelChange.emit = fn;\n  }\n\n  registerOnTouched(fn: any): void { }\n\n  setDisabledState(isDisabled: boolean): void {\n    this.nzDisabled = isDisabled;\n  }\n\n  writeValue(obj: any): void {\n    if (obj && moment.isMoment(obj)) {\n      this.value = obj.toDate();\n    } else {\n      this.value = obj;\n    }\n  }\n}\n","<nz-time-picker [nzAutoFocus]='nzAutoFocus' [nzDisabled]='nzDisabled' [nzSize]='nzSize' [nzFormat]='nzFormat'\n                [nzAddOn]='nzAddOn' [nzDisabledHours]='nzDisabledHours' [nzDisabledMinutes]='nzDisabledMinutes'\n                [nzDefaultOpenValue]='nzDefaultOpenValue' [nzDisabledSeconds]='nzDisabledSeconds'\n                [nzHideDisabledOptions]='nzHideDisabledOptions' [nzHourStep]='nzHourStep' [nzMinuteStep]='nzMinuteStep'\n                [nzSecondStep]='nzSecondStep' [nzOpen]='nzOpen' [nzPopupClassName]='nzPopupClassName'\n                [nzUse12Hours]='nzUse12Hours'\n                [nzPlaceHolder]='nzPlaceHolder' [(ngModel)]='value'\n                (ngModelChange)='onNgModelChangeChange($event)'\n                (nzOpenChange)='onNzOnOpenChange($event)'>\n</nz-time-picker>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NzDatePickerModule } from 'ng-zorro-antd/date-picker';\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\nimport {\n  DatePickerComponent,\n  MonthPickerComponent,\n  RangePickerComponent,\n  WeekPickerComponent,\n  YearPickerComponent,\n  TimePickerComponent,\n} from './date-picker';\n\n\nconst COMPONENTS = [\n  DatePickerComponent,\n  RangePickerComponent,\n  YearPickerComponent,\n  MonthPickerComponent,\n  WeekPickerComponent,\n  TimePickerComponent\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n    FormsModule,\n    NzDatePickerModule,\n    NzTimePickerModule,\n  ],\n  declarations: [\n    ...COMPONENTS,\n  ],\n  exports: [\n    ...COMPONENTS,\n  ],\n})\n\n/** 自定义组件模块 */\nexport class LNgZorroModule {\n  static forRoot(): ModuleWithProviders<LNgZorroModule> {\n    return { ngModule: LNgZorroModule };\n  }\n}\n","import {\n  ChangeDetectionStrategy, ChangeDetectorRef,\n  Component,\n  Inject,\n  Injector,\n  Input,\n  OnChanges,\n  SimpleChange,\n  SimpleChanges,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { SampleComponentBaseDirective } from '../component-base';\nimport { IYoyoConfig, YOYO_CONFIG, IErrorDef } from '../common';\n\n\n@Component({\n  selector: 'validation-messages',\n  templateUrl: './validation-messages.component.html',\n  styleUrls: ['./validation-messages.component.less'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ValidationMessagesComponent extends SampleComponentBaseDirective\n  implements OnChanges {\n\n  private _formCtrlInited = false;\n  /** 表单控件 */\n  @Input() formCtrl: FormControl;\n  /** 自定义错误 */\n  @Input() customErrors: IErrorDef[];\n  /** 所有异常 */\n  errorSource: any = {};\n  /** 页面异常信息 */\n  viewErrors: string[] = [];\n\n  constructor(\n    injector: Injector,\n    public cdr: ChangeDetectorRef,\n    @Inject(YOYO_CONFIG) public appConfig: IYoyoConfig,\n  ) {\n    super(injector);\n    this.updateErrorSource();\n  }\n\n  ngOnChanges(changes: { [P in keyof this]?: SimpleChange } & SimpleChanges) {\n    if (changes.customErrors) {\n      this.updateErrorSource();\n    }\n    if (changes.formCtrl && changes.formCtrl.currentValue && !this._formCtrlInited) {\n      this._formCtrlInited = true;\n      const self = this;\n      self.updateViewError();\n      changes.formCtrl.currentValue.valueChanges.subscribe((res) => {\n        self.updateViewError();\n      });\n    }\n  }\n\n  /** 更新所有定义的错误 */\n  private updateErrorSource() {\n    if (!this.customErrors || this.customErrors.length === 0) {\n      this.appConfig.standartErrors.forEach((item) => {\n        this.errorSource[item.error] = item;\n      });\n      return;\n    }\n\n    const standarts = this.appConfig.standartErrors.filter(stdErr => !this.customErrors.every(customErr => customErr.error === stdErr.error));\n    standarts.concat(this.customErrors)\n      .forEach((item) => {\n        this.errorSource[item.error] = item;\n      });\n  }\n\n  /** 更新视图错误 */\n  private updateViewError() {\n    if (this.formCtrl.invalid && (this.formCtrl.dirty || this.formCtrl.touched)) {\n      const tmpViewErrors = [];\n      // tslint:disable-next-line: forin\n      for (const key in this.formCtrl.errors) {\n        const formError = this.formCtrl.errors[key];\n        if (!formError) {\n          continue;\n        }\n        const error: IErrorDef = this.errorSource[key];\n        if (!error) {\n          continue;\n        }\n\n        const errorRequirement = formError[error.errorProperty];\n        tmpViewErrors.push(\n          !!errorRequirement ? this.l(error.localizationKey) + ' ' + errorRequirement : this.l(error.localizationKey),\n        );\n      }\n\n      const newError = tmpViewErrors.join(',');\n      const oldError = this.viewErrors.join(',');\n      if (newError !== oldError) {\n        this.viewErrors = tmpViewErrors;\n        this.cdr.detectChanges();\n      }\n    }\n  }\n}\n","<!--<span *ngIf=\"formCtrl&&formCtrl.invalid && (formCtrl.dirty || formCtrl.touched)\">-->\n<!--  <ng-container *ngFor=\"let errorDef of errorDefsInternal\">-->\n<!--    <span *ngIf=\"getErrorDefinitionIsInValid(errorDef)\">-->\n<!--      {{getErrorDefinitionMessage(errorDef)}}-->\n<!--    </span>-->\n<!--  </ng-container>-->\n<!--</span>-->\n\n<ng-container *ngFor=\"let error of viewErrors\">\n  <div>\n    {{error}}\n  </div>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ValidationMessagesComponent } from './validation-messages.component';\n\n\nconst COMPONENTS = [\n  ValidationMessagesComponent,\n];\n\n@NgModule({\n  imports: [\n    CommonModule,\n  ],\n  declarations: [\n    ...COMPONENTS,\n  ],\n  exports: [\n    ...COMPONENTS,\n  ]\n})\nexport class LValidationMessagesModule {\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { PermissionService } from './auth';\nimport { LoadingInterceptor } from './global-loading';\nimport {\n  ArrayToTreeConverterService,\n  TreeDataHelperService\n} from './utils';\n\n/** L52ABP-NG 的服务 */\nexport const L52ABP_SERVICES = [\n  TreeDataHelperService,\n  ArrayToTreeConverterService,\n  PermissionService,\n];\n\n\n/** http 拦截器，loading效果 */\nexport const L52ABP_HTTP_LOADING_PROVIDER = [\n  {\n    provide: HTTP_INTERCEPTORS,\n    useClass: LoadingInterceptor,\n    multi: true,\n  },\n];\n","import { NgModule, Type } from '@angular/core';\n// abp module\nimport { AbpModule } from 'abp-ng2-module';\n// l-52abp-ng 的服务和模块\nimport { LComponentsModule } from './components';\nimport { LDirectivesModule } from './directives';\nimport { LGlobalLoadingModule } from './global-loading';\nimport { LNgZorroModule } from './ng-zorro';\nimport { LPipesModule } from './pipes';\nimport { LValidationMessagesModule } from './validation-messages';\n//\nconst ALL_MODULES: Type<any>[] = [\n  AbpModule,\n  LComponentsModule,\n  LDirectivesModule,\n  LGlobalLoadingModule,\n  LNgZorroModule,\n  LPipesModule,\n  LValidationMessagesModule,\n];\n\n@NgModule({\n  imports: [\n    ...ALL_MODULES,\n  ],\n  declarations: [\n\n  ],\n  entryComponents: [\n\n  ],\n  exports: [\n    ...ALL_MODULES,\n  ],\n  providers: [\n\n  ],\n})\nexport class L52AbpModule {\n  // constructor(@Optional() @SkipSelf() parentModule: L52AbpModule) {\n  //   throwIfAlreadyLoaded(parentModule, 'L52AbpModule');\n  // }\n\n  // static forRoot(services: Type<any>[] = []): ModuleWithProviders<L52AbpModule> {\n  //   return {\n  //     ngModule: L52AbpModule,\n  //     providers: [\n  //     ],\n  //   };\n  // }\n}\n","// https://angular.io/guide/styleguide#style-04-12\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\n  if (parentModule) {\n    throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);\n  }\n}\n"]}