aboutsummaryrefslogtreecommitdiff
path: root/src/fields
diff options
context:
space:
mode:
Diffstat (limited to 'src/fields')
-rw-r--r--src/fields/SchemaHeaderField.ts92
-rw-r--r--src/fields/util.ts9
2 files changed, 53 insertions, 48 deletions
diff --git a/src/fields/SchemaHeaderField.ts b/src/fields/SchemaHeaderField.ts
index 3b02d0cfe..1321bc327 100644
--- a/src/fields/SchemaHeaderField.ts
+++ b/src/fields/SchemaHeaderField.ts
@@ -1,60 +1,60 @@
-import { Deserializable } from "../client/util/SerializationHelper";
-import { serializable, primitive } from "serializr";
-import { ObjectField } from "./ObjectField";
-import { Copy, ToScriptString, ToString, OnUpdate } from "./FieldSymbols";
-import { scriptingGlobal } from "../client/util/ScriptingGlobals";
-import { ColumnType } from "../client/views/collections/collectionSchema/CollectionSchemaView";
+import { Deserializable } from '../client/util/SerializationHelper';
+import { serializable, primitive } from 'serializr';
+import { ObjectField } from './ObjectField';
+import { Copy, ToScriptString, ToString, OnUpdate } from './FieldSymbols';
+import { scriptingGlobal } from '../client/util/ScriptingGlobals';
+import { ColumnType } from '../client/views/collections/collectionSchema/CollectionSchemaView';
export const PastelSchemaPalette = new Map<string, string>([
// ["pink1", "#FFB4E8"],
- ["pink2", "#ff9cee"],
- ["pink3", "#ffccf9"],
- ["pink4", "#fcc2ff"],
- ["pink5", "#f6a6ff"],
- ["purple1", "#b28dff"],
- ["purple2", "#c5a3ff"],
- ["purple3", "#d5aaff"],
- ["purple4", "#ecd4ff"],
+ ['pink2', '#ff9cee'],
+ ['pink3', '#ffccf9'],
+ ['pink4', '#fcc2ff'],
+ ['pink5', '#f6a6ff'],
+ ['purple1', '#b28dff'],
+ ['purple2', '#c5a3ff'],
+ ['purple3', '#d5aaff'],
+ ['purple4', '#ecd4ff'],
// ["purple5", "#fb34ff"],
- ["purple6", "#dcd3ff"],
- ["purple7", "#a79aff"],
- ["purple8", "#b5b9ff"],
- ["purple9", "#97a2ff"],
- ["bluegreen1", "#afcbff"],
- ["bluegreen2", "#aff8db"],
- ["bluegreen3", "#c4faf8"],
- ["bluegreen4", "#85e3ff"],
- ["bluegreen5", "#ace7ff"],
+ ['purple6', '#dcd3ff'],
+ ['purple7', '#a79aff'],
+ ['purple8', '#b5b9ff'],
+ ['purple9', '#97a2ff'],
+ ['bluegreen1', '#afcbff'],
+ ['bluegreen2', '#aff8db'],
+ ['bluegreen3', '#c4faf8'],
+ ['bluegreen4', '#85e3ff'],
+ ['bluegreen5', '#ace7ff'],
// ["bluegreen6", "#6eb5ff"],
- ["bluegreen7", "#bffcc6"],
- ["bluegreen8", "#dbffd6"],
- ["yellow1", "#f3ffe3"],
- ["yellow2", "#e7ffac"],
- ["yellow3", "#ffffd1"],
- ["yellow4", "#fff5ba"],
+ ['bluegreen7', '#bffcc6'],
+ ['bluegreen8', '#dbffd6'],
+ ['yellow1', '#f3ffe3'],
+ ['yellow2', '#e7ffac'],
+ ['yellow3', '#ffffd1'],
+ ['yellow4', '#fff5ba'],
// ["red1", "#ffc9de"],
- ["red2", "#ffabab"],
- ["red3", "#ffbebc"],
- ["red4", "#ffcbc1"],
- ["orange1", "#ffd5b3"],
- ["gray", "#f1efeb"]
+ ['red2', '#ffabab'],
+ ['red3', '#ffbebc'],
+ ['red4', '#ffcbc1'],
+ ['orange1', '#ffd5b3'],
+ ['gray', '#f1efeb'],
]);
export const RandomPastel = () => Array.from(PastelSchemaPalette.values())[Math.floor(Math.random() * PastelSchemaPalette.size)];
export const DarkPastelSchemaPalette = new Map<string, string>([
- ["pink2", "#c932b0"],
- ["purple4", "#913ad6"],
- ["bluegreen1", "#3978ed"],
- ["bluegreen7", "#2adb3e"],
- ["bluegreen5", "#21b0eb"],
- ["yellow4", "#edcc0c"],
- ["red2", "#eb3636"],
- ["orange1", "#f2740f"],
+ ['pink2', '#c932b0'],
+ ['purple4', '#913ad6'],
+ ['bluegreen1', '#3978ed'],
+ ['bluegreen7', '#2adb3e'],
+ ['bluegreen5', '#21b0eb'],
+ ['yellow4', '#edcc0c'],
+ ['red2', '#eb3636'],
+ ['orange1', '#f2740f'],
]);
@scriptingGlobal
-@Deserializable("schemaheader")
+@Deserializable('schemaheader')
export class SchemaHeaderField extends ObjectField {
@serializable(primitive())
heading: string;
@@ -69,7 +69,7 @@ export class SchemaHeaderField extends ObjectField {
@serializable(primitive())
desc: boolean | undefined; // boolean determines sort order, undefined when no sort
- constructor(heading: string = "", color: string = RandomPastel(), type?: ColumnType, width?: number, desc?: boolean, collapsed?: boolean) {
+ constructor(heading: string = '', color: string = RandomPastel(), type?: ColumnType, width?: number, desc?: boolean, collapsed?: boolean) {
super();
this.heading = heading;
@@ -111,7 +111,7 @@ export class SchemaHeaderField extends ObjectField {
}
[Copy]() {
- return new SchemaHeaderField(this.heading, this.color, this.type);
+ return new SchemaHeaderField(this.heading, this.color, this.type, this.width, this.desc, this.collapsed);
}
[ToScriptString]() {
@@ -120,4 +120,4 @@ export class SchemaHeaderField extends ObjectField {
[ToString]() {
return `SchemaHeaderField`;
}
-} \ No newline at end of file
+}
diff --git a/src/fields/util.ts b/src/fields/util.ts
index d87bb6656..b3cbbe241 100644
--- a/src/fields/util.ts
+++ b/src/fields/util.ts
@@ -445,8 +445,13 @@ export function updateFunction(target: any, prop: any, value: any, receiver: any
undo: action(() => {
// console.log("undo $add: " + prop, diff.items) // bcz: uncomment to log undo
diff.items.forEach((item: any) => {
- const ind = receiver[prop].indexOf(item.value ? item.value() : item);
- ind !== -1 && receiver[prop].splice(ind, 1);
+ if (item instanceof SchemaHeaderField) {
+ const ind = receiver[prop].findIndex((ele: any) => ele instanceof SchemaHeaderField && ele.heading === item.heading);
+ ind !== -1 && receiver[prop].splice(ind, 1);
+ } else {
+ const ind = receiver[prop].indexOf(item.value ? item.value() : item);
+ ind !== -1 && receiver[prop].splice(ind, 1);
+ }
});
lastValue = ObjectField.MakeCopy(receiver[prop]);
}),