@yelingfeng/pandora2 0.1.3

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.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +88 -0
  3. package/dist/packages/components/PdCharts/index.d.ts +7 -0
  4. package/dist/packages/components/PdCharts/src/charts/pie/index.d.ts +2 -0
  5. package/dist/packages/components/PdCharts/src/charts/pie/pie01.d.ts +6 -0
  6. package/dist/packages/components/PdCharts/src/charts/pie/pie02.d.ts +6 -0
  7. package/dist/packages/components/PdCharts/src/constant/index.d.ts +21 -0
  8. package/dist/packages/components/PdCharts/src/hooks/index.d.ts +5 -0
  9. package/dist/packages/components/PdCharts/src/hooks/useApi.d.ts +7 -0
  10. package/dist/packages/components/PdCharts/src/hooks/useAutosize.d.ts +4 -0
  11. package/dist/packages/components/PdCharts/src/hooks/useCharts.d.ts +2 -0
  12. package/dist/packages/components/PdCharts/src/hooks/useEventListener.d.ts +7 -0
  13. package/dist/packages/components/PdCharts/src/hooks/useLoading.d.ts +4 -0
  14. package/dist/packages/components/PdCharts/src/props/index.d.ts +40 -0
  15. package/dist/packages/components/PdCharts/src/transform/index.d.ts +18 -0
  16. package/dist/packages/components/PdCharts/src/transform/seriesHelper.d.ts +31 -0
  17. package/dist/packages/components/PdCharts/src/types/chart.d.ts +19 -0
  18. package/dist/packages/components/PdCharts/src/types/index.d.ts +94 -0
  19. package/dist/packages/components/PdCharts/src/types/props.d.ts +31 -0
  20. package/dist/packages/components/PdCharts/src/utils/core.d.ts +7 -0
  21. package/dist/packages/components/PdCharts/src/utils/defaultOpt.d.ts +100 -0
  22. package/dist/packages/components/PdCharts/src/utils/index.d.ts +18 -0
  23. package/dist/packages/components/PdCharts/src/utils/wc.d.ts +5 -0
  24. package/dist/packages/components/PdForm/index.d.ts +14 -0
  25. package/dist/packages/components/PdForm/src/componentsMap.d.ts +6 -0
  26. package/dist/packages/components/PdForm/src/helper.d.ts +14 -0
  27. package/dist/packages/components/PdForm/src/hooks/useAdvanced.d.ts +15 -0
  28. package/dist/packages/components/PdForm/src/hooks/useAutoFocus.d.ts +10 -0
  29. package/dist/packages/components/PdForm/src/hooks/useComponentRegister.d.ts +3 -0
  30. package/dist/packages/components/PdForm/src/hooks/useForm.d.ts +4 -0
  31. package/dist/packages/components/PdForm/src/hooks/useFormContext.d.ts +8 -0
  32. package/dist/packages/components/PdForm/src/hooks/useFormEvents.d.ts +28 -0
  33. package/dist/packages/components/PdForm/src/hooks/useFormValues.d.ts +13 -0
  34. package/dist/packages/components/PdForm/src/props/index.d.ts +112 -0
  35. package/dist/packages/components/PdForm/src/types/formItem.d.ts +81 -0
  36. package/dist/packages/components/PdForm/src/types/hooks.d.ts +6 -0
  37. package/dist/packages/components/PdForm/src/types/index.d.ts +133 -0
  38. package/dist/packages/components/PdPageLayout/index.d.ts +6 -0
  39. package/dist/packages/components/PdTable/index.d.ts +5 -0
  40. package/dist/packages/components/PdTable/src/hooks/useTable.d.ts +4 -0
  41. package/dist/packages/components/PdTable/src/pagination/config.d.ts +8 -0
  42. package/dist/packages/components/PdTable/src/props/index.d.ts +20 -0
  43. package/dist/packages/components/PdTable/src/props/useTableProps.d.ts +381 -0
  44. package/dist/packages/components/PdTable/src/render/column.d.ts +11 -0
  45. package/dist/packages/components/PdTable/src/render/pager.d.ts +5 -0
  46. package/dist/packages/components/PdTable/src/sort/index.d.ts +12 -0
  47. package/dist/packages/components/PdTable/src/sort/sortService.d.ts +91 -0
  48. package/dist/packages/components/PdTable/src/types/element-type.d.ts +226 -0
  49. package/dist/packages/components/PdTable/src/types/index.d.ts +90 -0
  50. package/dist/packages/components/index.d.ts +4 -0
  51. package/dist/packages/hooks/index.d.ts +1 -0
  52. package/dist/packages/index.d.ts +6 -0
  53. package/dist/packages/pandora/component.d.ts +3 -0
  54. package/dist/packages/pandora/defaults.d.ts +4 -0
  55. package/dist/packages/pandora/make-installer.d.ts +4 -0
  56. package/dist/packages/pandora/plugin.d.ts +3 -0
  57. package/dist/pandora2.css +1 -0
  58. package/dist/pandora2.es.js +52230 -0
  59. package/dist/pandora2.umd.js +78 -0
  60. package/dist/src/_utils/create/index.d.ts +1 -0
  61. package/dist/src/_utils/dateUtil.d.ts +7 -0
  62. package/dist/src/_utils/env.d.ts +26 -0
  63. package/dist/src/_utils/helper/index.d.ts +4 -0
  64. package/dist/src/_utils/helper/tsxHelper.d.ts +13 -0
  65. package/dist/src/_utils/index.d.ts +8 -0
  66. package/dist/src/_utils/is/index.d.ts +21 -0
  67. package/dist/src/_utils/log/index.d.ts +2 -0
  68. package/dist/src/_utils/propTypes.d.ts +9 -0
  69. package/dist/src/_utils/props/index.d.ts +2 -0
  70. package/dist/src/_utils/vue/index.d.ts +3 -0
  71. package/dist/src/_utils/vue/install.d.ts +5 -0
  72. package/dist/src/_utils/vue/refs.d.ts +3 -0
  73. package/dist/src/_utils/vue/typescript.d.ts +5 -0
  74. package/dist/src/enums/breakpointEnum.d.ts +18 -0
  75. package/dist/src/hooks/component/useFormItem.d.ts +2 -0
  76. package/dist/src/hooks/core/useAttrs.d.ts +9 -0
  77. package/dist/src/hooks/core/useContext.d.ts +11 -0
  78. package/dist/src/hooks/event/useBreakpoint.d.ts +22 -0
  79. package/dist/src/hooks/event/useEventListener.d.ts +14 -0
  80. package/dist/src/types/axios.d.ts +53 -0
  81. package/dist/src/types/config.d.ts +25 -0
  82. package/dist/src/types/global.d.ts +107 -0
  83. package/dist/src/vue-sfc-shim.d.ts +19 -0
  84. package/package.json +129 -0
  85. package/volar.d.ts +9 -0
