@reskin/core 0.0.22 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/reskin-core-directives.umd.js +303 -163
- package/bundles/reskin-core-directives.umd.js.map +1 -1
- package/bundles/reskin-core-guards.umd.js +119 -32
- package/bundles/reskin-core-guards.umd.js.map +1 -1
- package/bundles/reskin-core-interceptors.umd.js +286 -104
- package/bundles/reskin-core-interceptors.umd.js.map +1 -1
- package/bundles/reskin-core-utils.umd.js +220 -77
- package/bundles/reskin-core-utils.umd.js.map +1 -1
- package/directives/auth.directive.d.ts +56 -9
- package/directives/load.styles.directive.d.ts +45 -5
- package/directives/string.template.outlet.directive.d.ts +68 -11
- package/esm2015/directives/auth.directive.js +71 -30
- package/esm2015/directives/load.styles.directive.js +84 -15
- package/esm2015/directives/string.template.outlet.directive.js +118 -60
- package/esm2015/guards/auth.guard.js +117 -30
- package/esm2015/interceptors/blob.interceptor.js +67 -28
- package/esm2015/interceptors/cache.interceptor.js +46 -14
- package/esm2015/interceptors/error.interceptor.js +104 -12
- package/esm2015/interceptors/public-api.js +2 -1
- package/esm2015/interceptors/token.interceptor.js +66 -53
- package/esm2015/interceptors/types.js +5 -0
- package/esm2015/utils/array.js +42 -22
- package/esm2015/utils/dom.js +29 -11
- package/esm2015/utils/form.js +44 -13
- package/esm2015/utils/store.js +101 -26
- package/fesm2015/reskin-core-directives.js +269 -103
- package/fesm2015/reskin-core-directives.js.map +1 -1
- package/fesm2015/reskin-core-guards.js +116 -29
- package/fesm2015/reskin-core-guards.js.map +1 -1
- package/fesm2015/reskin-core-interceptors.js +282 -102
- package/fesm2015/reskin-core-interceptors.js.map +1 -1
- package/fesm2015/reskin-core-utils.js +212 -68
- package/fesm2015/reskin-core-utils.js.map +1 -1
- package/guards/auth.guard.d.ts +85 -5
- package/interceptors/blob.interceptor.d.ts +30 -3
- package/interceptors/cache.interceptor.d.ts +28 -4
- package/interceptors/error.interceptor.d.ts +43 -2
- package/interceptors/public-api.d.ts +1 -0
- package/interceptors/token.interceptor.d.ts +35 -18
- package/interceptors/types.d.ts +68 -0
- package/package.json +1 -1
- package/utils/array.d.ts +8 -1
- package/utils/dom.d.ts +32 -5
- package/utils/form.d.ts +37 -2
- package/utils/store.d.ts +56 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reskin-core-directives.umd.js","sources":["../../../library/core/directives/auth.directive.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../library/core/directives/string.template.outlet.directive.ts","../../../library/core/directives/load.styles.directive.ts","../../../library/core/directives/directives.module.ts","../../../library/core/directives/reskin-core-directives.ts"],"sourcesContent":["import { Directive, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { RkMenuService } from '@reskin/core/services';\r\n\r\n@Directive({\r\n selector: '[rkAuth]',\r\n})\r\nexport class RkAuthDirective implements OnDestroy {\r\n /**\r\n * 传递多个标识符时,逗号分隔,匹配按\"或者\"运算\r\n * @param condition\r\n */\r\n @Input()\r\n set rkAuth(condition: string | string[]) {\r\n this.condition = condition;\r\n this.updateView();\r\n }\r\n\r\n @Input()\r\n set rkAuthThen(templateRef: TemplateRef<any>) {\r\n this.thenTemplateRef = templateRef;\r\n this.updateView();\r\n }\r\n\r\n @Input()\r\n set rkAuthElse(templateRef: TemplateRef<any>) {\r\n this.elseTemplateRef = templateRef;\r\n this.updateView();\r\n }\r\n\r\n constructor(\r\n private menu: RkMenuService,\r\n private viewContainerRef: ViewContainerRef,\r\n public templateRef: TemplateRef<any>,\r\n ) {\r\n this.thenTemplateRef = templateRef;\r\n }\r\n\r\n private condition: string | string[] = '';\r\n private thenTemplateRef?: TemplateRef<any>;\r\n private elseTemplateRef?: TemplateRef<any>;\r\n private authSubscription?: Subscription;\r\n\r\n ngOnDestroy() {\r\n this.authSubscription?.unsubscribe();\r\n }\r\n\r\n private updateView() {\r\n this.authSubscription?.unsubscribe();\r\n this.authSubscription = this.hasAuth(this.condition).subscribe((context) => {\r\n this.viewContainerRef.clear();\r\n if (context.status) {\r\n if (this.thenTemplateRef) {\r\n this.viewContainerRef.createEmbeddedView(this.thenTemplateRef, context);\r\n }\r\n } else {\r\n if (this.elseTemplateRef) {\r\n this.viewContainerRef.createEmbeddedView(this.elseTemplateRef, context);\r\n }\r\n }\r\n });\r\n }\r\n\r\n private hasAuth(tags: string | string[]) {\r\n const tagList: string[] = typeof tags === 'string' ? [tags] : tags;\r\n return this.menu.requestData().pipe(\r\n map((json) => {\r\n const menus = json.data.filter((menu) => tagList.includes(menu.SYSTEM_RESOURCE_GUARD_ID));\r\n if (!menus.length) return { $implicit: [], status: false };\r\n return {\r\n $implicit: typeof tags === 'string' ? menus[0] : menus,\r\n status: !!menus.length,\r\n };\r\n }),\r\n );\r\n }\r\n}\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChange, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[rkStringTemplateOutlet]',\r\n})\r\nexport class RkStringTemplateOutletDirective<_T = unknown> implements OnChanges {\r\n private embeddedViewRef: EmbeddedViewRef<any> | null = null;\r\n private context = new RkStringTemplateOutletContext();\r\n @Input() rkStringTemplateOutletContext: any | null = null;\r\n @Input() rkStringTemplateOutlet: any | TemplateRef<any> = null;\r\n\r\n static rkTemplateContextGuard<T>(_dir: RkStringTemplateOutletDirective<T>, _ctx: any): _ctx is RkStringTemplateOutletContext {\r\n return true;\r\n }\r\n\r\n private recreateView(): void {\r\n this.viewContainer.clear();\r\n const isTemplateRef = this.rkStringTemplateOutlet instanceof TemplateRef;\r\n const templateRef = (isTemplateRef ? this.rkStringTemplateOutlet : this.templateRef) as any;\r\n this.embeddedViewRef = this.viewContainer.createEmbeddedView(\r\n templateRef,\r\n isTemplateRef ? this.rkStringTemplateOutletContext : this.context,\r\n );\r\n }\r\n\r\n private updateContext(): void {\r\n const isTemplateRef = this.rkStringTemplateOutlet instanceof TemplateRef;\r\n const newCtx = isTemplateRef ? this.rkStringTemplateOutletContext : this.context;\r\n const oldCtx = this.embeddedViewRef!.context as any;\r\n if (newCtx) {\r\n for (const propName of Object.keys(newCtx)) {\r\n oldCtx[propName] = newCtx[propName];\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<any>,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { rkStringTemplateOutletContext, rkStringTemplateOutlet } = changes;\r\n const shouldRecreateView = (): boolean => {\r\n let shouldOutletRecreate = false;\r\n if (rkStringTemplateOutlet) {\r\n if (rkStringTemplateOutlet.firstChange) {\r\n shouldOutletRecreate = true;\r\n } else {\r\n const isPreviousOutletTemplate = rkStringTemplateOutlet.previousValue instanceof TemplateRef;\r\n const isCurrentOutletTemplate = rkStringTemplateOutlet.currentValue instanceof TemplateRef;\r\n shouldOutletRecreate = isPreviousOutletTemplate || isCurrentOutletTemplate;\r\n }\r\n }\r\n const hasContextShapeChanged = (ctxChange: SimpleChange): boolean => {\r\n const prevCtxKeys = Object.keys(ctxChange.previousValue || {});\r\n const currCtxKeys = Object.keys(ctxChange.currentValue || {});\r\n if (prevCtxKeys.length === currCtxKeys.length) {\r\n for (const propName of currCtxKeys) {\r\n if (prevCtxKeys.indexOf(propName) === -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n const shouldContextRecreate = rkStringTemplateOutletContext && hasContextShapeChanged(rkStringTemplateOutletContext);\r\n return shouldContextRecreate || shouldOutletRecreate;\r\n };\r\n\r\n if (rkStringTemplateOutlet) {\r\n this.context.$implicit = rkStringTemplateOutlet.currentValue;\r\n }\r\n\r\n const recreateView = shouldRecreateView();\r\n if (recreateView) {\r\n /** recreate view when context shape or outlet change **/\r\n this.recreateView();\r\n } else {\r\n /** update context **/\r\n this.updateContext();\r\n }\r\n }\r\n}\r\n\r\nexport class RkStringTemplateOutletContext {\r\n public $implicit: any;\r\n}\r\n","import { Directive, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ILoadResult, RkStyleLoaderService } from '@reskin/core/services';\r\n\r\n@Directive({\r\n selector: '[rkLoadStyles]',\r\n})\r\nexport class RkLoadStylesDirective implements OnInit, OnDestroy {\r\n @Input('rkLoadStyles') hrefs: string[] | string = [];\r\n\r\n // (可选) 输出加载完成事件,以便父组件可以响应\r\n @Output() stylesLoaded = new EventEmitter<ILoadResult[]>();\r\n\r\n private subscription: Subscription | undefined;\r\n private styleUrls: string[] = [];\r\n\r\n constructor(private styleLoader: RkStyleLoaderService) {}\r\n\r\n ngOnInit(): void {\r\n this.styleUrls = Array.isArray(this.hrefs) ? this.hrefs : [this.hrefs];\r\n if (this.styleUrls.length > 0) {\r\n this.subscription = this.styleLoader.load(...this.styleUrls).subscribe((results) => {\r\n this.stylesLoaded.emit(results);\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n // 指令销毁时,自动调用 unload,服务内部会处理引用计数\r\n if (this.styleUrls.length > 0) {\r\n this.styleLoader.unload(...this.styleUrls);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RkAuthDirective } from './auth.directive';\r\nimport { RkStringTemplateOutletDirective } from './string.template.outlet.directive';\r\nimport { RkLoadStylesDirective } from './load.styles.directive';\r\n\r\n@NgModule({\r\n declarations: [RkAuthDirective, RkStringTemplateOutletDirective, RkLoadStylesDirective],\r\n exports: [RkAuthDirective, RkStringTemplateOutletDirective, RkLoadStylesDirective],\r\n})\r\nexport class RkDirectivesModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","i1","i0","Directive","Input","TemplateRef","EventEmitter","Output","NgModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,QAAA,eAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,eAAA,CACY,IAAmB,EACnB,gBAAkC,EACnC,WAA6B,EAAA;IAF5B,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAe;IACnB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IACnC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAKhC,QAAA,IAAS,CAAA,SAAA,GAAsB,EAAE,CAAC;IAHtC,QAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;SACtC;IAxBD,IAAA,MAAA,CAAA,cAAA,CACI,eAAM,CAAA,SAAA,EAAA,QAAA,EAAA;IALV;;;IAGG;IACH,QAAA,GAAA,EAAA,UACW,SAA4B,EAAA;IACnC,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,eAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IADd,QAAA,GAAA,EAAA,UACe,WAA6B,EAAA;IACxC,YAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;gBACnC,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,eAAU,CAAA,SAAA,EAAA,YAAA,EAAA;IADd,QAAA,GAAA,EAAA,UACe,WAA6B,EAAA;IACxC,YAAA,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC;gBACnC,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAeD,IAAA,eAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;;YACI,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;SACxC,CAAA;IAEO,IAAA,eAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YAAA,IAcP,KAAA,GAAA,IAAA,CAAA;;YAbG,CAAA,EAAA,GAAA,IAAI,CAAC,gBAAgB,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;IACrC,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,UAAC,OAAO,EAAA;IACnE,YAAA,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC9B,IAAI,OAAO,CAAC,MAAM,EAAE;oBAChB,IAAI,KAAI,CAAC,eAAe,EAAE;wBACtB,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3E,iBAAA;IACJ,aAAA;IAAM,iBAAA;oBACH,IAAI,KAAI,CAAC,eAAe,EAAE;wBACtB,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC3E,iBAAA;IACJ,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;QAEO,eAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,IAAuB,EAAA;IACnC,QAAA,IAAM,OAAO,GAAa,OAAO,IAAI,KAAK,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACnE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC/BA,aAAG,CAAC,UAAC,IAAI,EAAA;gBACL,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAC,IAAI,EAAA,EAAK,OAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA,EAAA,CAAC,CAAC;gBAC1F,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;gBAC3D,OAAO;IACH,gBAAA,SAAS,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;IACtD,gBAAA,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;iBACzB,CAAC;aACL,CAAC,CACL,CAAC;SACL,CAAA;;;uIApEQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gHAAf,eAAe,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAAf,eAAe,EAAA,UAAA,EAAA,CAAA;sBAH3BC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACP,oBAAA,QAAQ,EAAE,UAAU;qBACvB,CAAA;kMAOO,MAAM,EAAA,CAAA;0BADTC,QAAK;oBAOF,UAAU,EAAA,CAAA;0BADbA,QAAK;oBAOF,UAAU,EAAA,CAAA;0BADbA,QAAK;;;ICzBV;;;;;;;;;;;;;IAagF;IAChF;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;QAC/B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;IAC5B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IACvC,IAAA,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACvF,CAAC;IAEM,IAAI,QAAQ,GAAG,YAAA;QACpB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;IAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACjD,YAAA,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,SAAA;IACD,QAAA,OAAO,CAAC,CAAC;IACb,KAAC,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC,CAAA;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;QACzB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,SAAA;IACL,IAAA,OAAO,CAAC,CAAC;IACX,CAAC;IAEK,SAAU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;IACtD,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;IAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;IAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAAE,gBAAA,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;IAC3C,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACvE,CAAC;IAEe,SAAA,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAA;IACrG,IAAA,SAAS,MAAM,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,UAAU;YAAE,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE;IACvH,IAAA,IAAI,IAAI,GAAG,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;QACjG,IAAI,MAAM,GAAG,CAAC,YAAY,IAAI,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxF,IAAI,UAAU,GAAG,YAAY,KAAK,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACzG,IAAA,IAAI,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACpB,IAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7C,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,KAAK,IAAI,CAAC,IAAI,SAAS;IAAE,YAAA,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,QAAQ,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACzE,QAAA,KAAK,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM;IAAE,YAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxE,QAAA,OAAO,CAAC,cAAc,GAAG,UAAU,CAAC,EAAA,EAAI,IAAI,IAAI;gBAAE,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9K,QAAA,IAAI,MAAM,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,UAAU,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YAC/H,IAAI,IAAI,KAAK,UAAU,EAAE;gBACrB,IAAI,MAAM,KAAK,KAAK,CAAC;oBAAE,SAAS;IAChC,YAAA,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;IAAE,gBAAA,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC1F,YAAA,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;IAAE,gBAAA,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/C,YAAA,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;IAAE,gBAAA,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/C,YAAA,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAAE,gBAAA,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACxD,SAAA;IACI,aAAA,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE;gBACzB,IAAI,IAAI,KAAK,OAAO;IAAE,gBAAA,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;;IACzC,gBAAA,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,SAAA;IACJ,KAAA;IACD,IAAA,IAAI,MAAM;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACtE,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAAA,CAAC;aAEc,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAA;IAC5D,IAAA,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAC1C,QAAA,KAAK,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3F,KAAA;QACD,OAAO,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;IACnC,CAAC;IAAA,CAAC;IAEI,SAAU,SAAS,CAAC,CAAC,EAAA;IACzB,IAAA,OAAO,OAAO,CAAC,KAAK,QAAQ,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC;IAAA,CAAC;aAEc,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAA;QAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAC/F,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACvH,CAAC;IAAA,CAAC;IAEc,SAAA,UAAU,CAAC,WAAW,EAAE,aAAa,EAAA;QACnD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACjI,CAAC;IAEK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;IACzD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;IACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,KAAC,CAAC,CAAC;IACL,CAAC;IAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;IACvC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE,EAAA;IACZ,QAAA,IAAI,CAAC;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9D,QAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,IAAI;IAC1C,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;IAAE,oBAAA,OAAO,CAAC,CAAC;IAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;IACT,oBAAA,KAAK,CAAC,CAAC;IAAC,oBAAA,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;IAC9B,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;IACjD,oBAAA,KAAK,CAAC;IAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IACjD,oBAAA;IACI,wBAAA,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;IAAE,yBAAA;IAC5G,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;IACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IAC9B,iBAAA;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAAS,oBAAA;IAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACH,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QAChE,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;IAC/E,QAAA,IAAI,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjE,KAAA;QACD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;QACxB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;QAC/B,KAAK,IAAI,CAAC,IAAI,CAAC;IAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAChH,CAAC;IAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;QACxB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAA,IAAI,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;IAC1C,YAAA,IAAI,EAAE,YAAA;IACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;IACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IACzF,CAAC;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACzB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAA,IAAI,CAAC,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC;IACjB,IAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;IAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAA;IACD,IAAA,OAAO,KAAK,EAAE;IAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAE,KAAA;IAC/B,YAAA;YACJ,IAAI;IACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,SAAA;IACO,gBAAA;IAAE,YAAA,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAAE,SAAA;IACpC,KAAA;IACD,IAAA,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;aACgB,QAAQ,GAAA;IACtB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAA,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;aACgB,cAAc,GAAA;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IAAE,QAAA,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,CAAC,CAAC;IACX,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAA;IAC1C,IAAA,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;IAAE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;IACpB,gBAAA,IAAI,CAAC,EAAE;IAAE,oBAAA,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,aAAA;IACJ,SAAA;IACD,IAAA,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEK,SAAU,OAAO,CAAC,CAAC,EAAA;QACvB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAA;QAC7D,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACnI,SAAS,WAAW,CAAC,CAAC,EAAI,EAAA,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;QAC/F,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAAC,QAAA,IAAI,CAAC;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;IACxK,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA;IAAC,IAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;IAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACpF,CAAC;IAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;QAChC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAA,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACxI,CAAC;IAEK,SAAU,aAAa,CAAC,CAAC,EAAA;QAC7B,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,IAAA,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAC9H,CAAC;IAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;QAC9C,IAAI,MAAM,CAAC,cAAc,EAAE;IAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAAE,KAAA;IAAM,SAAA;IAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAAE,KAAA;IAC/G,IAAA,OAAO,MAAM,CAAC;IAChB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACrD,IAAA,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACtE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IAChB,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC,CAAC;IAEI,SAAU,YAAY,CAAC,GAAG,EAAA;IAC9B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;IAAE,QAAA,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;IAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAA,OAAO,MAAM,CAAC;IAChB,CAAC;IAEK,SAAU,eAAe,CAAC,GAAG,EAAA;IACjC,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1D,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;IAC7D,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IACnL,IAAA,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChG,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;QACpE,IAAI,IAAI,KAAK,GAAG;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxE,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IAClL,IAAA,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC5G,CAAC;IAEe,SAAA,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAA;IACnD,IAAA,IAAI,QAAQ,KAAK,IAAI,KAAK,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,CAAC;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;IACzJ,IAAA,OAAO,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChF,CAAC;aAEe,uBAAuB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAA;QACvD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,EAAE;YACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACtG,IAAI,OAAO,EAAE,KAAK,CAAC;IACnB,QAAA,IAAI,KAAK,EAAE;gBACT,IAAI,CAAC,MAAM,CAAC,YAAY;IAAE,gBAAA,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IACrF,YAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACtC,SAAA;IACD,QAAA,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE;gBACtB,IAAI,CAAC,MAAM,CAAC,OAAO;IAAE,gBAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IAC3E,YAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChC,YAAA,IAAI,KAAK;oBAAE,KAAK,GAAG,OAAO,CAAC;IAC5B,SAAA;YACD,IAAI,OAAO,OAAO,KAAK,UAAU;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACjF,QAAA,IAAI,KAAK;gBAAE,OAAO,GAAG,cAAa,IAAI;IAAE,gBAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAAE,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,aAAA,EAAE,CAAC;IACtG,QAAA,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAClE,KAAA;IACI,SAAA,IAAI,KAAK,EAAE;YACd,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,KAAA;IACD,IAAA,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,gBAAgB,GAAG,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAA;IACnH,IAAA,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,IAAA,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC;IAEI,SAAU,kBAAkB,CAAC,GAAG,EAAA;QACpC,SAAS,IAAI,CAAC,CAAC,EAAA;YACb,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,0CAA0C,CAAC,GAAG,CAAC,CAAC;IAC9G,QAAA,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;SACrB;IACD,IAAA,SAAS,IAAI,GAAA;IACX,QAAA,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE;gBACvB,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC1B,IAAI;IACF,gBAAA,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACxD,IAAI,GAAG,CAAC,KAAK;wBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAS,CAAC,EAAI,EAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IACnG,aAAA;IACD,YAAA,OAAO,CAAC,EAAE;oBACN,IAAI,CAAC,CAAC,CAAC,CAAC;IACX,aAAA;IACF,SAAA;YACD,IAAI,GAAG,CAAC,QAAQ;gBAAE,MAAM,GAAG,CAAC,KAAK,CAAC;SACnC;QACD,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;AAED,oBAAe;IACb,IAAA,SAAS,EAAA,SAAA;IACT,IAAA,QAAQ,EAAA,QAAA;IACR,IAAA,MAAM,EAAA,MAAA;IACN,IAAA,UAAU,EAAA,UAAA;IACV,IAAA,OAAO,EAAA,OAAA;IACP,IAAA,UAAU,EAAA,UAAA;IACV,IAAA,SAAS,EAAA,SAAA;IACT,IAAA,WAAW,EAAA,WAAA;IACX,IAAA,eAAe,EAAA,eAAA;IACf,IAAA,YAAY,EAAA,YAAA;IACZ,IAAA,QAAQ,EAAA,QAAA;IACR,IAAA,MAAM,EAAA,MAAA;IACN,IAAA,QAAQ,EAAA,QAAA;IACR,IAAA,cAAc,EAAA,cAAA;IACd,IAAA,aAAa,EAAA,aAAA;IACb,IAAA,OAAO,EAAA,OAAA;IACP,IAAA,gBAAgB,EAAA,gBAAA;IAChB,IAAA,gBAAgB,EAAA,gBAAA;IAChB,IAAA,aAAa,EAAA,aAAA;IACb,IAAA,oBAAoB,EAAA,oBAAA;IACpB,IAAA,YAAY,EAAA,YAAA;IACZ,IAAA,eAAe,EAAA,eAAA;IACf,IAAA,sBAAsB,EAAA,sBAAA;IACtB,IAAA,sBAAsB,EAAA,sBAAA;IACtB,IAAA,qBAAqB,EAAA,qBAAA;IACrB,IAAA,uBAAuB,EAAA,uBAAA;IACvB,IAAA,kBAAkB,EAAA,kBAAA;KACnB;;AC/WD,QAAA,+BAAA,kBAAA,YAAA;QA+BI,SACY,+BAAA,CAAA,aAA+B,EAC/B,WAA6B,EAAA;IAD7B,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;IAC/B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAhCjC,QAAA,IAAe,CAAA,eAAA,GAAgC,IAAI,CAAC;IACpD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,6BAA6B,EAAE,CAAC;IAC7C,QAAA,IAA6B,CAAA,6BAAA,GAAe,IAAI,CAAC;IACjD,QAAA,IAAsB,CAAA,sBAAA,GAA2B,IAAI,CAAC;SA8B3D;IA5BG,IAAA,+BAAA,CAAA,sBAAsB,GAA7B,UAAiC,IAAwC,EAAE,IAAS,EAAA;IAChF,QAAA,OAAO,IAAI,CAAC;SACf,CAAA;IAEO,IAAA,+BAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACJ,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC3B,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,YAAYC,cAAW,CAAC;IACzE,QAAA,IAAM,WAAW,IAAI,aAAa,GAAG,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,WAAW,CAAQ,CAAC;YAC5F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACxD,WAAW,EACX,aAAa,GAAG,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,OAAO,CACpE,CAAC;SACL,CAAA;IAEO,IAAA,+BAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;;IACJ,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,sBAAsB,YAAYA,cAAW,CAAC;IACzE,QAAA,IAAM,MAAM,GAAG,aAAa,GAAG,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,OAAO,CAAC;IACjF,QAAA,IAAM,MAAM,GAAG,IAAI,CAAC,eAAgB,CAAC,OAAc,CAAC;IACpD,QAAA,IAAI,MAAM,EAAE;;oBACR,KAAuB,IAAA,EAAA,GAAA,QAAA,CAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAvC,oBAAA,IAAM,QAAQ,GAAA,EAAA,CAAA,KAAA,CAAA;wBACf,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,iBAAA;;;;;;;;;IACJ,SAAA;SACJ,CAAA;QAOD,+BAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;YACtB,IAAA,6BAA6B,GAA6B,OAAO,CAAA,6BAApC,EAAE,sBAAsB,GAAK,OAAO,CAAA,sBAAZ,CAAa;IAC1E,QAAA,IAAM,kBAAkB,GAAG,YAAA;gBACvB,IAAI,oBAAoB,GAAG,KAAK,CAAC;IACjC,YAAA,IAAI,sBAAsB,EAAE;oBACxB,IAAI,sBAAsB,CAAC,WAAW,EAAE;wBACpC,oBAAoB,GAAG,IAAI,CAAC;IAC/B,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAM,wBAAwB,GAAG,sBAAsB,CAAC,aAAa,YAAYA,cAAW,CAAC;IAC7F,oBAAA,IAAM,uBAAuB,GAAG,sBAAsB,CAAC,YAAY,YAAYA,cAAW,CAAC;IAC3F,oBAAA,oBAAoB,GAAG,wBAAwB,IAAI,uBAAuB,CAAC;IAC9E,iBAAA;IACJ,aAAA;gBACD,IAAM,sBAAsB,GAAG,UAAC,SAAuB,EAAA;;IACnD,gBAAA,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAC/D,gBAAA,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC9D,gBAAA,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE;;IAC3C,wBAAA,KAAuB,IAAA,aAAA,GAAA,QAAA,CAAA,WAAW,CAAA,wCAAA,EAAE,CAAA,eAAA,CAAA,IAAA,EAAA,eAAA,GAAA,aAAA,CAAA,IAAA,EAAA,EAAA;IAA/B,4BAAA,IAAM,QAAQ,GAAA,eAAA,CAAA,KAAA,CAAA;gCACf,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;IACtC,gCAAA,OAAO,IAAI,CAAC;IACf,6BAAA;IACJ,yBAAA;;;;;;;;;IACD,oBAAA,OAAO,KAAK,CAAC;IAChB,iBAAA;IAAM,qBAAA;IACH,oBAAA,OAAO,IAAI,CAAC;IACf,iBAAA;IACL,aAAC,CAAC;gBACF,IAAM,qBAAqB,GAAG,6BAA6B,IAAI,sBAAsB,CAAC,6BAA6B,CAAC,CAAC;gBACrH,OAAO,qBAAqB,IAAI,oBAAoB,CAAC;IACzD,SAAC,CAAC;IAEF,QAAA,IAAI,sBAAsB,EAAE;gBACxB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,sBAAsB,CAAC,YAAY,CAAC;IAChE,SAAA;IAED,QAAA,IAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAC1C,QAAA,IAAI,YAAY,EAAE;;gBAEd,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,SAAA;IAAM,aAAA;;gBAEH,IAAI,CAAC,aAAa,EAAE,CAAC;IACxB,SAAA;SACJ,CAAA;;;uJA/EQ,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,aAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAAA,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;gIAA/B,+BAA+B,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;sBAH3CC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACP,oBAAA,QAAQ,EAAE,0BAA0B;qBACvC,CAAA;2JAIY,6BAA6B,EAAA,CAAA;0BAArCC,QAAK;oBACG,sBAAsB,EAAA,CAAA;0BAA9BA,QAAK;;AA8EV,QAAA,6BAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,6BAAA,GAAA;SAEC;QAAA,OAAA,6BAAA,CAAA;IAAA,CAAA,EAAA;;AClFD,QAAA,qBAAA,kBAAA,YAAA;IASI,IAAA,SAAA,qBAAA,CAAoB,WAAiC,EAAA;IAAjC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAsB;IAR9B,QAAA,IAAK,CAAA,KAAA,GAAsB,EAAE,CAAC;;IAG3C,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIE,eAAY,EAAiB,CAAC;IAGnD,QAAA,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;SAEwB;IAEzD,IAAA,qBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;YAAA,IAOC,KAAA,GAAA,IAAA,CAAA;YANG,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;IAC3B,YAAA,IAAI,CAAC,YAAY,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,EAAC,IAAI,CAAA,KAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAI,IAAI,CAAC,SAAS,IAAE,SAAS,CAAC,UAAC,OAAO,EAAA;IAC3E,gBAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;IACnB,YAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACnC,SAAA;;IAED,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,EAAC,MAAM,CAAI,KAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,IAAI,CAAC,SAAS,CAAE,CAAA,CAAA,CAAA;IAC9C,SAAA;SACJ,CAAA;;;6IA5BQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,aAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,cAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,CAAA,CAAA;sHAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;sBAHjCC,YAAS;IAAC,YAAA,IAAA,EAAA,CAAA;IACP,oBAAA,QAAQ,EAAE,gBAAgB;qBAC7B,CAAA;0HAE0B,KAAK,EAAA,CAAA;0BAA3BC,QAAK;2BAAC,cAAc,CAAA;oBAGX,YAAY,EAAA,CAAA;0BAArBG,SAAM;;;ACFX,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;;;0IAAa,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAL,aAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2IAAlB,kBAAkB,EAAA,YAAA,EAAA,CAHZ,eAAe,EAAE,+BAA+B,EAAE,qBAAqB,CAAA,EAAA,OAAA,EAAA,CAC5E,eAAe,EAAE,+BAA+B,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA;2IAExE,kBAAkB,EAAA,CAAA,CAAA;sHAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;sBAJ9BM,WAAQ;IAAC,YAAA,IAAA,EAAA,CAAA;IACN,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,+BAA+B,EAAE,qBAAqB,CAAC;IACvF,oBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,+BAA+B,EAAE,qBAAqB,CAAC;qBACrF,CAAA;;;ICRD;;IAEG;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"reskin-core-directives.umd.js","sources":["../../../library/core/directives/auth.directive.ts","../../../library/core/directives/string.template.outlet.directive.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../library/core/directives/load.styles.directive.ts","../../../library/core/directives/directives.module.ts","../../../library/core/directives/reskin-core-directives.ts"],"sourcesContent":["import { Directive, Input, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\nimport { RkMenuService } from '@reskin/core/services';\r\n\r\n/**\r\n * 权限指令上下文\r\n */\r\nexport interface RkAuthContext<T = any> {\r\n /** 隐式上下文,包含匹配的菜单数据 */\r\n $implicit: T;\r\n /** 权限验证状态 */\r\n status: boolean;\r\n}\r\n\r\n/**\r\n * 权限指令\r\n * 根据权限标识符控制模板的显示与隐藏\r\n *\r\n * @example\r\n * ```html\r\n * <!-- 基础用法 -->\r\n * <div *rkAuth=\"'user:edit'\">有编辑权限才显示</div>\r\n *\r\n * <!-- 多个权限(或关系) -->\r\n * <div *rkAuth=\"['user:edit', 'user:delete']\">有任一权限即显示</div>\r\n *\r\n * <!-- 使用 then/else 模板 -->\r\n * <ng-container *rkAuth=\"'user:edit'; then hasAuth; else noAuth\"></ng-container>\r\n * <ng-template #hasAuth let-menu>\r\n * <p>有权限,菜单信息:{{ menu | json }}</p>\r\n * </ng-template>\r\n * <ng-template #noAuth>\r\n * <p>无权限</p>\r\n * </ng-template>\r\n * ```\r\n */\r\n@Directive({\r\n selector: '[rkAuth]',\r\n})\r\nexport class RkAuthDirective implements OnDestroy {\r\n private condition: string | string[] = '';\r\n private thenTemplateRef?: TemplateRef<any>;\r\n private elseTemplateRef?: TemplateRef<any>;\r\n private readonly destroy$ = new Subject<void>();\r\n\r\n /**\r\n * 权限标识符\r\n * 传递多个标识符时,匹配按\"或\"运算\r\n */\r\n @Input()\r\n set rkAuth(condition: string | string[]) {\r\n this.condition = condition;\r\n this.updateView();\r\n }\r\n\r\n /**\r\n * 有权限时显示的模板\r\n */\r\n @Input()\r\n set rkAuthThen(templateRef: TemplateRef<any>) {\r\n this.thenTemplateRef = templateRef;\r\n this.updateView();\r\n }\r\n\r\n /**\r\n * 无权限时显示的模板\r\n */\r\n @Input()\r\n set rkAuthElse(templateRef: TemplateRef<any>) {\r\n this.elseTemplateRef = templateRef;\r\n this.updateView();\r\n }\r\n\r\n constructor(\r\n private menuService: RkMenuService,\r\n private viewContainerRef: ViewContainerRef,\r\n public templateRef: TemplateRef<any>,\r\n ) {\r\n this.thenTemplateRef = templateRef;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n /**\r\n * 更新视图显示\r\n */\r\n private updateView(): void {\r\n if (!this.condition) {\r\n this.viewContainerRef.clear();\r\n return;\r\n }\r\n\r\n this.checkAuth(this.condition)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((context) => {\r\n this.renderView(context);\r\n });\r\n }\r\n\r\n /**\r\n * 渲染视图\r\n */\r\n private renderView(context: RkAuthContext): void {\r\n this.viewContainerRef.clear();\r\n\r\n if (context.status && this.thenTemplateRef) {\r\n this.viewContainerRef.createEmbeddedView(this.thenTemplateRef, context);\r\n } else if (!context.status && this.elseTemplateRef) {\r\n this.viewContainerRef.createEmbeddedView(this.elseTemplateRef, context);\r\n }\r\n }\r\n\r\n /**\r\n * 检查权限\r\n */\r\n private checkAuth(tags: string | string[]) {\r\n const tagList: string[] = Array.isArray(tags) ? tags : [tags];\r\n\r\n return this.menuService.requestData().pipe(\r\n map((response) => {\r\n const matchedMenus = response.data.filter((menu) => tagList.includes(menu.SYSTEM_RESOURCE_GUARD_ID));\r\n\r\n const context: RkAuthContext = {\r\n $implicit: Array.isArray(tags) ? matchedMenus : matchedMenus[0] || null,\r\n status: matchedMenus.length > 0,\r\n };\r\n\r\n return context;\r\n }),\r\n );\r\n }\r\n}\r\n","import { Directive, EmbeddedViewRef, Input, OnChanges, SimpleChange, SimpleChanges, TemplateRef, ViewContainerRef } from '@angular/core';\r\n\r\n/**\r\n * 字符串模板输出上下文\r\n */\r\nexport class RkStringTemplateOutletContext<T = any> {\r\n /** 隐式上下文值 */\r\n public $implicit: T | null = null;\r\n}\r\n\r\n/**\r\n * 字符串模板输出指令\r\n * 支持动态渲染字符串或 TemplateRef\r\n *\r\n * @example\r\n * ```html\r\n * <!-- 渲染字符串 -->\r\n * <ng-container *rkStringTemplateOutlet=\"'Hello World'\">\r\n * <ng-template>默认模板</ng-template>\r\n * </ng-container>\r\n *\r\n * <!-- 渲染 TemplateRef -->\r\n * <ng-container *rkStringTemplateOutlet=\"customTemplate; context: { $implicit: data }\">\r\n * </ng-container>\r\n * <ng-template #customTemplate let-item>\r\n * <div>{{ item }}</div>\r\n * </ng-template>\r\n *\r\n * <!-- 动态切换 -->\r\n * <ng-container *rkStringTemplateOutlet=\"isTemplate ? templateRef : 'Static Text'\">\r\n * </ng-container>\r\n * ```\r\n */\r\n@Directive({\r\n selector: '[rkStringTemplateOutlet]',\r\n})\r\nexport class RkStringTemplateOutletDirective<T = unknown> implements OnChanges {\r\n private embeddedViewRef: EmbeddedViewRef<RkStringTemplateOutletContext<T>> | null = null;\r\n private context = new RkStringTemplateOutletContext<T>();\r\n\r\n /**\r\n * 输出内容\r\n * 可以是字符串或 TemplateRef\r\n */\r\n @Input() rkStringTemplateOutlet: T | TemplateRef<RkStringTemplateOutletContext<T>> | null = null;\r\n\r\n /**\r\n * 模板上下文\r\n * 当 rkStringTemplateOutlet 是 TemplateRef 时使用\r\n */\r\n @Input() rkStringTemplateOutletContext: RkStringTemplateOutletContext<T> | null = null;\r\n\r\n /**\r\n * 类型守卫\r\n * 用于 Angular 模板类型检查\r\n */\r\n static rkTemplateContextGuard<T>(\r\n _dir: RkStringTemplateOutletDirective<T>,\r\n _ctx: any,\r\n ): _ctx is RkStringTemplateOutletContext<T> {\r\n return true;\r\n }\r\n\r\n constructor(\r\n private viewContainerRef: ViewContainerRef,\r\n private templateRef: TemplateRef<RkStringTemplateOutletContext<T>>,\r\n ) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { rkStringTemplateOutlet, rkStringTemplateOutletContext } = changes;\r\n\r\n // 更新隐式上下文\r\n if (rkStringTemplateOutlet) {\r\n this.context.$implicit = rkStringTemplateOutlet.currentValue;\r\n }\r\n\r\n // 判断是否需要重建视图\r\n if (this.shouldRecreateView(rkStringTemplateOutlet, rkStringTemplateOutletContext)) {\r\n this.recreateView();\r\n } else {\r\n this.updateContext();\r\n }\r\n }\r\n\r\n /**\r\n * 判断是否需要重建视图\r\n */\r\n private shouldRecreateView(outletChange?: SimpleChange, contextChange?: SimpleChange): boolean {\r\n // 首次变更需要创建视图\r\n if (outletChange?.firstChange) {\r\n return true;\r\n }\r\n\r\n // outlet 在 TemplateRef 和非 TemplateRef 之间切换时需要重建\r\n if (outletChange && this.isOutletTypeChanged(outletChange)) {\r\n return true;\r\n }\r\n\r\n // 上下文结构变化时需要重建\r\n if (contextChange && this.isContextShapeChanged(contextChange)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * 检查 outlet 类型是否变化\r\n */\r\n private isOutletTypeChanged(change: SimpleChange): boolean {\r\n const isPreviousTemplate = change.previousValue instanceof TemplateRef;\r\n const isCurrentTemplate = change.currentValue instanceof TemplateRef;\r\n return isPreviousTemplate !== isCurrentTemplate;\r\n }\r\n\r\n /**\r\n * 检查上下文结构是否变化\r\n */\r\n private isContextShapeChanged(change: SimpleChange): boolean {\r\n const prevKeys = Object.keys(change.previousValue || {});\r\n const currKeys = Object.keys(change.currentValue || {});\r\n\r\n if (prevKeys.length !== currKeys.length) {\r\n return true;\r\n }\r\n\r\n return currKeys.some((key) => !prevKeys.includes(key));\r\n }\r\n\r\n /**\r\n * 重建视图\r\n */\r\n private recreateView(): void {\r\n this.viewContainerRef.clear();\r\n\r\n const isTemplateRef = this.rkStringTemplateOutlet instanceof TemplateRef;\r\n const templateRef = isTemplateRef ? this.rkStringTemplateOutlet : this.templateRef;\r\n const context = isTemplateRef ? this.rkStringTemplateOutletContext : this.context;\r\n\r\n this.embeddedViewRef = this.viewContainerRef.createEmbeddedView(\r\n templateRef as TemplateRef<RkStringTemplateOutletContext<T>>,\r\n context || this.context,\r\n );\r\n }\r\n\r\n /**\r\n * 更新视图上下文\r\n */\r\n private updateContext(): void {\r\n if (!this.embeddedViewRef) {\r\n return;\r\n }\r\n\r\n const isTemplateRef = this.rkStringTemplateOutlet instanceof TemplateRef;\r\n const newContext = isTemplateRef ? this.rkStringTemplateOutletContext : this.context;\r\n const viewContext = this.embeddedViewRef.context;\r\n\r\n if (newContext) {\r\n Object.keys(newContext).forEach((key) => {\r\n (viewContext as any)[key] = (newContext as any)[key];\r\n });\r\n }\r\n }\r\n}\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\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\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\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\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { Directive, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { ILoadResult, RkStyleLoaderService } from '@reskin/core/services';\r\n\r\n/**\r\n * 样式按需加载指令\r\n * 在指令初始化时加载指定的样式文件,销毁时自动卸载\r\n *\r\n * @example\r\n * ```html\r\n * <!-- 加载单个样式 -->\r\n * <div [rkLoadStyles]=\"'assets/styles/theme.css'\">内容</div>\r\n *\r\n * <!-- 加载多个样式 -->\r\n * <div [rkLoadStyles]=\"['assets/styles/theme.css', 'assets/styles/components.css']\">内容</div>\r\n *\r\n * <!-- 监听加载完成事件 -->\r\n * <div [rkLoadStyles]=\"styleUrls\" (stylesLoaded)=\"onLoaded($event)\">内容</div>\r\n * ```\r\n */\r\n@Directive({\r\n selector: '[rkLoadStyles]',\r\n})\r\nexport class RkLoadStylesDirective implements OnInit, OnDestroy {\r\n private readonly destroy$ = new Subject<void>();\r\n private styleUrls: string[] = [];\r\n\r\n /**\r\n * 样式文件路径\r\n * 可以是单个路径字符串或路径数组\r\n */\r\n @Input('rkLoadStyles') hrefs: string | string[] = [];\r\n\r\n /**\r\n * 样式加载完成事件\r\n * 返回每个样式文件的加载结果\r\n */\r\n @Output() stylesLoaded = new EventEmitter<ILoadResult[]>();\r\n\r\n constructor(private styleLoaderService: RkStyleLoaderService) {}\r\n\r\n ngOnInit(): void {\r\n this.loadStyles();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n this.unloadStyles();\r\n }\r\n\r\n /**\r\n * 加载样式文件\r\n */\r\n private loadStyles(): void {\r\n this.styleUrls = this.normalizeHrefs(this.hrefs);\r\n\r\n if (this.styleUrls.length === 0) {\r\n return;\r\n }\r\n\r\n this.styleLoaderService\r\n .load(...this.styleUrls)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (results) => {\r\n this.stylesLoaded.emit(results);\r\n this.logLoadResults(results);\r\n },\r\n error: (error) => {\r\n console.error('[RkLoadStyles] 样式加载失败:', error);\r\n },\r\n });\r\n }\r\n\r\n /**\r\n * 卸载样式文件\r\n */\r\n private unloadStyles(): void {\r\n if (this.styleUrls.length > 0) {\r\n this.styleLoaderService.unload(...this.styleUrls);\r\n }\r\n }\r\n\r\n /**\r\n * 标准化 hrefs 输入为数组\r\n */\r\n private normalizeHrefs(hrefs: string | string[]): string[] {\r\n if (!hrefs) {\r\n return [];\r\n }\r\n return Array.isArray(hrefs) ? hrefs : [hrefs];\r\n }\r\n\r\n /**\r\n * 记录加载结果(仅在开发模式)\r\n */\r\n private logLoadResults(results: ILoadResult[]): void {\r\n // 开发模式下记录加载结果\r\n results.forEach((result) => {\r\n if (result.success) {\r\n console.log(`[RkLoadStyles] 样式加载成功: ${result.href}`);\r\n } else {\r\n console.error(`[RkLoadStyles] 样式加载失败: ${result.href}`, result.error);\r\n }\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RkAuthDirective } from './auth.directive';\r\nimport { RkStringTemplateOutletDirective } from './string.template.outlet.directive';\r\nimport { RkLoadStylesDirective } from './load.styles.directive';\r\n\r\n@NgModule({\r\n declarations: [RkAuthDirective, RkStringTemplateOutletDirective, RkLoadStylesDirective],\r\n exports: [RkAuthDirective, RkStringTemplateOutletDirective, RkLoadStylesDirective],\r\n})\r\nexport class RkDirectivesModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Subject","takeUntil","map","i1","i0","Directive","Input","TemplateRef","EventEmitter","Output","NgModule"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/operators'), require('@reskin/core/services'), require('@angular/router')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@reskin/core/guards', ['exports', '@angular/core', 'rxjs/operators', '@reskin/core/services', '@angular/router'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.reskin = global.reskin || {}, global.reskin.core = global.reskin.core || {}, global.reskin.core.guards = {}), global.ng.core, global.rxjs.operators, global.reskin.core.services, global.ng.router));
|
|
5
|
-
})(this, (function (exports, i0, operators, i1, i2) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs'), require('rxjs/operators'), require('@reskin/core/services'), require('@angular/router')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define('@reskin/core/guards', ['exports', '@angular/core', 'rxjs', 'rxjs/operators', '@reskin/core/services', '@angular/router'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.reskin = global.reskin || {}, global.reskin.core = global.reskin.core || {}, global.reskin.core.guards = {}), global.ng.core, global.rxjs, global.rxjs.operators, global.reskin.core.services, global.ng.router));
|
|
5
|
+
})(this, (function (exports, i0, rxjs, operators, i1, i2) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopNamespace(e) {
|
|
8
8
|
if (e && e.__esModule) return e;
|
|
@@ -30,63 +30,142 @@
|
|
|
30
30
|
* 路由守卫配置注入令牌
|
|
31
31
|
*/
|
|
32
32
|
var RK_ROUTER_GUARD_CONFIG = new i0.InjectionToken('router_guard_config');
|
|
33
|
+
/**
|
|
34
|
+
* 路由守卫选项注入令牌
|
|
35
|
+
*/
|
|
36
|
+
var RK_ROUTER_GUARD_OPTIONS = new i0.InjectionToken('router_guard_options');
|
|
33
37
|
/**
|
|
34
38
|
* 路由守卫提供者配置函数
|
|
35
39
|
*
|
|
36
40
|
* @param urls - 路由守卫配置数组,包含需要保护的路由配置信息
|
|
41
|
+
* @param options - 可选的守卫选项配置
|
|
37
42
|
* @returns 返回Angular依赖注入的Provider数组,用于配置路由守卫
|
|
38
43
|
*/
|
|
39
|
-
function providerRouterGuard(urls) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
{ provide:
|
|
43
|
-
|
|
44
|
+
function providerRouterGuard(urls, options) {
|
|
45
|
+
var providers = [{ provide: RK_ROUTER_GUARD_CONFIG, useValue: urls }];
|
|
46
|
+
if (options) {
|
|
47
|
+
providers.push({ provide: RK_ROUTER_GUARD_OPTIONS, useValue: options });
|
|
48
|
+
}
|
|
49
|
+
return providers;
|
|
44
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* 路由权限守卫
|
|
53
|
+
*
|
|
54
|
+
* 用于保护路由,确保用户只能访问其被授权的路由。
|
|
55
|
+
* 支持权限继承机制和自定义权限检查逻辑。
|
|
56
|
+
*/
|
|
45
57
|
var RkAuthGuard = /** @class */ (function () {
|
|
46
|
-
function RkAuthGuard(config, menu, router) {
|
|
58
|
+
function RkAuthGuard(config, options, menu, router) {
|
|
47
59
|
this.config = config;
|
|
60
|
+
this.options = options;
|
|
48
61
|
this.menu = menu;
|
|
49
62
|
this.router = router;
|
|
50
63
|
}
|
|
51
64
|
RkAuthGuard.prototype.canActivateChild = function (childRoute, state) {
|
|
52
65
|
var _this = this;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
66
|
+
var _a;
|
|
67
|
+
// 检查路由数据中是否配置跳过权限检查
|
|
68
|
+
if (childRoute.data['skipAuth'] === true) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
// 执行前置钩子
|
|
72
|
+
if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.beforeCheck) && !this.options.beforeCheck(childRoute, state)) {
|
|
73
|
+
return this.handleNoAccess(state.url);
|
|
74
|
+
}
|
|
75
|
+
return this.menu.requestData().pipe(operators.filter(function (json) { return json.code === 0; }), operators.map(function (json) { return json.data; }), operators.map(function (menus) { return _this.checkAccess(menus, state.url); }), operators.catchError(function (error) {
|
|
76
|
+
console.error('路由权限检查失败:', error);
|
|
77
|
+
return rxjs.of(_this.handleNoAccess(state.url));
|
|
56
78
|
}));
|
|
57
79
|
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
80
|
+
/**
|
|
81
|
+
* 检查用户是否有权限访问指定路由
|
|
82
|
+
*
|
|
83
|
+
* @param menus - 用户菜单权限数据
|
|
84
|
+
* @param url - 目标路由地址
|
|
85
|
+
* @returns 返回 true 允许访问,返回 false 或 UrlTree 拒绝访问
|
|
86
|
+
*/
|
|
87
|
+
RkAuthGuard.prototype.checkAccess = function (menus, url) {
|
|
88
|
+
if (!menus || menus.length === 0) {
|
|
89
|
+
console.error('此账号无任何功能权限');
|
|
90
|
+
return this.handleNoAccess(url);
|
|
62
91
|
}
|
|
63
|
-
|
|
92
|
+
// 移除查询参数,只保留路径部分
|
|
93
|
+
var routerUrl = this.normalizeUrl(url);
|
|
94
|
+
// 构建用户权限路由集合
|
|
64
95
|
var authRoutes = new Set(menus.map(function (m) { return m.SYSTEM_RESOURCE_URL; }));
|
|
96
|
+
// 直接权限检查
|
|
65
97
|
if (authRoutes.has(routerUrl)) {
|
|
66
98
|
return true;
|
|
67
99
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
});
|
|
72
|
-
if (extendRoutes.length > 0) {
|
|
73
|
-
return extendRoutes.some(function (item) { return authRoutes.has(item.url); });
|
|
74
|
-
}
|
|
100
|
+
// 继承权限检查
|
|
101
|
+
if (this.hasInheritedPermission(routerUrl, authRoutes)) {
|
|
102
|
+
return true;
|
|
75
103
|
}
|
|
76
|
-
|
|
77
|
-
return
|
|
104
|
+
// 无权限访问
|
|
105
|
+
return this.handleNoAccess(url);
|
|
78
106
|
};
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
107
|
+
/**
|
|
108
|
+
* 检查是否有继承的权限
|
|
109
|
+
*
|
|
110
|
+
* @param routerUrl - 标准化后的路由地址
|
|
111
|
+
* @param authRoutes - 用户权限路由集合
|
|
112
|
+
* @returns 返回 true 表示有继承权限
|
|
113
|
+
*/
|
|
114
|
+
RkAuthGuard.prototype.hasInheritedPermission = function (routerUrl, authRoutes) {
|
|
115
|
+
var _this = this;
|
|
116
|
+
if (!this.config || this.config.length === 0) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
// 查找匹配的继承配置
|
|
120
|
+
var matchedConfigs = this.config.filter(function (item) {
|
|
121
|
+
return item.extends.some(function (route) { return _this.matchRoute(route, routerUrl); });
|
|
122
|
+
});
|
|
123
|
+
// 检查是否有任一配置的 url 在用户权限中
|
|
124
|
+
return matchedConfigs.some(function (item) { return authRoutes.has(item.url); });
|
|
82
125
|
};
|
|
126
|
+
/**
|
|
127
|
+
* 匹配路由规则
|
|
128
|
+
*
|
|
129
|
+
* @param pattern - 路由模式(支持 ** 通配符)
|
|
130
|
+
* @param path - 实际路由路径
|
|
131
|
+
* @returns 返回 true 表示匹配成功
|
|
132
|
+
*/
|
|
133
|
+
RkAuthGuard.prototype.matchRoute = function (pattern, path) {
|
|
134
|
+
if (pattern.includes('**')) {
|
|
135
|
+
var regexPattern = pattern.replace(/\*\*/g, '.*');
|
|
136
|
+
return new RegExp("^" + regexPattern + "$").test(path);
|
|
137
|
+
}
|
|
138
|
+
return pattern === path;
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* 标准化URL,移除查询参数和片段标识符
|
|
142
|
+
*
|
|
143
|
+
* @param url - 原始URL
|
|
144
|
+
* @returns 标准化后的URL
|
|
145
|
+
*/
|
|
146
|
+
RkAuthGuard.prototype.normalizeUrl = function (url) {
|
|
147
|
+
return url.replace(/[?#].*/, '');
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* 处理无权限访问
|
|
151
|
+
*
|
|
152
|
+
* @param url - 被拒绝访问的路由地址
|
|
153
|
+
* @returns 返回 false 或 UrlTree
|
|
154
|
+
*/
|
|
83
155
|
RkAuthGuard.prototype.handleNoAccess = function (url) {
|
|
156
|
+
var _a, _b;
|
|
84
157
|
console.error("\u65E0\u6743\u9650\u8BBF\u95EE\u8DEF\u7531\u5730\u5740: " + url);
|
|
85
|
-
|
|
158
|
+
// 使用自定义回调
|
|
159
|
+
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.onAccessDenied) {
|
|
160
|
+
return this.options.onAccessDenied(url);
|
|
161
|
+
}
|
|
162
|
+
// 使用自定义未授权路径或默认路径
|
|
163
|
+
var unauthorizedPath = ((_b = this.options) === null || _b === void 0 ? void 0 : _b.unauthorizedPath) || '/errors/401';
|
|
164
|
+
return this.router.createUrlTree([unauthorizedPath]);
|
|
86
165
|
};
|
|
87
166
|
return RkAuthGuard;
|
|
88
167
|
}());
|
|
89
|
-
RkAuthGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RkAuthGuard, deps: [{ token: RK_ROUTER_GUARD_CONFIG }, { token: i1__namespace.RkMenuService }, { token: i2__namespace.Router }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
168
|
+
RkAuthGuard.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RkAuthGuard, deps: [{ token: RK_ROUTER_GUARD_CONFIG, optional: true }, { token: RK_ROUTER_GUARD_OPTIONS, optional: true }, { token: i1__namespace.RkMenuService }, { token: i2__namespace.Router }], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
90
169
|
RkAuthGuard.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RkAuthGuard, providedIn: 'root' });
|
|
91
170
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: RkAuthGuard, decorators: [{
|
|
92
171
|
type: i0.Injectable,
|
|
@@ -95,8 +174,15 @@
|
|
|
95
174
|
}]
|
|
96
175
|
}], ctorParameters: function () {
|
|
97
176
|
return [{ type: undefined, decorators: [{
|
|
177
|
+
type: i0.Optional
|
|
178
|
+
}, {
|
|
98
179
|
type: i0.Inject,
|
|
99
180
|
args: [RK_ROUTER_GUARD_CONFIG]
|
|
181
|
+
}] }, { type: undefined, decorators: [{
|
|
182
|
+
type: i0.Optional
|
|
183
|
+
}, {
|
|
184
|
+
type: i0.Inject,
|
|
185
|
+
args: [RK_ROUTER_GUARD_OPTIONS]
|
|
100
186
|
}] }, { type: i1__namespace.RkMenuService }, { type: i2__namespace.Router }];
|
|
101
187
|
} });
|
|
102
188
|
|
|
@@ -105,6 +191,7 @@
|
|
|
105
191
|
*/
|
|
106
192
|
|
|
107
193
|
exports.RK_ROUTER_GUARD_CONFIG = RK_ROUTER_GUARD_CONFIG;
|
|
194
|
+
exports.RK_ROUTER_GUARD_OPTIONS = RK_ROUTER_GUARD_OPTIONS;
|
|
108
195
|
exports.RkAuthGuard = RkAuthGuard;
|
|
109
196
|
exports.providerRouterGuard = providerRouterGuard;
|
|
110
197
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reskin-core-guards.umd.js","sources":["../../../library/core/guards/auth.guard.ts","../../../library/core/guards/reskin-core-guards.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken, Provider } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivateChild, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { filter, map, catchError } from 'rxjs/operators';\r\nimport { RkMenuService } from '@reskin/core/services';\r\n\r\n/**\r\n * 路由守卫配置注入令牌\r\n */\r\nexport const RK_ROUTER_GUARD_CONFIG = new InjectionToken('router_guard_config');\r\n\r\n/**\r\n * 路由守卫配置\r\n */\r\nexport interface IRouterGuardConfig {\r\n /**\r\n * 路由地址\r\n */\r\n url: string;\r\n /**\r\n * 继承的权限\r\n */\r\n extends: string[];\r\n}\r\n\r\n/**\r\n * 路由守卫提供者配置函数\r\n *\r\n * @param urls - 路由守卫配置数组,包含需要保护的路由配置信息\r\n * @returns 返回Angular依赖注入的Provider数组,用于配置路由守卫\r\n */\r\nexport function providerRouterGuard(urls: IRouterGuardConfig[]): Provider[] {\r\n return [\r\n // 路由守卫配置\r\n { provide: RK_ROUTER_GUARD_CONFIG, useValue: urls },\r\n ];\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RkAuthGuard implements CanActivateChild {\r\n constructor(\r\n @Inject(RK_ROUTER_GUARD_CONFIG) private config: IRouterGuardConfig[],\r\n private menu: RkMenuService,\r\n private router: Router,\r\n ) {}\r\n\r\n canActivateChild(\r\n childRoute: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n return this.menu.requestData().pipe(\r\n filter((json) => json.code === 0),\r\n map((json) => json.data),\r\n map((menus) => this.checkAccess(menus, childRoute, state.url)),\r\n catchError(() => {\r\n this.handleNoAccess(state.url);\r\n return [false];\r\n }),\r\n );\r\n }\r\n\r\n private checkAccess(menus: any[], childRoute: ActivatedRouteSnapshot, url: string): boolean | UrlTree {\r\n if (!menus.length) {\r\n throw new Error(`此账号无任何功能权限.`);\r\n }\r\n\r\n const routerUrl = url.replace(/\\?.*/, '');\r\n const authRoutes = new Set<string>(menus.map((m) => m.SYSTEM_RESOURCE_URL));\r\n\r\n if (authRoutes.has(routerUrl)) {\r\n return true;\r\n }\r\n\r\n if (this.config && this.config.length > 0) {\r\n const extendRoutes = this.config.filter((item) => {\r\n return item.extends.some((route: string) => (route.includes('**') ? this.match(route, routerUrl) : route === routerUrl));\r\n });\r\n if (extendRoutes.length > 0) {\r\n return extendRoutes.some((item) => authRoutes.has(item.url));\r\n }\r\n }\r\n\r\n this.handleNoAccess(url);\r\n return false;\r\n }\r\n\r\n private match(pattern: string, path: string): boolean {\r\n const regexPattern = pattern.replace(/\\*\\*/g, '.*');\r\n return new RegExp(`^${regexPattern}$`).test(path);\r\n }\r\n\r\n private handleNoAccess(url: string): void {\r\n console.error(`无权限访问路由地址: ${url}`);\r\n this.router.navigate(['/errors/401']).then();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","filter","map","catchError","i0","i1","i2","Injectable","Inject"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reskin-core-guards.umd.js","sources":["../../../library/core/guards/auth.guard.ts","../../../library/core/guards/reskin-core-guards.ts"],"sourcesContent":["import { Inject, Injectable, InjectionToken, Optional, Provider } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, CanActivateChild, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { catchError, filter, map } from 'rxjs/operators';\r\nimport { RkMenuService } from '@reskin/core/services';\r\n\r\n/**\r\n * 路由守卫配置注入令牌\r\n */\r\nexport const RK_ROUTER_GUARD_CONFIG = new InjectionToken<IRouterGuardConfig[]>('router_guard_config');\r\n\r\n/**\r\n * 路由守卫选项注入令牌\r\n */\r\nexport const RK_ROUTER_GUARD_OPTIONS = new InjectionToken<IAuthGuardOptions>('router_guard_options');\r\n\r\n/**\r\n * 菜单数据接口\r\n */\r\nexport interface IMenuData {\r\n /**\r\n * 系统资源URL\r\n */\r\n SYSTEM_RESOURCE_URL: string;\r\n [key: string]: any;\r\n}\r\n\r\n/**\r\n * 路由守卫配置\r\n */\r\nexport interface IRouterGuardConfig {\r\n /**\r\n * 路由地址\r\n */\r\n url: string;\r\n /**\r\n * 继承的权限\r\n */\r\n extends: string[];\r\n}\r\n\r\n/**\r\n * 路由守卫选项配置\r\n */\r\nexport interface IAuthGuardOptions {\r\n /**\r\n * 无权限时的跳转路径\r\n * @default '/errors/401'\r\n */\r\n unauthorizedPath?: string;\r\n /**\r\n * 自定义无权限处理回调\r\n * @param url - 被拒绝访问的路由地址\r\n * @returns 返回 false 阻止导航,返回 UrlTree 进行重定向,返回 true 允许访问\r\n */\r\n onAccessDenied?: (url: string) => boolean | UrlTree;\r\n /**\r\n * 权限检查前的钩子函数\r\n * @param route - 激活的路由快照\r\n * @param state - 路由状态快照\r\n * @returns 返回 false 跳过权限检查并拒绝访问,返回 true 继续权限检查\r\n */\r\n beforeCheck?: (route: ActivatedRouteSnapshot, state: RouterStateSnapshot) => boolean;\r\n}\r\n\r\n/**\r\n * 路由守卫提供者配置函数\r\n *\r\n * @param urls - 路由守卫配置数组,包含需要保护的路由配置信息\r\n * @param options - 可选的守卫选项配置\r\n * @returns 返回Angular依赖注入的Provider数组,用于配置路由守卫\r\n */\r\nexport function providerRouterGuard(urls: IRouterGuardConfig[], options?: IAuthGuardOptions): Provider[] {\r\n const providers: Provider[] = [{ provide: RK_ROUTER_GUARD_CONFIG, useValue: urls }];\r\n\r\n if (options) {\r\n providers.push({ provide: RK_ROUTER_GUARD_OPTIONS, useValue: options });\r\n }\r\n\r\n return providers;\r\n}\r\n\r\n/**\r\n * 路由权限守卫\r\n *\r\n * 用于保护路由,确保用户只能访问其被授权的路由。\r\n * 支持权限继承机制和自定义权限检查逻辑。\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RkAuthGuard implements CanActivateChild {\r\n constructor(\r\n @Optional() @Inject(RK_ROUTER_GUARD_CONFIG) private config: IRouterGuardConfig[] | null,\r\n @Optional() @Inject(RK_ROUTER_GUARD_OPTIONS) private options: IAuthGuardOptions | null,\r\n private menu: RkMenuService,\r\n private router: Router,\r\n ) {}\r\n\r\n canActivateChild(\r\n childRoute: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\r\n // 检查路由数据中是否配置跳过权限检查\r\n if (childRoute.data['skipAuth'] === true) {\r\n return true;\r\n }\r\n\r\n // 执行前置钩子\r\n if (this.options?.beforeCheck && !this.options.beforeCheck(childRoute, state)) {\r\n return this.handleNoAccess(state.url);\r\n }\r\n\r\n return this.menu.requestData().pipe(\r\n filter((json) => json.code === 0),\r\n map((json) => json.data as IMenuData[]),\r\n map((menus) => this.checkAccess(menus, state.url)),\r\n catchError((error) => {\r\n console.error('路由权限检查失败:', error);\r\n return of(this.handleNoAccess(state.url));\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * 检查用户是否有权限访问指定路由\r\n *\r\n * @param menus - 用户菜单权限数据\r\n * @param url - 目标路由地址\r\n * @returns 返回 true 允许访问,返回 false 或 UrlTree 拒绝访问\r\n */\r\n private checkAccess(menus: IMenuData[], url: string): boolean | UrlTree {\r\n if (!menus || menus.length === 0) {\r\n console.error('此账号无任何功能权限');\r\n return this.handleNoAccess(url);\r\n }\r\n\r\n // 移除查询参数,只保留路径部分\r\n const routerUrl = this.normalizeUrl(url);\r\n\r\n // 构建用户权限路由集合\r\n const authRoutes = new Set<string>(menus.map((m) => m.SYSTEM_RESOURCE_URL));\r\n\r\n // 直接权限检查\r\n if (authRoutes.has(routerUrl)) {\r\n return true;\r\n }\r\n\r\n // 继承权限检查\r\n if (this.hasInheritedPermission(routerUrl, authRoutes)) {\r\n return true;\r\n }\r\n\r\n // 无权限访问\r\n return this.handleNoAccess(url);\r\n }\r\n\r\n /**\r\n * 检查是否有继承的权限\r\n *\r\n * @param routerUrl - 标准化后的路由地址\r\n * @param authRoutes - 用户权限路由集合\r\n * @returns 返回 true 表示有继承权限\r\n */\r\n private hasInheritedPermission(routerUrl: string, authRoutes: Set<string>): boolean {\r\n if (!this.config || this.config.length === 0) {\r\n return false;\r\n }\r\n\r\n // 查找匹配的继承配置\r\n const matchedConfigs = this.config.filter((item) => {\r\n return item.extends.some((route: string) => this.matchRoute(route, routerUrl));\r\n });\r\n\r\n // 检查是否有任一配置的 url 在用户权限中\r\n return matchedConfigs.some((item) => authRoutes.has(item.url));\r\n }\r\n\r\n /**\r\n * 匹配路由规则\r\n *\r\n * @param pattern - 路由模式(支持 ** 通配符)\r\n * @param path - 实际路由路径\r\n * @returns 返回 true 表示匹配成功\r\n */\r\n private matchRoute(pattern: string, path: string): boolean {\r\n if (pattern.includes('**')) {\r\n const regexPattern = pattern.replace(/\\*\\*/g, '.*');\r\n return new RegExp(`^${regexPattern}$`).test(path);\r\n }\r\n return pattern === path;\r\n }\r\n\r\n /**\r\n * 标准化URL,移除查询参数和片段标识符\r\n *\r\n * @param url - 原始URL\r\n * @returns 标准化后的URL\r\n */\r\n private normalizeUrl(url: string): string {\r\n return url.replace(/[?#].*/, '');\r\n }\r\n\r\n /**\r\n * 处理无权限访问\r\n *\r\n * @param url - 被拒绝访问的路由地址\r\n * @returns 返回 false 或 UrlTree\r\n */\r\n private handleNoAccess(url: string): boolean | UrlTree {\r\n console.error(`无权限访问路由地址: ${url}`);\r\n\r\n // 使用自定义回调\r\n if (this.options?.onAccessDenied) {\r\n return this.options.onAccessDenied(url);\r\n }\r\n\r\n // 使用自定义未授权路径或默认路径\r\n const unauthorizedPath = this.options?.unauthorizedPath || '/errors/401';\r\n return this.router.createUrlTree([unauthorizedPath]);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["InjectionToken","filter","map","catchError","of","i1","i2","i0","Injectable","Optional","Inject"],"mappings":"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"}
|