Export template source from 11bc3ae35b0034c113daca4c35d1b341aa31ef70:examples/local-first/workspaces/language-reader-studio
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
fragment {
|
||||
import interface ReadingNavigation;
|
||||
atom ReadingNavigationObject id "atom:reading:navigation";
|
||||
conform ReadingLibrary as PresentationStateFactory<interface ReadingNavigation> id "reading:navigation:factory" {
|
||||
bind create.call to package LanguageReaderRuntime.createNavigation with {navigation to creation ReadingNavigationObject with {PresentationState from input;};};
|
||||
}
|
||||
conform ReadingNavigationObject as PresentationStateRecord<interface ReadingNavigation,atom ReadingLibrary> id "reading:navigation:metadata" {}
|
||||
conform ReadingNavigationObject as PresentationStateValues<interface ReadingNavigation> id "reading:navigation:copy" {
|
||||
bind copyValues.call to package LanguageReaderRuntime.copyNavigation with {source to interface ReadingNavigation;target to interface ReadingNavigation from input;};
|
||||
}
|
||||
conform ReadingNavigationObject as ReadingNavigation id "reading:navigation:values" {
|
||||
private edge SelectedDocument id "reading:navigation:selected" {atom Self projection document id "reading:navigation:document" optional-one on-delete "detach" public-traversal;interface ReadingDocument projection readers id "reading:document:readers" many on-delete "detach";}
|
||||
private state Cursor id "reading:navigation:cursor" on Self : record {anchor:uint32;focus:uint32;size:uint32;} policy register default {"anchor":0,"focus":0,"size":23};
|
||||
private state Draft id "reading:navigation:draft" on Self : record {title:string;text:string;custom:string;} policy crdt(record {title:string;text:string;custom:string;}) default {"title":"","text":"","custom":""};
|
||||
bind document.resolve to edge SelectedDocument.document.resolve;
|
||||
private state ReadingView id "reading:navigation:reading" on Self : record {displayMode:string;position:uint32;} policy register default {"displayMode":"pages","position":0};
|
||||
bind reading.get to state ReadingView.read;
|
||||
bind reading.set to package LanguageReaderRuntime.setReadingView with {reading to state ReadingView;};
|
||||
private state AnnotationTarget id "reading:navigation:annotation-target" on Self : optional<record {start:uint32;end:uint32;}> policy register default null;
|
||||
private state Viewports id "reading:navigation:viewports" on Self : list<record {client:string;width:uint32;height:uint32;expiresAt:double;}> policy register default [];
|
||||
bind annotationTarget to state AnnotationTarget;
|
||||
bind viewports.get to state Viewports.read;
|
||||
bind reportViewport.call to package LanguageReaderRuntime.reportViewport with {viewports to state Viewports;};
|
||||
bind open.call to package LanguageReaderRuntime.openDocument with {document to edge SelectedDocument.document;cursor to state Cursor;reading to state ReadingView;target to state AnnotationTarget;};
|
||||
bind cursor to state Cursor;
|
||||
private state UI id "reading:navigation:ui" on Self : record {page:string;panel:string;section:string;sourceTab:string;} policy register default {"page":"reading","panel":"","section":"general","sourceTab":"paste"};
|
||||
private state Builder id "reading:navigation:builder" on Self : record {style:string;reveal:string;color:string;options:string;} policy register default {"style":"highlight","reveal":"always","color":"#53796c","options":"{}"};
|
||||
private state Prompts id "reading:navigation:prompts" on Self : record {name:string;change:string;followup:string;generate:string;} policy crdt(record {name:string;change:string;followup:string;generate:string;}) default {"name":"","change":"","followup":"","generate":""};
|
||||
private edge SettingsReader id "reading:navigation:settings-reader" {atom Self projection reader id "reading:navigation:settings-reader" optional-one on-delete "detach" public-traversal;interface ReadingReader projection views id "reading:reader:settings-views" many on-delete "detach";}
|
||||
private edge SettingsFeature id "reading:navigation:settings-feature" {atom Self projection feature id "reading:navigation:settings-feature" optional-one on-delete "detach" public-traversal;interface ReadingFeature projection views id "reading:feature:settings-views" many on-delete "detach";}
|
||||
bind ui to state UI;
|
||||
bind builder to state Builder;
|
||||
bind prompts.get to state Prompts.read;bind prompts.edit to state Prompts.edit;
|
||||
bind settingsReader.resolve to edge SettingsReader.reader.resolve;
|
||||
bind settingsReader.connect to edge SettingsReader.reader.connect;
|
||||
bind settingsReader.disconnect to edge SettingsReader.reader.disconnect;
|
||||
bind settingsFeature.resolve to edge SettingsFeature.feature.resolve;
|
||||
bind settingsFeature.connect to edge SettingsFeature.feature.connect;
|
||||
bind settingsFeature.disconnect to edge SettingsFeature.feature.disconnect;
|
||||
bind selectSettings.call to package LanguageReaderRuntime.selectSettings with {ui to state UI;reader to edge SettingsReader.reader;feature to edge SettingsFeature.feature;document to interface ReadingDocument from input;};
|
||||
bind draft.get to state Draft.read;bind draft.edit to state Draft.edit;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user