@ng-nest/ui 12.0.10 → 12.1.2
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/alert/alert.component.d.ts +2 -1
- package/bundles/ng-nest-ui-alert.umd.js +6 -1
- package/bundles/ng-nest-ui-alert.umd.js.map +1 -1
- package/bundles/ng-nest-ui-carousel.umd.js +10 -10
- package/bundles/ng-nest-ui-carousel.umd.js.map +1 -1
- package/bundles/ng-nest-ui-core.umd.js.map +1 -1
- package/bundles/ng-nest-ui-dialog.umd.js +284 -32
- package/bundles/ng-nest-ui-dialog.umd.js.map +1 -1
- package/bundles/ng-nest-ui-drawer.umd.js +245 -14
- package/bundles/ng-nest-ui-drawer.umd.js.map +1 -1
- package/bundles/ng-nest-ui-find.umd.js +27 -3
- package/bundles/ng-nest-ui-find.umd.js.map +1 -1
- package/bundles/ng-nest-ui-input.umd.js +2 -1
- package/bundles/ng-nest-ui-input.umd.js.map +1 -1
- package/bundles/ng-nest-ui-menu.umd.js +1 -1
- package/bundles/ng-nest-ui-menu.umd.js.map +1 -1
- package/bundles/ng-nest-ui-message.umd.js +52 -16
- package/bundles/ng-nest-ui-message.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popconfirm.umd.js +33 -4
- package/bundles/ng-nest-ui-popconfirm.umd.js.map +1 -1
- package/bundles/ng-nest-ui-popover.umd.js +13 -2
- package/bundles/ng-nest-ui-popover.umd.js.map +1 -1
- package/bundles/ng-nest-ui-portal.umd.js +8 -8
- package/bundles/ng-nest-ui-portal.umd.js.map +1 -1
- package/bundles/ng-nest-ui-progress.umd.js +235 -20
- package/bundles/ng-nest-ui-progress.umd.js.map +1 -1
- package/bundles/ng-nest-ui-select.umd.js +1 -1
- package/bundles/ng-nest-ui-steps.umd.js +19 -7
- package/bundles/ng-nest-ui-steps.umd.js.map +1 -1
- package/bundles/ng-nest-ui-table.umd.js +9 -5
- package/bundles/ng-nest-ui-table.umd.js.map +1 -1
- package/carousel/carousel-panel.component.d.ts +2 -3
- package/core/config/config.d.ts +7 -0
- package/core/interfaces/layout.type.d.ts +1 -1
- package/dialog/dialog-container.component.d.ts +18 -0
- package/dialog/dialog-container.directives.d.ts +24 -0
- package/dialog/dialog-ref.d.ts +9 -0
- package/dialog/dialog.module.d.ts +13 -11
- package/dialog/dialog.property.d.ts +84 -6
- package/dialog/dialog.service.d.ts +19 -0
- package/dialog/public-api.d.ts +4 -0
- package/drawer/drawer-container.component.d.ts +18 -0
- package/drawer/drawer-container.directives.d.ts +19 -0
- package/drawer/drawer-ref.d.ts +9 -0
- package/drawer/drawer.module.d.ts +8 -6
- package/drawer/drawer.property.d.ts +83 -2
- package/drawer/drawer.service.d.ts +19 -0
- package/drawer/public-api.d.ts +5 -0
- package/esm2015/alert/alert.component.js +8 -3
- package/esm2015/carousel/carousel-panel.component.js +12 -11
- package/esm2015/core/config/config.js +1 -1
- package/esm2015/core/interfaces/layout.type.js +1 -1
- package/esm2015/dialog/dialog-container.component.js +59 -0
- package/esm2015/dialog/dialog-container.directives.js +73 -0
- package/esm2015/dialog/dialog-ref.js +17 -0
- package/esm2015/dialog/dialog.component.js +2 -2
- package/esm2015/dialog/dialog.module.js +37 -7
- package/esm2015/dialog/dialog.property.js +17 -16
- package/esm2015/dialog/dialog.service.js +67 -0
- package/esm2015/dialog/public-api.js +5 -1
- package/esm2015/drawer/drawer-container.component.js +59 -0
- package/esm2015/drawer/drawer-container.directives.js +57 -0
- package/esm2015/drawer/drawer-ref.js +17 -0
- package/esm2015/drawer/drawer.component.js +2 -2
- package/esm2015/drawer/drawer.module.js +22 -6
- package/esm2015/drawer/drawer.property.js +22 -6
- package/esm2015/drawer/drawer.service.js +65 -0
- package/esm2015/drawer/public-api.js +6 -1
- package/esm2015/find/find.component.js +12 -3
- package/esm2015/find/find.property.js +18 -2
- package/esm2015/input/input.component.js +3 -2
- package/esm2015/menu/menu.component.js +2 -2
- package/esm2015/message/message-ref.js +12 -0
- package/esm2015/message/message.component.js +3 -3
- package/esm2015/message/message.property.js +2 -2
- package/esm2015/message/message.service.js +37 -15
- package/esm2015/message/public-api.js +2 -1
- package/esm2015/popconfirm/popconfirm.component.js +25 -4
- package/esm2015/popconfirm/popconfirm.property.js +10 -3
- package/esm2015/popover/popover.directive.js +8 -2
- package/esm2015/popover/popover.property.js +7 -2
- package/esm2015/portal/portal.module.js +4 -3
- package/esm2015/portal/portal.service.js +8 -9
- package/esm2015/progress/progress.component.js +177 -15
- package/esm2015/progress/progress.property.js +50 -3
- package/esm2015/select/select.component.js +1 -1
- package/esm2015/steps/steps.component.js +14 -7
- package/esm2015/steps/steps.property.js +8 -3
- package/esm2015/table/table-body.component.js +3 -3
- package/esm2015/table/table.component.js +2 -2
- package/esm2015/table/table.property.js +7 -3
- package/fesm2015/ng-nest-ui-alert.js +7 -2
- package/fesm2015/ng-nest-ui-alert.js.map +1 -1
- package/fesm2015/ng-nest-ui-carousel.js +9 -9
- package/fesm2015/ng-nest-ui-carousel.js.map +1 -1
- package/fesm2015/ng-nest-ui-core.js.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.js +254 -25
- package/fesm2015/ng-nest-ui-dialog.js.map +1 -1
- package/fesm2015/ng-nest-ui-drawer.js +224 -13
- package/fesm2015/ng-nest-ui-drawer.js.map +1 -1
- package/fesm2015/ng-nest-ui-find.js +28 -3
- package/fesm2015/ng-nest-ui-find.js.map +1 -1
- package/fesm2015/ng-nest-ui-input.js +2 -1
- package/fesm2015/ng-nest-ui-input.js.map +1 -1
- package/fesm2015/ng-nest-ui-menu.js +1 -1
- package/fesm2015/ng-nest-ui-menu.js.map +1 -1
- package/fesm2015/ng-nest-ui-message.js +50 -17
- package/fesm2015/ng-nest-ui-message.js.map +1 -1
- package/fesm2015/ng-nest-ui-popconfirm.js +33 -5
- package/fesm2015/ng-nest-ui-popconfirm.js.map +1 -1
- package/fesm2015/ng-nest-ui-popover.js +13 -2
- package/fesm2015/ng-nest-ui-popover.js.map +1 -1
- package/fesm2015/ng-nest-ui-portal.js +10 -10
- package/fesm2015/ng-nest-ui-portal.js.map +1 -1
- package/fesm2015/ng-nest-ui-progress.js +225 -17
- package/fesm2015/ng-nest-ui-progress.js.map +1 -1
- package/fesm2015/ng-nest-ui-select.js +1 -1
- package/fesm2015/ng-nest-ui-steps.js +20 -8
- package/fesm2015/ng-nest-ui-steps.js.map +1 -1
- package/fesm2015/ng-nest-ui-table.js +9 -5
- package/fesm2015/ng-nest-ui-table.js.map +1 -1
- package/find/find.property.d.ts +31 -1
- package/message/message-ref.d.ts +8 -0
- package/message/message.component.d.ts +3 -3
- package/message/message.property.d.ts +24 -4
- package/message/message.service.d.ts +4 -1
- package/message/public-api.d.ts +1 -0
- package/package.json +1 -1
- package/popconfirm/popconfirm.component.d.ts +6 -2
- package/popconfirm/popconfirm.property.d.ts +13 -2
- package/popover/popover.property.d.ts +6 -1
- package/portal/portal.module.d.ts +1 -1
- package/portal/portal.service.d.ts +2 -3
- package/progress/progress.component.d.ts +31 -3
- package/progress/progress.property.d.ts +80 -5
- package/steps/steps.property.d.ts +7 -2
- package/table/table.property.d.ts +24 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-core.js","sources":["../../../../lib/ng-nest/ui/core/util/chunk.ts","../../../../lib/ng-nest/ui/core/util/guid.ts","../../../../lib/ng-nest/ui/core/util/group-by.ts","../../../../lib/ng-nest/ui/core/util/resize.ts","../../../../lib/ng-nest/ui/core/util/option.ts","../../../../lib/ng-nest/ui/core/util/host.ts","../../../../lib/ng-nest/ui/core/util/log.ts","../../../../lib/ng-nest/ui/core/util/computed-style.ts","../../../../lib/ng-nest/ui/core/util/animation.ts","../../../../lib/ng-nest/ui/core/util/html.ts","../../../../lib/ng-nest/ui/core/animation/consts.ts","../../../../lib/ng-nest/ui/core/animation/fade.ts","../../../../lib/ng-nest/ui/core/animation/slide.ts","../../../../lib/ng-nest/ui/core/animation/drop.ts","../../../../lib/ng-nest/ui/core/animation/move.ts","../../../../lib/ng-nest/ui/core/animation/connect.ts","../../../../lib/ng-nest/ui/core/interfaces/data.type.ts","../../../../lib/ng-nest/ui/core/interfaces/identify.type.ts","../../../../lib/ng-nest/ui/core/functions/convert.ts","../../../../lib/ng-nest/ui/core/functions/date.ts","../../../../lib/ng-nest/ui/core/functions/flex.ts","../../../../lib/ng-nest/ui/core/functions/drop.ts","../../../../lib/ng-nest/ui/core/functions/remove.ts","../../../../lib/ng-nest/ui/core/functions/order-by.ts","../../../../lib/ng-nest/ui/core/functions/clone-deep.ts","../../../../lib/ng-nest/ui/core/functions/has-in.ts","../../../../lib/ng-nest/ui/core/functions/property.ts","../../../../lib/ng-nest/ui/core/services/reuse-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/preloading-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/http.service.ts","../../../../lib/ng-nest/ui/core/services/storage.service.ts","../../../../lib/ng-nest/ui/core/services/repository.service.ts","../../../../lib/ng-nest/ui/core/config/config.ts","../../../../lib/ng-nest/ui/core/theme/theme.ts","../../../../lib/ng-nest/ui/core/theme/theme.service.ts","../../../../lib/ng-nest/ui/core/config/config.service.ts","../../../../lib/ng-nest/ui/core/ng-nest-ui-core.ts"],"sourcesContent":["export function chunk<T>(array: T[], size = 1): T[][] {\r\n const len = array == null ? 0 : array.length;\r\n if (!len || size < 1) {\r\n return [];\r\n }\r\n let index = 0;\r\n let resIndex = 0;\r\n const result = new Array(Math.ceil(len / size));\r\n\r\n while (index < len) {\r\n result[resIndex++] = array.slice(index, (index += size));\r\n }\r\n return result;\r\n}\r\n","/**\r\n * 生成 GUID\r\n */\r\nexport function guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n}\r\n","export function groupBy<T>(array: T[], name: string): T[][] {\r\n const groups: any = {};\r\n array.forEach((obj: any) => {\r\n const group = JSON.stringify(obj[name]);\r\n groups[group] = groups[group] || [];\r\n groups[group].push(obj);\r\n });\r\n return Object.keys(groups).map((group) => groups[group]);\r\n}\r\n","import { Observable, Subscriber } from 'rxjs';\r\n\r\nexport const XResize = (...element: Element[]): Observable<{ entry: ResizeObserverEntry; resizeObserver: ResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: ResizeObserverEntry;\r\n resizeObserver: ResizeObserver;\r\n }>\r\n ) => {\r\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\r\n for (const entry of entries) {\r\n x.next({ entry: entry, resizeObserver: resizeObserver });\r\n }\r\n });\r\n for (let ele of element) {\r\n if (ele) resizeObserver.observe(ele);\r\n }\r\n\r\n //XResize 取消订阅的时候自动销毁\r\n //resizeObserver.disconnect();\r\n }\r\n );\r\n};\r\n","/**\r\n * Fill default values\r\n * @param option option\r\n * @param def default\r\n */\r\nexport function fillDefault(option: { [property: string]: any }, def: { [property: string]: any }) {\r\n if (option && def) {\r\n for (const key in def) {\r\n if (typeof option[key] === 'undefined') {\r\n option[key] = def[key];\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * 删除当前标签,保留内容\r\n */\r\nexport function removeNgTag(nativeElement: HTMLElement): void {\r\n const parentElement = nativeElement.parentElement;\r\n if (!parentElement || !parentElement.insertBefore) return;\r\n while (nativeElement.firstChild) {\r\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\r\n }\r\n parentElement.removeChild(nativeElement);\r\n}\r\n","export function warnSVGTagNotFound() {\r\n console.warn(`<svg> tag not found.`);\r\n}\r\nexport function warnIconTypeNotFound() {\r\n console.warn(`icon type not found.`);\r\n}\r\n","export function computedStyle(element: HTMLElement, style: string) {\r\n let computed = getComputedStyle(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\r\n}\r\n","// tslint:disable:no-any typedef no-invalid-this\r\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): any {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = setTimeout(() => {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n return () => 0;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\r\n}\r\n// export function cancelRequestAnimationFrame(id: number): any {\r\n// if (typeof window === \"undefined\") {\r\n// return null;\r\n// }\r\n// if (window.cancelAnimationFrame) {\r\n// return window.cancelAnimationFrame(id);\r\n// }\r\n// const prefix = availablePrefixes.filter(\r\n// key =>\r\n// `${key}CancelAnimationFrame` in window ||\r\n// `${key}CancelRequestAnimationFrame` in window\r\n// )[0];\r\n\r\n// return prefix\r\n// ? (\r\n// (window as any)[`${prefix}CancelAnimationFrame`] ||\r\n// (window as any)[`${prefix}CancelRequestAnimationFrame`]\r\n// )\r\n// // @ts-ignore\r\n// .call(this, id)\r\n// : clearTimeout(id);\r\n// }\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","/**\r\n * 去除HTML标签\r\n */\r\n export function stripTags(text: string, ...usefulTags: any[]): string {\r\n if (!text || typeof (text) !== 'string')\r\n return text;\r\n return usefulTags.length > 0\r\n ? text.replace(new RegExp(`<(?!\\/?(${usefulTags.join('|')})\\s*\\/?)[^>]+>`, 'g'), '')\r\n : text.replace(/<(?:.|\\s)*?>/g, '');\r\n}\r\n","export enum XDuration {\r\n Slow = '0.3s',\r\n Base = '0.2s',\r\n Fast = '0.1s'\r\n}\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XFadeAnimation: AnimationTriggerMetadata = trigger('x-fade-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0.8)' }),\r\n animate(`${XDURATION_BASE_EASE_IN}`, style({ opacity: 1, transform: 'scale(1)' }))\r\n ]),\r\n transition(':leave', [animate(`${XDURATION_BASE_EASE_OUT}`, style({ opacity: 0 }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XSlideAnimation: AnimationTriggerMetadata = trigger('x-slide-animation', [\r\n transition('void => right', [style({ transform: 'translate(100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('right => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(100%,0)' }))]),\r\n transition('void => left', [style({ transform: 'translate(-100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('left => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(-100%,0)' }))]),\r\n transition('void => top', [style({ transform: 'translate(0,-100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('top => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,-100%)' }))]),\r\n transition('void => bottom', [style({ transform: 'translate(0,100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('bottom => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,100%)' }))])\r\n]);\r\n\r\nexport const XSliderAnimation: AnimationTriggerMetadata = trigger('x-slider-animation', [\r\n transition('void => left, void => right', [\r\n style({\r\n width: 0,\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: '*',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void, right => void', [\r\n style({\r\n width: '*',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: 0,\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XDropAnimation: AnimationTriggerMetadata = trigger('x-drop-animation', [\r\n state('*', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('false', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('true', style({ opacity: 1, height: '*', border: '*', padding: '*', visibility: 'inherit' })),\r\n transition('* => *', animate(`${XDuration.Base} ease-out`))\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\nexport const XMoveAnimation: AnimationTriggerMetadata = trigger('x-move-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0,\r\n height: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XMoveBoxAnimation: AnimationTriggerMetadata = trigger('x-move-box-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XConnectAnimation: AnimationTriggerMetadata = trigger('x-connect-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XConnectBaseAnimation: AnimationTriggerMetadata = trigger('x-connect-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate(XDURATION_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0 }))])\r\n]);\r\n","import { Observable, isObservable } from 'rxjs';\r\nimport { TemplateRef, SimpleChange } from '@angular/core';\r\n\r\n// 数据类型\r\nexport type XData<T> = T[] | Observable<T[] | any[]> | any[] | Function;\r\n\r\n// Boolean 类型\r\nexport type XBoolean = boolean | string;\r\n\r\n// Number 类型\r\nexport type XNumber = number | string;\r\n\r\n// 模板类型\r\nexport type XTemplate = string | number | Date | TemplateRef<any>;\r\n\r\n// 类型判断\r\nexport const XIsType = (type: string) => (object: any) => Object.prototype.toString.call(object) === `[object ${type}]`;\r\n\r\n// 值改变判断\r\nexport const XIsChange = (...changes: SimpleChange[]) => {\r\n for (let change of changes) {\r\n if (change?.currentValue !== change?.previousValue) return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const XIsString = XIsType('String');\r\nexport const XIsArray = XIsType('Array');\r\nexport const XIsNumber = XIsType('Number');\r\nexport const XIsBoolean = XIsType('Boolean');\r\nexport const XIsObject = XIsType('Object');\r\nexport const XIsNull = XIsType('Null');\r\nexport const XIsFunction = XIsType('Function');\r\nexport const XIsDate = XIsType('Date');\r\nexport const XIsRegExp = XIsType('RegExp');\r\nexport const XIsValue = (object: any) => XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\nexport const XIsUndefined = (object: any) => typeof object === 'undefined';\r\nexport const XIsEmpty = (object: any) => typeof object === 'undefined' || object === null || object === '' || object.length === 0;\r\nexport const XIsValueArray = (object: any) => XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\nexport const XIsObjectArray = (object: any) => XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\nexport const XIsObservable = (object: any) => isObservable(object);\r\nexport const XIsTemplateRef = (object: any) => {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n};\r\nexport const XIsXTemplate = (object: any) => XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\r\n","// 标识对象\r\nexport interface XIdentityProperty {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n\r\n// 父节点标识对象\r\nexport interface XParentIdentityProperty<T> extends XIdentityProperty {\r\n // 编码\r\n pid?: any;\r\n // 层级\r\n level?: number;\r\n // 叶子节点\r\n leaf?: boolean;\r\n // 子节点\r\n children?: T[];\r\n // 选中\r\n selected?: boolean;\r\n // 禁用\r\n disabled?: boolean;\r\n}\r\n\r\n// 标识对象\r\nexport class XIdentity {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n","import { coerceBooleanProperty, _isNumberValue } from '@angular/cdk/coercion';\r\nimport {\r\n XData,\r\n XIsNull,\r\n XIsUndefined,\r\n XIsArray,\r\n XIsValue,\r\n XIsObject,\r\n XIsObservable,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XClassMap,\r\n XIsFunction\r\n} from '../interfaces';\r\nimport { Observable, Subject, Observer } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nexport function XToBoolean(value: XBoolean): boolean {\r\n // if (XIsString(value)) {\r\n // return ['', 'true'].indexOf(String(value).trim()) !== -1;\r\n // } else {\r\n // return Boolean(value);\r\n // }\r\n return coerceBooleanProperty(value);\r\n}\r\n\r\nfunction XToNumber(value: number | string): number;\r\nfunction XToNumber<D>(value: number | string, fallback: D): number | D;\r\nfunction XToNumber(value: number | string, fallbackValue: number = 0): number {\r\n return _isNumberValue(value) ? Number(value) : fallbackValue;\r\n}\r\n\r\nexport function XToDataConvert<T>(value: XData<T>): XData<T> {\r\n if (XIsArray(value)) {\r\n return (value as []).map((x: any) => {\r\n if (XIsValue(x)) {\r\n return { label: x, id: x };\r\n } else if (XIsObject(x)) {\r\n x.label = XIsUndefined(x.label) || XIsNull(x.label) ? x.id : x.label;\r\n x.id = XIsUndefined(x.id) || XIsNull(x.id) ? x.label : x.id;\r\n return x;\r\n }\r\n });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam = null): Observable<T[]> {\r\n return new Observable((x: Observer<T[]>) => {\r\n const result = (res: T[]) => {\r\n x.next(res);\r\n x.complete();\r\n };\r\n if (typeof data === 'undefined') {\r\n result([]);\r\n } else {\r\n if (XIsObservable(data)) {\r\n (data as Observable<T[]>)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else if (XIsFunction(data)) {\r\n (data as (param: any) => Observable<T[]>)(funcParam)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else {\r\n result((toConvert ? XToDataConvert(data) : data) as T[]);\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function XGetChildren<T extends XParentIdentityProperty<T>>(nodes: T[], node: T, level: number) {\r\n node.level = level;\r\n node.children = nodes.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) node.children.map((y) => XGetChildren(nodes, y, level + 1));\r\n return node;\r\n}\r\n\r\nexport function XInvertKeyValues(obj: any): Map<any, any> {\r\n return Object.keys(obj).reduce((nw, key) => {\r\n nw.set(obj[key], key);\r\n return nw;\r\n }, new Map());\r\n}\r\n\r\nexport function XClearClass(...classMaps: XClassMap[]) {\r\n classMaps.forEach((classMap) => {\r\n for (const key in classMap) {\r\n classMap[key] = false;\r\n }\r\n });\r\n}\r\n\r\nfunction propDecoratorFactory<T, D>(name: string, fallback: (v: T) => D): (target: any, propName: string) => void {\r\n function propDecorator(target: any, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\r\n const privatePropName = `$$__${propName}`;\r\n\r\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\r\n }\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return {\r\n get(): string {\r\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(fallback(value));\r\n }\r\n this[privatePropName] = fallback(value);\r\n }\r\n };\r\n }\r\n\r\n return propDecorator;\r\n}\r\n\r\nexport function XInputBoolean(): any {\r\n return propDecoratorFactory('XInputBoolean', XToBoolean);\r\n}\r\n\r\nexport function XInputNumber(): any {\r\n return propDecoratorFactory('XInputNumber', XToNumber);\r\n}\r\n\r\nexport function XDataConvert(): any {\r\n return propDecoratorFactory('XDataConvert', XToDataConvert);\r\n}\r\n\r\nexport function XClamp(value: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n","import { XIsDate, XIsNumber } from '../interfaces';\r\n\r\nexport type XDate = string | Date | number;\r\n\r\nexport function XToDate(date: XDate): Date {\r\n if (XIsDate(date) || XIsNumber(date)) {\r\n return new Date(date);\r\n } else {\r\n return new Date(Date.parse(date as string));\r\n }\r\n}\r\n\r\nexport function XAddSeconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setSeconds(dt.getSeconds() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMinutes(dt.getMinutes() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setHours(dt.getHours() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddDays(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setDate(dt.getDate() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMonths(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMonth(dt.getMonth() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddYears(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setFullYear(dt.getFullYear() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n","import { Renderer2 } from '@angular/core';\r\nimport { XAlign, XDirection, XIsEmpty, XJustify } from '../interfaces';\r\n\r\nexport function setFlex(ele: Element, renderer: Renderer2, justify?: XJustify, align?: XAlign, direction?: XDirection) {\r\n let result: string[] = [];\r\n if (!XIsEmpty(justify)) {\r\n const justifyStr = `x-justify-${justify}`;\r\n result.push(justifyStr)\r\n renderer.addClass(ele, justifyStr);\r\n }\r\n if (!XIsEmpty(align)) {\r\n const alignStr = `x-align-${align}`;\r\n result.push(alignStr)\r\n renderer.addClass(ele, alignStr);\r\n }\r\n if (!XIsEmpty(direction)) {\r\n const directionStr = `x-direction-${direction}`;\r\n result.push(directionStr)\r\n renderer.addClass(ele, directionStr);\r\n }\r\n return result;\r\n}\r\n","export function XDrop<T>(array: Array<T>, n?: number): T[] {\r\n if (!n) return [...array];\r\n if (array.length < 1 || array.length <= Math.abs(n)) return [];\r\n return array.slice(n > 0 ? n : 0, n > 0 ? array.length : n);\r\n}\r\n","export function XRemove<T>(array: Array<T>, predicate?: (value: T) => boolean): T[] {\r\n if (typeof predicate === 'undefined') return [];\r\n let result: T[] = [];\r\n for (let i = 0; i < array.length; i++) {\r\n if (predicate(array[i])) {\r\n result.push(array[i]);\r\n }\r\n }\r\n for (let item of result) {\r\n array.splice(array.indexOf(item), 1);\r\n }\r\n return result;\r\n}\r\n","export function XOrderBy<T>(collection: Array<T>, iteratees: Array<string>, orders?: Array<'asc' | 'desc'>): T[] {\r\n if (!iteratees) return collection;\r\n if (!orders) orders = [];\r\n\r\n function compare(a: any, b: any, prop: any, order: 'asc' | 'desc' | undefined, idex: number): number {\r\n if (a[prop] == b[prop]) {\r\n ++idex;\r\n if (iteratees.length > idex) {\r\n const odr = orders && orders.length > idex ? orders[idex] : 'asc';\r\n return compare(a, b, iteratees[idex], odr, idex);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n if (order === 'desc') {\r\n return (b[prop] - a[prop]) as number;\r\n } else {\r\n return (a[prop] - b[prop]) as number;\r\n }\r\n }\r\n\r\n const iterate = iteratees.shift();\r\n const order = orders.shift() || 'asc';\r\n\r\n if (!iterate) return collection;\r\n\r\n collection.sort((a: any, b: any) => compare(a, b, iterate, order, -1));\r\n\r\n return collection;\r\n}\r\n","export function XCloneDeep(value: any): any {\r\n let result: any = Array.isArray(value) ? [] : {};\r\n if (value && typeof value === 'object') {\r\n for (let key in value) {\r\n if ((value as Object).hasOwnProperty(key)) {\r\n result[key] = value && typeof value[key] === 'object' ? XCloneDeep(value[key]) : value[key];\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n","export function XHasIn(object: Object, key: string) {\r\n return object != null && key in Object(object);\r\n}\r\n","import { XClassMap } from '../interfaces';\r\n\r\n/**\r\n * 组件公共属性\r\n */\r\nexport class XProperty {\r\n /**\r\n * 样式映射属性\r\n */\r\n classMap: XClassMap = {};\r\n}\r\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport interface XRouteReuseStorage {\r\n id: string;\r\n handle: DetachedRouteHandle;\r\n}\r\n\r\n// @dynamic\r\nexport class XReuseStrategyService implements RouteReuseStrategy {\r\n // 存储的复用路由\r\n public static storages: XRouteReuseStorage[] = [];\r\n // 用一个临时变量记录待删除的路由\r\n private static waitDelete: string | null;\r\n\r\n /**\r\n * 表示对所有路由允许复用 如果你有路由不想利用可以在这加一些业务逻辑判断\r\n */\r\n public shouldDetach(_route: ActivatedRouteSnapshot): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n */\r\n public store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n if (handle == null) return;\r\n if (XReuseStrategyService.waitDelete && this.getRouteUrl(route).indexOf(XReuseStrategyService.waitDelete) == 0) {\r\n //如果待删除是当前路由则不存储快照\r\n XReuseStrategyService.waitDelete = null;\r\n return;\r\n }\r\n this.add(this.getRouteUrl(route), handle);\r\n }\r\n\r\n /**\r\n * 若 path 在缓存中有的都认为允许还原路由\r\n */\r\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return !!XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n }\r\n\r\n /**\r\n * 从缓存中获取快照,若无则返回nul\r\n */\r\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n if (!route.routeConfig) {\r\n return {};\r\n }\r\n let stroage = XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n return stroage ? stroage.handle : {};\r\n }\r\n\r\n /**\r\n * 进入路由触发,判断是否同一路由\r\n * 解决不同的参数也会认为是同一个路由,导致会将之前的路由拿出来复用\r\n */\r\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig && JSON.stringify(future.params) == JSON.stringify(curr.params);\r\n }\r\n\r\n /**\r\n * 解决不同的主路由会存在相同名称的子路由\r\n */\r\n private getRouteUrl(route: ActivatedRouteSnapshot) {\r\n let url = route.url.map((x) => x.path).join('_');\r\n return url;\r\n }\r\n\r\n /**\r\n * 删除复用的路由\r\n */\r\n public static deleteRouteSnapshot(name?: string): void {\r\n if (name) {\r\n let id = name.replace(/\\//g, '_');\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id.indexOf(id) === 0),\r\n 1\r\n );\r\n XReuseStrategyService.waitDelete = id;\r\n } else {\r\n XReuseStrategyService.storages = [];\r\n }\r\n }\r\n\r\n private add(id: string, handle: DetachedRouteHandle) {\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id == id),\r\n 1\r\n );\r\n XReuseStrategyService.storages = [...XReuseStrategyService.storages, { id: id, handle: handle }];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreloadingStrategy, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XPreloadingStrategyService implements PreloadingStrategy {\r\n // 需要预加载的模块\r\n preloadedModules: string[] = [];\r\n\r\n preload(route: Route, load: () => Observable<any>): Observable<any> {\r\n if (route.data && route.data['preload']) {\r\n this.preloadedModules.push(route.path as string);\r\n return load();\r\n } else {\r\n return of(null);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XHttpService {\r\n api: string = '';\r\n constructor(public http: HttpClient) {}\r\n\r\n /**\r\n * get请求\r\n */\r\n get(url: string, params?: { [property: string]: any }) {\r\n return this.request('GET', url, params);\r\n }\r\n\r\n /**\r\n * get请求\r\n */\r\n post(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('POST', url, params);\r\n }\r\n\r\n /**\r\n * put请求\r\n */\r\n put(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('PUT', url, params);\r\n }\r\n\r\n /**\r\n * delete请求\r\n */\r\n delete(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('DELETE', url, params);\r\n }\r\n\r\n /**\r\n * request通用请求\r\n */\r\n request(method: string, url: string, params?: { [property: string]: any }, option?: { [property: string]: any }): Observable<any> {\r\n if (!option) option = {};\r\n let opt = {};\r\n url = `${this.api}${url}`;\r\n method = method.toUpperCase();\r\n if (['POST', 'PUT', 'DELETE'].indexOf(method) > -1) {\r\n opt = { body: params, observe: 'body', responseType: 'json' };\r\n } else if (['GET'].indexOf(method) > -1) {\r\n opt = { params: params };\r\n }\r\n Object.assign(opt, option);\r\n this.addHeader(opt);\r\n return new Observable((x) => {\r\n this.http.request(method, url, opt).subscribe(\r\n (y: any) => {\r\n x.next(y);\r\n x.complete();\r\n },\r\n (y) => {\r\n x.error(y);\r\n x.complete();\r\n this.handleError(y);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * 错误处理\r\n */\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error) {\r\n }\r\n return throwError(error.error);\r\n }\r\n\r\n /**\r\n * 添加头部信息\r\n */\r\n private addHeader(_option: { [property: string]: any }) {\r\n // let auth = this.setting.getSession(\"Auth\");\r\n // if (auth && auth[\"token\"]) {\r\n // option[\"headers\"] = { Authorization: `Bearer ${auth[\"token\"]}` };\r\n // }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor() {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 生成guid\r\n */\r\n guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n }\r\n}\r\n","import { XId, XQuery, XResultList } from '../interfaces';\r\nimport { XHttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface XRepositoryInput {\r\n api?: string;\r\n controller: XController;\r\n}\r\n\r\nexport interface XController {\r\n name: string;\r\n}\r\n\r\nexport abstract class XRepositoryAbstract {\r\n abstract getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<any>>;\r\n abstract get(id: number | string): Observable<any>;\r\n abstract post(entity: any): Observable<any>;\r\n abstract put(entity: any): Observable<any>;\r\n abstract delete(id: number | string): Observable<boolean>;\r\n}\r\n\r\nexport class XRepositoryService<Entity extends XId> extends XRepositoryAbstract {\r\n api = '';\r\n constructor(public http: XHttpService, public input: XRepositoryInput) {\r\n super();\r\n this.api = typeof input.api !== 'undefined' ? input.api : '';\r\n }\r\n\r\n getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<Entity>> {\r\n index = index ? index : 1;\r\n size = size ? size : 10;\r\n return this.http.post(`${this.api}${this.input.controller.name}/${size}/${index}`, query);\r\n }\r\n\r\n get(id: number | string): Observable<Entity> {\r\n return this.http.get(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n\r\n post(entity: Entity): Observable<Entity> {\r\n return this.http.post(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n put(entity: Entity): Observable<Entity> {\r\n return this.http.put(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n delete(id: number | string): Observable<boolean> {\r\n return this.http.delete(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n}\r\n","import {\r\n XSize,\r\n XBoolean,\r\n XType,\r\n XEffect,\r\n XNumber,\r\n XPositionLeftRight,\r\n XJustify,\r\n XShape,\r\n XFit,\r\n XShadow,\r\n XTrigger,\r\n XDisplayDirection,\r\n XCorner,\r\n XDirection,\r\n XPlace,\r\n XPosition,\r\n XPlacement,\r\n XPositionTopBottom,\r\n XStatus\r\n} from '../interfaces';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { XTheme } from '../theme';\r\n\r\nexport interface XConfig {\r\n components?: XComponentConfig;\r\n theme?: XTheme;\r\n}\r\n\r\nexport type XConfigKey = keyof XConfig;\r\n\r\nexport type XComponentConfigKey = keyof XComponentConfig;\r\n\r\nexport const X_CONFIG = new InjectionToken<XConfig>('x-config');\r\n\r\nexport interface XComponentConfig {\r\n affix?: XAffixConfig;\r\n alert?: XAlertConfig;\r\n anchor?: XAnchorConfig;\r\n avatar?: XAvatarConfig;\r\n autoComplete?: XAutoCompleteConfig;\r\n backTop?: XBackTopConfig;\r\n badge?: XBadgeConfgig;\r\n button?: XButtonConfig;\r\n buttons?: XButtonsConfig;\r\n calendar?: XCalendarConfig;\r\n card?: XCardConfig;\r\n carousel?: XCarouselConfig;\r\n cascade?: XCascadeConfig;\r\n checkbox?: XCheckboxConfig;\r\n collapse?: XCollapseConfig;\r\n color?: XColorConfig;\r\n colorPicker?: XColorPickerConfig;\r\n comment?: XCommentConfig;\r\n container?: XContainerConfig;\r\n header?: XHeaderConfig;\r\n aside?: XAsideConfig;\r\n footer?: XFooterConfig;\r\n crumb?: XCrumbComfig;\r\n datePicker?: XDatePickerConfig;\r\n dateRange?: XDateRangeConfig;\r\n dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\r\n description?: XDescriptionConfig;\r\n empty?: XEmptyConfig;\r\n find?: XFindConfig;\r\n form?: XFormConfig;\r\n highlight?: XHighlightConfig;\r\n icon?: XIconConfig;\r\n inner?: XInnerConfig;\r\n input?: XInputConfig;\r\n inputGroup?: XInputGroupConfig;\r\n inputNumber?: XInputNumberConfig;\r\n col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\r\n loading?: XLoadingConfig;\r\n menu?: XMenuConfig;\r\n message?: XMessageConfig;\r\n messageBox?: XMessageBoxConfig;\r\n notification?: XNotificationConfig;\r\n outlet?: XOutletConfig;\r\n pageHeader?: XPageHeaderConfig;\r\n pagination?: XPaginationConfig;\r\n pattern?: XPatternConfig;\r\n popconfirm?: XPopconfirmConfig;\r\n popover?: XPopoverConfig;\r\n portal?: XPortalConfig;\r\n progress?: XProgressConfing;\r\n radio?: XRadioConfig;\r\n rate?: XRateConfig;\r\n result?: XResultConfig;\r\n select?: XSelectConfig;\r\n skeleton?: XSkeletonConfig;\r\n slider?: XSliderConfig;\r\n sliderSelect?: XSliderSelectConfig;\r\n statistic?: XStatisticConfig;\r\n countdown?: XCountdownConfig;\r\n steps?: XStepsConfig;\r\n switch?: XSwitchConfig;\r\n table?: XTableConfig;\r\n tabs?: XTabsConfig;\r\n tag?: XTagConfig;\r\n textRetract?: XTextRetractConfig;\r\n theme?: XThemeConfig;\r\n timeAgo?: XTimeAgoConfig;\r\n timePicker?: XTimePickerConfig;\r\n timeRange?: XTimeRangeConfig;\r\n timeline?: XTimelineConfig;\r\n tooltip?: XTooltipConfig;\r\n transfer?: XTransferConfig;\r\n tree?: XTreeConfig;\r\n treeFile?: XTreeFileConfig;\r\n textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\r\n}\r\n\r\nexport interface XAffixConfig {\r\n top?: string;\r\n left?: string;\r\n}\r\n\r\nexport interface XAlertConfig {\r\n effect?: XEffect;\r\n hideClose?: XBoolean;\r\n showIcon?: XBoolean;\r\n disabledAnimation?: XBoolean;\r\n draggable?: XBoolean;\r\n dragHandleTitle?: XBoolean;\r\n duration?: XNumber;\r\n}\r\n\r\nexport interface XAnchorConfig {\r\n affixTop?: string;\r\n affixWidth?: string;\r\n layout?: XPositionLeftRight;\r\n justify?: XJustify;\r\n}\r\n\r\nexport interface XAvatarConfig {\r\n size?: XSize;\r\n shape?: XShape;\r\n fit?: XFit;\r\n}\r\n\r\nexport interface XAutoCompleteConfig {\r\n placement?: XPositionTopBottom;\r\n debounceTime?: number;\r\n size?: XSize;\r\n bordered?: boolean;\r\n caseSensitive?: boolean;\r\n}\r\n\r\nexport interface XBackTopConfig {\r\n right?: string;\r\n bottom?: string;\r\n visibilityHeight?: XNumber;\r\n}\r\n\r\nexport interface XBadgeConfgig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XButtonConfig {\r\n size?: XSize;\r\n type?: XType;\r\n plain?: XBoolean;\r\n round?: XBoolean;\r\n circle?: XBoolean;\r\n}\r\n\r\nexport interface XButtonsConfig {\r\n space?: XNumber;\r\n hiddenBorder?: XBoolean;\r\n}\r\n\r\nexport interface XCalendarConfig {}\r\n\r\nexport interface XCardConfig {\r\n shadow?: XShadow;\r\n}\r\n\r\nexport interface XCarouselConfig {\r\n height?: string;\r\n trigger?: XTrigger;\r\n arrow?: XShadow;\r\n direction?: XDisplayDirection;\r\n}\r\n\r\nexport interface XCascadeConfig {\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n nodeTrigger?: XTrigger;\r\n nodeHoverDelay?: XNumber;\r\n}\r\n\r\nexport interface XCheckboxConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XCollapseConfig {}\r\n\r\nexport interface XColorConfig {\r\n merge?: string;\r\n amounts?: string;\r\n}\r\n\r\nexport interface XColorPickerConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCommentConfig {\r\n contentMax?: number;\r\n}\r\n\r\nexport interface XContainerConfig {\r\n direction?: XDirection;\r\n}\r\n\r\nexport interface XHeaderConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XAsideConfig {\r\n width?: number;\r\n}\r\n\r\nexport interface XFooterConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XCrumbComfig {\r\n separator?: string;\r\n}\r\n\r\nexport interface XDatePickerConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n}\r\n\r\nexport interface XDateRangeConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: string;\r\n effect?: XEffect;\r\n showCancel?: XBoolean;\r\n cancelText?: string;\r\n showConfirm?: XBoolean;\r\n confirmText?: string;\r\n backdropClose?: XBoolean;\r\n draggable?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n buttonsCenter?: XBoolean;\r\n}\r\n\r\nexport interface XDrawerConfig {\r\n placement?: XPosition;\r\n size?: string;\r\n}\r\n\r\nexport interface XDropdownConfig {\r\n trigger?: XTrigger;\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XDescriptionConfig {\r\n bordered?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XEmptyConfig {\r\n content?: string;\r\n}\r\n\r\nexport interface XFindConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n columnLabel?: string;\r\n dialogTitle?: string;\r\n dialogButtonsCenter?: XBoolean;\r\n tableIndex?: number;\r\n tableSize?: number;\r\n tableLoading?: XBoolean;\r\n tableVirtualScroll?: boolean;\r\n tableRowHeight?: XNumber;\r\n treeExpandedLevel?: XNumber;\r\n}\r\n\r\nexport interface XFormConfig {\r\n space?: XNumber;\r\n labelSuffix?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface XHighlightConfig {}\r\n\r\nexport interface XIconConfig {\r\n href?: string;\r\n}\r\n\r\nexport interface XInnerConfig {\r\n padding?: string;\r\n}\r\n\r\nexport interface XInputConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XInputGroupConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n compact?: XBoolean;\r\n}\r\n\r\nexport interface XInputNumberConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XColConfig {}\r\n\r\nexport interface XRowConfig {}\r\n\r\nexport interface XRippleConfig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XLinkConfig {\r\n underline?: XBoolean;\r\n iconRight?: XBoolean;\r\n}\r\n\r\nexport interface XListConfig {}\r\n\r\nexport interface XLoadingConfig {\r\n size?: XSize;\r\n text?: string;\r\n icon?: string;\r\n color?: string;\r\n background?: string;\r\n}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XMessageConfig {\r\n type?: XStatus;\r\n width?: string;\r\n placement?: XPlace;\r\n displayType?: string;\r\n offset?: string | string[];\r\n duration?: number;\r\n hideClose?: boolean;\r\n showIcon?: boolean;\r\n}\r\n\r\nexport interface XMessageBoxConfig {}\r\n\r\nexport interface XNotificationConfig {}\r\n\r\nexport interface XOutletConfig {}\r\n\r\nexport interface XPageHeaderConfig {\r\n backIcon?: string;\r\n backText?: string;\r\n}\r\n\r\nexport interface XPaginationConfig {\r\n index?: XNumber;\r\n size?: XNumber;\r\n space?: XNumber;\r\n pageLinkSize?: XNumber;\r\n hiddenBorder?: boolean;\r\n showEllipsis?: boolean;\r\n showTotal?: boolean;\r\n showSize?: boolean;\r\n sizeWidth?: number;\r\n sizeData?: number[];\r\n showJump?: boolean;\r\n jumpWidth?: number;\r\n simple?: boolean;\r\n simpleIndexWidth?: number;\r\n}\r\n\r\nexport interface XPatternConfig {}\r\n\r\nexport interface XPopconfirmConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n icon?: string;\r\n iconColor?: string;\r\n cancelText?: string;\r\n confirmText?: string;\r\n}\r\n\r\nexport interface XPopoverConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n}\r\n\r\nexport interface XPortalConfig {}\r\n\r\nexport interface XProgressConfing {\r\n height?: string;\r\n}\r\n\r\nexport interface XRadioConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XRateConfig {}\r\n\r\nexport interface XResultConfig {}\r\n\r\nexport interface XSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XSliderSelectConfig {}\r\n\r\nexport interface XStatisticConfig {}\r\n\r\nexport interface XCountdownConfig {\r\n format?: string;\r\n}\r\n\r\nexport interface XStepsConfig {}\r\n\r\nexport interface XSwitchConfig {}\r\n\r\nexport interface XTableConfig {\r\n index?: number;\r\n size?: number;\r\n loading?: XBoolean;\r\n showHeader?: XBoolean;\r\n virtualScroll?: boolean;\r\n rowHeight?: XNumber;\r\n itemSize?: XNumber;\r\n bordered?: XNumber;\r\n allowSelectRow?: XBoolean;\r\n rowSize?: XSize;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTagConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n closable?: XBoolean;\r\n dark?: XBoolean;\r\n}\r\n\r\nexport interface XTextRetractConfig {\r\n max?: XNumber;\r\n}\r\n\r\nexport interface XThemeConfig {\r\n amounts?: XNumber[];\r\n}\r\n\r\nexport interface XTimeAgoConfig {}\r\n\r\nexport interface XTimePickerConfig {\r\n format?: string;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XTimeRangeConfig {}\r\n\r\nexport interface XTimelineConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTooltipConfig {\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XTransferConfig {\r\n titles?: string[];\r\n drag?: XBoolean;\r\n}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\r\n}\r\n\r\nexport interface XTextareaConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XTreeFileConfig {\r\n maxHeight?: XNumber;\r\n spacing?: XNumber;\r\n}\r\n\r\nexport interface XUploadConfig {}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface XTheme {\r\n colors?: XColorsTheme;\r\n}\r\n\r\nexport interface XColorsTheme {\r\n primary?: string;\r\n success?: string;\r\n warning?: string;\r\n danger?: string;\r\n info?: string;\r\n text?: string;\r\n border?: string;\r\n background?: string;\r\n [property: string]: any;\r\n}\r\n\r\nexport type XThemeKey = keyof XTheme;\r\n\r\nexport type XColors = 'primary' | 'success' | 'warning' | 'danger' | 'info';\r\n\r\nexport const X_THEME = new InjectionToken<XTheme>('x-theme');\r\n\r\nexport const X_THEME_PREFIX = '--x-';\r\n\r\nexport const X_THEME_MERGE = '#ffffff';\r\n\r\nexport const X_THEME_BLACK_MERGE = '#cccccc';\r\n\r\nexport const X_THEME_AMOUNTS = [0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\nexport const X_THEME_BACKGROUNDS = [-0.2, -0.3, -0.4];\r\n\r\nexport const X_THEME_TEXTS = [\r\n [-0.5, 0],\r\n [-0.6, 0.2],\r\n [-0.7, 0.4]\r\n];\r\n\r\nexport const X_THEME_BORDERS = [\r\n [-0.8, 0],\r\n [-0.9, 0.2]\r\n];\r\n\r\nexport const X_THEME_EXCHANGES = [\r\n [-0.1, -0.1],\r\n [0.1, -0.1],\r\n [0.2, 0.2],\r\n [0.3, 0],\r\n [0.4, -0.4],\r\n [0.5, -0.2],\r\n [0.6, 0],\r\n [0.7, -0.4],\r\n [0.8, -0.4],\r\n [0.9, -0.2]\r\n];\r\n\r\nexport const X_THEME_COLORS: XColorsTheme = {\r\n primary: '#1976d2',\r\n success: '#67c23a',\r\n warning: '#e6a23c',\r\n danger: '#f56c6c',\r\n info: '#909399',\r\n text: '#333333',\r\n border: '#dddddd',\r\n background: '#ffffff'\r\n};\r\n\r\nexport const X_THEME_DARK_COLORS: XColorsTheme = {\r\n text: '#dddddd',\r\n border: '#424242',\r\n background: '#1e1e1f'\r\n};\r\n\r\nexport const X_THEME_COLOR_KEYS = Object.keys(X_THEME_COLORS);\r\n","import { Injectable, Inject, RendererFactory2, Renderer2 } from '@angular/core';\r\nimport {\r\n XTheme,\r\n XColorsTheme,\r\n X_THEME_COLORS,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_PREFIX,\r\n X_THEME_AMOUNTS,\r\n X_THEME_MERGE,\r\n X_THEME_BLACK_MERGE,\r\n X_THEME_EXCHANGES,\r\n X_THEME_BACKGROUNDS,\r\n X_THEME_TEXTS,\r\n X_THEME_BORDERS\r\n} from './theme';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XThemeService {\r\n private colorsProp: XColorsTheme = {};\r\n private colorsStyleEle!: HTMLStyleElement;\r\n private renderer2: Renderer2;\r\n private declaration: CSSStyleDeclaration;\r\n\r\n constructor(@Inject(DOCUMENT) private doc: any, private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = getComputedStyle(this.doc.documentElement);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n if (theme?.colors) Object.assign(X_THEME_COLORS, theme.colors);\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return {\r\n colors: this.getColors(includesAll)\r\n };\r\n }\r\n\r\n setColors(colors?: XColorsTheme) {\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(this.colorsProp, this.setRoot(key, colors[key]));\r\n }\r\n this.createColorsStyle();\r\n }\r\n\r\n getColors(includes = false, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n const keys = includes ? Object.keys(this.colorsProp) : X_THEME_COLOR_KEYS.map((x) => `${prefix}${x}`);\r\n keys.forEach((x) => {\r\n result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsInProperty(colors?: XColorsTheme, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n Object.keys(colors as XColorsTheme).forEach((x) => {\r\n result[x] = this.declaration.getPropertyValue(`${prefix}${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsTheme(colors?: XColorsTheme) {\r\n if (typeof colors === 'undefined') colors = X_THEME_COLORS;\r\n else colors = Object.assign({}, X_THEME_COLORS, colors);\r\n return colors;\r\n }\r\n\r\n setRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n if (X_THEME_COLOR_KEYS.includes(color)) {\r\n for (let amount of X_THEME_AMOUNTS) {\r\n if (amount === 0) {\r\n result[`${prefix}${color}`] = value;\r\n } else {\r\n result[`${prefix}${color}${this.getSuffix(amount)}`] = toHex(\r\n mixColors(amount > 0 ? X_THEME_MERGE : X_THEME_BLACK_MERGE, value, Math.abs(amount))\r\n );\r\n }\r\n }\r\n } else {\r\n result[`${prefix}${color}`] = value;\r\n }\r\n return result;\r\n }\r\n\r\n setDarkRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n const allColors = this.setRoot(color, value, '');\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n const allColors = this.setRoot(color, value, prefix);\r\n X_THEME_EXCHANGES.forEach((x) => {\r\n if (x[1] >= -0.1) {\r\n const curr = this.getSuffix(x[0]);\r\n const next = this.getSuffix(x[1]);\r\n result[`${prefix}${color}${curr}`] = allColors[`${prefix}${color}${next}`];\r\n }\r\n });\r\n } else if (['background'].includes(color)) {\r\n result = this.getDefineColors(Object.assign({}, this.getColorsInProperty(X_THEME_COLORS), allColors), '', true);\r\n }\r\n return result;\r\n }\r\n\r\n getDefineColors(colors?: XColorsTheme, prefix = X_THEME_PREFIX, darken = false): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(result, this.setRoot(key, colors[key], prefix));\r\n }\r\n if (darken) {\r\n const colorsFunc = (nums: number[] | number[][], callback: Function) => {\r\n for (let num of nums) {\r\n for (let color in colors) {\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n callback(num, color);\r\n }\r\n }\r\n }\r\n };\r\n colorsFunc(X_THEME_BACKGROUNDS, (background: number, color: string) => {\r\n const theme = this.getSuffix(background);\r\n result[`${prefix}${color}${theme}`] = result[`${prefix}background${theme.replace('a', '')}`];\r\n });\r\n colorsFunc(X_THEME_TEXTS, (text: number[], color: string) => {\r\n const curr = this.getSuffix(text[0]);\r\n const next = this.getSuffix(text[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}text${next}`];\r\n });\r\n colorsFunc(X_THEME_BORDERS, (border: number[], color: string) => {\r\n const curr = this.getSuffix(border[0]);\r\n const next = this.getSuffix(border[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}border${next}`];\r\n });\r\n colorsFunc(X_THEME_EXCHANGES, (exchange: number[], color: string) => {\r\n const curr = this.getSuffix(exchange[0]);\r\n const next = this.getSuffix(exchange[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}${color}${next}`];\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n getSuffix(num: number): string {\r\n if (num > 0) {\r\n return `-${Math.abs(num * 1000)}`;\r\n } else if (num < 0) {\r\n return `-a${Math.abs(num * 1000)}`;\r\n }\r\n return '';\r\n }\r\n\r\n createColorsStyle() {\r\n if (this.colorsStyleEle) this.renderer2.removeChild(this.colorsStyleEle.parentNode, this.colorsStyleEle);\r\n const styles = Object.entries(this.colorsProp)\r\n .map((x) => `${x[0]}: ${x[1]};`)\r\n .join('');\r\n this.colorsStyleEle = this.renderer2.createElement('style');\r\n this.colorsStyleEle.innerHTML = `.x-theme-colors{${styles}}`;\r\n this.renderer2.addClass(this.doc.documentElement, 'x-theme-colors');\r\n this.doc.documentElement.getElementsByTagName('head')[0].appendChild(this.colorsStyleEle);\r\n }\r\n}\r\n\r\nexport function mixColors(color1: string, color2: string, weight: number) {\r\n let rgb1 = toRgb(color1);\r\n let rgb2 = toRgb(color2);\r\n let weight1 = weight;\r\n let weight2 = 1 - weight;\r\n let result: { r: number; g: number; b: number };\r\n\r\n const inRange = (num: number) => {\r\n return num > 255 ? 255 : num < 0 ? 0 : num;\r\n };\r\n\r\n result = {\r\n r: inRange(Math.round(rgb1.r * weight1 + rgb2.r * weight2)),\r\n g: inRange(Math.round(rgb1.g * weight1 + rgb2.g * weight2)),\r\n b: inRange(Math.round(rgb1.b * weight1 + rgb2.b * weight2))\r\n };\r\n\r\n return result;\r\n}\r\n\r\nexport function toHex(rgb: { r: number; g: number; b: number }) {\r\n return '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);\r\n}\r\n\r\nexport function toRgb(hex: string) {\r\n if (hex.indexOf('#') == 0) hex = hex.slice(1);\r\n let num = parseInt(hex, 16);\r\n let r = num >> 16;\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n let g = (num >> 8) & 0x00ff;\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n let b = num & 0x0000ff;\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n return { r: r, g: g, b: b };\r\n}\r\n","// tslint:disable no-any\r\n\r\nimport { Injectable, Optional, Inject } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { XConfig, X_CONFIG, XComponentConfigKey, XComponentConfig } from './config';\r\nimport { XThemeService, XTheme, X_THEME_COLORS, X_THEME_DARK_COLORS } from '../theme';\r\nimport { filter, mapTo } from 'rxjs/operators';\r\n\r\nconst isDefined = function (value?: any): boolean {\r\n return value !== undefined;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XConfigService {\r\n private componentConfigUpdated$ = new Subject<keyof XComponentConfig>();\r\n private config: XConfig;\r\n public themeService!: XThemeService;\r\n\r\n constructor(@Optional() themeService?: XThemeService, @Optional() @Inject(X_CONFIG) defaultConfig?: XConfig) {\r\n this.config = defaultConfig || {};\r\n if (themeService) {\r\n this.themeService = themeService;\r\n }\r\n this.setInitialTheme(this.config.theme);\r\n }\r\n\r\n getConfigForComponent<T extends XComponentConfigKey>(componentName: T): XComponentConfig[T] {\r\n return this.config?.components ? this.config.components[componentName] : undefined;\r\n }\r\n\r\n getConfigChangeEventForComponent(componentName: XComponentConfigKey): Observable<void> {\r\n return this.componentConfigUpdated$.pipe(\r\n filter((n) => n === componentName),\r\n mapTo(undefined)\r\n );\r\n }\r\n\r\n set<T extends XComponentConfigKey>(componentName: T, value: XComponentConfig[T]): void {\r\n if (this.config?.components) {\r\n this.config.components[componentName] = { ...this.config.components[componentName], ...value };\r\n this.componentConfigUpdated$.next(componentName);\r\n }\r\n }\r\n\r\n setDarkTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_DARK_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', true)\r\n });\r\n }\r\n\r\n setLightTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', false)\r\n });\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.themeService.setTheme(theme);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.themeService.setInitialTheme(theme);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return this.themeService.getTheme(includesAll);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:typedef\r\nexport function XWithConfig<T>(componentName: XComponentConfigKey, innerDefaultValue?: T) {\r\n return function ConfigDecorator(target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>): any {\r\n const privatePropName = `$$__assignedValue__${propName}`;\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false\r\n });\r\n\r\n return {\r\n get(): T | undefined {\r\n const originalValue = originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n\r\n if (isDefined(originalValue)) {\r\n return originalValue;\r\n }\r\n\r\n const componentConfig = this.configService?.getConfigForComponent(componentName) || {};\r\n const configValue = componentConfig[propName];\r\n\r\n return isDefined(configValue) ? configValue : innerDefaultValue;\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(value);\r\n } else {\r\n this[privatePropName] = value;\r\n }\r\n },\r\n configurable: true,\r\n enumerable: true\r\n };\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["XDURATION_BASE_EASE_IN","XDURATION_BASE_EASE_OUT"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-core.js","sources":["../../../../lib/ng-nest/ui/core/util/chunk.ts","../../../../lib/ng-nest/ui/core/util/guid.ts","../../../../lib/ng-nest/ui/core/util/group-by.ts","../../../../lib/ng-nest/ui/core/util/resize.ts","../../../../lib/ng-nest/ui/core/util/option.ts","../../../../lib/ng-nest/ui/core/util/host.ts","../../../../lib/ng-nest/ui/core/util/log.ts","../../../../lib/ng-nest/ui/core/util/computed-style.ts","../../../../lib/ng-nest/ui/core/util/animation.ts","../../../../lib/ng-nest/ui/core/util/html.ts","../../../../lib/ng-nest/ui/core/animation/consts.ts","../../../../lib/ng-nest/ui/core/animation/fade.ts","../../../../lib/ng-nest/ui/core/animation/slide.ts","../../../../lib/ng-nest/ui/core/animation/drop.ts","../../../../lib/ng-nest/ui/core/animation/move.ts","../../../../lib/ng-nest/ui/core/animation/connect.ts","../../../../lib/ng-nest/ui/core/interfaces/data.type.ts","../../../../lib/ng-nest/ui/core/interfaces/identify.type.ts","../../../../lib/ng-nest/ui/core/functions/convert.ts","../../../../lib/ng-nest/ui/core/functions/date.ts","../../../../lib/ng-nest/ui/core/functions/flex.ts","../../../../lib/ng-nest/ui/core/functions/drop.ts","../../../../lib/ng-nest/ui/core/functions/remove.ts","../../../../lib/ng-nest/ui/core/functions/order-by.ts","../../../../lib/ng-nest/ui/core/functions/clone-deep.ts","../../../../lib/ng-nest/ui/core/functions/has-in.ts","../../../../lib/ng-nest/ui/core/functions/property.ts","../../../../lib/ng-nest/ui/core/services/reuse-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/preloading-strategy.service.ts","../../../../lib/ng-nest/ui/core/services/http.service.ts","../../../../lib/ng-nest/ui/core/services/storage.service.ts","../../../../lib/ng-nest/ui/core/services/repository.service.ts","../../../../lib/ng-nest/ui/core/config/config.ts","../../../../lib/ng-nest/ui/core/theme/theme.ts","../../../../lib/ng-nest/ui/core/theme/theme.service.ts","../../../../lib/ng-nest/ui/core/config/config.service.ts","../../../../lib/ng-nest/ui/core/ng-nest-ui-core.ts"],"sourcesContent":["export function chunk<T>(array: T[], size = 1): T[][] {\r\n const len = array == null ? 0 : array.length;\r\n if (!len || size < 1) {\r\n return [];\r\n }\r\n let index = 0;\r\n let resIndex = 0;\r\n const result = new Array(Math.ceil(len / size));\r\n\r\n while (index < len) {\r\n result[resIndex++] = array.slice(index, (index += size));\r\n }\r\n return result;\r\n}\r\n","/**\r\n * 生成 GUID\r\n */\r\nexport function guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n}\r\n","export function groupBy<T>(array: T[], name: string): T[][] {\r\n const groups: any = {};\r\n array.forEach((obj: any) => {\r\n const group = JSON.stringify(obj[name]);\r\n groups[group] = groups[group] || [];\r\n groups[group].push(obj);\r\n });\r\n return Object.keys(groups).map((group) => groups[group]);\r\n}\r\n","import { Observable, Subscriber } from 'rxjs';\r\n\r\nexport const XResize = (...element: Element[]): Observable<{ entry: ResizeObserverEntry; resizeObserver: ResizeObserver }> => {\r\n return new Observable(\r\n (\r\n x: Subscriber<{\r\n entry: ResizeObserverEntry;\r\n resizeObserver: ResizeObserver;\r\n }>\r\n ) => {\r\n const resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {\r\n for (const entry of entries) {\r\n x.next({ entry: entry, resizeObserver: resizeObserver });\r\n }\r\n });\r\n for (let ele of element) {\r\n if (ele) resizeObserver.observe(ele);\r\n }\r\n\r\n //XResize 取消订阅的时候自动销毁\r\n //resizeObserver.disconnect();\r\n }\r\n );\r\n};\r\n","/**\r\n * Fill default values\r\n * @param option option\r\n * @param def default\r\n */\r\nexport function fillDefault(option: { [property: string]: any }, def: { [property: string]: any }) {\r\n if (option && def) {\r\n for (const key in def) {\r\n if (typeof option[key] === 'undefined') {\r\n option[key] = def[key];\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * 删除当前标签,保留内容\r\n */\r\nexport function removeNgTag(nativeElement: HTMLElement): void {\r\n const parentElement = nativeElement.parentElement;\r\n if (!parentElement || !parentElement.insertBefore) return;\r\n while (nativeElement.firstChild) {\r\n parentElement.insertBefore(nativeElement.firstChild, nativeElement);\r\n }\r\n parentElement.removeChild(nativeElement);\r\n}\r\n","export function warnSVGTagNotFound() {\r\n console.warn(`<svg> tag not found.`);\r\n}\r\nexport function warnIconTypeNotFound() {\r\n console.warn(`icon type not found.`);\r\n}\r\n","export function computedStyle(element: HTMLElement, style: string) {\r\n let computed = getComputedStyle(element);\r\n let value = computed[style as any];\r\n return value.replace(/px/g, '');\r\n}\r\n","// tslint:disable:no-any typedef no-invalid-this\r\nconst availablePrefixes = ['moz', 'ms', 'webkit'];\r\n\r\nfunction requestAnimationFramePolyfill(): typeof requestAnimationFrame {\r\n let lastTime = 0;\r\n return function (callback: FrameRequestCallback): any {\r\n const currTime = new Date().getTime();\r\n const timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n const id = setTimeout(() => {\r\n callback(currTime + timeToCall);\r\n }, timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n}\r\n\r\nfunction getRequestAnimationFrame(): typeof requestAnimationFrame {\r\n if (typeof window === 'undefined') {\r\n return () => 0;\r\n }\r\n if (window.requestAnimationFrame) {\r\n return window.requestAnimationFrame.bind(window);\r\n }\r\n\r\n const prefix = availablePrefixes.filter((key) => `${key}RequestAnimationFrame` in window)[0];\r\n\r\n return prefix ? (window as any)[`${prefix}RequestAnimationFrame`] : requestAnimationFramePolyfill();\r\n}\r\n// export function cancelRequestAnimationFrame(id: number): any {\r\n// if (typeof window === \"undefined\") {\r\n// return null;\r\n// }\r\n// if (window.cancelAnimationFrame) {\r\n// return window.cancelAnimationFrame(id);\r\n// }\r\n// const prefix = availablePrefixes.filter(\r\n// key =>\r\n// `${key}CancelAnimationFrame` in window ||\r\n// `${key}CancelRequestAnimationFrame` in window\r\n// )[0];\r\n\r\n// return prefix\r\n// ? (\r\n// (window as any)[`${prefix}CancelAnimationFrame`] ||\r\n// (window as any)[`${prefix}CancelRequestAnimationFrame`]\r\n// )\r\n// // @ts-ignore\r\n// .call(this, id)\r\n// : clearTimeout(id);\r\n// }\r\n\r\nexport const reqAnimFrame = getRequestAnimationFrame();\r\n","/**\r\n * 去除HTML标签\r\n */\r\n export function stripTags(text: string, ...usefulTags: any[]): string {\r\n if (!text || typeof (text) !== 'string')\r\n return text;\r\n return usefulTags.length > 0\r\n ? text.replace(new RegExp(`<(?!\\/?(${usefulTags.join('|')})\\s*\\/?)[^>]+>`, 'g'), '')\r\n : text.replace(/<(?:.|\\s)*?>/g, '');\r\n}\r\n","export enum XDuration {\r\n Slow = '0.3s',\r\n Base = '0.2s',\r\n Fast = '0.1s'\r\n}\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XFadeAnimation: AnimationTriggerMetadata = trigger('x-fade-animation', [\r\n transition(':enter', [\r\n style({ opacity: 0, transform: 'scale(0.8)' }),\r\n animate(`${XDURATION_BASE_EASE_IN}`, style({ opacity: 1, transform: 'scale(1)' }))\r\n ]),\r\n transition(':leave', [animate(`${XDURATION_BASE_EASE_OUT}`, style({ opacity: 0 }))])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XSlideAnimation: AnimationTriggerMetadata = trigger('x-slide-animation', [\r\n transition('void => right', [style({ transform: 'translate(100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('right => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(100%,0)' }))]),\r\n transition('void => left', [style({ transform: 'translate(-100%,0)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('left => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(-100%,0)' }))]),\r\n transition('void => top', [style({ transform: 'translate(0,-100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('top => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,-100%)' }))]),\r\n transition('void => bottom', [style({ transform: 'translate(0,100%)' }), animate(`${XDuration.Base} ease-in`)]),\r\n transition('bottom => void', [animate(`${XDuration.Base} ease-out`, style({ transform: 'translate(0,100%)' }))])\r\n]);\r\n\r\nexport const XSliderAnimation: AnimationTriggerMetadata = trigger('x-slider-animation', [\r\n transition('void => left, void => right', [\r\n style({\r\n width: 0,\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: '*',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void, right => void', [\r\n style({\r\n width: '*',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n width: 0,\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, state, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\nexport const XDropAnimation: AnimationTriggerMetadata = trigger('x-drop-animation', [\r\n state('*', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('false', style({ opacity: 0, height: 0, border: 0, padding: 0, visibility: 'hidden' })),\r\n state('true', style({ opacity: 1, height: '*', border: '*', padding: '*', visibility: 'inherit' })),\r\n transition('* => *', animate(`${XDuration.Base} ease-out`))\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\nexport const XMoveAnimation: AnimationTriggerMetadata = trigger('x-move-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-200%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0,\r\n height: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1,\r\n height: '*'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(200%)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XMoveBoxAnimation: AnimationTriggerMetadata = trigger('x-move-box-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n transform: 'translateY(0%)',\r\n opacity: 1\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateY(2rem)',\r\n opacity: 0\r\n })\r\n )\r\n ])\r\n]);\r\n","import { AnimationTriggerMetadata, trigger, style, animate, transition } from '@angular/animations';\r\nimport { XDuration } from './consts';\r\n\r\n// 进场动画\r\nconst XDURATION_BASE_EASE_IN = `${XDuration.Fast} ease-in`;\r\n// 移除动画\r\nconst XDURATION_BASE_EASE_OUT = `${XDuration.Fast} ease-out`;\r\n\r\nexport const XConnectAnimation: AnimationTriggerMetadata = trigger('x-connect-animation', [\r\n transition('void => top-start, void => top, void => top-end, void => center', [\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('top-start => void, top => void, top-end => void, center => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scaleY(1)',\r\n // transformOrigin: '0% 100%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scaleY(0.8)',\r\n // transformOrigin: '0% 100%'\r\n })\r\n )\r\n ]),\r\n transition('void => left', [\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('left => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(-30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => right', [\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1\r\n })\r\n )\r\n ]),\r\n transition('right => void', [\r\n style({\r\n transform: 'translateX(0%)',\r\n opacity: 1,\r\n height: '*'\r\n }),\r\n animate(\r\n `${XDuration.Base}`,\r\n style({\r\n transform: 'translateX(30%)',\r\n opacity: 0,\r\n height: 0\r\n })\r\n )\r\n ]),\r\n transition('void => bottom-start, void => bottom, void => bottom-end', [\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_IN,\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n })\r\n )\r\n ]),\r\n transition('bottom-start => void, bottom => void, bottom-end => void', [\r\n style({\r\n opacity: 1\r\n // transform: 'scale(1)',\r\n // transformOrigin: '30% 30%'\r\n }),\r\n animate(\r\n XDURATION_BASE_EASE_OUT,\r\n style({\r\n opacity: 0\r\n // transform: 'scale(0)',\r\n // transformOrigin: '0% 0%'\r\n })\r\n )\r\n ])\r\n]);\r\n\r\nexport const XConnectBaseAnimation: AnimationTriggerMetadata = trigger('x-connect-base-animation', [\r\n transition(':enter', [style({ opacity: 0, transform: 'scaleY(0.8)' }), animate(XDURATION_BASE_EASE_IN)]),\r\n transition(':leave', [animate(XDURATION_BASE_EASE_OUT, style({ opacity: 0 }))])\r\n]);\r\n","import { Observable, isObservable } from 'rxjs';\r\nimport { TemplateRef, SimpleChange } from '@angular/core';\r\n\r\n// 数据类型\r\nexport type XData<T> = T[] | Observable<T[] | any[]> | any[] | Function;\r\n\r\n// Boolean 类型\r\nexport type XBoolean = boolean | string;\r\n\r\n// Number 类型\r\nexport type XNumber = number | string;\r\n\r\n// 模板类型\r\nexport type XTemplate = string | number | Date | TemplateRef<any>;\r\n\r\n// 类型判断\r\nexport const XIsType = (type: string) => (object: any) => Object.prototype.toString.call(object) === `[object ${type}]`;\r\n\r\n// 值改变判断\r\nexport const XIsChange = (...changes: SimpleChange[]) => {\r\n for (let change of changes) {\r\n if (change?.currentValue !== change?.previousValue) return true;\r\n }\r\n return false;\r\n};\r\n\r\nexport const XIsString = XIsType('String');\r\nexport const XIsArray = XIsType('Array');\r\nexport const XIsNumber = XIsType('Number');\r\nexport const XIsBoolean = XIsType('Boolean');\r\nexport const XIsObject = XIsType('Object');\r\nexport const XIsNull = XIsType('Null');\r\nexport const XIsFunction = XIsType('Function');\r\nexport const XIsDate = XIsType('Date');\r\nexport const XIsRegExp = XIsType('RegExp');\r\nexport const XIsValue = (object: any) => XIsString(object) || XIsNumber(object) || XIsBoolean(object) || XIsDate(object);\r\nexport const XIsUndefined = (object: any) => typeof object === 'undefined';\r\nexport const XIsEmpty = (object: any) => typeof object === 'undefined' || object === null || object === '' || object.length === 0;\r\nexport const XIsValueArray = (object: any) => XIsArray(object) && object.length > 0 && !XIsObject(object[0]);\r\nexport const XIsObjectArray = (object: any) => XIsArray(object) && object.length > 0 && XIsObject(object[0]);\r\nexport const XIsObservable = (object: any) => isObservable(object);\r\nexport const XIsTemplateRef = (object: any) => {\r\n if (!XIsEmpty(object) && object.elementRef) return true;\r\n else return false;\r\n};\r\nexport const XIsXTemplate = (object: any) => XIsString(object) || XIsNumber(object) || XIsDate(object) || XIsTemplateRef(object);\r\n","// 标识对象\r\nexport interface XIdentityProperty {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n\r\n// 父节点标识对象\r\nexport interface XParentIdentityProperty<T> extends XIdentityProperty {\r\n // 编码\r\n pid?: any;\r\n // 层级\r\n level?: number;\r\n // 叶子节点\r\n leaf?: boolean;\r\n // 子节点\r\n children?: T[];\r\n // 选中\r\n selected?: boolean;\r\n // 禁用\r\n disabled?: boolean;\r\n}\r\n\r\n// 标识对象\r\nexport class XIdentity {\r\n // 编码\r\n id?: any;\r\n // 标题\r\n label?: any;\r\n}\r\n","import { coerceBooleanProperty, _isNumberValue } from '@angular/cdk/coercion';\r\nimport {\r\n XData,\r\n XIsNull,\r\n XIsUndefined,\r\n XIsArray,\r\n XIsValue,\r\n XIsObject,\r\n XIsObservable,\r\n XParentIdentityProperty,\r\n XBoolean,\r\n XClassMap,\r\n XIsFunction\r\n} from '../interfaces';\r\nimport { Observable, Subject, Observer } from 'rxjs';\r\nimport { map, takeUntil } from 'rxjs/operators';\r\n\r\nexport function XToBoolean(value: XBoolean): boolean {\r\n // if (XIsString(value)) {\r\n // return ['', 'true'].indexOf(String(value).trim()) !== -1;\r\n // } else {\r\n // return Boolean(value);\r\n // }\r\n return coerceBooleanProperty(value);\r\n}\r\n\r\nfunction XToNumber(value: number | string): number;\r\nfunction XToNumber<D>(value: number | string, fallback: D): number | D;\r\nfunction XToNumber(value: number | string, fallbackValue: number = 0): number {\r\n return _isNumberValue(value) ? Number(value) : fallbackValue;\r\n}\r\n\r\nexport function XToDataConvert<T>(value: XData<T>): XData<T> {\r\n if (XIsArray(value)) {\r\n return (value as []).map((x: any) => {\r\n if (XIsValue(x)) {\r\n return { label: x, id: x };\r\n } else if (XIsObject(x)) {\r\n x.label = XIsUndefined(x.label) || XIsNull(x.label) ? x.id : x.label;\r\n x.id = XIsUndefined(x.id) || XIsNull(x.id) ? x.label : x.id;\r\n return x;\r\n }\r\n });\r\n }\r\n return value;\r\n}\r\n\r\nexport function XSetData<T>(data: XData<T>, unSubject: Subject<void>, toConvert = true, funcParam = null): Observable<T[]> {\r\n return new Observable((x: Observer<T[]>) => {\r\n const result = (res: T[]) => {\r\n x.next(res);\r\n x.complete();\r\n };\r\n if (typeof data === 'undefined') {\r\n result([]);\r\n } else {\r\n if (XIsObservable(data)) {\r\n (data as Observable<T[]>)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else if (XIsFunction(data)) {\r\n (data as (param: any) => Observable<T[]>)(funcParam)\r\n .pipe(\r\n map((y) => (toConvert ? XToDataConvert(y) : y)),\r\n takeUntil(unSubject)\r\n )\r\n .subscribe((y) => {\r\n result(y as T[]);\r\n });\r\n } else {\r\n result((toConvert ? XToDataConvert(data) : data) as T[]);\r\n }\r\n }\r\n });\r\n}\r\n\r\nexport function XGetChildren<T extends XParentIdentityProperty<T>>(nodes: T[], node: T, level: number) {\r\n node.level = level;\r\n node.children = nodes.filter((y) => y.pid === node.id);\r\n node.leaf = node.children?.length > 0;\r\n if (node.leaf) node.children.map((y) => XGetChildren(nodes, y, level + 1));\r\n return node;\r\n}\r\n\r\nexport function XInvertKeyValues(obj: any): Map<any, any> {\r\n return Object.keys(obj).reduce((nw, key) => {\r\n nw.set(obj[key], key);\r\n return nw;\r\n }, new Map());\r\n}\r\n\r\nexport function XClearClass(...classMaps: XClassMap[]) {\r\n classMaps.forEach((classMap) => {\r\n for (const key in classMap) {\r\n classMap[key] = false;\r\n }\r\n });\r\n}\r\n\r\nfunction propDecoratorFactory<T, D>(name: string, fallback: (v: T) => D): (target: any, propName: string) => void {\r\n function propDecorator(target: any, propName: string, originalDescriptor?: TypedPropertyDescriptor<any>): any {\r\n const privatePropName = `$$__${propName}`;\r\n\r\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\r\n console.warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\r\n }\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true\r\n });\r\n\r\n return {\r\n get(): string {\r\n return originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(fallback(value));\r\n }\r\n this[privatePropName] = fallback(value);\r\n }\r\n };\r\n }\r\n\r\n return propDecorator;\r\n}\r\n\r\nexport function XInputBoolean(): any {\r\n return propDecoratorFactory('XInputBoolean', XToBoolean);\r\n}\r\n\r\nexport function XInputNumber(): any {\r\n return propDecoratorFactory('XInputNumber', XToNumber);\r\n}\r\n\r\nexport function XDataConvert(): any {\r\n return propDecoratorFactory('XDataConvert', XToDataConvert);\r\n}\r\n\r\nexport function XClamp(value: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, value));\r\n}\r\n","import { XIsDate, XIsNumber } from '../interfaces';\r\n\r\nexport type XDate = string | Date | number;\r\n\r\nexport function XToDate(date: XDate): Date {\r\n if (XIsDate(date) || XIsNumber(date)) {\r\n return new Date(date);\r\n } else {\r\n return new Date(Date.parse(date as string));\r\n }\r\n}\r\n\r\nexport function XAddSeconds(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setSeconds(dt.getSeconds() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMinutes(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMinutes(dt.getMinutes() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddHours(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setHours(dt.getHours() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddDays(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setDate(dt.getDate() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddMonths(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setMonth(dt.getMonth() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n\r\nexport function XAddYears(date: XDate, amount: number): Date {\r\n let dt = XToDate(date);\r\n if (!isNaN(dt.valueOf()) && amount) {\r\n dt.setFullYear(dt.getFullYear() + amount);\r\n return dt;\r\n } else {\r\n return date as Date;\r\n }\r\n}\r\n","import { Renderer2 } from '@angular/core';\r\nimport { XAlign, XDirection, XIsEmpty, XJustify } from '../interfaces';\r\n\r\nexport function setFlex(ele: Element, renderer: Renderer2, justify?: XJustify, align?: XAlign, direction?: XDirection) {\r\n let result: string[] = [];\r\n if (!XIsEmpty(justify)) {\r\n const justifyStr = `x-justify-${justify}`;\r\n result.push(justifyStr)\r\n renderer.addClass(ele, justifyStr);\r\n }\r\n if (!XIsEmpty(align)) {\r\n const alignStr = `x-align-${align}`;\r\n result.push(alignStr)\r\n renderer.addClass(ele, alignStr);\r\n }\r\n if (!XIsEmpty(direction)) {\r\n const directionStr = `x-direction-${direction}`;\r\n result.push(directionStr)\r\n renderer.addClass(ele, directionStr);\r\n }\r\n return result;\r\n}\r\n","export function XDrop<T>(array: Array<T>, n?: number): T[] {\r\n if (!n) return [...array];\r\n if (array.length < 1 || array.length <= Math.abs(n)) return [];\r\n return array.slice(n > 0 ? n : 0, n > 0 ? array.length : n);\r\n}\r\n","export function XRemove<T>(array: Array<T>, predicate?: (value: T) => boolean): T[] {\r\n if (typeof predicate === 'undefined') return [];\r\n let result: T[] = [];\r\n for (let i = 0; i < array.length; i++) {\r\n if (predicate(array[i])) {\r\n result.push(array[i]);\r\n }\r\n }\r\n for (let item of result) {\r\n array.splice(array.indexOf(item), 1);\r\n }\r\n return result;\r\n}\r\n","export function XOrderBy<T>(collection: Array<T>, iteratees: Array<string>, orders?: Array<'asc' | 'desc'>): T[] {\r\n if (!iteratees) return collection;\r\n if (!orders) orders = [];\r\n\r\n function compare(a: any, b: any, prop: any, order: 'asc' | 'desc' | undefined, idex: number): number {\r\n if (a[prop] == b[prop]) {\r\n ++idex;\r\n if (iteratees.length > idex) {\r\n const odr = orders && orders.length > idex ? orders[idex] : 'asc';\r\n return compare(a, b, iteratees[idex], odr, idex);\r\n } else {\r\n return 0;\r\n }\r\n }\r\n if (order === 'desc') {\r\n return (b[prop] - a[prop]) as number;\r\n } else {\r\n return (a[prop] - b[prop]) as number;\r\n }\r\n }\r\n\r\n const iterate = iteratees.shift();\r\n const order = orders.shift() || 'asc';\r\n\r\n if (!iterate) return collection;\r\n\r\n collection.sort((a: any, b: any) => compare(a, b, iterate, order, -1));\r\n\r\n return collection;\r\n}\r\n","export function XCloneDeep(value: any): any {\r\n let result: any = Array.isArray(value) ? [] : {};\r\n if (value && typeof value === 'object') {\r\n for (let key in value) {\r\n if ((value as Object).hasOwnProperty(key)) {\r\n result[key] = value && typeof value[key] === 'object' ? XCloneDeep(value[key]) : value[key];\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n","export function XHasIn(object: Object, key: string) {\r\n return object != null && key in Object(object);\r\n}\r\n","import { XClassMap } from '../interfaces';\r\n\r\n/**\r\n * 组件公共属性\r\n */\r\nexport class XProperty {\r\n /**\r\n * 样式映射属性\r\n */\r\n classMap: XClassMap = {};\r\n}\r\n","import { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\r\n\r\nexport interface XRouteReuseStorage {\r\n id: string;\r\n handle: DetachedRouteHandle;\r\n}\r\n\r\n// @dynamic\r\nexport class XReuseStrategyService implements RouteReuseStrategy {\r\n // 存储的复用路由\r\n public static storages: XRouteReuseStorage[] = [];\r\n // 用一个临时变量记录待删除的路由\r\n private static waitDelete: string | null;\r\n\r\n /**\r\n * 表示对所有路由允许复用 如果你有路由不想利用可以在这加一些业务逻辑判断\r\n */\r\n public shouldDetach(_route: ActivatedRouteSnapshot): boolean {\r\n return true;\r\n }\r\n\r\n /**\r\n * 当路由离开时会触发。按path作为key存储路由快照&组件当前实例对象\r\n */\r\n public store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n if (handle == null) return;\r\n if (XReuseStrategyService.waitDelete && this.getRouteUrl(route).indexOf(XReuseStrategyService.waitDelete) == 0) {\r\n //如果待删除是当前路由则不存储快照\r\n XReuseStrategyService.waitDelete = null;\r\n return;\r\n }\r\n this.add(this.getRouteUrl(route), handle);\r\n }\r\n\r\n /**\r\n * 若 path 在缓存中有的都认为允许还原路由\r\n */\r\n public shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return !!XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n }\r\n\r\n /**\r\n * 从缓存中获取快照,若无则返回nul\r\n */\r\n public retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n if (!route.routeConfig) {\r\n return {};\r\n }\r\n let stroage = XReuseStrategyService.storages.find((x) => x.id == this.getRouteUrl(route));\r\n return stroage ? stroage.handle : {};\r\n }\r\n\r\n /**\r\n * 进入路由触发,判断是否同一路由\r\n * 解决不同的参数也会认为是同一个路由,导致会将之前的路由拿出来复用\r\n */\r\n public shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n return future.routeConfig === curr.routeConfig && JSON.stringify(future.params) == JSON.stringify(curr.params);\r\n }\r\n\r\n /**\r\n * 解决不同的主路由会存在相同名称的子路由\r\n */\r\n private getRouteUrl(route: ActivatedRouteSnapshot) {\r\n let url = route.url.map((x) => x.path).join('_');\r\n return url;\r\n }\r\n\r\n /**\r\n * 删除复用的路由\r\n */\r\n public static deleteRouteSnapshot(name?: string): void {\r\n if (name) {\r\n let id = name.replace(/\\//g, '_');\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id.indexOf(id) === 0),\r\n 1\r\n );\r\n XReuseStrategyService.waitDelete = id;\r\n } else {\r\n XReuseStrategyService.storages = [];\r\n }\r\n }\r\n\r\n private add(id: string, handle: DetachedRouteHandle) {\r\n XReuseStrategyService.storages.splice(\r\n XReuseStrategyService.storages.findIndex((x) => x.id == id),\r\n 1\r\n );\r\n XReuseStrategyService.storages = [...XReuseStrategyService.storages, { id: id, handle: handle }];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { PreloadingStrategy, Route } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable()\r\nexport class XPreloadingStrategyService implements PreloadingStrategy {\r\n // 需要预加载的模块\r\n preloadedModules: string[] = [];\r\n\r\n preload(route: Route, load: () => Observable<any>): Observable<any> {\r\n if (route.data && route.data['preload']) {\r\n this.preloadedModules.push(route.path as string);\r\n return load();\r\n } else {\r\n return of(null);\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XHttpService {\r\n api: string = '';\r\n constructor(public http: HttpClient) {}\r\n\r\n /**\r\n * get请求\r\n */\r\n get(url: string, params?: { [property: string]: any }) {\r\n return this.request('GET', url, params);\r\n }\r\n\r\n /**\r\n * get请求\r\n */\r\n post(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('POST', url, params);\r\n }\r\n\r\n /**\r\n * put请求\r\n */\r\n put(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('PUT', url, params);\r\n }\r\n\r\n /**\r\n * delete请求\r\n */\r\n delete(url: string, params?: { [property: string]: any }): Observable<any> {\r\n return this.request('DELETE', url, params);\r\n }\r\n\r\n /**\r\n * request通用请求\r\n */\r\n request(method: string, url: string, params?: { [property: string]: any }, option?: { [property: string]: any }): Observable<any> {\r\n if (!option) option = {};\r\n let opt = {};\r\n url = `${this.api}${url}`;\r\n method = method.toUpperCase();\r\n if (['POST', 'PUT', 'DELETE'].indexOf(method) > -1) {\r\n opt = { body: params, observe: 'body', responseType: 'json' };\r\n } else if (['GET'].indexOf(method) > -1) {\r\n opt = { params: params };\r\n }\r\n Object.assign(opt, option);\r\n this.addHeader(opt);\r\n return new Observable((x) => {\r\n this.http.request(method, url, opt).subscribe(\r\n (y: any) => {\r\n x.next(y);\r\n x.complete();\r\n },\r\n (y) => {\r\n x.error(y);\r\n x.complete();\r\n this.handleError(y);\r\n }\r\n );\r\n });\r\n }\r\n\r\n /**\r\n * 错误处理\r\n */\r\n handleError(error: HttpErrorResponse) {\r\n if (error.error) {\r\n }\r\n return throwError(error.error);\r\n }\r\n\r\n /**\r\n * 添加头部信息\r\n */\r\n private addHeader(_option: { [property: string]: any }) {\r\n // let auth = this.setting.getSession(\"Auth\");\r\n // if (auth && auth[\"token\"]) {\r\n // option[\"headers\"] = { Authorization: `Bearer ${auth[\"token\"]}` };\r\n // }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n// @dynamic\r\n@Injectable({ providedIn: 'root' })\r\nexport class XStorageService {\r\n constructor() {}\r\n\r\n /**\r\n * 获取本地值\r\n */\r\n getLocal(key: string) {\r\n return JSON.parse(localStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置本地值\r\n */\r\n setLocal(key: string, value: any) {\r\n localStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 获取当前会话的值\r\n */\r\n getSession(key: string) {\r\n return JSON.parse(sessionStorage.getItem(key) || 'null') || null;\r\n }\r\n\r\n /**\r\n * 设置当前会话值\r\n */\r\n setSession(key: string, value: any) {\r\n sessionStorage.setItem(key, JSON.stringify(value));\r\n }\r\n\r\n /**\r\n * 移除本地值\r\n */\r\n removeLocal(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 移除当前会话\r\n */\r\n removeSession(key: string) {\r\n sessionStorage.removeItem(key);\r\n }\r\n\r\n /**\r\n * 生成guid\r\n */\r\n guid() {\r\n let S4 = () => {\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();\r\n }\r\n}\r\n","import { XId, XQuery, XResultList } from '../interfaces';\r\nimport { XHttpService } from './http.service';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport interface XRepositoryInput {\r\n api?: string;\r\n controller: XController;\r\n}\r\n\r\nexport interface XController {\r\n name: string;\r\n}\r\n\r\nexport abstract class XRepositoryAbstract {\r\n abstract getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<any>>;\r\n abstract get(id: number | string): Observable<any>;\r\n abstract post(entity: any): Observable<any>;\r\n abstract put(entity: any): Observable<any>;\r\n abstract delete(id: number | string): Observable<boolean>;\r\n}\r\n\r\nexport class XRepositoryService<Entity extends XId> extends XRepositoryAbstract {\r\n api = '';\r\n constructor(public http: XHttpService, public input: XRepositoryInput) {\r\n super();\r\n this.api = typeof input.api !== 'undefined' ? input.api : '';\r\n }\r\n\r\n getList(index?: number, size?: number, query?: XQuery): Observable<XResultList<Entity>> {\r\n index = index ? index : 1;\r\n size = size ? size : 10;\r\n return this.http.post(`${this.api}${this.input.controller.name}/${size}/${index}`, query);\r\n }\r\n\r\n get(id: number | string): Observable<Entity> {\r\n return this.http.get(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n\r\n post(entity: Entity): Observable<Entity> {\r\n return this.http.post(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n put(entity: Entity): Observable<Entity> {\r\n return this.http.put(`${this.api}${this.input.controller.name}`, entity);\r\n }\r\n\r\n delete(id: number | string): Observable<boolean> {\r\n return this.http.delete(`${this.api}${this.input.controller.name}/${id}`);\r\n }\r\n}\r\n","import {\r\n XSize,\r\n XBoolean,\r\n XType,\r\n XEffect,\r\n XNumber,\r\n XPositionLeftRight,\r\n XJustify,\r\n XShape,\r\n XFit,\r\n XShadow,\r\n XTrigger,\r\n XDisplayDirection,\r\n XCorner,\r\n XDirection,\r\n XPlace,\r\n XPosition,\r\n XPlacement,\r\n XPositionTopBottom,\r\n XStatus\r\n} from '../interfaces';\r\nimport { InjectionToken } from '@angular/core';\r\nimport { XTheme } from '../theme';\r\n\r\nexport interface XConfig {\r\n components?: XComponentConfig;\r\n theme?: XTheme;\r\n}\r\n\r\nexport type XConfigKey = keyof XConfig;\r\n\r\nexport type XComponentConfigKey = keyof XComponentConfig;\r\n\r\nexport const X_CONFIG = new InjectionToken<XConfig>('x-config');\r\n\r\nexport interface XComponentConfig {\r\n affix?: XAffixConfig;\r\n alert?: XAlertConfig;\r\n anchor?: XAnchorConfig;\r\n avatar?: XAvatarConfig;\r\n autoComplete?: XAutoCompleteConfig;\r\n backTop?: XBackTopConfig;\r\n badge?: XBadgeConfgig;\r\n button?: XButtonConfig;\r\n buttons?: XButtonsConfig;\r\n calendar?: XCalendarConfig;\r\n card?: XCardConfig;\r\n carousel?: XCarouselConfig;\r\n cascade?: XCascadeConfig;\r\n checkbox?: XCheckboxConfig;\r\n collapse?: XCollapseConfig;\r\n color?: XColorConfig;\r\n colorPicker?: XColorPickerConfig;\r\n comment?: XCommentConfig;\r\n container?: XContainerConfig;\r\n header?: XHeaderConfig;\r\n aside?: XAsideConfig;\r\n footer?: XFooterConfig;\r\n crumb?: XCrumbComfig;\r\n datePicker?: XDatePickerConfig;\r\n dateRange?: XDateRangeConfig;\r\n dialog?: XDialogConfig;\r\n drawer?: XDrawerConfig;\r\n dropdown?: XDropdownConfig;\r\n description?: XDescriptionConfig;\r\n empty?: XEmptyConfig;\r\n find?: XFindConfig;\r\n form?: XFormConfig;\r\n highlight?: XHighlightConfig;\r\n icon?: XIconConfig;\r\n inner?: XInnerConfig;\r\n input?: XInputConfig;\r\n inputGroup?: XInputGroupConfig;\r\n inputNumber?: XInputNumberConfig;\r\n col?: XColConfig;\r\n row?: XRowConfig;\r\n ripple?: XRippleConfig;\r\n link?: XLinkConfig;\r\n list?: XListConfig;\r\n loading?: XLoadingConfig;\r\n menu?: XMenuConfig;\r\n message?: XMessageConfig;\r\n messageBox?: XMessageBoxConfig;\r\n notification?: XNotificationConfig;\r\n outlet?: XOutletConfig;\r\n pageHeader?: XPageHeaderConfig;\r\n pagination?: XPaginationConfig;\r\n pattern?: XPatternConfig;\r\n popconfirm?: XPopconfirmConfig;\r\n popover?: XPopoverConfig;\r\n portal?: XPortalConfig;\r\n progress?: XProgressConfing;\r\n radio?: XRadioConfig;\r\n rate?: XRateConfig;\r\n result?: XResultConfig;\r\n select?: XSelectConfig;\r\n skeleton?: XSkeletonConfig;\r\n slider?: XSliderConfig;\r\n sliderSelect?: XSliderSelectConfig;\r\n statistic?: XStatisticConfig;\r\n countdown?: XCountdownConfig;\r\n steps?: XStepsConfig;\r\n switch?: XSwitchConfig;\r\n table?: XTableConfig;\r\n tabs?: XTabsConfig;\r\n tag?: XTagConfig;\r\n textRetract?: XTextRetractConfig;\r\n theme?: XThemeConfig;\r\n timeAgo?: XTimeAgoConfig;\r\n timePicker?: XTimePickerConfig;\r\n timeRange?: XTimeRangeConfig;\r\n timeline?: XTimelineConfig;\r\n tooltip?: XTooltipConfig;\r\n transfer?: XTransferConfig;\r\n tree?: XTreeConfig;\r\n treeFile?: XTreeFileConfig;\r\n textarea?: XTextareaConfig;\r\n upload?: XUploadConfig;\r\n}\r\n\r\nexport interface XAffixConfig {\r\n top?: string;\r\n left?: string;\r\n}\r\n\r\nexport interface XAlertConfig {\r\n effect?: XEffect;\r\n hideClose?: XBoolean;\r\n showIcon?: XBoolean;\r\n disabledAnimation?: XBoolean;\r\n draggable?: XBoolean;\r\n dragHandleTitle?: XBoolean;\r\n duration?: XNumber;\r\n}\r\n\r\nexport interface XAnchorConfig {\r\n affixTop?: string;\r\n affixWidth?: string;\r\n layout?: XPositionLeftRight;\r\n justify?: XJustify;\r\n}\r\n\r\nexport interface XAvatarConfig {\r\n size?: XSize;\r\n shape?: XShape;\r\n fit?: XFit;\r\n}\r\n\r\nexport interface XAutoCompleteConfig {\r\n placement?: XPositionTopBottom;\r\n debounceTime?: number;\r\n size?: XSize;\r\n bordered?: boolean;\r\n caseSensitive?: boolean;\r\n}\r\n\r\nexport interface XBackTopConfig {\r\n right?: string;\r\n bottom?: string;\r\n visibilityHeight?: XNumber;\r\n}\r\n\r\nexport interface XBadgeConfgig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XButtonConfig {\r\n size?: XSize;\r\n type?: XType;\r\n plain?: XBoolean;\r\n round?: XBoolean;\r\n circle?: XBoolean;\r\n}\r\n\r\nexport interface XButtonsConfig {\r\n space?: XNumber;\r\n hiddenBorder?: XBoolean;\r\n}\r\n\r\nexport interface XCalendarConfig {}\r\n\r\nexport interface XCardConfig {\r\n shadow?: XShadow;\r\n}\r\n\r\nexport interface XCarouselConfig {\r\n height?: string;\r\n trigger?: XTrigger;\r\n arrow?: XShadow;\r\n direction?: XDisplayDirection;\r\n}\r\n\r\nexport interface XCascadeConfig {\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n nodeTrigger?: XTrigger;\r\n nodeHoverDelay?: XNumber;\r\n}\r\n\r\nexport interface XCheckboxConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XCollapseConfig {}\r\n\r\nexport interface XColorConfig {\r\n merge?: string;\r\n amounts?: string;\r\n}\r\n\r\nexport interface XColorPickerConfig {\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XCommentConfig {\r\n contentMax?: number;\r\n}\r\n\r\nexport interface XContainerConfig {\r\n direction?: XDirection;\r\n}\r\n\r\nexport interface XHeaderConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XAsideConfig {\r\n width?: number;\r\n}\r\n\r\nexport interface XFooterConfig {\r\n height?: number;\r\n}\r\n\r\nexport interface XCrumbComfig {\r\n separator?: string;\r\n}\r\n\r\nexport interface XDatePickerConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: boolean;\r\n}\r\n\r\nexport interface XDateRangeConfig {\r\n format?: string;\r\n clearable?: XBoolean;\r\n placement?: XCorner;\r\n}\r\n\r\nexport interface XDialogConfig {\r\n placement?: XPlace;\r\n offset?: string;\r\n width?: string;\r\n effect?: XEffect;\r\n showCancel?: XBoolean;\r\n cancelText?: string;\r\n showConfirm?: XBoolean;\r\n confirmText?: string;\r\n backdropClose?: XBoolean;\r\n draggable?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n buttonsCenter?: XBoolean;\r\n}\r\n\r\nexport interface XDrawerConfig {\r\n placement?: XPosition;\r\n size?: string;\r\n backdropClose?: XBoolean;\r\n hasBackdrop?: XBoolean;\r\n className?: string;\r\n}\r\n\r\nexport interface XDropdownConfig {\r\n trigger?: XTrigger;\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XDescriptionConfig {\r\n bordered?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XEmptyConfig {\r\n content?: string;\r\n}\r\n\r\nexport interface XFindConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n columnLabel?: string;\r\n dialogTitle?: string;\r\n dialogCheckboxLabel?: string;\r\n dialogCheckboxWidth?: number;\r\n dialogEmptyContent?: string;\r\n dialogButtonsCenter?: XBoolean;\r\n tableIndex?: number;\r\n tableSize?: number;\r\n tableLoading?: XBoolean;\r\n tableVirtualScroll?: boolean;\r\n tableRowHeight?: XNumber;\r\n treeExpandedLevel?: XNumber;\r\n}\r\n\r\nexport interface XFormConfig {\r\n space?: XNumber;\r\n labelSuffix?: string;\r\n width?: string;\r\n}\r\n\r\nexport interface XHighlightConfig {}\r\n\r\nexport interface XIconConfig {\r\n href?: string;\r\n}\r\n\r\nexport interface XInnerConfig {\r\n padding?: string;\r\n}\r\n\r\nexport interface XInputConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XInputGroupConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n compact?: XBoolean;\r\n}\r\n\r\nexport interface XInputNumberConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XColConfig {}\r\n\r\nexport interface XRowConfig {}\r\n\r\nexport interface XRippleConfig {\r\n type?: XType;\r\n}\r\n\r\nexport interface XLinkConfig {\r\n underline?: XBoolean;\r\n iconRight?: XBoolean;\r\n}\r\n\r\nexport interface XListConfig {}\r\n\r\nexport interface XLoadingConfig {\r\n size?: XSize;\r\n text?: string;\r\n icon?: string;\r\n color?: string;\r\n background?: string;\r\n}\r\n\r\nexport interface XMenuConfig {\r\n size?: XSize;\r\n trigger?: XTrigger;\r\n}\r\n\r\nexport interface XMessageConfig {\r\n type?: XStatus;\r\n width?: string;\r\n placement?: XPlace;\r\n displayType?: string;\r\n offset?: string | string[];\r\n duration?: number;\r\n hideClose?: boolean;\r\n showIcon?: boolean;\r\n}\r\n\r\nexport interface XMessageBoxConfig {}\r\n\r\nexport interface XNotificationConfig {}\r\n\r\nexport interface XOutletConfig {}\r\n\r\nexport interface XPageHeaderConfig {\r\n backIcon?: string;\r\n backText?: string;\r\n}\r\n\r\nexport interface XPaginationConfig {\r\n index?: XNumber;\r\n size?: XNumber;\r\n space?: XNumber;\r\n pageLinkSize?: XNumber;\r\n hiddenBorder?: boolean;\r\n showEllipsis?: boolean;\r\n showTotal?: boolean;\r\n showSize?: boolean;\r\n sizeWidth?: number;\r\n sizeData?: number[];\r\n showJump?: boolean;\r\n jumpWidth?: number;\r\n simple?: boolean;\r\n simpleIndexWidth?: number;\r\n}\r\n\r\nexport interface XPatternConfig {}\r\n\r\nexport interface XPopconfirmConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n icon?: string;\r\n iconColor?: string;\r\n cancelText?: string;\r\n confirmText?: string;\r\n}\r\n\r\nexport interface XPopoverConfig {\r\n placement?: XPlacement;\r\n trigger?: XTrigger;\r\n width?: string;\r\n}\r\n\r\nexport interface XPortalConfig {}\r\n\r\nexport interface XProgressConfing {\r\n height?: string;\r\n stepWidth?: string;\r\n}\r\n\r\nexport interface XRadioConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XRateConfig {}\r\n\r\nexport interface XResultConfig {}\r\n\r\nexport interface XSelectConfig {\r\n placement?: XPositionTopBottom;\r\n clearable?: XBoolean;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XSkeletonConfig {}\r\n\r\nexport interface XSliderConfig {\r\n animated?: XBoolean;\r\n size?: XSize;\r\n}\r\n\r\nexport interface XSliderSelectConfig {}\r\n\r\nexport interface XStatisticConfig {}\r\n\r\nexport interface XCountdownConfig {\r\n format?: string;\r\n}\r\n\r\nexport interface XStepsConfig {}\r\n\r\nexport interface XSwitchConfig {}\r\n\r\nexport interface XTableConfig {\r\n index?: number;\r\n size?: number;\r\n loading?: XBoolean;\r\n showHeader?: XBoolean;\r\n virtualScroll?: boolean;\r\n rowHeight?: XNumber;\r\n itemSize?: XNumber;\r\n bordered?: XNumber;\r\n allowSelectRow?: XBoolean;\r\n rowSize?: XSize;\r\n}\r\n\r\nexport interface XTabsConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTagConfig {\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n closable?: XBoolean;\r\n dark?: XBoolean;\r\n}\r\n\r\nexport interface XTextRetractConfig {\r\n max?: XNumber;\r\n}\r\n\r\nexport interface XThemeConfig {\r\n amounts?: XNumber[];\r\n}\r\n\r\nexport interface XTimeAgoConfig {}\r\n\r\nexport interface XTimePickerConfig {\r\n format?: string;\r\n placement?: XCorner;\r\n size?: XSize;\r\n bordered?: XBoolean;\r\n}\r\n\r\nexport interface XTimeRangeConfig {}\r\n\r\nexport interface XTimelineConfig {\r\n size?: XSize;\r\n}\r\n\r\nexport interface XTooltipConfig {\r\n placement?: XPlacement;\r\n}\r\n\r\nexport interface XTransferConfig {\r\n titles?: string[];\r\n drag?: XBoolean;\r\n}\r\n\r\nexport interface XTreeConfig {\r\n spacing?: XNumber;\r\n nodeHeight?: XNumber;\r\n}\r\n\r\nexport interface XTextareaConfig {\r\n clearable?: XBoolean;\r\n iconLayout?: XPositionLeftRight;\r\n}\r\n\r\nexport interface XTreeFileConfig {\r\n maxHeight?: XNumber;\r\n spacing?: XNumber;\r\n}\r\n\r\nexport interface XUploadConfig {}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface XTheme {\r\n colors?: XColorsTheme;\r\n}\r\n\r\nexport interface XColorsTheme {\r\n primary?: string;\r\n success?: string;\r\n warning?: string;\r\n danger?: string;\r\n info?: string;\r\n text?: string;\r\n border?: string;\r\n background?: string;\r\n [property: string]: any;\r\n}\r\n\r\nexport type XThemeKey = keyof XTheme;\r\n\r\nexport type XColors = 'primary' | 'success' | 'warning' | 'danger' | 'info';\r\n\r\nexport const X_THEME = new InjectionToken<XTheme>('x-theme');\r\n\r\nexport const X_THEME_PREFIX = '--x-';\r\n\r\nexport const X_THEME_MERGE = '#ffffff';\r\n\r\nexport const X_THEME_BLACK_MERGE = '#cccccc';\r\n\r\nexport const X_THEME_AMOUNTS = [0, -0.1, -0.2, -0.3, -0.4, -0.5, -0.6, -0.7, -0.8, -0.9, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9];\r\n\r\nexport const X_THEME_BACKGROUNDS = [-0.2, -0.3, -0.4];\r\n\r\nexport const X_THEME_TEXTS = [\r\n [-0.5, 0],\r\n [-0.6, 0.2],\r\n [-0.7, 0.4]\r\n];\r\n\r\nexport const X_THEME_BORDERS = [\r\n [-0.8, 0],\r\n [-0.9, 0.2]\r\n];\r\n\r\nexport const X_THEME_EXCHANGES = [\r\n [-0.1, -0.1],\r\n [0.1, -0.1],\r\n [0.2, 0.2],\r\n [0.3, 0],\r\n [0.4, -0.4],\r\n [0.5, -0.2],\r\n [0.6, 0],\r\n [0.7, -0.4],\r\n [0.8, -0.4],\r\n [0.9, -0.2]\r\n];\r\n\r\nexport const X_THEME_COLORS: XColorsTheme = {\r\n primary: '#1976d2',\r\n success: '#67c23a',\r\n warning: '#e6a23c',\r\n danger: '#f56c6c',\r\n info: '#909399',\r\n text: '#333333',\r\n border: '#dddddd',\r\n background: '#ffffff'\r\n};\r\n\r\nexport const X_THEME_DARK_COLORS: XColorsTheme = {\r\n text: '#dddddd',\r\n border: '#424242',\r\n background: '#1e1e1f'\r\n};\r\n\r\nexport const X_THEME_COLOR_KEYS = Object.keys(X_THEME_COLORS);\r\n","import { Injectable, Inject, RendererFactory2, Renderer2 } from '@angular/core';\r\nimport {\r\n XTheme,\r\n XColorsTheme,\r\n X_THEME_COLORS,\r\n X_THEME_COLOR_KEYS,\r\n X_THEME_PREFIX,\r\n X_THEME_AMOUNTS,\r\n X_THEME_MERGE,\r\n X_THEME_BLACK_MERGE,\r\n X_THEME_EXCHANGES,\r\n X_THEME_BACKGROUNDS,\r\n X_THEME_TEXTS,\r\n X_THEME_BORDERS\r\n} from './theme';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XThemeService {\r\n private colorsProp: XColorsTheme = {};\r\n private colorsStyleEle!: HTMLStyleElement;\r\n private renderer2: Renderer2;\r\n private declaration: CSSStyleDeclaration;\r\n\r\n constructor(@Inject(DOCUMENT) private doc: any, private factory: RendererFactory2) {\r\n this.renderer2 = this.factory.createRenderer(null, null);\r\n this.declaration = getComputedStyle(this.doc.documentElement);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n if (theme?.colors) Object.assign(X_THEME_COLORS, theme.colors);\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.setColors(theme?.colors);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return {\r\n colors: this.getColors(includesAll)\r\n };\r\n }\r\n\r\n setColors(colors?: XColorsTheme) {\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(this.colorsProp, this.setRoot(key, colors[key]));\r\n }\r\n this.createColorsStyle();\r\n }\r\n\r\n getColors(includes = false, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n const keys = includes ? Object.keys(this.colorsProp) : X_THEME_COLOR_KEYS.map((x) => `${prefix}${x}`);\r\n keys.forEach((x) => {\r\n result[x.replace(prefix, '')] = this.declaration.getPropertyValue(`${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsInProperty(colors?: XColorsTheme, prefix = X_THEME_PREFIX): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n Object.keys(colors as XColorsTheme).forEach((x) => {\r\n result[x] = this.declaration.getPropertyValue(`${prefix}${x}`).trim();\r\n });\r\n\r\n return result;\r\n }\r\n\r\n getColorsTheme(colors?: XColorsTheme) {\r\n if (typeof colors === 'undefined') colors = X_THEME_COLORS;\r\n else colors = Object.assign({}, X_THEME_COLORS, colors);\r\n return colors;\r\n }\r\n\r\n setRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n if (X_THEME_COLOR_KEYS.includes(color)) {\r\n for (let amount of X_THEME_AMOUNTS) {\r\n if (amount === 0) {\r\n result[`${prefix}${color}`] = value;\r\n } else {\r\n result[`${prefix}${color}${this.getSuffix(amount)}`] = toHex(\r\n mixColors(amount > 0 ? X_THEME_MERGE : X_THEME_BLACK_MERGE, value, Math.abs(amount))\r\n );\r\n }\r\n }\r\n } else {\r\n result[`${prefix}${color}`] = value;\r\n }\r\n return result;\r\n }\r\n\r\n setDarkRoot(color: string, value: string, prefix = X_THEME_PREFIX) {\r\n let result: XColorsTheme = {};\r\n const allColors = this.setRoot(color, value, '');\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n const allColors = this.setRoot(color, value, prefix);\r\n X_THEME_EXCHANGES.forEach((x) => {\r\n if (x[1] >= -0.1) {\r\n const curr = this.getSuffix(x[0]);\r\n const next = this.getSuffix(x[1]);\r\n result[`${prefix}${color}${curr}`] = allColors[`${prefix}${color}${next}`];\r\n }\r\n });\r\n } else if (['background'].includes(color)) {\r\n result = this.getDefineColors(Object.assign({}, this.getColorsInProperty(X_THEME_COLORS), allColors), '', true);\r\n }\r\n return result;\r\n }\r\n\r\n getDefineColors(colors?: XColorsTheme, prefix = X_THEME_PREFIX, darken = false): XColorsTheme {\r\n let result: XColorsTheme = {};\r\n colors = this.getColorsTheme(colors);\r\n for (let key in colors) {\r\n Object.assign(result, this.setRoot(key, colors[key], prefix));\r\n }\r\n if (darken) {\r\n const colorsFunc = (nums: number[] | number[][], callback: Function) => {\r\n for (let num of nums) {\r\n for (let color in colors) {\r\n if (X_THEME_COLOR_KEYS.includes(color) && !['background'].includes(color)) {\r\n callback(num, color);\r\n }\r\n }\r\n }\r\n };\r\n colorsFunc(X_THEME_BACKGROUNDS, (background: number, color: string) => {\r\n const theme = this.getSuffix(background);\r\n result[`${prefix}${color}${theme}`] = result[`${prefix}background${theme.replace('a', '')}`];\r\n });\r\n colorsFunc(X_THEME_TEXTS, (text: number[], color: string) => {\r\n const curr = this.getSuffix(text[0]);\r\n const next = this.getSuffix(text[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}text${next}`];\r\n });\r\n colorsFunc(X_THEME_BORDERS, (border: number[], color: string) => {\r\n const curr = this.getSuffix(border[0]);\r\n const next = this.getSuffix(border[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}border${next}`];\r\n });\r\n colorsFunc(X_THEME_EXCHANGES, (exchange: number[], color: string) => {\r\n const curr = this.getSuffix(exchange[0]);\r\n const next = this.getSuffix(exchange[1]);\r\n result[`${prefix}${color}${curr}`] = result[`${prefix}${color}${next}`];\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n getSuffix(num: number): string {\r\n if (num > 0) {\r\n return `-${Math.abs(num * 1000)}`;\r\n } else if (num < 0) {\r\n return `-a${Math.abs(num * 1000)}`;\r\n }\r\n return '';\r\n }\r\n\r\n createColorsStyle() {\r\n if (this.colorsStyleEle) this.renderer2.removeChild(this.colorsStyleEle.parentNode, this.colorsStyleEle);\r\n const styles = Object.entries(this.colorsProp)\r\n .map((x) => `${x[0]}: ${x[1]};`)\r\n .join('');\r\n this.colorsStyleEle = this.renderer2.createElement('style');\r\n this.colorsStyleEle.innerHTML = `.x-theme-colors{${styles}}`;\r\n this.renderer2.addClass(this.doc.documentElement, 'x-theme-colors');\r\n this.doc.documentElement.getElementsByTagName('head')[0].appendChild(this.colorsStyleEle);\r\n }\r\n}\r\n\r\nexport function mixColors(color1: string, color2: string, weight: number) {\r\n let rgb1 = toRgb(color1);\r\n let rgb2 = toRgb(color2);\r\n let weight1 = weight;\r\n let weight2 = 1 - weight;\r\n let result: { r: number; g: number; b: number };\r\n\r\n const inRange = (num: number) => {\r\n return num > 255 ? 255 : num < 0 ? 0 : num;\r\n };\r\n\r\n result = {\r\n r: inRange(Math.round(rgb1.r * weight1 + rgb2.r * weight2)),\r\n g: inRange(Math.round(rgb1.g * weight1 + rgb2.g * weight2)),\r\n b: inRange(Math.round(rgb1.b * weight1 + rgb2.b * weight2))\r\n };\r\n\r\n return result;\r\n}\r\n\r\nexport function toHex(rgb: { r: number; g: number; b: number }) {\r\n return '#' + ((1 << 24) + (rgb.r << 16) + (rgb.g << 8) + rgb.b).toString(16).slice(1);\r\n}\r\n\r\nexport function toRgb(hex: string) {\r\n if (hex.indexOf('#') == 0) hex = hex.slice(1);\r\n let num = parseInt(hex, 16);\r\n let r = num >> 16;\r\n if (r > 255) r = 255;\r\n else if (r < 0) r = 0;\r\n let g = (num >> 8) & 0x00ff;\r\n if (g > 255) g = 255;\r\n else if (g < 0) g = 0;\r\n let b = num & 0x0000ff;\r\n if (b > 255) b = 255;\r\n else if (b < 0) b = 0;\r\n\r\n return { r: r, g: g, b: b };\r\n}\r\n","// tslint:disable no-any\r\n\r\nimport { Injectable, Optional, Inject } from '@angular/core';\r\nimport { Subject, Observable } from 'rxjs';\r\nimport { XConfig, X_CONFIG, XComponentConfigKey, XComponentConfig } from './config';\r\nimport { XThemeService, XTheme, X_THEME_COLORS, X_THEME_DARK_COLORS } from '../theme';\r\nimport { filter, mapTo } from 'rxjs/operators';\r\n\r\nconst isDefined = function (value?: any): boolean {\r\n return value !== undefined;\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class XConfigService {\r\n private componentConfigUpdated$ = new Subject<keyof XComponentConfig>();\r\n private config: XConfig;\r\n public themeService!: XThemeService;\r\n\r\n constructor(@Optional() themeService?: XThemeService, @Optional() @Inject(X_CONFIG) defaultConfig?: XConfig) {\r\n this.config = defaultConfig || {};\r\n if (themeService) {\r\n this.themeService = themeService;\r\n }\r\n this.setInitialTheme(this.config.theme);\r\n }\r\n\r\n getConfigForComponent<T extends XComponentConfigKey>(componentName: T): XComponentConfig[T] {\r\n return this.config?.components ? this.config.components[componentName] : undefined;\r\n }\r\n\r\n getConfigChangeEventForComponent(componentName: XComponentConfigKey): Observable<void> {\r\n return this.componentConfigUpdated$.pipe(\r\n filter((n) => n === componentName),\r\n mapTo(undefined)\r\n );\r\n }\r\n\r\n set<T extends XComponentConfigKey>(componentName: T, value: XComponentConfig[T]): void {\r\n if (this.config?.components) {\r\n this.config.components[componentName] = { ...this.config.components[componentName], ...value };\r\n this.componentConfigUpdated$.next(componentName);\r\n }\r\n }\r\n\r\n setDarkTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_DARK_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', true)\r\n });\r\n }\r\n\r\n setLightTheme(theme?: XTheme) {\r\n let colors = theme?.colors;\r\n if (!colors) colors = X_THEME_COLORS;\r\n this.setTheme({\r\n colors: this.themeService.getDefineColors(Object.assign({}, this.themeService.getColorsInProperty(X_THEME_COLORS), colors), '', false)\r\n });\r\n }\r\n\r\n setTheme(theme?: XTheme) {\r\n this.themeService.setTheme(theme);\r\n }\r\n\r\n setInitialTheme(theme?: XTheme) {\r\n this.themeService.setInitialTheme(theme);\r\n }\r\n\r\n getTheme(includesAll = false): XTheme {\r\n return this.themeService.getTheme(includesAll);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:typedef\r\nexport function XWithConfig<T>(componentName: XComponentConfigKey, innerDefaultValue?: T) {\r\n return function ConfigDecorator(target: any, propName: any, originalDescriptor?: TypedPropertyDescriptor<T>): any {\r\n const privatePropName = `$$__assignedValue__${propName}`;\r\n\r\n Object.defineProperty(target, privatePropName, {\r\n configurable: true,\r\n writable: true,\r\n enumerable: false\r\n });\r\n\r\n return {\r\n get(): T | undefined {\r\n const originalValue = originalDescriptor && originalDescriptor.get ? originalDescriptor.get.bind(this)() : this[privatePropName];\r\n\r\n if (isDefined(originalValue)) {\r\n return originalValue;\r\n }\r\n\r\n const componentConfig = this.configService?.getConfigForComponent(componentName) || {};\r\n const configValue = componentConfig[propName];\r\n\r\n return isDefined(configValue) ? configValue : innerDefaultValue;\r\n },\r\n set(value: T): void {\r\n if (originalDescriptor && originalDescriptor.set) {\r\n originalDescriptor.set.bind(this)(value);\r\n } else {\r\n this[privatePropName] = value;\r\n }\r\n },\r\n configurable: true,\r\n enumerable: true\r\n };\r\n };\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["XDURATION_BASE_EASE_IN","XDURATION_BASE_EASE_OUT"],"mappings":"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"}
|