@@ -0,0 +1,226 @@
1
+ import type { CSSProperties, ComponentInternalInstance, Ref, VNode } from 'vue';
2
+ type CI<T> = {
3
+ column: TableColumnCtx<T>;
4
+ $index: number;
5
+ };
6
+ type Filters = {
7
+ text: string;
8
+ value: string;
9
+ }[];
10
+ type FilterMethods<T> = (value: any, row: T, column: TableColumnCtx<T>) => void;
11
+ type ValueOf<T> = T[keyof T];
12
+ interface TableColumnCtx<T> {
13
+ id: string;
14
+ realWidth: number;
15
+ type: string;
16
+ label: string;
17
+ className: string;
18
+ labelClassName: string;
19
+ property: string;
20
+ prop: string;
21
+ width: string | number;
22
+ minWidth: string | number;
23
+ renderHeader: (data: CI<T>) => VNode;
24
+ sortable: boolean | string;
25
+ sortMethod: (a: T, b: T) => number;
26
+ sortBy: string | ((row: T, index: number) => string) | string[];
27
+ resizable: boolean;
28
+ columnKey: string;
29
+ rawColumnKey: string;
30
+ align: string;
31
+ headerAlign: string;
32
+ showTooltipWhenOverflow: boolean;
33
+ showOverflowTooltip: boolean;
34
+ fixed: boolean | string;
35
+ formatter: (row: T, column: TableColumnCtx<T>, cellValue: any, index: number) => VNode | string;
36
+ selectable: (row: T, index: number) => boolean;
37
+ reserveSelection: boolean;
38
+ filterMethod: FilterMethods<T>;
39
+ filteredValue: string[];
40
+ filters: Filters;
41
+ filterPlacement: string;
42
+ filterMultiple: boolean;
43
+ index: number | ((index: number) => number);
44
+ sortOrders: ('ascending' | 'descending' | null)[];
45
+ renderCell: (data: any) => void;
46
+ colSpan: number;
47
+ rowSpan: number;
48
+ children: TableColumnCtx<T>[];
49
+ level: number;
50
+ filterable: boolean | FilterMethods<T> | Filters;
51
+ order: string;
52
+ isColumnGroup: boolean;
53
+ isSubColumn: boolean;
54
+ columns: TableColumnCtx<T>[];
55
+ getColumnIndex: () => number;
56
+ no: number;
57
+ filterOpened?: boolean;
58
+ }
59
+ interface TableColumn<T> extends ComponentInternalInstance {
60
+ vnode: {
61
+ vParent: TableColumn<T> | Table<T>;
62
+ } & VNode;
63
+ vParent: TableColumn<T> | Table<T>;
64
+ columnId: string;
65
+ columnConfig: Ref<Partial<TableColumnCtx<T>>>;
66
+ }
67
+ type Nullable<T> = T | null;
68
+ export type DefaultRow = any;
69
+ interface TableRefs {
70
+ tableWrapper: HTMLElement;
71
+ headerWrapper: HTMLElement;
72
+ footerWrapper: HTMLElement;
73
+ fixedBodyWrapper: HTMLElement;
74
+ rightFixedBodyWrapper: HTMLElement;
75
+ bodyWrapper: HTMLElement;
76
+ [key: string]: any;
77
+ }
78
+ interface TableState {
79
+ isGroup: Ref<boolean>;
80
+ resizeState: Ref<{
81
+ width: any;
82
+ height: any;
83
+ }>;
84
+ doLayout: () => void;
85
+ debouncedUpdateLayout: () => void;
86
+ }
87
+ type HoverState<T> = Nullable<{
88
+ cell: HTMLElement;
89
+ column: TableColumnCtx<T>;
90
+ row: T;
91
+ }>;
92
+ type RIS<T> = {
93
+ row: T;
94
+ $index: number;
95
+ store: any;
96
+ expanded: boolean;
97
+ };
98
+ type RenderExpanded<T> = ({ row, $index, store, expanded }: RIS<T>) => VNode;
99
+ type SummaryMethod<T> = (data: {
100
+ columns: TableColumnCtx<T>[];
101
+ data: T[];
102
+ }) => string[];
103
+ interface Table<T> extends ComponentInternalInstance {
104
+ $ready: boolean;
105
+ hoverState?: HoverState<T>;
106
+ renderExpanded: RenderExpanded<T>;
107
+ store: any;
108
+ layout: any;
109
+ refs: TableRefs;
110
+ tableId: string;
111
+ state: TableState;
112
+ clearSelection: () => void;
113
+ getSelectionRows: () => T[];
114
+ toggleRowSelection: (row: T, selected?: boolean) => void;
115
+ toggleAllSelection: () => void;
116
+ toggleRowExpansion: (row: T, expanded?: boolean) => void;
117
+ setCurrentRow: (row?: T) => void;
118
+ clearSort: () => void;
119
+ clearFilter: (columnKeys?: string[]) => void;
120
+ doLayout: () => void;
121
+ sort: (prop: string, order: string) => void;
122
+ scrollTo: (options: number | ScrollToOptions, yCoord?: number) => void;
123
+ }
124
+ type ColumnCls<T> = string | ((data: {
125
+ row: T;
126
+ rowIndex: number;
127
+ }) => string);
128
+ type ColumnStyle<T> = CSSProperties | ((data: {
129
+ row: T;
130
+ rowIndex: number;
131
+ }) => CSSProperties);
132
+ type CellCls<T> = string | ((data: {
133
+ row: T;
134
+ rowIndex: number;
135
+ column: TableColumnCtx<T>;
136
+ columnIndex: number;
137
+ }) => string);
138
+ type CellStyle<T> = CSSProperties | ((data: {
139
+ row: T;
140
+ rowIndex: number;
141
+ column: TableColumnCtx<T>;
142
+ columnIndex: number;
143
+ }) => CSSProperties);
144
+ type Layout = 'fixed' | 'auto';
145
+ interface TableProps<T> {
146
+ data: T[];
147
+ size?: string;
148
+ width?: string | number;
149
+ height?: string | number;
150
+ maxHeight?: string | number;
151
+ fit?: boolean;
152
+ stripe?: boolean;
153
+ border?: boolean;
154
+ rowKey?: string | ((row: T) => string);
155
+ context?: Table<T>;
156
+ showHeader?: boolean;
157
+ showSummary?: boolean;
158
+ sumText?: string;
159
+ summaryMethod?: SummaryMethod<T>;
160
+ rowClassName?: ColumnCls<T>;
161
+ rowStyle?: ColumnStyle<T>;
162
+ cellClassName?: CellCls<T>;
163
+ cellStyle?: CellStyle<T>;
164
+ headerRowClassName?: ColumnCls<T>;
165
+ headerRowStyle?: ColumnStyle<T>;
166
+ headerCellClassName?: CellCls<T>;
167
+ headerCellStyle?: CellStyle<T>;
168
+ highlightCurrentRow?: boolean;
169
+ currentRowKey?: string | number;
170
+ emptyText?: string;
171
+ expandRowKeys?: any[];
172
+ defaultExpandAll?: boolean;
173
+ defaultSort?: Sort;
174
+ tooltipEffect?: string;
175
+ spanMethod?: (data: {
176
+ row: T;
177
+ rowIndex: number;
178
+ column: TableColumnCtx<T>;
179
+ columnIndex: number;
180
+ }) => number[] | {
181
+ rowspan: number;
182
+ colspan: number;
183
+ };
184
+ selectOnIndeterminate?: boolean;
185
+ indent?: number;
186
+ treeProps?: {
187
+ hasChildren?: string;
188
+ children?: string;
189
+ };
190
+ lazy?: boolean;
191
+ load?: (row: T, treeNode: TreeNode, resolve: (data: T[]) => void) => void;
192
+ className?: string;
193
+ style?: CSSProperties;
194
+ tableLayout: Layout;
195
+ flexible: boolean;
196
+ }
197
+ interface Sort {
198
+ prop: string;
199
+ order: 'ascending' | 'descending';
200
+ init?: any;
201
+ silent?: any;
202
+ }
203
+ interface Filter<T> {
204
+ column: TableColumnCtx<T>;
205
+ values: string[];
206
+ silent: any;
207
+ }
208
+ interface TreeNode {
209
+ expanded?: boolean;
210
+ loading?: boolean;
211
+ noLazyChildren?: boolean;
212
+ indent?: number;
213
+ level?: number;
214
+ display?: boolean;
215
+ }
216
+ interface RenderRowData<T> {
217
+ store: any;
218
+ _self: Table<T>;
219
+ column: TableColumnCtx<T>;
220
+ row: T;
221
+ $index: number;
222
+ treeNode?: TreeNode;
223
+ expanded: boolean;
224
+ }
225
+ export type { SummaryMethod, Table, TableProps, TableRefs, ColumnCls, ColumnStyle, TreeNode, RenderRowData, Sort, Filter };
226
+ export type { Filters, FilterMethods, TableColumnCtx, TableColumn, ValueOf };
@@ -0,0 +1,90 @@
1
+ import type { Ref, VNode } from 'vue';
2
+ import { Table, TableColumnCtx, TableProps } from './element-type';
3
+ export type Dictionary<T> = Record<string, T>;
4
+ export interface AnyObject {
5
+ [key: string]: any;
6
+ }
7
+ export interface IPageConfig {
8
+ height?: number;
9
+ currentPage?: number;
10
+ total?: number;
11
+ pageSizes?: number[];
12
+ pageCount?: number;
13
+ pageSize?: number;
14
+ layout?: string;
15
+ }
16
+ /**
17
+ * 选择列 类型 单选多选
18
+ */
19
+ export interface ISelectionMode<T> {
20
+ selectionMode?: string;
21
+ selectionPos?: string;
22
+ selectable?: (row: T, $index: number) => void;
23
+ }
24
+ /**
25
+ * 自定义table类型
26
+ */
27
+ export interface IPandoraTable<T> extends IPandoraTableOption<T> {
28
+ rowClick?: (row: T, column: object, event: any) => void;
29
+ rowChange?: (row: T, index: number) => void;
30
+ selection?: ISelectionMode<T>;
31
+ pagination?: IPageConfig | boolean;
32
+ pageOpt?: IPageConfig;
33
+ }
34
+ /**
35
+ *
36
+ * table 构建属性接口
37
+ */
38
+ export interface IPandoraTableProps<T> {
39
+ data: T[];
40
+ columns: IPandoraTableColumn<T>[];
41
+ sortConfig?: IPandoraTableSort<T>;
42
+ tableConfig?: IPandoraTable<T>;
43
+ }
44
+ /**
45
+ *
46
+ */
47
+ export type IPandoraTableOption<T> = Partial<Omit<TableProps<T>, 'data' | 'column'>>;
48
+ export interface IPandoraTableColumn<T> extends Partial<TableColumnCtx<T>> {
49
+ name?: string;
50
+ value?: string;
51
+ render?: (row: any, column: any, index: number) => VNode;
52
+ }
53
+ export interface ISortType {
54
+ prop: string;
55
+ order: 'ascending' | 'descending';
56
+ }
57
+ export interface ISortChangeCb {
58
+ column: object;
59
+ prop: string;
60
+ order: string | null;
61
+ }
62
+ /**
63
+ * 定义table Sort配置接口
64
+ */
65
+ export interface IPandoraTableSort<T = any> {
66
+ sortMode: 'single' | 'multi';
67
+ sortChange?: (row: T) => void;
68
+ defaultSorts?: ISortType[];
69
+ defaultOrder?: 'ascending' | 'descending';
70
+ }
71
+ /**
72
+ * 排序服务类内部接口
73
+ */
74
+ export interface ISortService<T> extends IPandoraTableSort<T> {
75
+ userColumnOrder?: Dictionary<String>;
76
+ tableInstance?: Ref<Table<any>>;
77
+ }
78
+ export type IPandoraTableKeys = keyof IPandoraTable<any>;
79
+ export interface ITableActionType {
80
+ setProps: (props: Partial<IPandoraTableProps<any>>) => Promise<void>;
81
+ setColumns: (columns: IPandoraTableColumn<any>[]) => Promise<void>;
82
+ setData: (data: any[]) => Promise<void>;
83
+ reload: (opt?: any) => Promise<void>;
84
+ getSelectRows: <T = any>() => T[];
85
+ clearSelection: () => void;
86
+ }
87
+ export type UseTableReturnType = [
88
+ (instance: ITableActionType) => void,
89
+ ITableActionType
90
+ ];
@@ -0,0 +1,4 @@
1
+ export * from './PdCharts';
2
+ export * from './PdForm';
3
+ export * from './PdPageLayout';
4
+ export * from './PdTable';
@@ -0,0 +1 @@
1
+ export { useForm } from '../components/PdForm/src/hooks/useForm';
@@ -0,0 +1,6 @@
1
+ import installer from './pandora/defaults';
2
+ export * from './components';
3
+ export * from './hooks';
4
+ export * from './pandora/make-installer';
5
+ export declare const install: (app: import("vue").App<any>) => void;
6
+ export default installer;
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from 'vue';
2
+ declare const _default: Plugin<any[], any[]>[];
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ install: (app: import("vue").App<any>) => void;
3
+ };
4
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import type { App, Plugin } from 'vue';
2
+ export declare const makeInstaller: (components?: Plugin[]) => {
3
+ install: (app: App) => void;
4
+ };
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from 'vue';
2
+ declare const _default: Plugin<any[], any[]>[];
3
+ export default _default;
@@ -0,0 +1 @@
1
+ .vpandora-pagination{margin-top:10px}.vpandora-table{width:100%;height:100%}.vpandora-table .combo-wrapper{display:flex;align-items:center;justify-content:center}.vpandora-table .combo-wrapper .el-image{margin-right:7px}.vpandora-table>.active-thead .sort-caret.descending{border-top-color:#409eff}.vpandora-table>.active-thead .sort-caret.ascending{border-top-color:#409eff}.vpandora-table .column-wrapper{display:inline-flex;flex-direction:column;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.vpandora-table .el-radio__label{display:none}.pandora-basic-arrow[data-v-b5173730]{display:inline-block;cursor:pointer;transform:rotate(0);transition:all .3s ease .1s;transform-origin:center center}.pandora-basic-arrow--active[data-v-b5173730]{transform:rotate(90deg)}.pandora-basic-arrow.inset[data-v-b5173730]{line-height:0px}.pandora-basic-arrow.up[data-v-b5173730]{transform:rotate(-90deg)}.pandora-basic-arrow.down[data-v-b5173730],.pandora-basic-arrow.up.pandora-basic-arrow--active[data-v-b5173730]{transform:rotate(90deg)}.pandora-basic-arrow.down.pandora-basic-arrow--active[data-v-b5173730]{transform:rotate(-90deg)}.pandora-basic-help{display:block;margin-left:6px;font-size:14px;width:16px;height:16px;color:#909399;cursor:pointer;float:right;margin-top:3px}.pandora-basic-help:hover{color:#0960bd}.pandora-basic-help__wrap p{margin-bottom:0}.vpandora-form{position:relative;width:100%}.vpandora-form .el-select,.vpandora-form .el-date-editor.el-input,.vpandora-form .el-radio-group{width:100%}.vpandora-form .el-range-editor.el-input__wrapper{box-sizing:border-box;width:100%}.vpandora-form .el-input__wrapper,.vpandora-form .el-textarea__inner,.vpandora-form .el-button{border-radius:0}.vpandora-form .el-form-item__label{color:#777}.vpandora-form.collapsed .el-form-item{margin-bottom:0!important}.next-loading{position:absolute;inset:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:2000;overflow:hidden}.next-loading.next-open{pointer-events:none}.next-loading.next-open .next-loading-component{opacity:.7;filter:blur(1px);position:relative;pointer-events:none}.next-loading-masker{position:absolute;inset:0;z-index:99;background-color:#00000026}.next-loading-inline{display:inline-block}.next-loading-tip{display:block;position:absolute;top:50%;left:50%;z-index:4;transform:translate(-50%,-50%);text-align:center}.next-loading-tip-fullscreen{top:inherit;left:inherit;transform:inherit}.next-loading-tip-placeholder{display:none}.next-loading-right-tip .next-loading-indicator{display:inline-block}.next-loading-right-tip .next-loading-tip-content{position:absolute;display:block;top:50%;right:0;transform:translateY(-50%)}.next-loading-right-tip .next-loading-tip-placeholder{display:inline-block;visibility:hidden;margin-left:1em}.next-loading-fusion-reactor{display:inline-block;width:48px;width:var(--loading-large-size, 48px);height:48px;height:var(--loading-large-size, 48px);position:relative;margin:0;animation-duration:5.6s;animation-iteration-count:infinite;animation-timing-function:linear;animation-name:nextVectorRoute;will-change:transform}.next-loading-fusion-reactor .next-loading-dot{position:absolute;margin:auto;width:12px;width:var(--loading-large-dot-size, 12px);height:12px;height:var(--loading-large-dot-size, 12px);border-radius:50%;background:#0064c8;background:var(--loading-dot-color, #0064c8);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-duration:1.4s;will-change:transform,opacity}.next-loading-fusion-reactor .next-loading-dot:first-child{top:0;bottom:0;left:0;animation-name:nextVectorDotsX}.next-loading-fusion-reactor .next-loading-dot:nth-child(2){left:0;right:0;top:0;opacity:.8;animation-name:nextVectorDotsY}.next-loading-fusion-reactor .next-loading-dot:nth-child(3){top:0;bottom:0;right:0;opacity:.6;animation-name:nextVectorDotsXR}.next-loading-fusion-reactor .next-loading-dot:nth-child(4){left:0;right:0;bottom:0;opacity:.2;animation-name:nextVectorDotsYR}.next-loading-medium-fusion-reactor{width:32px;width:var(--loading-medium-size, 32px);height:32px;height:var(--loading-medium-size, 32px)}.next-loading-medium-fusion-reactor .next-loading-dot{width:8px;width:var(--loading-medium-dot-size, 8px);height:8px;height:var(--loading-medium-dot-size, 8px)}.next-loading-medium-fusion-reactor .next-loading-dot:first-child{animation-name:nextVectorDotsX-medium}.next-loading-medium-fusion-reactor .next-loading-dot:nth-child(2){animation-name:nextVectorDotsY-medium}.next-loading-medium-fusion-reactor .next-loading-dot:nth-child(3){animation-name:nextVectorDotsXR-medium}.next-loading-medium-fusion-reactor .next-loading-dot:nth-child(4){animation-name:nextVectorDotsYR-medium}@keyframes nextVectorRoute{0%{transform:rotate(0)}5%{transform:rotate(90deg)}25%{transform:rotate(90deg)}30%{transform:rotate(180deg)}50%{transform:rotate(180deg)}55%{transform:rotate(270deg)}75%{transform:rotate(270deg)}80%{transform:rotate(1turn)}to{transform:rotate(1turn)}}@keyframes nextVectorDotsYR{25%{bottom:0}45%,50%{bottom:16.8px;bottom:calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);height:14.4px;height:calc(var(--loading-large-dot-size, 12px) * 1.2);width:14.4px;width:calc(var(--loading-large-dot-size, 12px) * 1.2)}90%{bottom:0;height:12px;height:var(--loading-large-dot-size, 12px);width:12px;width:var(--loading-large-dot-size, 12px)}}@keyframes nextVectorDotsY{25%{top:0}45%,50%{top:16.8px;top:calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);height:14.4px;height:calc(var(--loading-large-dot-size, 12px) * 1.2);width:14.4px;width:calc(var(--loading-large-dot-size, 12px) * 1.2)}90%{top:0;height:12px;height:var(--loading-large-dot-size, 12px);width:12px;width:var(--loading-large-dot-size, 12px)}}@keyframes nextVectorDotsX{25%{left:0}45%,50%{left:16.8px;left:calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);width:14.4px;width:calc(var(--loading-large-dot-size, 12px) * 1.2);height:14.4px;height:calc(var(--loading-large-dot-size, 12px) * 1.2)}90%{left:0;height:12px;height:var(--loading-large-dot-size, 12px);width:12px;width:var(--loading-large-dot-size, 12px)}}@keyframes nextVectorDotsXR{25%{right:0}45%,50%{right:16.8px;right:calc(var(--loading-large-size, 48px) / 2 - var(--loading-large-dot-size, 12px) * 1.2 / 2);width:14.4px;width:calc(var(--loading-large-dot-size, 12px) * 1.2);height:14.4px;height:calc(var(--loading-large-dot-size, 12px) * 1.2)}90%{right:0;height:12px;height:var(--loading-large-dot-size, 12px);width:12px;width:var(--loading-large-dot-size, 12px)}}@keyframes nextVectorDotsYR-medium{25%{bottom:0}45%,50%{bottom:11.2px;bottom:calc(var(--loading-medium-size, 32px) / 2 - var(--loading-medium-dot-size, 8px) * 1.2 / 2);height:9.6px;height:calc(var(--loading-medium-dot-size, 8px) * 1.2);width:9.6px;width:calc(var(--loading-medium-dot-size, 8px) * 1.2)}90%{bottom:0;height:8px;height:var(--loading-medium-dot-size, 8px);width:8px;width:var(--loading-medium-dot-size, 8px)}}@keyframes nextVectorDotsY-medium{25%{top:0}45%,50%{top:11.2px;top:calc(var(--loading-medium-size, 32px) / 2 - var(--loading-medium-dot-size, 8px) * 1.2 / 2);height:9.6px;height:calc(var(--loading-medium-dot-size, 8px) * 1.2);width:9.6px;width:calc(var(--loading-medium-dot-size, 8px) * 1.2)}90%{top:0;height:8px;height:var(--loading-medium-dot-size, 8px);width:8px;width:var(--loading-medium-dot-size, 8px)}}@keyframes nextVectorDotsX-medium{25%{left:0}45%,50%{left:11.2px;left:calc(var(--loading-medium-size, 32px) / 2 - var(--loading-medium-dot-size, 8px) * 1.2 / 2);width:9.6px;width:calc(var(--loading-medium-dot-size, 8px) * 1.2);height:9.6px;height:calc(var(--loading-medium-dot-size, 8px) * 1.2)}90%{left:0;height:8px;height:var(--loading-medium-dot-size, 8px);width:8px;width:var(--loading-medium-dot-size, 8px)}}@keyframes nextVectorDotsXR-medium{25%{right:0}45%,50%{right:11.2px;right:calc(var(--loading-medium-size, 32px) / 2 - var(--loading-medium-dot-size, 8px) * 1.2 / 2);width:9.6px;width:calc(var(--loading-medium-dot-size, 8px) * 1.2);height:9.6px;height:calc(var(--loading-medium-dot-size, 8px) * 1.2)}90%{right:0;height:8px;height:var(--loading-medium-dot-size, 8px);width:8px;width:var(--loading-medium-dot-size, 8px)}}@media(prefers-reduced-motion:reduce){.next-loading-fusion-reactor,.next-loading-fusion-reactor .next-loading-dot{animation-duration:.01ms;animation-iteration-count:1}}.pandora-page-layout[data-v-e8e3119d]{width:100%;min-width:900px;background:#f6f8f9}.pandora-page-layout .pandora-form-section[data-v-e8e3119d]{position:relative;width:100%;background:#fff;box-shadow:0 3px 10px #0000000f;border-radius:2px;padding:10px 18px;box-sizing:border-box;display:flex;min-height:50px}.pandora-page-layout .pandora-form-section .pandora-form-content[data-v-e8e3119d]{flex:1;min-width:0;display:flex;align-items:center;min-height:inherit;flex-wrap:wrap}.pandora-page-layout .pandora-table-section[data-v-e8e3119d]{margin-top:15px;position:relative;width:100%;background:#fff;box-shadow:0 3px 10px #0000000f;border-radius:2px;padding:10px 18px;box-sizing:border-box}.pandora-page-tree-layout[data-v-1cfd0561]{display:flex;width:100%;align-items:stretch;position:relative;background:#f6f8f9}.pandora-page-tree-layout .pandora-sidebar[data-v-1cfd0561]{flex:none;background:#fff;border-right:1px solid #ebeef5;overflow:visible;position:relative;transition:width .2s ease;height:100%;z-index:10}.pandora-page-tree-layout .pandora-sidebar .pandora-sidebar-inner[data-v-1cfd0561]{display:flex;flex-direction:column;height:100%;padding:10px 12px;box-sizing:border-box;overflow:hidden;white-space:nowrap}.pandora-page-tree-layout .pandora-sidebar.collapsed .pandora-sidebar-inner[data-v-1cfd0561]{padding:0;display:none}.pandora-page-tree-layout .pandora-sidebar .pandora-sidebar-header[data-v-1cfd0561]{flex:none}.pandora-page-tree-layout .pandora-sidebar .pandora-sidebar-content[data-v-1cfd0561]{flex:1;overflow:auto}.pandora-page-tree-layout .pandora-sidebar .pandora-sidebar-handle[data-v-1cfd0561]{position:absolute;top:50%;right:-10px;transform:translateY(-50%);width:16px;height:40px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e5e5e5;border-radius:0 2px 2px 0;box-shadow:0 4px 12px #0000001f;cursor:pointer;z-index:10}.pandora-page-tree-layout .pandora-sidebar .pandora-sidebar-handle[data-v-1cfd0561]:hover{box-shadow:0 6px 16px #00000029}.pandora-page-tree-layout .pandora-content[data-v-1cfd0561]{flex:1;height:100%;overflow:hidden;position:relative;z-index:1}pandora-charts{display:block;width:100%;height:100%;min-width:0}