parent
09671c7651
commit
e12bb3c312
File diff suppressed because one or more lines are too long
@ -1,185 +0,0 @@ |
|||||||
import { |
|
||||||
DOCUMENT |
|
||||||
} from "./chunk-OSQBUYO6.js"; |
|
||||||
import { |
|
||||||
Directive, |
|
||||||
EventEmitter, |
|
||||||
Inject, |
|
||||||
Injectable, |
|
||||||
InjectionToken, |
|
||||||
Input, |
|
||||||
NgModule, |
|
||||||
Optional, |
|
||||||
Output, |
|
||||||
inject, |
|
||||||
setClassMetadata, |
|
||||||
ɵɵProvidersFeature, |
|
||||||
ɵɵattribute, |
|
||||||
ɵɵdefineDirective, |
|
||||||
ɵɵdefineInjectable, |
|
||||||
ɵɵdefineInjector, |
|
||||||
ɵɵdefineNgModule, |
|
||||||
ɵɵinject |
|
||||||
} from "./chunk-FGESKT7O.js"; |
|
||||||
|
|
||||||
// node_modules/@angular/cdk/fesm2022/bidi.mjs
|
|
||||||
var DIR_DOCUMENT = new InjectionToken("cdk-dir-doc", { |
|
||||||
providedIn: "root", |
|
||||||
factory: DIR_DOCUMENT_FACTORY |
|
||||||
}); |
|
||||||
function DIR_DOCUMENT_FACTORY() { |
|
||||||
return inject(DOCUMENT); |
|
||||||
} |
|
||||||
var RTL_LOCALE_PATTERN = /^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i; |
|
||||||
function _resolveDirectionality(rawValue) { |
|
||||||
const value = rawValue?.toLowerCase() || ""; |
|
||||||
if (value === "auto" && typeof navigator !== "undefined" && navigator?.language) { |
|
||||||
return RTL_LOCALE_PATTERN.test(navigator.language) ? "rtl" : "ltr"; |
|
||||||
} |
|
||||||
return value === "rtl" ? "rtl" : "ltr"; |
|
||||||
} |
|
||||||
var _Directionality = class _Directionality { |
|
||||||
constructor(_document) { |
|
||||||
this.value = "ltr"; |
|
||||||
this.change = new EventEmitter(); |
|
||||||
if (_document) { |
|
||||||
const bodyDir = _document.body ? _document.body.dir : null; |
|
||||||
const htmlDir = _document.documentElement ? _document.documentElement.dir : null; |
|
||||||
this.value = _resolveDirectionality(bodyDir || htmlDir || "ltr"); |
|
||||||
} |
|
||||||
} |
|
||||||
ngOnDestroy() { |
|
||||||
this.change.complete(); |
|
||||||
} |
|
||||||
}; |
|
||||||
_Directionality.ɵfac = function Directionality_Factory(t) { |
|
||||||
return new (t || _Directionality)(ɵɵinject(DIR_DOCUMENT, 8)); |
|
||||||
}; |
|
||||||
_Directionality.ɵprov = ɵɵdefineInjectable({ |
|
||||||
token: _Directionality, |
|
||||||
factory: _Directionality.ɵfac, |
|
||||||
providedIn: "root" |
|
||||||
}); |
|
||||||
var Directionality = _Directionality; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Directionality, [{ |
|
||||||
type: Injectable, |
|
||||||
args: [{ |
|
||||||
providedIn: "root" |
|
||||||
}] |
|
||||||
}], () => [{ |
|
||||||
type: void 0, |
|
||||||
decorators: [{ |
|
||||||
type: Optional |
|
||||||
}, { |
|
||||||
type: Inject, |
|
||||||
args: [DIR_DOCUMENT] |
|
||||||
}] |
|
||||||
}], null); |
|
||||||
})(); |
|
||||||
var _Dir = class _Dir { |
|
||||||
constructor() { |
|
||||||
this._dir = "ltr"; |
|
||||||
this._isInitialized = false; |
|
||||||
this.change = new EventEmitter(); |
|
||||||
} |
|
||||||
/** @docs-private */ |
|
||||||
get dir() { |
|
||||||
return this._dir; |
|
||||||
} |
|
||||||
set dir(value) { |
|
||||||
const previousValue = this._dir; |
|
||||||
this._dir = _resolveDirectionality(value); |
|
||||||
this._rawDir = value; |
|
||||||
if (previousValue !== this._dir && this._isInitialized) { |
|
||||||
this.change.emit(this._dir); |
|
||||||
} |
|
||||||
} |
|
||||||
/** Current layout direction of the element. */ |
|
||||||
get value() { |
|
||||||
return this.dir; |
|
||||||
} |
|
||||||
/** Initialize once default value has been set. */ |
|
||||||
ngAfterContentInit() { |
|
||||||
this._isInitialized = true; |
|
||||||
} |
|
||||||
ngOnDestroy() { |
|
||||||
this.change.complete(); |
|
||||||
} |
|
||||||
}; |
|
||||||
_Dir.ɵfac = function Dir_Factory(t) { |
|
||||||
return new (t || _Dir)(); |
|
||||||
}; |
|
||||||
_Dir.ɵdir = ɵɵdefineDirective({ |
|
||||||
type: _Dir, |
|
||||||
selectors: [["", "dir", ""]], |
|
||||||
hostVars: 1, |
|
||||||
hostBindings: function Dir_HostBindings(rf, ctx) { |
|
||||||
if (rf & 2) { |
|
||||||
ɵɵattribute("dir", ctx._rawDir); |
|
||||||
} |
|
||||||
}, |
|
||||||
inputs: { |
|
||||||
dir: "dir" |
|
||||||
}, |
|
||||||
outputs: { |
|
||||||
change: "dirChange" |
|
||||||
}, |
|
||||||
exportAs: ["dir"], |
|
||||||
features: [ɵɵProvidersFeature([{ |
|
||||||
provide: Directionality, |
|
||||||
useExisting: _Dir |
|
||||||
}])] |
|
||||||
}); |
|
||||||
var Dir = _Dir; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Dir, [{ |
|
||||||
type: Directive, |
|
||||||
args: [{ |
|
||||||
selector: "[dir]", |
|
||||||
providers: [{ |
|
||||||
provide: Directionality, |
|
||||||
useExisting: Dir |
|
||||||
}], |
|
||||||
host: { |
|
||||||
"[attr.dir]": "_rawDir" |
|
||||||
}, |
|
||||||
exportAs: "dir" |
|
||||||
}] |
|
||||||
}], null, { |
|
||||||
change: [{ |
|
||||||
type: Output, |
|
||||||
args: ["dirChange"] |
|
||||||
}], |
|
||||||
dir: [{ |
|
||||||
type: Input |
|
||||||
}] |
|
||||||
}); |
|
||||||
})(); |
|
||||||
var _BidiModule = class _BidiModule { |
|
||||||
}; |
|
||||||
_BidiModule.ɵfac = function BidiModule_Factory(t) { |
|
||||||
return new (t || _BidiModule)(); |
|
||||||
}; |
|
||||||
_BidiModule.ɵmod = ɵɵdefineNgModule({ |
|
||||||
type: _BidiModule, |
|
||||||
declarations: [Dir], |
|
||||||
exports: [Dir] |
|
||||||
}); |
|
||||||
_BidiModule.ɵinj = ɵɵdefineInjector({}); |
|
||||||
var BidiModule = _BidiModule; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BidiModule, [{ |
|
||||||
type: NgModule, |
|
||||||
args: [{ |
|
||||||
exports: [Dir], |
|
||||||
declarations: [Dir] |
|
||||||
}] |
|
||||||
}], null, null); |
|
||||||
})(); |
|
||||||
|
|
||||||
export { |
|
||||||
Directionality, |
|
||||||
BidiModule |
|
||||||
}; |
|
||||||
//# sourceMappingURL=chunk-6NZ2BEBG.js.map
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@ -1,193 +0,0 @@ |
|||||||
import { |
|
||||||
isPlatformBrowser |
|
||||||
} from "./chunk-OSQBUYO6.js"; |
|
||||||
import { |
|
||||||
Inject, |
|
||||||
Injectable, |
|
||||||
NgModule, |
|
||||||
PLATFORM_ID, |
|
||||||
setClassMetadata, |
|
||||||
ɵɵdefineInjectable, |
|
||||||
ɵɵdefineInjector, |
|
||||||
ɵɵdefineNgModule, |
|
||||||
ɵɵinject |
|
||||||
} from "./chunk-FGESKT7O.js"; |
|
||||||
|
|
||||||
// node_modules/@angular/cdk/fesm2022/platform.mjs
|
|
||||||
var hasV8BreakIterator; |
|
||||||
try { |
|
||||||
hasV8BreakIterator = typeof Intl !== "undefined" && Intl.v8BreakIterator; |
|
||||||
} catch { |
|
||||||
hasV8BreakIterator = false; |
|
||||||
} |
|
||||||
var _Platform = class _Platform { |
|
||||||
constructor(_platformId) { |
|
||||||
this._platformId = _platformId; |
|
||||||
this.isBrowser = this._platformId ? isPlatformBrowser(this._platformId) : typeof document === "object" && !!document; |
|
||||||
this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent); |
|
||||||
this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent); |
|
||||||
this.BLINK = this.isBrowser && !!(window.chrome || hasV8BreakIterator) && typeof CSS !== "undefined" && !this.EDGE && !this.TRIDENT; |
|
||||||
this.WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT; |
|
||||||
this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !("MSStream" in window); |
|
||||||
this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent); |
|
||||||
this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT; |
|
||||||
this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT; |
|
||||||
} |
|
||||||
}; |
|
||||||
_Platform.ɵfac = function Platform_Factory(t) { |
|
||||||
return new (t || _Platform)(ɵɵinject(PLATFORM_ID)); |
|
||||||
}; |
|
||||||
_Platform.ɵprov = ɵɵdefineInjectable({ |
|
||||||
token: _Platform, |
|
||||||
factory: _Platform.ɵfac, |
|
||||||
providedIn: "root" |
|
||||||
}); |
|
||||||
var Platform = _Platform; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Platform, [{ |
|
||||||
type: Injectable, |
|
||||||
args: [{ |
|
||||||
providedIn: "root" |
|
||||||
}] |
|
||||||
}], () => [{ |
|
||||||
type: Object, |
|
||||||
decorators: [{ |
|
||||||
type: Inject, |
|
||||||
args: [PLATFORM_ID] |
|
||||||
}] |
|
||||||
}], null); |
|
||||||
})(); |
|
||||||
var _PlatformModule = class _PlatformModule { |
|
||||||
}; |
|
||||||
_PlatformModule.ɵfac = function PlatformModule_Factory(t) { |
|
||||||
return new (t || _PlatformModule)(); |
|
||||||
}; |
|
||||||
_PlatformModule.ɵmod = ɵɵdefineNgModule({ |
|
||||||
type: _PlatformModule |
|
||||||
}); |
|
||||||
_PlatformModule.ɵinj = ɵɵdefineInjector({}); |
|
||||||
var PlatformModule = _PlatformModule; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PlatformModule, [{ |
|
||||||
type: NgModule, |
|
||||||
args: [{}] |
|
||||||
}], null, null); |
|
||||||
})(); |
|
||||||
var supportsPassiveEvents; |
|
||||||
function supportsPassiveEventListeners() { |
|
||||||
if (supportsPassiveEvents == null && typeof window !== "undefined") { |
|
||||||
try { |
|
||||||
window.addEventListener("test", null, Object.defineProperty({}, "passive", { |
|
||||||
get: () => supportsPassiveEvents = true |
|
||||||
})); |
|
||||||
} finally { |
|
||||||
supportsPassiveEvents = supportsPassiveEvents || false; |
|
||||||
} |
|
||||||
} |
|
||||||
return supportsPassiveEvents; |
|
||||||
} |
|
||||||
function normalizePassiveListenerOptions(options) { |
|
||||||
return supportsPassiveEventListeners() ? options : !!options.capture; |
|
||||||
} |
|
||||||
var rtlScrollAxisType; |
|
||||||
var scrollBehaviorSupported; |
|
||||||
function supportsScrollBehavior() { |
|
||||||
if (scrollBehaviorSupported == null) { |
|
||||||
if (typeof document !== "object" || !document || typeof Element !== "function" || !Element) { |
|
||||||
scrollBehaviorSupported = false; |
|
||||||
return scrollBehaviorSupported; |
|
||||||
} |
|
||||||
if ("scrollBehavior" in document.documentElement.style) { |
|
||||||
scrollBehaviorSupported = true; |
|
||||||
} else { |
|
||||||
const scrollToFunction = Element.prototype.scrollTo; |
|
||||||
if (scrollToFunction) { |
|
||||||
scrollBehaviorSupported = !/\{\s*\[native code\]\s*\}/.test(scrollToFunction.toString()); |
|
||||||
} else { |
|
||||||
scrollBehaviorSupported = false; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
return scrollBehaviorSupported; |
|
||||||
} |
|
||||||
function getRtlScrollAxisType() { |
|
||||||
if (typeof document !== "object" || !document) { |
|
||||||
return 0; |
|
||||||
} |
|
||||||
if (rtlScrollAxisType == null) { |
|
||||||
const scrollContainer = document.createElement("div"); |
|
||||||
const containerStyle = scrollContainer.style; |
|
||||||
scrollContainer.dir = "rtl"; |
|
||||||
containerStyle.width = "1px"; |
|
||||||
containerStyle.overflow = "auto"; |
|
||||||
containerStyle.visibility = "hidden"; |
|
||||||
containerStyle.pointerEvents = "none"; |
|
||||||
containerStyle.position = "absolute"; |
|
||||||
const content = document.createElement("div"); |
|
||||||
const contentStyle = content.style; |
|
||||||
contentStyle.width = "2px"; |
|
||||||
contentStyle.height = "1px"; |
|
||||||
scrollContainer.appendChild(content); |
|
||||||
document.body.appendChild(scrollContainer); |
|
||||||
rtlScrollAxisType = 0; |
|
||||||
if (scrollContainer.scrollLeft === 0) { |
|
||||||
scrollContainer.scrollLeft = 1; |
|
||||||
rtlScrollAxisType = scrollContainer.scrollLeft === 0 ? 1 : 2; |
|
||||||
} |
|
||||||
scrollContainer.remove(); |
|
||||||
} |
|
||||||
return rtlScrollAxisType; |
|
||||||
} |
|
||||||
var shadowDomIsSupported; |
|
||||||
function _supportsShadowDom() { |
|
||||||
if (shadowDomIsSupported == null) { |
|
||||||
const head = typeof document !== "undefined" ? document.head : null; |
|
||||||
shadowDomIsSupported = !!(head && (head.createShadowRoot || head.attachShadow)); |
|
||||||
} |
|
||||||
return shadowDomIsSupported; |
|
||||||
} |
|
||||||
function _getShadowRoot(element) { |
|
||||||
if (_supportsShadowDom()) { |
|
||||||
const rootNode = element.getRootNode ? element.getRootNode() : null; |
|
||||||
if (typeof ShadowRoot !== "undefined" && ShadowRoot && rootNode instanceof ShadowRoot) { |
|
||||||
return rootNode; |
|
||||||
} |
|
||||||
} |
|
||||||
return null; |
|
||||||
} |
|
||||||
function _getFocusedElementPierceShadowDom() { |
|
||||||
let activeElement = typeof document !== "undefined" && document ? document.activeElement : null; |
|
||||||
while (activeElement && activeElement.shadowRoot) { |
|
||||||
const newActiveElement = activeElement.shadowRoot.activeElement; |
|
||||||
if (newActiveElement === activeElement) { |
|
||||||
break; |
|
||||||
} else { |
|
||||||
activeElement = newActiveElement; |
|
||||||
} |
|
||||||
} |
|
||||||
return activeElement; |
|
||||||
} |
|
||||||
function _getEventTarget(event) { |
|
||||||
return event.composedPath ? event.composedPath()[0] : event.target; |
|
||||||
} |
|
||||||
function _isTestEnvironment() { |
|
||||||
return ( |
|
||||||
// @ts-ignore
|
|
||||||
typeof __karma__ !== "undefined" && !!__karma__ || // @ts-ignore
|
|
||||||
typeof jasmine !== "undefined" && !!jasmine || // @ts-ignore
|
|
||||||
typeof jest !== "undefined" && !!jest || // @ts-ignore
|
|
||||||
typeof Mocha !== "undefined" && !!Mocha |
|
||||||
); |
|
||||||
} |
|
||||||
|
|
||||||
export { |
|
||||||
Platform, |
|
||||||
normalizePassiveListenerOptions, |
|
||||||
supportsScrollBehavior, |
|
||||||
getRtlScrollAxisType, |
|
||||||
_getShadowRoot, |
|
||||||
_getFocusedElementPierceShadowDom, |
|
||||||
_getEventTarget, |
|
||||||
_isTestEnvironment |
|
||||||
}; |
|
||||||
//# sourceMappingURL=chunk-IAC53GOD.js.map
|
|
File diff suppressed because one or more lines are too long
@ -1,523 +0,0 @@ |
|||||||
import { |
|
||||||
DOCUMENT |
|
||||||
} from "./chunk-OSQBUYO6.js"; |
|
||||||
import { |
|
||||||
ANIMATION_MODULE_TYPE, |
|
||||||
Inject, |
|
||||||
Injectable, |
|
||||||
RendererFactory2, |
|
||||||
RuntimeError, |
|
||||||
ViewEncapsulation$1, |
|
||||||
inject, |
|
||||||
setClassMetadata, |
|
||||||
ɵɵdefineInjectable, |
|
||||||
ɵɵinject |
|
||||||
} from "./chunk-FGESKT7O.js"; |
|
||||||
|
|
||||||
// node_modules/@angular/animations/fesm2022/animations.mjs
|
|
||||||
var AUTO_STYLE = "*"; |
|
||||||
function trigger(name, definitions) { |
|
||||||
return { |
|
||||||
type: 7, |
|
||||||
name, |
|
||||||
definitions, |
|
||||||
options: {} |
|
||||||
}; |
|
||||||
} |
|
||||||
function animate(timings, styles = null) { |
|
||||||
return { |
|
||||||
type: 4, |
|
||||||
styles, |
|
||||||
timings |
|
||||||
}; |
|
||||||
} |
|
||||||
function group(steps, options = null) { |
|
||||||
return { |
|
||||||
type: 3, |
|
||||||
steps, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function sequence(steps, options = null) { |
|
||||||
return { |
|
||||||
type: 2, |
|
||||||
steps, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function style(tokens) { |
|
||||||
return { |
|
||||||
type: 6, |
|
||||||
styles: tokens, |
|
||||||
offset: null |
|
||||||
}; |
|
||||||
} |
|
||||||
function state(name, styles, options) { |
|
||||||
return { |
|
||||||
type: 0, |
|
||||||
name, |
|
||||||
styles, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function keyframes(steps) { |
|
||||||
return { |
|
||||||
type: 5, |
|
||||||
steps |
|
||||||
}; |
|
||||||
} |
|
||||||
function transition(stateChangeExpr, steps, options = null) { |
|
||||||
return { |
|
||||||
type: 1, |
|
||||||
expr: stateChangeExpr, |
|
||||||
animation: steps, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function animation(steps, options = null) { |
|
||||||
return { |
|
||||||
type: 8, |
|
||||||
animation: steps, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function animateChild(options = null) { |
|
||||||
return { |
|
||||||
type: 9, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function useAnimation(animation2, options = null) { |
|
||||||
return { |
|
||||||
type: 10, |
|
||||||
animation: animation2, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function query(selector, animation2, options = null) { |
|
||||||
return { |
|
||||||
type: 11, |
|
||||||
selector, |
|
||||||
animation: animation2, |
|
||||||
options |
|
||||||
}; |
|
||||||
} |
|
||||||
function stagger(timings, animation2) { |
|
||||||
return { |
|
||||||
type: 12, |
|
||||||
timings, |
|
||||||
animation: animation2 |
|
||||||
}; |
|
||||||
} |
|
||||||
var _AnimationBuilder = class _AnimationBuilder { |
|
||||||
}; |
|
||||||
_AnimationBuilder.ɵfac = function AnimationBuilder_Factory(t) { |
|
||||||
return new (t || _AnimationBuilder)(); |
|
||||||
}; |
|
||||||
_AnimationBuilder.ɵprov = ɵɵdefineInjectable({ |
|
||||||
token: _AnimationBuilder, |
|
||||||
factory: () => (() => inject(BrowserAnimationBuilder))(), |
|
||||||
providedIn: "root" |
|
||||||
}); |
|
||||||
var AnimationBuilder = _AnimationBuilder; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AnimationBuilder, [{ |
|
||||||
type: Injectable, |
|
||||||
args: [{ |
|
||||||
providedIn: "root", |
|
||||||
useFactory: () => inject(BrowserAnimationBuilder) |
|
||||||
}] |
|
||||||
}], null, null); |
|
||||||
})(); |
|
||||||
var AnimationFactory = class { |
|
||||||
}; |
|
||||||
var _BrowserAnimationBuilder = class _BrowserAnimationBuilder extends AnimationBuilder { |
|
||||||
constructor(rootRenderer, doc) { |
|
||||||
super(); |
|
||||||
this.animationModuleType = inject(ANIMATION_MODULE_TYPE, { |
|
||||||
optional: true |
|
||||||
}); |
|
||||||
this._nextAnimationId = 0; |
|
||||||
const typeData = { |
|
||||||
id: "0", |
|
||||||
encapsulation: ViewEncapsulation$1.None, |
|
||||||
styles: [], |
|
||||||
data: { |
|
||||||
animation: [] |
|
||||||
} |
|
||||||
}; |
|
||||||
this._renderer = rootRenderer.createRenderer(doc.body, typeData); |
|
||||||
if (this.animationModuleType === null && !isAnimationRenderer(this._renderer)) { |
|
||||||
throw new RuntimeError(3600, (typeof ngDevMode === "undefined" || ngDevMode) && "Angular detected that the `AnimationBuilder` was injected, but animation support was not enabled. Please make sure that you enable animations in your application by calling `provideAnimations()` or `provideAnimationsAsync()` function."); |
|
||||||
} |
|
||||||
} |
|
||||||
build(animation2) { |
|
||||||
const id = this._nextAnimationId; |
|
||||||
this._nextAnimationId++; |
|
||||||
const entry = Array.isArray(animation2) ? sequence(animation2) : animation2; |
|
||||||
issueAnimationCommand(this._renderer, null, id, "register", [entry]); |
|
||||||
return new BrowserAnimationFactory(id, this._renderer); |
|
||||||
} |
|
||||||
}; |
|
||||||
_BrowserAnimationBuilder.ɵfac = function BrowserAnimationBuilder_Factory(t) { |
|
||||||
return new (t || _BrowserAnimationBuilder)(ɵɵinject(RendererFactory2), ɵɵinject(DOCUMENT)); |
|
||||||
}; |
|
||||||
_BrowserAnimationBuilder.ɵprov = ɵɵdefineInjectable({ |
|
||||||
token: _BrowserAnimationBuilder, |
|
||||||
factory: _BrowserAnimationBuilder.ɵfac, |
|
||||||
providedIn: "root" |
|
||||||
}); |
|
||||||
var BrowserAnimationBuilder = _BrowserAnimationBuilder; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(BrowserAnimationBuilder, [{ |
|
||||||
type: Injectable, |
|
||||||
args: [{ |
|
||||||
providedIn: "root" |
|
||||||
}] |
|
||||||
}], () => [{ |
|
||||||
type: RendererFactory2 |
|
||||||
}, { |
|
||||||
type: Document, |
|
||||||
decorators: [{ |
|
||||||
type: Inject, |
|
||||||
args: [DOCUMENT] |
|
||||||
}] |
|
||||||
}], null); |
|
||||||
})(); |
|
||||||
var BrowserAnimationFactory = class extends AnimationFactory { |
|
||||||
constructor(_id, _renderer) { |
|
||||||
super(); |
|
||||||
this._id = _id; |
|
||||||
this._renderer = _renderer; |
|
||||||
} |
|
||||||
create(element, options) { |
|
||||||
return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer); |
|
||||||
} |
|
||||||
}; |
|
||||||
var RendererAnimationPlayer = class { |
|
||||||
constructor(id, element, options, _renderer) { |
|
||||||
this.id = id; |
|
||||||
this.element = element; |
|
||||||
this._renderer = _renderer; |
|
||||||
this.parentPlayer = null; |
|
||||||
this._started = false; |
|
||||||
this.totalTime = 0; |
|
||||||
this._command("create", options); |
|
||||||
} |
|
||||||
_listen(eventName, callback) { |
|
||||||
return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback); |
|
||||||
} |
|
||||||
_command(command, ...args) { |
|
||||||
issueAnimationCommand(this._renderer, this.element, this.id, command, args); |
|
||||||
} |
|
||||||
onDone(fn) { |
|
||||||
this._listen("done", fn); |
|
||||||
} |
|
||||||
onStart(fn) { |
|
||||||
this._listen("start", fn); |
|
||||||
} |
|
||||||
onDestroy(fn) { |
|
||||||
this._listen("destroy", fn); |
|
||||||
} |
|
||||||
init() { |
|
||||||
this._command("init"); |
|
||||||
} |
|
||||||
hasStarted() { |
|
||||||
return this._started; |
|
||||||
} |
|
||||||
play() { |
|
||||||
this._command("play"); |
|
||||||
this._started = true; |
|
||||||
} |
|
||||||
pause() { |
|
||||||
this._command("pause"); |
|
||||||
} |
|
||||||
restart() { |
|
||||||
this._command("restart"); |
|
||||||
} |
|
||||||
finish() { |
|
||||||
this._command("finish"); |
|
||||||
} |
|
||||||
destroy() { |
|
||||||
this._command("destroy"); |
|
||||||
} |
|
||||||
reset() { |
|
||||||
this._command("reset"); |
|
||||||
this._started = false; |
|
||||||
} |
|
||||||
setPosition(p) { |
|
||||||
this._command("setPosition", p); |
|
||||||
} |
|
||||||
getPosition() { |
|
||||||
return unwrapAnimationRenderer(this._renderer)?.engine?.players[this.id]?.getPosition() ?? 0; |
|
||||||
} |
|
||||||
}; |
|
||||||
function issueAnimationCommand(renderer, element, id, command, args) { |
|
||||||
renderer.setProperty(element, `@@${id}:${command}`, args); |
|
||||||
} |
|
||||||
function unwrapAnimationRenderer(renderer) { |
|
||||||
const type = renderer.ɵtype; |
|
||||||
if (type === 0) { |
|
||||||
return renderer; |
|
||||||
} else if (type === 1) { |
|
||||||
return renderer.animationRenderer; |
|
||||||
} |
|
||||||
return null; |
|
||||||
} |
|
||||||
function isAnimationRenderer(renderer) { |
|
||||||
const type = renderer.ɵtype; |
|
||||||
return type === 0 || type === 1; |
|
||||||
} |
|
||||||
var NoopAnimationPlayer = class { |
|
||||||
constructor(duration = 0, delay = 0) { |
|
||||||
this._onDoneFns = []; |
|
||||||
this._onStartFns = []; |
|
||||||
this._onDestroyFns = []; |
|
||||||
this._originalOnDoneFns = []; |
|
||||||
this._originalOnStartFns = []; |
|
||||||
this._started = false; |
|
||||||
this._destroyed = false; |
|
||||||
this._finished = false; |
|
||||||
this._position = 0; |
|
||||||
this.parentPlayer = null; |
|
||||||
this.totalTime = duration + delay; |
|
||||||
} |
|
||||||
_onFinish() { |
|
||||||
if (!this._finished) { |
|
||||||
this._finished = true; |
|
||||||
this._onDoneFns.forEach((fn) => fn()); |
|
||||||
this._onDoneFns = []; |
|
||||||
} |
|
||||||
} |
|
||||||
onStart(fn) { |
|
||||||
this._originalOnStartFns.push(fn); |
|
||||||
this._onStartFns.push(fn); |
|
||||||
} |
|
||||||
onDone(fn) { |
|
||||||
this._originalOnDoneFns.push(fn); |
|
||||||
this._onDoneFns.push(fn); |
|
||||||
} |
|
||||||
onDestroy(fn) { |
|
||||||
this._onDestroyFns.push(fn); |
|
||||||
} |
|
||||||
hasStarted() { |
|
||||||
return this._started; |
|
||||||
} |
|
||||||
init() { |
|
||||||
} |
|
||||||
play() { |
|
||||||
if (!this.hasStarted()) { |
|
||||||
this._onStart(); |
|
||||||
this.triggerMicrotask(); |
|
||||||
} |
|
||||||
this._started = true; |
|
||||||
} |
|
||||||
/** @internal */ |
|
||||||
triggerMicrotask() { |
|
||||||
queueMicrotask(() => this._onFinish()); |
|
||||||
} |
|
||||||
_onStart() { |
|
||||||
this._onStartFns.forEach((fn) => fn()); |
|
||||||
this._onStartFns = []; |
|
||||||
} |
|
||||||
pause() { |
|
||||||
} |
|
||||||
restart() { |
|
||||||
} |
|
||||||
finish() { |
|
||||||
this._onFinish(); |
|
||||||
} |
|
||||||
destroy() { |
|
||||||
if (!this._destroyed) { |
|
||||||
this._destroyed = true; |
|
||||||
if (!this.hasStarted()) { |
|
||||||
this._onStart(); |
|
||||||
} |
|
||||||
this.finish(); |
|
||||||
this._onDestroyFns.forEach((fn) => fn()); |
|
||||||
this._onDestroyFns = []; |
|
||||||
} |
|
||||||
} |
|
||||||
reset() { |
|
||||||
this._started = false; |
|
||||||
this._finished = false; |
|
||||||
this._onStartFns = this._originalOnStartFns; |
|
||||||
this._onDoneFns = this._originalOnDoneFns; |
|
||||||
} |
|
||||||
setPosition(position) { |
|
||||||
this._position = this.totalTime ? position * this.totalTime : 1; |
|
||||||
} |
|
||||||
getPosition() { |
|
||||||
return this.totalTime ? this._position / this.totalTime : 1; |
|
||||||
} |
|
||||||
/** @internal */ |
|
||||||
triggerCallback(phaseName) { |
|
||||||
const methods = phaseName == "start" ? this._onStartFns : this._onDoneFns; |
|
||||||
methods.forEach((fn) => fn()); |
|
||||||
methods.length = 0; |
|
||||||
} |
|
||||||
}; |
|
||||||
var AnimationGroupPlayer = class { |
|
||||||
constructor(_players) { |
|
||||||
this._onDoneFns = []; |
|
||||||
this._onStartFns = []; |
|
||||||
this._finished = false; |
|
||||||
this._started = false; |
|
||||||
this._destroyed = false; |
|
||||||
this._onDestroyFns = []; |
|
||||||
this.parentPlayer = null; |
|
||||||
this.totalTime = 0; |
|
||||||
this.players = _players; |
|
||||||
let doneCount = 0; |
|
||||||
let destroyCount = 0; |
|
||||||
let startCount = 0; |
|
||||||
const total = this.players.length; |
|
||||||
if (total == 0) { |
|
||||||
queueMicrotask(() => this._onFinish()); |
|
||||||
} else { |
|
||||||
this.players.forEach((player) => { |
|
||||||
player.onDone(() => { |
|
||||||
if (++doneCount == total) { |
|
||||||
this._onFinish(); |
|
||||||
} |
|
||||||
}); |
|
||||||
player.onDestroy(() => { |
|
||||||
if (++destroyCount == total) { |
|
||||||
this._onDestroy(); |
|
||||||
} |
|
||||||
}); |
|
||||||
player.onStart(() => { |
|
||||||
if (++startCount == total) { |
|
||||||
this._onStart(); |
|
||||||
} |
|
||||||
}); |
|
||||||
}); |
|
||||||
} |
|
||||||
this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0); |
|
||||||
} |
|
||||||
_onFinish() { |
|
||||||
if (!this._finished) { |
|
||||||
this._finished = true; |
|
||||||
this._onDoneFns.forEach((fn) => fn()); |
|
||||||
this._onDoneFns = []; |
|
||||||
} |
|
||||||
} |
|
||||||
init() { |
|
||||||
this.players.forEach((player) => player.init()); |
|
||||||
} |
|
||||||
onStart(fn) { |
|
||||||
this._onStartFns.push(fn); |
|
||||||
} |
|
||||||
_onStart() { |
|
||||||
if (!this.hasStarted()) { |
|
||||||
this._started = true; |
|
||||||
this._onStartFns.forEach((fn) => fn()); |
|
||||||
this._onStartFns = []; |
|
||||||
} |
|
||||||
} |
|
||||||
onDone(fn) { |
|
||||||
this._onDoneFns.push(fn); |
|
||||||
} |
|
||||||
onDestroy(fn) { |
|
||||||
this._onDestroyFns.push(fn); |
|
||||||
} |
|
||||||
hasStarted() { |
|
||||||
return this._started; |
|
||||||
} |
|
||||||
play() { |
|
||||||
if (!this.parentPlayer) { |
|
||||||
this.init(); |
|
||||||
} |
|
||||||
this._onStart(); |
|
||||||
this.players.forEach((player) => player.play()); |
|
||||||
} |
|
||||||
pause() { |
|
||||||
this.players.forEach((player) => player.pause()); |
|
||||||
} |
|
||||||
restart() { |
|
||||||
this.players.forEach((player) => player.restart()); |
|
||||||
} |
|
||||||
finish() { |
|
||||||
this._onFinish(); |
|
||||||
this.players.forEach((player) => player.finish()); |
|
||||||
} |
|
||||||
destroy() { |
|
||||||
this._onDestroy(); |
|
||||||
} |
|
||||||
_onDestroy() { |
|
||||||
if (!this._destroyed) { |
|
||||||
this._destroyed = true; |
|
||||||
this._onFinish(); |
|
||||||
this.players.forEach((player) => player.destroy()); |
|
||||||
this._onDestroyFns.forEach((fn) => fn()); |
|
||||||
this._onDestroyFns = []; |
|
||||||
} |
|
||||||
} |
|
||||||
reset() { |
|
||||||
this.players.forEach((player) => player.reset()); |
|
||||||
this._destroyed = false; |
|
||||||
this._finished = false; |
|
||||||
this._started = false; |
|
||||||
} |
|
||||||
setPosition(p) { |
|
||||||
const timeAtPosition = p * this.totalTime; |
|
||||||
this.players.forEach((player) => { |
|
||||||
const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1; |
|
||||||
player.setPosition(position); |
|
||||||
}); |
|
||||||
} |
|
||||||
getPosition() { |
|
||||||
const longestPlayer = this.players.reduce((longestSoFar, player) => { |
|
||||||
const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime; |
|
||||||
return newPlayerIsLongest ? player : longestSoFar; |
|
||||||
}, null); |
|
||||||
return longestPlayer != null ? longestPlayer.getPosition() : 0; |
|
||||||
} |
|
||||||
beforeDestroy() { |
|
||||||
this.players.forEach((player) => { |
|
||||||
if (player.beforeDestroy) { |
|
||||||
player.beforeDestroy(); |
|
||||||
} |
|
||||||
}); |
|
||||||
} |
|
||||||
/** @internal */ |
|
||||||
triggerCallback(phaseName) { |
|
||||||
const methods = phaseName == "start" ? this._onStartFns : this._onDoneFns; |
|
||||||
methods.forEach((fn) => fn()); |
|
||||||
methods.length = 0; |
|
||||||
} |
|
||||||
}; |
|
||||||
var ɵPRE_STYLE = "!"; |
|
||||||
|
|
||||||
export { |
|
||||||
AUTO_STYLE, |
|
||||||
trigger, |
|
||||||
animate, |
|
||||||
group, |
|
||||||
sequence, |
|
||||||
style, |
|
||||||
state, |
|
||||||
keyframes, |
|
||||||
transition, |
|
||||||
animation, |
|
||||||
animateChild, |
|
||||||
useAnimation, |
|
||||||
query, |
|
||||||
stagger, |
|
||||||
AnimationBuilder, |
|
||||||
AnimationFactory, |
|
||||||
BrowserAnimationBuilder, |
|
||||||
NoopAnimationPlayer, |
|
||||||
AnimationGroupPlayer, |
|
||||||
ɵPRE_STYLE |
|
||||||
}; |
|
||||||
/*! Bundled license information: |
|
||||||
|
|
||||||
@angular/animations/fesm2022/animations.mjs: |
|
||||||
(** |
|
||||||
* @license Angular v17.0.7 |
|
||||||
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
||||||
* License: MIT |
|
||||||
*) |
|
||||||
*/ |
|
||||||
//# sourceMappingURL=chunk-KI2JSLP6.js.map
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,152 +0,0 @@ |
|||||||
import { |
|
||||||
Directive, |
|
||||||
Input, |
|
||||||
NgModule, |
|
||||||
TemplateRef, |
|
||||||
ViewContainerRef, |
|
||||||
setClassMetadata, |
|
||||||
ɵɵNgOnChangesFeature, |
|
||||||
ɵɵdefineDirective, |
|
||||||
ɵɵdefineInjector, |
|
||||||
ɵɵdefineNgModule, |
|
||||||
ɵɵdirectiveInject |
|
||||||
} from "./chunk-FGESKT7O.js"; |
|
||||||
|
|
||||||
// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-outlet.mjs
|
|
||||||
var _NzStringTemplateOutletDirective = class _NzStringTemplateOutletDirective { |
|
||||||
static ngTemplateContextGuard(_dir, _ctx) { |
|
||||||
return true; |
|
||||||
} |
|
||||||
recreateView() { |
|
||||||
this.viewContainer.clear(); |
|
||||||
const isTemplateRef = this.nzStringTemplateOutlet instanceof TemplateRef; |
|
||||||
const templateRef = isTemplateRef ? this.nzStringTemplateOutlet : this.templateRef; |
|
||||||
this.embeddedViewRef = this.viewContainer.createEmbeddedView(templateRef, isTemplateRef ? this.nzStringTemplateOutletContext : this.context); |
|
||||||
} |
|
||||||
updateContext() { |
|
||||||
const isTemplateRef = this.nzStringTemplateOutlet instanceof TemplateRef; |
|
||||||
const newCtx = isTemplateRef ? this.nzStringTemplateOutletContext : this.context; |
|
||||||
const oldCtx = this.embeddedViewRef.context; |
|
||||||
if (newCtx) { |
|
||||||
for (const propName of Object.keys(newCtx)) { |
|
||||||
oldCtx[propName] = newCtx[propName]; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
constructor(viewContainer, templateRef) { |
|
||||||
this.viewContainer = viewContainer; |
|
||||||
this.templateRef = templateRef; |
|
||||||
this.embeddedViewRef = null; |
|
||||||
this.context = new NzStringTemplateOutletContext(); |
|
||||||
this.nzStringTemplateOutletContext = null; |
|
||||||
this.nzStringTemplateOutlet = null; |
|
||||||
} |
|
||||||
ngOnChanges(changes) { |
|
||||||
const { |
|
||||||
nzStringTemplateOutletContext, |
|
||||||
nzStringTemplateOutlet |
|
||||||
} = changes; |
|
||||||
const shouldRecreateView = () => { |
|
||||||
let shouldOutletRecreate = false; |
|
||||||
if (nzStringTemplateOutlet) { |
|
||||||
if (nzStringTemplateOutlet.firstChange) { |
|
||||||
shouldOutletRecreate = true; |
|
||||||
} else { |
|
||||||
const isPreviousOutletTemplate = nzStringTemplateOutlet.previousValue instanceof TemplateRef; |
|
||||||
const isCurrentOutletTemplate = nzStringTemplateOutlet.currentValue instanceof TemplateRef; |
|
||||||
shouldOutletRecreate = isPreviousOutletTemplate || isCurrentOutletTemplate; |
|
||||||
} |
|
||||||
} |
|
||||||
const hasContextShapeChanged = (ctxChange) => { |
|
||||||
const prevCtxKeys = Object.keys(ctxChange.previousValue || {}); |
|
||||||
const currCtxKeys = Object.keys(ctxChange.currentValue || {}); |
|
||||||
if (prevCtxKeys.length === currCtxKeys.length) { |
|
||||||
for (const propName of currCtxKeys) { |
|
||||||
if (prevCtxKeys.indexOf(propName) === -1) { |
|
||||||
return true; |
|
||||||
} |
|
||||||
} |
|
||||||
return false; |
|
||||||
} else { |
|
||||||
return true; |
|
||||||
} |
|
||||||
}; |
|
||||||
const shouldContextRecreate = nzStringTemplateOutletContext && hasContextShapeChanged(nzStringTemplateOutletContext); |
|
||||||
return shouldContextRecreate || shouldOutletRecreate; |
|
||||||
}; |
|
||||||
if (nzStringTemplateOutlet) { |
|
||||||
this.context.$implicit = nzStringTemplateOutlet.currentValue; |
|
||||||
} |
|
||||||
const recreateView = shouldRecreateView(); |
|
||||||
if (recreateView) { |
|
||||||
this.recreateView(); |
|
||||||
} else { |
|
||||||
this.updateContext(); |
|
||||||
} |
|
||||||
} |
|
||||||
}; |
|
||||||
_NzStringTemplateOutletDirective.ɵfac = function NzStringTemplateOutletDirective_Factory(t) { |
|
||||||
return new (t || _NzStringTemplateOutletDirective)(ɵɵdirectiveInject(ViewContainerRef), ɵɵdirectiveInject(TemplateRef)); |
|
||||||
}; |
|
||||||
_NzStringTemplateOutletDirective.ɵdir = ɵɵdefineDirective({ |
|
||||||
type: _NzStringTemplateOutletDirective, |
|
||||||
selectors: [["", "nzStringTemplateOutlet", ""]], |
|
||||||
inputs: { |
|
||||||
nzStringTemplateOutletContext: "nzStringTemplateOutletContext", |
|
||||||
nzStringTemplateOutlet: "nzStringTemplateOutlet" |
|
||||||
}, |
|
||||||
exportAs: ["nzStringTemplateOutlet"], |
|
||||||
standalone: true, |
|
||||||
features: [ɵɵNgOnChangesFeature] |
|
||||||
}); |
|
||||||
var NzStringTemplateOutletDirective = _NzStringTemplateOutletDirective; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzStringTemplateOutletDirective, [{ |
|
||||||
type: Directive, |
|
||||||
args: [{ |
|
||||||
selector: "[nzStringTemplateOutlet]", |
|
||||||
exportAs: "nzStringTemplateOutlet", |
|
||||||
standalone: true |
|
||||||
}] |
|
||||||
}], () => [{ |
|
||||||
type: ViewContainerRef |
|
||||||
}, { |
|
||||||
type: TemplateRef |
|
||||||
}], { |
|
||||||
nzStringTemplateOutletContext: [{ |
|
||||||
type: Input |
|
||||||
}], |
|
||||||
nzStringTemplateOutlet: [{ |
|
||||||
type: Input |
|
||||||
}] |
|
||||||
}); |
|
||||||
})(); |
|
||||||
var NzStringTemplateOutletContext = class { |
|
||||||
}; |
|
||||||
var _NzOutletModule = class _NzOutletModule { |
|
||||||
}; |
|
||||||
_NzOutletModule.ɵfac = function NzOutletModule_Factory(t) { |
|
||||||
return new (t || _NzOutletModule)(); |
|
||||||
}; |
|
||||||
_NzOutletModule.ɵmod = ɵɵdefineNgModule({ |
|
||||||
type: _NzOutletModule, |
|
||||||
imports: [NzStringTemplateOutletDirective], |
|
||||||
exports: [NzStringTemplateOutletDirective] |
|
||||||
}); |
|
||||||
_NzOutletModule.ɵinj = ɵɵdefineInjector({}); |
|
||||||
var NzOutletModule = _NzOutletModule; |
|
||||||
(() => { |
|
||||||
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzOutletModule, [{ |
|
||||||
type: NgModule, |
|
||||||
args: [{ |
|
||||||
imports: [NzStringTemplateOutletDirective], |
|
||||||
exports: [NzStringTemplateOutletDirective] |
|
||||||
}] |
|
||||||
}], null, null); |
|
||||||
})(); |
|
||||||
|
|
||||||
export { |
|
||||||
NzStringTemplateOutletDirective, |
|
||||||
NzOutletModule |
|
||||||
}; |
|
||||||
//# sourceMappingURL=chunk-VOD2PKZN.js.map
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,12 @@ |
|||||||
|
import { NgModule } from '@angular/core'; |
||||||
|
import { CommonModule } from '@angular/common'; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@NgModule({ |
||||||
|
declarations: [], |
||||||
|
imports: [ |
||||||
|
CommonModule |
||||||
|
] |
||||||
|
}) |
||||||
|
export class AccountModule { } |
@ -0,0 +1,6 @@ |
|||||||
|
import { Routes } from '@angular/router'; |
||||||
|
import {SysAccountComponent} from "./sys-account/sys-account.component"; |
||||||
|
|
||||||
|
export const ACCOUNT_ROUTES: Routes = [ |
||||||
|
{ path: 'sys_account', component: SysAccountComponent} |
||||||
|
]; |
@ -0,0 +1 @@ |
|||||||
|
<p>sys-account works!</p> |
@ -0,0 +1,23 @@ |
|||||||
|
import { ComponentFixture, TestBed } from '@angular/core/testing'; |
||||||
|
|
||||||
|
import { SysAccountComponent } from './sys-account.component'; |
||||||
|
|
||||||
|
describe('SysAccountComponent', () => { |
||||||
|
let component: SysAccountComponent; |
||||||
|
let fixture: ComponentFixture<SysAccountComponent>; |
||||||
|
|
||||||
|
beforeEach(async () => { |
||||||
|
await TestBed.configureTestingModule({ |
||||||
|
imports: [SysAccountComponent] |
||||||
|
}) |
||||||
|
.compileComponents(); |
||||||
|
|
||||||
|
fixture = TestBed.createComponent(SysAccountComponent); |
||||||
|
component = fixture.componentInstance; |
||||||
|
fixture.detectChanges(); |
||||||
|
}); |
||||||
|
|
||||||
|
it('should create', () => { |
||||||
|
expect(component).toBeTruthy(); |
||||||
|
}); |
||||||
|
}); |
@ -0,0 +1,12 @@ |
|||||||
|
import { Component } from '@angular/core'; |
||||||
|
|
||||||
|
@Component({ |
||||||
|
selector: 'app-sys-account', |
||||||
|
standalone: true, |
||||||
|
imports: [], |
||||||
|
templateUrl: './sys-account.component.html', |
||||||
|
styleUrl: './sys-account.component.less' |
||||||
|
}) |
||||||
|
export class SysAccountComponent { |
||||||
|
|
||||||
|
} |
@ -1,9 +1,18 @@ |
|||||||
<div class="card-container" style="width: 100%;height: 100%"> |
<div class="card-container" style="width: 100%;height: 100%"> |
||||||
|
<nz-tabset nzType="card" [(nzSelectedIndex)]="activatedMenuIndex"> |
||||||
<nz-tabset nzType="card"> |
<nz-tab *ngFor="let item of tabs" (nzSelect)="toggleTab(item.path)" [nzTitle]="titleTemplate"> |
||||||
<nz-tab *ngFor="let item of menuTabs" [nzTitle]="item"> |
<ng-template #titleTemplate> |
||||||
<router-outlet></router-outlet> |
<div> |
||||||
|
{{item.title}} |
||||||
|
<i |
||||||
|
class="tab-remove-btn" |
||||||
|
nz-icon nzType="close" |
||||||
|
nzTheme="outline" |
||||||
|
(click)="closeTab(item.path)" |
||||||
|
></i> |
||||||
|
</div> |
||||||
|
</ng-template> |
||||||
</nz-tab> |
</nz-tab> |
||||||
</nz-tabset> |
</nz-tabset> |
||||||
|
<router-outlet></router-outlet> |
||||||
</div> |
</div> |
||||||
|
@ -1 +1,2 @@ |
|||||||
|
首页 |
||||||
<div style="width: 100%; height: calc(100vh - 134px);"></div> |
<div style="width: 100%; height: calc(100vh - 134px);"></div> |
||||||
|
@ -0,0 +1,63 @@ |
|||||||
|
import {ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy} from '@angular/router'; |
||||||
|
export class AiRouteReuseStrategy implements RouteReuseStrategy { |
||||||
|
/** |
||||||
|
* 用于保存路由快照 |
||||||
|
**/ |
||||||
|
public static routeSnapshots: { [key: string]: DetachedRouteHandle } = {}; |
||||||
|
|
||||||
|
/** |
||||||
|
* 允许所有路由重用 |
||||||
|
* 如果你有路由不想被重用,可以在这个方法中加业务逻辑判断 |
||||||
|
**/ |
||||||
|
shouldDetach(route: ActivatedRouteSnapshot): boolean { |
||||||
|
return true; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 以url为key保存路由,key也可以使用其他属性,能确保唯一即可 |
||||||
|
**/ |
||||||
|
store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void { |
||||||
|
const url = this.getFullRouteUrl(route); |
||||||
|
AiRouteReuseStrategy.routeSnapshots[url] = handle; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 缓存中存在则允许还原路由 |
||||||
|
**/ |
||||||
|
shouldAttach(route: ActivatedRouteSnapshot): boolean { |
||||||
|
const url = this.getFullRouteUrl(route); |
||||||
|
return !!AiRouteReuseStrategy.routeSnapshots[url]; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 从缓存中获取快照,没有返回null |
||||||
|
**/ |
||||||
|
retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null { |
||||||
|
const url = this.getFullRouteUrl(route); |
||||||
|
return route.routeConfig ? AiRouteReuseStrategy.routeSnapshots[url] : null; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 进入路由触发,判断是否同一路由 |
||||||
|
**/ |
||||||
|
shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean { |
||||||
|
return future.routeConfig === curr.routeConfig && |
||||||
|
JSON.stringify(future.params) === JSON.stringify(curr.params); |
||||||
|
} |
||||||
|
|
||||||
|
private getFullRouteUrl(route: ActivatedRouteSnapshot): string { |
||||||
|
return this.getFullRouteUrlPaths(route).filter(Boolean).join('/').replace(/\//g, '_'); |
||||||
|
} |
||||||
|
|
||||||
|
private getFullRouteUrlPaths(route: ActivatedRouteSnapshot): string[] { |
||||||
|
const paths = this.getRouteUrlPaths(route); |
||||||
|
return route.parent |
||||||
|
? [...this.getFullRouteUrlPaths(route.parent), ...paths] |
||||||
|
: paths; |
||||||
|
} |
||||||
|
|
||||||
|
private getRouteUrlPaths(route: ActivatedRouteSnapshot): string[] { |
||||||
|
return route.url.map(urlSegment => urlSegment.path); |
||||||
|
} |
||||||
|
|
||||||
|
} |
Loading…
Reference in new issue