aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/global/globalScripts.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/global/globalScripts.ts')
-rw-r--r--src/client/views/global/globalScripts.ts153
1 files changed, 112 insertions, 41 deletions
diff --git a/src/client/views/global/globalScripts.ts b/src/client/views/global/globalScripts.ts
index 14f83beb6..496d7482c 100644
--- a/src/client/views/global/globalScripts.ts
+++ b/src/client/views/global/globalScripts.ts
@@ -22,7 +22,8 @@ import { VideoBox } from '../nodes/VideoBox';
import { WebBox } from '../nodes/WebBox';
import { RichTextMenu } from '../nodes/formattedText/RichTextMenu';
import { ImageBox } from '../nodes/ImageBox';
-
+import { NumListCast } from '../../../fields/Doc';
+import { List } from '../../../fields/List';
ScriptingGlobals.add(function IsNoneSelected() {
return SelectionManager.Views.length <= 0;
}, 'are no document selected');
@@ -107,84 +108,146 @@ ScriptingGlobals.add(function toggleOverlay(checkResult?: boolean) {
-ScriptingGlobals.add(function showFreeform(attr: 'flashcards' | 'center' | 'grid' | 'snaplines' | 'clusters' | 'arrange' | 'viewAll' | 'fitOnce' | 'time' | 'docType' | 'color' | 'links' | 'custom1' | 'custom2' | 'custom3'| 'chat', checkResult?: boolean, persist?: boolean, customNumber?: number) {
+ScriptingGlobals.add(function showFreeform(
+ attr: 'flashcards' | 'center' | 'grid' | 'snaplines' | 'clusters' | 'arrange' | 'viewAll' | 'fitOnce' | 'time' | 'docType' | 'color' | 'links' | 'custom1' | 'custom2' | 'custom3' | 'chat' | '1' | '2' | '3' | '4',
+ checkResult?: boolean,
+ persist?: boolean,
+ isDoubleClick?: boolean
+) {
const selected = SelectionManager.Docs.lastElement();
// prettier-ignore
- const map: Map<'flashcards' | 'center' |'grid' | 'snaplines' | 'clusters' | 'arrange'| 'viewAll' | 'fitOnce' | 'time' | 'docType' | 'color' | 'links' | 'custom1' | 'custom2' | 'custom3'| 'chat', { waitForRender?: boolean, checkResult: (doc:Doc) => any; setDoc: (doc:Doc, dv:DocumentView) => void;}> = new Map([
+ const map: Map<'flashcards' | 'center' | 'grid' | 'snaplines' | 'clusters' | 'arrange' | 'viewAll' | 'fitOnce' | 'time' | 'docType' | 'color' | 'links' | 'custom1' | 'custom2' | 'custom3' | 'chat' | '1' | '2' | '3' | '4',
+ {
+ waitForRender?: boolean;
+ checkResult: (doc: Doc) => any;
+ setDoc: (doc: Doc, dv: DocumentView) => void;
+ }> = new Map([
['grid', {
- checkResult: (doc:Doc) => BoolCast(doc?._freeform_backgroundGrid, false),
- setDoc: (doc:Doc,dv:DocumentView) => doc._freeform_backgroundGrid = !doc._freeform_backgroundGrid,
+ checkResult: (doc: Doc) => BoolCast(doc?._freeform_backgroundGrid, false),
+ setDoc: (doc: Doc, dv: DocumentView) => doc._freeform_backgroundGrid = !doc._freeform_backgroundGrid,
}],
['snaplines', {
- checkResult: (doc:Doc) => BoolCast(doc?._freeform_snapLines, false),
- setDoc: (doc:Doc, dv:DocumentView) => doc._freeform_snapLines = !doc._freeform_snapLines,
+ checkResult: (doc: Doc) => BoolCast(doc?._freeform_snapLines, false),
+ setDoc: (doc: Doc, dv: DocumentView) => doc._freeform_snapLines = !doc._freeform_snapLines,
}],
['viewAll', {
- checkResult: (doc:Doc) => BoolCast(doc?._freeform_fitContentsToBox, false),
- setDoc: (doc:Doc,dv:DocumentView) => {
+ checkResult: (doc: Doc) => BoolCast(doc?._freeform_fitContentsToBox, false),
+ setDoc: (doc: Doc, dv: DocumentView) => {
if (persist) doc._freeform_fitContentsToBox = !doc._freeform_fitContentsToBox;
else if (doc._freeform_fitContentsToBox) doc._freeform_fitContentsToBox = undefined;
else (dv.ComponentView as CollectionFreeFormView)?.fitContentOnce();
},
}],
['center', {
- checkResult: (doc:Doc) => BoolCast(doc?._stacking_alignCenter, false),
- setDoc: (doc:Doc,dv:DocumentView) => doc._stacking_alignCenter = !doc._stacking_alignCenter,
+ checkResult: (doc: Doc) => BoolCast(doc?._stacking_alignCenter, false),
+ setDoc: (doc: Doc, dv: DocumentView) => doc._stacking_alignCenter = !doc._stacking_alignCenter,
}],
['clusters', {
- waitForRender: true, // flags that undo batch should terminate after a re-render giving the script the chance to fire
- checkResult: (doc:Doc) => BoolCast(doc?._freeform_useClusters, false),
- setDoc: (doc:Doc,dv:DocumentView) => doc._freeform_useClusters = !doc._freeform_useClusters,
+ waitForRender: true,
+ checkResult: (doc: Doc) => BoolCast(doc?._freeform_useClusters, false),
+ setDoc: (doc: Doc, dv: DocumentView) => doc._freeform_useClusters = !doc._freeform_useClusters,
}],
['flashcards', {
- checkResult: (doc:Doc) => BoolCast(Doc.UserDoc().defaultToFlashcards, false),
- setDoc: (doc:Doc,dv:DocumentView) => Doc.UserDoc().defaultToFlashcards = !Doc.UserDoc().defaultToFlashcards,
+ checkResult: (doc: Doc) => BoolCast(Doc.UserDoc().defaultToFlashcards, false),
+ setDoc: (doc: Doc, dv: DocumentView) => Doc.UserDoc().defaultToFlashcards = !Doc.UserDoc().defaultToFlashcards,
}],
['time', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc:Doc,dv:DocumentView) => doc.cardSort = "time",
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "time",
+ setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort = "time",
}],
['docType', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc:Doc,dv:DocumentView) => doc.cardSort = "type",
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "type",
+ setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort = "type",
}],
['color', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc:Doc,dv:DocumentView) => doc.cardSort = "color",
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "color",
+ setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort = "color",
}],
-
['links', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc:Doc,dv:DocumentView) => doc.cardSort = "links",
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "links",
+ setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort = "links",
}],
-
['custom1', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc, dv) => {
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "custom" && NumCast(doc?.customSortNumber) === 0,
+ setDoc: (doc: Doc, dv: DocumentView) => {
doc.cardSort = "custom";
doc.customSortNumber = 0;
+ doc.visibleGroupNumbers = new List<number>();
}
- }],
-
+ }],
['custom2', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc, dv) => {
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "custom" && NumCast(doc?.customSortNumber) === 1,
+ setDoc: (doc: Doc, dv: DocumentView) => {
doc.cardSort = "custom";
doc.customSortNumber = 1;
- console.log(doc.customSortNumber + " numberrrrrrrr")
- } }],
-
+ doc.visibleGroupNumbers = new List<number>();
+ }
+ }],
['custom3', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc, dv) => {
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "custom" && NumCast(doc?.customSortNumber) === 2,
+ setDoc: (doc: Doc, dv: DocumentView) => {
doc.cardSort = "custom";
doc.customSortNumber = 2;
- } }],
+ doc.visibleGroupNumbers = new List<number>();
+ }
+ }],
['chat', {
- checkResult: (doc:Doc) => StrCast(doc?.cardSort),
- setDoc: (doc:Doc,dv:DocumentView) => doc.cardSort = "chat",
+ checkResult: (doc: Doc) => StrCast(doc?.cardSort) === "chat",
+ setDoc: (doc: Doc, dv: DocumentView) => doc.cardSort = "chat",
+ }],
+ ['1', {
+ checkResult: (doc: Doc) => NumListCast(doc?.visibleGroupNumbers).includes(0),
+ setDoc: (doc: Doc, dv: DocumentView) => {
+ let list = NumListCast(doc.visibleGroupNumbers);
+ if (list.includes(0)) {
+ let newList = new List<number>(list.filter(d => d !== 0));
+ doc.visibleGroupNumbers = newList;
+ } else {
+ list.push(0);
+ doc.visibleGroupNumbers = new List<number>(list);
+ }
+ }
}],
- ]);
+ ['2', {
+ checkResult: (doc: Doc) => NumListCast(doc?.visibleGroupNumbers).includes(1),
+ setDoc: (doc: Doc, dv: DocumentView) => {
+ let list = NumListCast(doc.visibleGroupNumbers);
+ if (list.includes(1)) {
+ let newList = new List<number>(list.filter(d => d !== 1));
+ doc.visibleGroupNumbers = newList;
+ } else {
+ list.push(1);
+ doc.visibleGroupNumbers = new List<number>(list);
+ }
+ }
+ }],
+ ['3', {
+ checkResult: (doc: Doc) => NumListCast(doc?.visibleGroupNumbers).includes(2),
+ setDoc: (doc: Doc, dv: DocumentView) => {
+ let list = NumListCast(doc.visibleGroupNumbers);
+ if (list.includes(2)) {
+ let newList = new List<number>(list.filter(d => d !== 2));
+ doc.visibleGroupNumbers = newList;
+ } else {
+ list.push(2);
+ doc.visibleGroupNumbers = new List<number>(list);
+ }
+ }
+ }],
+ ['4', {
+ checkResult: (doc: Doc) => NumListCast(doc?.visibleGroupNumbers).includes(3),
+ setDoc: (doc: Doc, dv: DocumentView) => {
+ let list = NumListCast(doc.visibleGroupNumbers);
+ if (list.includes(3)) {
+ let newList = new List<number>(list.filter(d => d !== 3));
+ doc.visibleGroupNumbers = newList;
+ } else {
+ list.push(3);
+ doc.visibleGroupNumbers = new List<number>(list);
+ }
+ }
+ }],
+ ]);
if (checkResult) {
return map.get(attr)?.checkResult(selected);
@@ -194,6 +257,14 @@ ScriptingGlobals.add(function showFreeform(attr: 'flashcards' | 'center' | 'grid
setTimeout(() => batch.end(), 100);
});
+
+ScriptingGlobals.add(function isThatCardGroup(n: number){
+ const canvas = SelectionManager.Docs.lastElement();
+ return canvas.customSortNumber == n
+
+
+})
+
// ScriptingGlobals.add(function setCardSortAttr(attr: 'time' | 'docType' | 'color', value: any, checkResult?: boolean) {
// // const editorView = RichTextMenu.Instance?.TextView?.EditorView;
// const selected = SelectionManager.Docs.lastElement();