amis-core 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/Root.js +2 -2
- package/esm/RootRenderer.js +4 -3
- package/esm/SchemaRenderer.js +5 -2
- package/esm/Scoped.d.ts +6 -0
- package/esm/Scoped.js +45 -8
- package/esm/StatusScoped.js +2 -2
- package/esm/WithRootStore.js +2 -2
- package/esm/WithStore.js +4 -6
- package/esm/actions/Action.js +2 -2
- package/esm/actions/AjaxAction.js +2 -2
- package/esm/actions/BreakAction.js +2 -2
- package/esm/actions/BroadcastAction.js +2 -2
- package/esm/actions/CmptAction.js +2 -2
- package/esm/actions/ContinueAction.js +2 -2
- package/esm/actions/CopyAction.js +2 -2
- package/esm/actions/CustomAction.js +3 -3
- package/esm/actions/DialogAction.js +2 -2
- package/esm/actions/DrawerAction.js +2 -2
- package/esm/actions/EmailAction.js +2 -2
- package/esm/actions/LinkAction.js +10 -5
- package/esm/actions/LoopAction.js +2 -2
- package/esm/actions/PageAction.js +2 -2
- package/esm/actions/ParallelAction.js +2 -2
- package/esm/actions/StatusAction.js +2 -2
- package/esm/actions/SwitchAction.js +2 -2
- package/esm/actions/ToastAction.js +2 -2
- package/esm/components/CustomStyle.d.ts +1 -2
- package/esm/components/CustomStyle.js +20 -7
- package/esm/components/ErrorBoundary.js +2 -2
- package/esm/components/LazyComponent.js +2 -2
- package/esm/components/Overlay.js +11 -9
- package/esm/components/PopOver.js +7 -5
- package/esm/env.d.ts +4 -0
- package/esm/env.js +2 -2
- package/esm/envOverwrite.js +2 -2
- package/esm/factory.js +15 -2
- package/esm/index.d.ts +2 -2
- package/esm/index.js +13 -8
- package/esm/locale.js +2 -2
- package/esm/polyfills.js +2 -2
- package/esm/renderers/Form.d.ts +4 -3
- package/esm/renderers/Form.js +94 -42
- package/esm/renderers/Item.d.ts +1 -0
- package/esm/renderers/Item.js +15 -16
- package/esm/renderers/Options.d.ts +5 -0
- package/esm/renderers/Options.js +27 -10
- package/esm/renderers/Placeholder.js +2 -2
- package/esm/renderers/builtin.js +2 -2
- package/esm/renderers/register.js +2 -2
- package/esm/renderers/wrapControl.js +37 -29
- package/esm/store/app.js +3 -3
- package/esm/store/combo.d.ts +48 -24
- package/esm/store/combo.js +2 -2
- package/esm/store/crud.js +2 -2
- package/esm/store/form.d.ts +20 -10
- package/esm/store/form.js +2 -2
- package/esm/store/formItem.d.ts +2 -1
- package/esm/store/formItem.js +4 -3
- package/esm/store/iRenderer.js +5 -3
- package/esm/store/index.js +2 -2
- package/esm/store/list.js +2 -2
- package/esm/store/manager.js +2 -2
- package/esm/store/modal.js +2 -2
- package/esm/store/node.js +2 -2
- package/esm/store/pagination.js +2 -2
- package/esm/store/root.js +3 -3
- package/esm/store/service.js +2 -2
- package/esm/store/status.js +2 -2
- package/esm/store/table.d.ts +42 -20
- package/esm/store/table.js +33 -19
- package/esm/store/table2.js +2 -2
- package/esm/theme.js +2 -2
- package/esm/utils/Animation.js +2 -2
- package/esm/utils/ColorScale.js +2 -2
- package/esm/utils/DataSchema.js +2 -2
- package/esm/utils/DataScope.js +2 -2
- package/esm/utils/RootClose.js +2 -2
- package/esm/utils/SimpleMap.js +2 -2
- package/esm/utils/api.js +2 -2
- package/esm/utils/arraySlice.js +2 -2
- package/esm/utils/attachmentAdpator.js +2 -2
- package/esm/utils/autobind.js +2 -2
- package/esm/utils/browser.js +2 -2
- package/esm/utils/columnsSplit.js +2 -2
- package/esm/utils/concatData.js +2 -2
- package/esm/utils/dataMapping.js +2 -2
- package/esm/utils/date.js +2 -2
- package/esm/utils/debug.js +2 -2
- package/esm/utils/decodeEntity.js +2 -2
- package/esm/utils/dom.js +2 -2
- package/esm/utils/errors.js +2 -2
- package/esm/utils/escapeHtml.js +2 -2
- package/esm/utils/filter-schema.js +2 -2
- package/esm/utils/filter.js +2 -2
- package/esm/utils/formatDuration.js +2 -2
- package/esm/utils/formula.js +2 -2
- package/esm/utils/getVariable.js +2 -2
- package/esm/utils/grammar.js +2 -2
- package/esm/utils/handleAction.js +2 -2
- package/esm/utils/helper.d.ts +8 -1
- package/esm/utils/helper.js +28 -10
- package/esm/utils/highlight.js +4 -3
- package/esm/utils/icon.js +2 -2
- package/esm/utils/image.js +2 -2
- package/esm/utils/index.d.ts +1 -0
- package/esm/utils/isPureVariable.js +2 -2
- package/esm/utils/json-schema-2-amis-schema.js +2 -2
- package/esm/utils/keyToPath.js +2 -2
- package/esm/utils/labelToString.d.ts +1 -0
- package/esm/utils/labelToString.js +38 -0
- package/esm/utils/makeSorter.js +2 -2
- package/esm/utils/math.js +2 -2
- package/esm/utils/memoryParse.js +2 -2
- package/esm/utils/normalizeLink.js +2 -2
- package/esm/utils/normalizeOptions.js +2 -2
- package/esm/utils/object.js +2 -2
- package/esm/utils/offset.js +2 -2
- package/esm/utils/offsetParent.js +2 -2
- package/esm/utils/optionValueCompare.js +2 -2
- package/esm/utils/position.js +2 -2
- package/esm/utils/prettyBytes.js +2 -2
- package/esm/utils/renderer-event.js +2 -2
- package/esm/utils/replaceText.js +10 -12
- package/esm/utils/resize-sensor.js +2 -2
- package/esm/utils/resolveCondition.js +2 -2
- package/esm/utils/resolveVariable.js +2 -2
- package/esm/utils/resolveVariableAndFilter.js +2 -2
- package/esm/utils/resolveVariableAndFilterForAsync.js +2 -2
- package/esm/utils/scrollPosition.js +2 -2
- package/esm/utils/string2regExp.d.ts +1 -1
- package/esm/utils/string2regExp.js +5 -4
- package/esm/utils/stripNumber.js +2 -2
- package/esm/utils/style-helper.d.ts +24 -5
- package/esm/utils/style-helper.js +47 -17
- package/esm/utils/style.js +2 -2
- package/esm/utils/toNumber.js +2 -2
- package/esm/utils/tokenize.d.ts +1 -0
- package/esm/utils/tokenize.js +11 -4
- package/esm/utils/tpl-builtin.js +2 -2
- package/esm/utils/tpl-lodash.js +2 -2
- package/esm/utils/tpl.js +7 -9
- package/esm/utils/uncontrollable.js +2 -2
- package/esm/utils/validateId.d.ts +16 -0
- package/esm/utils/validateId.js +154 -0
- package/esm/utils/validations.js +17 -9
- package/lib/Root.js +2 -2
- package/lib/RootRenderer.d.ts +1 -1
- package/lib/RootRenderer.js +4 -3
- package/lib/SchemaRenderer.js +5 -2
- package/lib/Scoped.d.ts +6 -0
- package/lib/Scoped.js +45 -7
- package/lib/StatusScoped.js +2 -2
- package/lib/WithRootStore.js +2 -2
- package/lib/WithStore.js +4 -6
- package/lib/actions/Action.js +2 -2
- package/lib/actions/AjaxAction.js +2 -2
- package/lib/actions/BreakAction.js +2 -2
- package/lib/actions/BroadcastAction.js +2 -2
- package/lib/actions/CmptAction.js +2 -2
- package/lib/actions/ContinueAction.js +2 -2
- package/lib/actions/CopyAction.js +2 -2
- package/lib/actions/CustomAction.js +3 -3
- package/lib/actions/DialogAction.js +2 -2
- package/lib/actions/DrawerAction.js +2 -2
- package/lib/actions/EmailAction.js +2 -2
- package/lib/actions/LinkAction.js +10 -5
- package/lib/actions/LoopAction.js +2 -2
- package/lib/actions/PageAction.js +2 -2
- package/lib/actions/ParallelAction.js +2 -2
- package/lib/actions/StatusAction.js +2 -2
- package/lib/actions/SwitchAction.js +2 -2
- package/lib/actions/ToastAction.js +2 -2
- package/lib/components/CustomStyle.d.ts +1 -2
- package/lib/components/CustomStyle.js +20 -7
- package/lib/components/ErrorBoundary.js +2 -2
- package/lib/components/LazyComponent.js +2 -2
- package/lib/components/Overlay.js +10 -8
- package/lib/components/PopOver.js +7 -5
- package/lib/env.d.ts +4 -0
- package/lib/env.js +2 -2
- package/lib/envOverwrite.js +2 -2
- package/lib/factory.js +15 -2
- package/lib/index.d.ts +2 -2
- package/lib/index.js +16 -5
- package/lib/locale.js +2 -2
- package/lib/polyfills.js +2 -2
- package/lib/renderers/Form.d.ts +4 -3
- package/lib/renderers/Form.js +94 -42
- package/lib/renderers/Item.d.ts +1 -0
- package/lib/renderers/Item.js +15 -16
- package/lib/renderers/Options.d.ts +5 -0
- package/lib/renderers/Options.js +27 -10
- package/lib/renderers/Placeholder.js +2 -2
- package/lib/renderers/builtin.js +2 -2
- package/lib/renderers/register.js +2 -2
- package/lib/renderers/wrapControl.js +36 -28
- package/lib/store/app.js +3 -3
- package/lib/store/combo.d.ts +72 -49
- package/lib/store/combo.js +2 -2
- package/lib/store/crud.js +2 -2
- package/lib/store/form.d.ts +30 -21
- package/lib/store/form.js +2 -2
- package/lib/store/formItem.d.ts +2 -1
- package/lib/store/formItem.js +4 -3
- package/lib/store/iRenderer.js +5 -3
- package/lib/store/index.js +2 -2
- package/lib/store/list.js +2 -2
- package/lib/store/manager.js +2 -2
- package/lib/store/modal.js +2 -2
- package/lib/store/node.js +2 -2
- package/lib/store/pagination.js +2 -2
- package/lib/store/root.js +3 -3
- package/lib/store/service.js +2 -2
- package/lib/store/status.js +2 -2
- package/lib/store/table.d.ts +62 -41
- package/lib/store/table.js +33 -19
- package/lib/store/table2.js +2 -2
- package/lib/theme.js +2 -2
- package/lib/utils/Animation.js +2 -2
- package/lib/utils/ColorScale.js +2 -2
- package/lib/utils/DataSchema.js +2 -2
- package/lib/utils/DataScope.js +2 -2
- package/lib/utils/RootClose.js +2 -2
- package/lib/utils/SimpleMap.js +2 -2
- package/lib/utils/api.js +2 -2
- package/lib/utils/arraySlice.js +2 -2
- package/lib/utils/attachmentAdpator.js +2 -2
- package/lib/utils/autobind.js +2 -2
- package/lib/utils/browser.js +2 -2
- package/lib/utils/columnsSplit.js +2 -2
- package/lib/utils/concatData.js +2 -2
- package/lib/utils/dataMapping.js +2 -2
- package/lib/utils/date.js +2 -2
- package/lib/utils/debug.js +2 -2
- package/lib/utils/decodeEntity.js +2 -2
- package/lib/utils/dom.js +2 -2
- package/lib/utils/errors.js +2 -2
- package/lib/utils/escapeHtml.js +2 -2
- package/lib/utils/filter-schema.js +2 -2
- package/lib/utils/filter.js +2 -2
- package/lib/utils/formatDuration.js +2 -2
- package/lib/utils/formula.js +2 -2
- package/lib/utils/getVariable.js +2 -2
- package/lib/utils/grammar.js +2 -2
- package/lib/utils/handleAction.js +2 -2
- package/lib/utils/helper.d.ts +8 -1
- package/lib/utils/helper.js +29 -8
- package/lib/utils/highlight.js +4 -3
- package/lib/utils/icon.js +2 -2
- package/lib/utils/image.js +2 -2
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/isPureVariable.js +2 -2
- package/lib/utils/json-schema-2-amis-schema.js +2 -2
- package/lib/utils/keyToPath.js +2 -2
- package/lib/utils/labelToString.d.ts +1 -0
- package/lib/utils/labelToString.js +46 -0
- package/lib/utils/makeSorter.js +2 -2
- package/lib/utils/math.js +2 -2
- package/lib/utils/memoryParse.js +2 -2
- package/lib/utils/normalizeLink.js +2 -2
- package/lib/utils/normalizeOptions.js +2 -2
- package/lib/utils/object.js +2 -2
- package/lib/utils/offset.js +2 -2
- package/lib/utils/offsetParent.js +2 -2
- package/lib/utils/optionValueCompare.js +2 -2
- package/lib/utils/position.js +2 -2
- package/lib/utils/prettyBytes.js +2 -2
- package/lib/utils/renderer-event.js +2 -2
- package/lib/utils/replaceText.js +9 -15
- package/lib/utils/resize-sensor.js +2 -2
- package/lib/utils/resolveCondition.js +2 -2
- package/lib/utils/resolveVariable.js +2 -2
- package/lib/utils/resolveVariableAndFilter.js +2 -2
- package/lib/utils/resolveVariableAndFilterForAsync.js +2 -2
- package/lib/utils/scrollPosition.js +2 -2
- package/lib/utils/string2regExp.d.ts +1 -1
- package/lib/utils/string2regExp.js +5 -4
- package/lib/utils/stripNumber.js +2 -2
- package/lib/utils/style-helper.d.ts +24 -5
- package/lib/utils/style-helper.js +47 -17
- package/lib/utils/style.js +2 -2
- package/lib/utils/toNumber.js +2 -2
- package/lib/utils/tokenize.d.ts +1 -0
- package/lib/utils/tokenize.js +11 -3
- package/lib/utils/tpl-builtin.js +2 -2
- package/lib/utils/tpl-lodash.js +2 -2
- package/lib/utils/tpl.js +6 -8
- package/lib/utils/uncontrollable.js +2 -2
- package/lib/utils/validateId.d.ts +16 -0
- package/lib/utils/validateId.js +160 -0
- package/lib/utils/validations.js +17 -9
- package/package.json +3 -3
- package/LICENSE +0 -201
package/esm/store/table.d.ts
CHANGED
|
@@ -301,6 +301,7 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
301
301
|
formsRef: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IArrayType<import("mobx-state-tree").IType<any, any, any>>, [undefined]>;
|
|
302
302
|
maxKeepItemSelectionLength: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
303
303
|
keepItemSelectionOnPageChange: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
304
|
+
maxItemSelectionLength: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
304
305
|
exportExcelLoading: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
305
306
|
searchFormExpanded: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
|
|
306
307
|
lazyRenderAfter: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
@@ -334,6 +335,7 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
334
335
|
getDialogScoped(): import("..").IScopedContext | null;
|
|
335
336
|
getDrawerScoped(): import("..").IScopedContext | null;
|
|
336
337
|
} & {
|
|
338
|
+
getSelectionUpperLimit: () => number;
|
|
337
339
|
readonly columnsData: ({
|
|
338
340
|
label: any;
|
|
339
341
|
type: string;
|
|
@@ -573,7 +575,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
573
575
|
} & {
|
|
574
576
|
focus: () => void;
|
|
575
577
|
blur: () => void;
|
|
576
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
578
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
579
|
+
name?: string | undefined;
|
|
577
580
|
extraName?: string | undefined;
|
|
578
581
|
required?: boolean | undefined;
|
|
579
582
|
unique?: boolean | undefined;
|
|
@@ -1082,7 +1085,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
1082
1085
|
} & {
|
|
1083
1086
|
focus: () => void;
|
|
1084
1087
|
blur: () => void;
|
|
1085
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
1088
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
1089
|
+
name?: string | undefined;
|
|
1086
1090
|
extraName?: string | undefined;
|
|
1087
1091
|
required?: boolean | undefined;
|
|
1088
1092
|
unique?: boolean | undefined;
|
|
@@ -1595,7 +1599,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
1595
1599
|
} & {
|
|
1596
1600
|
focus: () => void;
|
|
1597
1601
|
blur: () => void;
|
|
1598
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
1602
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
1603
|
+
name?: string | undefined;
|
|
1599
1604
|
extraName?: string | undefined;
|
|
1600
1605
|
required?: boolean | undefined;
|
|
1601
1606
|
unique?: boolean | undefined;
|
|
@@ -2104,7 +2109,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
2104
2109
|
} & {
|
|
2105
2110
|
focus: () => void;
|
|
2106
2111
|
blur: () => void;
|
|
2107
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
2112
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
2113
|
+
name?: string | undefined;
|
|
2108
2114
|
extraName?: string | undefined;
|
|
2109
2115
|
required?: boolean | undefined;
|
|
2110
2116
|
unique?: boolean | undefined;
|
|
@@ -2622,7 +2628,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
2622
2628
|
} & {
|
|
2623
2629
|
focus: () => void;
|
|
2624
2630
|
blur: () => void;
|
|
2625
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
2631
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
2632
|
+
name?: string | undefined;
|
|
2626
2633
|
extraName?: string | undefined;
|
|
2627
2634
|
required?: boolean | undefined;
|
|
2628
2635
|
unique?: boolean | undefined;
|
|
@@ -3131,7 +3138,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
3131
3138
|
} & {
|
|
3132
3139
|
focus: () => void;
|
|
3133
3140
|
blur: () => void;
|
|
3134
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
3141
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
3142
|
+
name?: string | undefined;
|
|
3135
3143
|
extraName?: string | undefined;
|
|
3136
3144
|
required?: boolean | undefined;
|
|
3137
3145
|
unique?: boolean | undefined;
|
|
@@ -3644,7 +3652,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
3644
3652
|
} & {
|
|
3645
3653
|
focus: () => void;
|
|
3646
3654
|
blur: () => void;
|
|
3647
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
3655
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
3656
|
+
name?: string | undefined;
|
|
3648
3657
|
extraName?: string | undefined;
|
|
3649
3658
|
required?: boolean | undefined;
|
|
3650
3659
|
unique?: boolean | undefined;
|
|
@@ -4153,7 +4162,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
4153
4162
|
} & {
|
|
4154
4163
|
focus: () => void;
|
|
4155
4164
|
blur: () => void;
|
|
4156
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
4165
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
4166
|
+
name?: string | undefined;
|
|
4157
4167
|
extraName?: string | undefined;
|
|
4158
4168
|
required?: boolean | undefined;
|
|
4159
4169
|
unique?: boolean | undefined;
|
|
@@ -4666,7 +4676,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
4666
4676
|
} & {
|
|
4667
4677
|
focus: () => void;
|
|
4668
4678
|
blur: () => void;
|
|
4669
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
4679
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
4680
|
+
name?: string | undefined;
|
|
4670
4681
|
extraName?: string | undefined;
|
|
4671
4682
|
required?: boolean | undefined;
|
|
4672
4683
|
unique?: boolean | undefined;
|
|
@@ -5175,7 +5186,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
5175
5186
|
} & {
|
|
5176
5187
|
focus: () => void;
|
|
5177
5188
|
blur: () => void;
|
|
5178
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
5189
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
5190
|
+
name?: string | undefined;
|
|
5179
5191
|
extraName?: string | undefined;
|
|
5180
5192
|
required?: boolean | undefined;
|
|
5181
5193
|
unique?: boolean | undefined;
|
|
@@ -5807,7 +5819,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
5807
5819
|
} & {
|
|
5808
5820
|
focus: () => void;
|
|
5809
5821
|
blur: () => void;
|
|
5810
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
5822
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
5823
|
+
name?: string | undefined;
|
|
5811
5824
|
extraName?: string | undefined;
|
|
5812
5825
|
required?: boolean | undefined;
|
|
5813
5826
|
unique?: boolean | undefined;
|
|
@@ -6316,7 +6329,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
6316
6329
|
} & {
|
|
6317
6330
|
focus: () => void;
|
|
6318
6331
|
blur: () => void;
|
|
6319
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
6332
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
6333
|
+
name?: string | undefined;
|
|
6320
6334
|
extraName?: string | undefined;
|
|
6321
6335
|
required?: boolean | undefined;
|
|
6322
6336
|
unique?: boolean | undefined;
|
|
@@ -6829,7 +6843,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
6829
6843
|
} & {
|
|
6830
6844
|
focus: () => void;
|
|
6831
6845
|
blur: () => void;
|
|
6832
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
6846
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
6847
|
+
name?: string | undefined;
|
|
6833
6848
|
extraName?: string | undefined;
|
|
6834
6849
|
required?: boolean | undefined;
|
|
6835
6850
|
unique?: boolean | undefined;
|
|
@@ -7338,7 +7353,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
7338
7353
|
} & {
|
|
7339
7354
|
focus: () => void;
|
|
7340
7355
|
blur: () => void;
|
|
7341
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
7356
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
7357
|
+
name?: string | undefined;
|
|
7342
7358
|
extraName?: string | undefined;
|
|
7343
7359
|
required?: boolean | undefined;
|
|
7344
7360
|
unique?: boolean | undefined;
|
|
@@ -7856,7 +7872,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
7856
7872
|
} & {
|
|
7857
7873
|
focus: () => void;
|
|
7858
7874
|
blur: () => void;
|
|
7859
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
7875
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
7876
|
+
name?: string | undefined;
|
|
7860
7877
|
extraName?: string | undefined;
|
|
7861
7878
|
required?: boolean | undefined;
|
|
7862
7879
|
unique?: boolean | undefined;
|
|
@@ -8365,7 +8382,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
8365
8382
|
} & {
|
|
8366
8383
|
focus: () => void;
|
|
8367
8384
|
blur: () => void;
|
|
8368
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
8385
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
8386
|
+
name?: string | undefined;
|
|
8369
8387
|
extraName?: string | undefined;
|
|
8370
8388
|
required?: boolean | undefined;
|
|
8371
8389
|
unique?: boolean | undefined;
|
|
@@ -8878,7 +8896,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
8878
8896
|
} & {
|
|
8879
8897
|
focus: () => void;
|
|
8880
8898
|
blur: () => void;
|
|
8881
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
8899
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
8900
|
+
name?: string | undefined;
|
|
8882
8901
|
extraName?: string | undefined;
|
|
8883
8902
|
required?: boolean | undefined;
|
|
8884
8903
|
unique?: boolean | undefined;
|
|
@@ -9387,7 +9406,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
9387
9406
|
} & {
|
|
9388
9407
|
focus: () => void;
|
|
9389
9408
|
blur: () => void;
|
|
9390
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
9409
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
9410
|
+
name?: string | undefined;
|
|
9391
9411
|
extraName?: string | undefined;
|
|
9392
9412
|
required?: boolean | undefined;
|
|
9393
9413
|
unique?: boolean | undefined;
|
|
@@ -9900,7 +9920,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
9900
9920
|
} & {
|
|
9901
9921
|
focus: () => void;
|
|
9902
9922
|
blur: () => void;
|
|
9903
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
9923
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
9924
|
+
name?: string | undefined;
|
|
9904
9925
|
extraName?: string | undefined;
|
|
9905
9926
|
required?: boolean | undefined;
|
|
9906
9927
|
unique?: boolean | undefined;
|
|
@@ -10409,7 +10430,8 @@ export declare const TableStore: import("mobx-state-tree").IModelType<{
|
|
|
10409
10430
|
} & {
|
|
10410
10431
|
focus: () => void;
|
|
10411
10432
|
blur: () => void;
|
|
10412
|
-
config: ({ extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
10433
|
+
config: ({ name, extraName, required, unique, value, isValueSchemaExp, rules, messages, delimiter, multiple, valueField, labelField, joinValues, extractValue, type, id, selectFirst, autoFill, clearValueOnHidden, validateApi, maxLength, minLength, validateOnChange, label, inputGroupControl, pagination }: {
|
|
10434
|
+
name?: string | undefined;
|
|
10413
10435
|
extraName?: string | undefined;
|
|
10414
10436
|
required?: boolean | undefined;
|
|
10415
10437
|
unique?: boolean | undefined;
|
package/esm/store/table.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* amis-core v6.
|
|
3
|
-
* Copyright 2018-
|
|
2
|
+
* amis-core v6.1.0
|
|
3
|
+
* Copyright 2018-2024 fex
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { __assign, __rest, __spreadArray, __read, __values } from 'tslib';
|
|
@@ -253,11 +253,9 @@ var Row = types
|
|
|
253
253
|
get isCheckAvaiableOnClick() {
|
|
254
254
|
var _a;
|
|
255
255
|
var table = getParent(self, self.depth * 2);
|
|
256
|
-
var
|
|
257
|
-
var selectionUpperLimit = table === null || table === void 0 ? void 0 : table.maxKeepItemSelectionLength;
|
|
256
|
+
var selectionUpperLimit = table.getSelectionUpperLimit();
|
|
258
257
|
// 如果未做配置,或者配置不合法直接通过检查
|
|
259
|
-
if (!
|
|
260
|
-
!Number.isInteger(selectionUpperLimit) ||
|
|
258
|
+
if (!Number.isInteger(selectionUpperLimit) ||
|
|
261
259
|
selectionUpperLimit === Infinity) {
|
|
262
260
|
return true;
|
|
263
261
|
}
|
|
@@ -387,6 +385,7 @@ var TableStore = iRendererStore
|
|
|
387
385
|
formsRef: types.optional(types.array(types.frozen()), []),
|
|
388
386
|
maxKeepItemSelectionLength: Infinity,
|
|
389
387
|
keepItemSelectionOnPageChange: false,
|
|
388
|
+
maxItemSelectionLength: Infinity,
|
|
390
389
|
// 导出 Excel 按钮的 loading 状态
|
|
391
390
|
exportExcelLoading: false,
|
|
392
391
|
searchFormExpanded: false,
|
|
@@ -572,7 +571,17 @@ var TableStore = iRendererStore
|
|
|
572
571
|
function getSearchableColumns() {
|
|
573
572
|
return self.columns.filter(function (column) { return column.searchable; });
|
|
574
573
|
}
|
|
574
|
+
function getSelectionUpperLimit() {
|
|
575
|
+
var keep = self.keepItemSelectionOnPageChange;
|
|
576
|
+
var selectionUpperLimit = keep
|
|
577
|
+
? self.maxKeepItemSelectionLength !== Infinity
|
|
578
|
+
? self.maxKeepItemSelectionLength
|
|
579
|
+
: self.maxItemSelectionLength
|
|
580
|
+
: self.maxItemSelectionLength;
|
|
581
|
+
return selectionUpperLimit;
|
|
582
|
+
}
|
|
575
583
|
return {
|
|
584
|
+
getSelectionUpperLimit: getSelectionUpperLimit,
|
|
576
585
|
get columnsData() {
|
|
577
586
|
return getColumnsExceptBuiltinTypes();
|
|
578
587
|
},
|
|
@@ -605,6 +614,10 @@ var TableStore = iRendererStore
|
|
|
605
614
|
return !!self.selectedRows.length;
|
|
606
615
|
},
|
|
607
616
|
get allChecked() {
|
|
617
|
+
var selectionUpperLimit = getSelectionUpperLimit();
|
|
618
|
+
if (selectionUpperLimit !== Infinity) {
|
|
619
|
+
return self.isSelectionThresholdReached;
|
|
620
|
+
}
|
|
608
621
|
// 只要selectedRows中包含checkableRows中的全部数据,就认为是全选
|
|
609
622
|
return self.checkableRows.every(function (item) {
|
|
610
623
|
return self.selectedRows.includes(item);
|
|
@@ -650,8 +663,8 @@ var TableStore = iRendererStore
|
|
|
650
663
|
get isSelectionThresholdReached() {
|
|
651
664
|
var _a, _b;
|
|
652
665
|
var selectedLength = (_b = (_a = self.data) === null || _a === void 0 ? void 0 : _a.selectedItems) === null || _b === void 0 ? void 0 : _b.length;
|
|
653
|
-
var maxLength =
|
|
654
|
-
if (!self.data ||
|
|
666
|
+
var maxLength = getSelectionUpperLimit();
|
|
667
|
+
if (!self.data || maxLength === Infinity) {
|
|
655
668
|
return false;
|
|
656
669
|
}
|
|
657
670
|
return maxLength <= selectedLength;
|
|
@@ -798,6 +811,8 @@ var TableStore = iRendererStore
|
|
|
798
811
|
config.keepItemSelectionOnPageChange !== undefined &&
|
|
799
812
|
(self.keepItemSelectionOnPageChange =
|
|
800
813
|
config.keepItemSelectionOnPageChange);
|
|
814
|
+
config.maxItemSelectionLength !== undefined &&
|
|
815
|
+
(self.maxItemSelectionLength = config.maxItemSelectionLength);
|
|
801
816
|
config.exportExcelLoading !== undefined &&
|
|
802
817
|
(self.exportExcelLoading = config.exportExcelLoading);
|
|
803
818
|
config.loading !== undefined && (self.loading = config.loading);
|
|
@@ -1118,10 +1133,10 @@ var TableStore = iRendererStore
|
|
|
1118
1133
|
function updateSelected(selected, valueField) {
|
|
1119
1134
|
self.selectedRows.clear();
|
|
1120
1135
|
selected.forEach(function (item) {
|
|
1121
|
-
var resolved = self.rows
|
|
1136
|
+
var resolved = findTree(self.rows, function (a) { return a.pristine === item; });
|
|
1122
1137
|
// 先严格比较,
|
|
1123
1138
|
if (!resolved) {
|
|
1124
|
-
resolved = self.rows
|
|
1139
|
+
resolved = findTree(self.rows, function (a) {
|
|
1125
1140
|
var selectValue = item[valueField || 'value'];
|
|
1126
1141
|
var itemValue = a.pristine[valueField || 'value'];
|
|
1127
1142
|
return selectValue === itemValue;
|
|
@@ -1129,7 +1144,7 @@ var TableStore = iRendererStore
|
|
|
1129
1144
|
}
|
|
1130
1145
|
// 再宽松比较
|
|
1131
1146
|
if (!resolved) {
|
|
1132
|
-
resolved = self.rows
|
|
1147
|
+
resolved = findTree(self.rows, function (a) {
|
|
1133
1148
|
var selectValue = item[valueField || 'value'];
|
|
1134
1149
|
var itemValue = a.pristine[valueField || 'value'];
|
|
1135
1150
|
return selectValue == itemValue;
|
|
@@ -1141,11 +1156,9 @@ var TableStore = iRendererStore
|
|
|
1141
1156
|
}
|
|
1142
1157
|
function getSelectedRows() {
|
|
1143
1158
|
var _a;
|
|
1144
|
-
var maxLength = self.
|
|
1145
|
-
var keep = self.keepItemSelectionOnPageChange;
|
|
1159
|
+
var maxLength = self.getSelectionUpperLimit();
|
|
1146
1160
|
var selectedItems = (_a = self.data) === null || _a === void 0 ? void 0 : _a.selectedItems;
|
|
1147
|
-
if (
|
|
1148
|
-
maxLength &&
|
|
1161
|
+
if (maxLength !== Infinity &&
|
|
1149
1162
|
selectedItems &&
|
|
1150
1163
|
maxLength >= selectedItems.length) {
|
|
1151
1164
|
var restCheckableRows = self.checkableRows.filter(function (item) { return !item.checked; });
|
|
@@ -1260,10 +1273,10 @@ var TableStore = iRendererStore
|
|
|
1260
1273
|
if (!self.data) {
|
|
1261
1274
|
return;
|
|
1262
1275
|
}
|
|
1263
|
-
var maxLength = self.
|
|
1276
|
+
var maxLength = self.getSelectionUpperLimit();
|
|
1264
1277
|
var selectedItems = self.data.selectedItems;
|
|
1265
1278
|
self.selectedRows.map(function (item) { return item.setCheckdisable(false); });
|
|
1266
|
-
if (maxLength && maxLength <= selectedItems.length) {
|
|
1279
|
+
if (maxLength !== Infinity && maxLength <= selectedItems.length) {
|
|
1267
1280
|
self.unSelectedRows.map(function (item) { return !item.checked && item.setCheckdisable(true); });
|
|
1268
1281
|
}
|
|
1269
1282
|
else {
|
|
@@ -1402,10 +1415,11 @@ var TableStore = iRendererStore
|
|
|
1402
1415
|
}
|
|
1403
1416
|
function getPersistDataKey(columns) {
|
|
1404
1417
|
// 这里的columns使用除了__开头的所有列
|
|
1405
|
-
// sort保证存储和读取的key值保持一致
|
|
1406
1418
|
return (location.pathname +
|
|
1407
1419
|
self.path +
|
|
1408
|
-
|
|
1420
|
+
// 不能 sort 因为原始列的顺序设计器是可能改变的,此时如果缓存了打开会失效
|
|
1421
|
+
// 还是缓存的顺序,不符合用户调整列顺序的预期
|
|
1422
|
+
columns.map(function (item, index) { return item.name || item.label || index; }).join('-'));
|
|
1409
1423
|
}
|
|
1410
1424
|
function setSearchFormExpanded(value) {
|
|
1411
1425
|
self.searchFormExpanded = !!value;
|
package/esm/store/table2.js
CHANGED
package/esm/theme.js
CHANGED
package/esm/utils/Animation.js
CHANGED
package/esm/utils/ColorScale.js
CHANGED
package/esm/utils/DataSchema.js
CHANGED
package/esm/utils/DataScope.js
CHANGED
package/esm/utils/RootClose.js
CHANGED
package/esm/utils/SimpleMap.js
CHANGED
package/esm/utils/api.js
CHANGED
package/esm/utils/arraySlice.js
CHANGED
package/esm/utils/autobind.js
CHANGED
package/esm/utils/browser.js
CHANGED
package/esm/utils/concatData.js
CHANGED
package/esm/utils/dataMapping.js
CHANGED
package/esm/utils/date.js
CHANGED
package/esm/utils/debug.js
CHANGED
package/esm/utils/dom.js
CHANGED
package/esm/utils/errors.js
CHANGED
package/esm/utils/escapeHtml.js
CHANGED
package/esm/utils/filter.js
CHANGED
package/esm/utils/formula.js
CHANGED
package/esm/utils/getVariable.js
CHANGED
package/esm/utils/grammar.js
CHANGED