aboutsummaryrefslogtreecommitdiff
path: root/src/client/documents
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/documents')
-rw-r--r--src/client/documents/Documents.ts35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/client/documents/Documents.ts b/src/client/documents/Documents.ts
index 11b5f9f08..d61e4b3e9 100644
--- a/src/client/documents/Documents.ts
+++ b/src/client/documents/Documents.ts
@@ -215,6 +215,7 @@ export class DocumentOptions {
_lockedTransform?: BOOLt = new BoolInfo('lock the freeform_panx,freeform_pany and scale parameters of the document so that it be panned/zoomed');
layout?: string | Doc; // default layout string or template document
+ layout_isSvg?: BOOLt = new BoolInfo('whether document decorations and other selections should handle pointerEvents for svg content or use doc bounding box');
layout_keyValue?: STRt = new StrInfo('layout definition for showing keyValue view of document', false);
layout_explainer?: STRt = new StrInfo('explanation displayed at top of a collection to describe its purpose', false);
layout_headerButton?: DOCt = new DocInfo('the (button) Doc to display at the top of a collection.', false);
@@ -569,10 +570,10 @@ export namespace Docs {
childDontRegisterViews: true,
onClick: FollowLinkScript(),
layout_hideLinkAnchors: true,
- _height: 150,
+ _height: 1,
+ _width: 1,
link: '',
link_description: '',
- layout_showCaption: 'link_description',
backgroundColor: 'lightblue', // lightblue is default color for linking dot and link documents text comment area
_dropPropertiesToRemove: new List(['onClick']),
},
@@ -667,7 +668,7 @@ export namespace Docs {
{
// NOTE: this is unused!! ink fields are filled in directly within the InkDocument() method
layout: { view: InkingStroke, dataField: 'stroke' },
- options: { systemIcon: 'BsFillPencilFill' },
+ options: { systemIcon: 'BsFillPencilFill', nativeDimModifiable: true, nativeHeightUnfrozen: true, layout_isSvg: true, layout_forceReflow: true },
},
],
[
@@ -770,7 +771,7 @@ export namespace Docs {
const existing = actualProtos[id] as Doc;
const type = id.replace(suffix, '') as DocumentType;
// get or create prototype of the specified type...
- const target = existing || buildPrototype(type, id);
+ const target = buildPrototype(type, id, existing);
// ...and set it if not undefined (can be undefined only if TemplateMap does not contain
// an entry dedicated to the given DocumentType)
target && PrototypeMap.set(type, target);
@@ -818,7 +819,7 @@ export namespace Docs {
* @param options any value specified in the DocumentOptions object likewise
* becomes the default value for that key for all delegates
*/
- function buildPrototype(type: DocumentType, prototypeId: string): Opt<Doc> {
+ function buildPrototype(type: DocumentType, prototypeId: string, existing?: Doc): Opt<Doc> {
// load template from type
const template = TemplateMap.get(type);
if (!template) {
@@ -844,12 +845,14 @@ export namespace Docs {
layout: layout.view?.LayoutString(layout.dataField),
data: template.data,
};
- Object.entries(options).map(pair => {
- if (typeof pair[1] === 'string' && pair[1].startsWith('@')) {
- (options as any)[pair[0]] = ComputedField.MakeFunction(pair[1].substring(1));
- }
- });
- return Doc.assign(new Doc(prototypeId, true), options as any, undefined, true);
+ Object.entries(options)
+ .filter(pair => typeof pair[1] === 'string' && pair[1].startsWith('@'))
+ .map(pair => {
+ if (!existing || ScriptCast(existing[pair[0]])?.script.originalScript !== pair[1].substring(1)) {
+ (options as any)[pair[0]] = ComputedField.MakeFunction(pair[1].substring(1));
+ }
+ });
+ return Doc.assign(existing ?? new Doc(prototypeId, true), OmitKeys(options, Object.keys(existing ?? {})).omit, undefined, true);
}
}
@@ -1034,6 +1037,10 @@ export namespace Docs {
I[Initializing] = true;
I.type = DocumentType.INK;
I.layout = InkingStroke.LayoutString('stroke');
+ I.nativeDimModifiable = true;
+ I.nativeHeightUnfrozen = true;
+ I.layout_isSvg = true;
+ I.layout_forceReflow = true;
I.layout_fitWidth = false;
I.layout_hideDecorationTitle = true; // don't show title when selected
// I.layout_hideOpenButton = true; // don't show open full screen button when selected
@@ -1402,8 +1409,10 @@ export namespace DocUtils {
link_relationship: linkSettings.link_relationship,
link_description: linkSettings.link_description,
link_autoMoveAnchors: true,
- _layout_showCaption: 'link_description',
- _layout_showTitle: 'link_relationship',
+ _layout_showCaption: '', // removed since they conflict with showing a link with a LinkBox (ie, line, not comparison box)
+ _layout_showTitle: '',
+ // _layout_showCaption: 'link_description',
+ // _layout_showTitle: 'link_relationship',
},
id
),