bookish-press 0.7.1 → 0.8.2
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/README.md +8 -0
- package/dist/components/Auth.svelte +29 -39
- package/dist/components/Auth.svelte.d.ts +5 -17
- package/dist/components/BookPreview.svelte +14 -20
- package/dist/components/BookPreview.svelte.d.ts +6 -18
- package/dist/components/Link.svelte +19 -30
- package/dist/components/Link.svelte.d.ts +7 -20
- package/dist/components/app/BookList.svelte +2 -3
- package/dist/components/app/BookList.svelte.d.ts +6 -18
- package/dist/components/app/Button.svelte +12 -8
- package/dist/components/app/Button.svelte.d.ts +10 -23
- package/dist/components/app/Feedback.svelte +4 -4
- package/dist/components/app/Feedback.svelte.d.ts +6 -19
- package/dist/components/app/Head.svelte +2 -2
- package/dist/components/app/Head.svelte.d.ts +6 -19
- package/dist/components/app/Large.svelte +4 -1
- package/dist/components/app/Large.svelte.d.ts +5 -28
- package/dist/components/app/Lead.svelte +4 -1
- package/dist/components/app/Lead.svelte.d.ts +5 -28
- package/dist/components/app/Link.svelte +12 -9
- package/dist/components/app/Link.svelte.d.ts +9 -22
- package/dist/components/app/Options.svelte +8 -6
- package/dist/components/app/Options.svelte.d.ts +8 -20
- package/dist/components/app/Paragraph.svelte +2 -2
- package/dist/components/app/Paragraph.svelte.d.ts +6 -19
- package/dist/components/app/Section.svelte +4 -1
- package/dist/components/app/Section.svelte.d.ts +5 -28
- package/dist/components/app/Table.svelte +4 -1
- package/dist/components/app/Table.svelte.d.ts +5 -28
- package/dist/components/app/TextInput.svelte +10 -8
- package/dist/components/app/TextInput.svelte.d.ts +12 -23
- package/dist/components/chapter/Atom.svelte +4 -7
- package/dist/components/chapter/Atom.svelte.d.ts +6 -19
- package/dist/components/chapter/Block.svelte +21 -23
- package/dist/components/chapter/Block.svelte.d.ts +5 -17
- package/dist/components/chapter/Callout.svelte +3 -5
- package/dist/components/chapter/Callout.svelte.d.ts +5 -17
- package/dist/components/chapter/CaptionedCode.svelte +12 -14
- package/dist/components/chapter/CaptionedCode.svelte.d.ts +5 -17
- package/dist/components/chapter/ChapterBody.svelte +14 -17
- package/dist/components/chapter/ChapterBody.svelte.d.ts +7 -19
- package/dist/components/chapter/ChapterBody.test.d.ts +1 -0
- package/dist/components/chapter/ChapterBody.test.js +85 -0
- package/dist/components/chapter/Citations.svelte +39 -45
- package/dist/components/chapter/Citations.svelte.d.ts +5 -17
- package/dist/components/chapter/Code.svelte +158 -155
- package/dist/components/chapter/Code.svelte.d.ts +10 -23
- package/dist/components/chapter/Comment.svelte +30 -23
- package/dist/components/chapter/Comment.svelte.d.ts +5 -17
- package/dist/components/chapter/Definition.svelte +36 -34
- package/dist/components/chapter/Definition.svelte.d.ts +5 -17
- package/dist/components/chapter/Embed.svelte +78 -72
- package/dist/components/chapter/Embed.svelte.d.ts +8 -20
- package/dist/components/chapter/ErrorMessage.svelte +2 -4
- package/dist/components/chapter/ErrorMessage.svelte.d.ts +5 -17
- package/dist/components/chapter/Figure.svelte +22 -29
- package/dist/components/chapter/Figure.svelte.d.ts +9 -22
- package/dist/components/chapter/Footnote.svelte +40 -32
- package/dist/components/chapter/Footnote.svelte.d.ts +5 -17
- package/dist/components/chapter/Format.svelte +26 -41
- package/dist/components/chapter/Format.svelte.d.ts +7 -18
- package/dist/components/chapter/InlineCode.svelte +7 -8
- package/dist/components/chapter/InlineCode.svelte.d.ts +5 -17
- package/dist/components/chapter/Label.svelte +5 -11
- package/dist/components/chapter/Label.svelte.d.ts +5 -17
- package/dist/components/chapter/LineBreak.svelte +1 -3
- package/dist/components/chapter/LineBreak.svelte.d.ts +5 -17
- package/dist/components/chapter/Link.svelte +17 -23
- package/dist/components/chapter/Link.svelte.d.ts +5 -17
- package/dist/components/chapter/List.svelte +9 -9
- package/dist/components/chapter/List.svelte.d.ts +6 -17
- package/dist/components/chapter/Marginal.svelte +59 -60
- package/dist/components/chapter/Marginal.svelte.d.ts +10 -22
- package/dist/components/chapter/Paragraph.svelte +8 -23
- package/dist/components/chapter/Paragraph.svelte.d.ts +6 -18
- package/dist/components/chapter/Positioned.svelte +2 -4
- package/dist/components/chapter/Positioned.svelte.d.ts +6 -19
- package/dist/components/chapter/Problem.svelte +3 -2
- package/dist/components/chapter/Problem.svelte.d.ts +5 -28
- package/dist/components/chapter/Python.svelte +45 -58
- package/dist/components/chapter/Python.svelte.d.ts +6 -18
- package/dist/components/chapter/Quote.svelte +5 -7
- package/dist/components/chapter/Quote.svelte.d.ts +5 -17
- package/dist/components/chapter/Rule.svelte +1 -3
- package/dist/components/chapter/Rule.svelte.d.ts +5 -17
- package/dist/components/chapter/Table.svelte +6 -8
- package/dist/components/chapter/Table.svelte.d.ts +5 -17
- package/dist/components/chapter/Text.svelte +54 -69
- package/dist/components/chapter/Text.svelte.d.ts +6 -18
- package/dist/components/controls/DarkToggle.svelte +7 -8
- package/dist/components/controls/DarkToggle.svelte.d.ts +6 -18
- package/dist/components/editor/BookishEditor.svelte +583 -761
- package/dist/components/editor/BookishEditor.svelte.d.ts +14 -26
- package/dist/components/editor/CalloutEditor.svelte +3 -3
- package/dist/components/editor/CalloutEditor.svelte.d.ts +5 -17
- package/dist/components/editor/CaptionedCodeEditor.svelte +5 -5
- package/dist/components/editor/CaptionedCodeEditor.svelte.d.ts +5 -17
- package/dist/components/editor/CaretView.svelte +23 -25
- package/dist/components/editor/CaretView.svelte.d.ts +15 -27
- package/dist/components/editor/CitationsEditor.svelte +25 -28
- package/dist/components/editor/CitationsEditor.svelte.d.ts +5 -17
- package/dist/components/editor/ConfirmButton.svelte +9 -6
- package/dist/components/editor/ConfirmButton.svelte.d.ts +8 -21
- package/dist/components/editor/DefinitionEditor.svelte +11 -15
- package/dist/components/editor/DefinitionEditor.svelte.d.ts +5 -17
- package/dist/components/editor/EmbedEditor.svelte +43 -44
- package/dist/components/editor/EmbedEditor.svelte.d.ts +5 -17
- package/dist/components/editor/Icon.svelte +1 -1
- package/dist/components/editor/Icon.svelte.d.ts +5 -17
- package/dist/components/editor/ImageChooser.svelte +15 -18
- package/dist/components/editor/ImageChooser.svelte.d.ts +6 -18
- package/dist/components/editor/ImageThumbnail.svelte +29 -24
- package/dist/components/editor/ImageThumbnail.svelte.d.ts +7 -19
- package/dist/components/editor/InlineCodeEditor.svelte +3 -3
- package/dist/components/editor/InlineCodeEditor.svelte.d.ts +5 -17
- package/dist/components/editor/LabelEditor.svelte +5 -6
- package/dist/components/editor/LabelEditor.svelte.d.ts +5 -17
- package/dist/components/editor/LanguageEditor.svelte +4 -5
- package/dist/components/editor/LanguageEditor.svelte.d.ts +6 -18
- package/dist/components/editor/LinkEditor.svelte +52 -68
- package/dist/components/editor/LinkEditor.svelte.d.ts +5 -17
- package/dist/components/editor/Note.svelte +4 -1
- package/dist/components/editor/Note.svelte.d.ts +5 -28
- package/dist/components/editor/Permissions.svelte +55 -51
- package/dist/components/editor/Permissions.svelte.d.ts +9 -21
- package/dist/components/editor/PositionEditor.svelte +6 -7
- package/dist/components/editor/PositionEditor.svelte.d.ts +6 -18
- package/dist/components/editor/QuoteEditor.svelte +3 -3
- package/dist/components/editor/QuoteEditor.svelte.d.ts +5 -17
- package/dist/components/editor/Switch.svelte +16 -11
- package/dist/components/editor/Switch.svelte.d.ts +9 -21
- package/dist/components/editor/TableEditor.svelte +3 -3
- package/dist/components/editor/TableEditor.svelte.d.ts +5 -17
- package/dist/components/editor/TextEditor.svelte +74 -87
- package/dist/components/editor/TextEditor.svelte.d.ts +13 -25
- package/dist/components/editor/Toggle.svelte +18 -21
- package/dist/components/editor/Toggle.svelte.d.ts +7 -20
- package/dist/components/editor/Toolbar.svelte +140 -145
- package/dist/components/editor/Toolbar.svelte.d.ts +5 -17
- package/dist/components/editor/ToolbarGroup.svelte +4 -4
- package/dist/components/editor/ToolbarGroup.svelte.d.ts +6 -19
- package/dist/components/editor/ToolbarSpacer.svelte +1 -1
- package/dist/components/editor/ToolbarSpacer.svelte.d.ts +22 -21
- package/dist/components/editor/URLEditor.svelte +3 -5
- package/dist/components/editor/URLEditor.svelte.d.ts +7 -19
- package/dist/components/page/Acknowledgements.svelte +14 -8
- package/dist/components/page/Acknowledgements.svelte.d.ts +3 -16
- package/dist/components/page/Analytics.svelte +2 -3
- package/dist/components/page/Analytics.svelte.d.ts +6 -17
- package/dist/components/page/Authors.svelte +29 -29
- package/dist/components/page/Authors.svelte.d.ts +11 -23
- package/dist/components/page/BookLoader.svelte +47 -43
- package/dist/components/page/BookLoader.svelte.d.ts +5 -17
- package/dist/components/page/BulkReferenceEditor.svelte +43 -26
- package/dist/components/page/BulkReferenceEditor.svelte.d.ts +3 -16
- package/dist/components/page/Chapter.svelte +226 -250
- package/dist/components/page/Chapter.svelte.d.ts +6 -18
- package/dist/components/page/ChapterContext.d.ts +3 -1
- package/dist/components/page/ChapterNumber.svelte +4 -1
- package/dist/components/page/ChapterNumber.svelte.d.ts +5 -28
- package/dist/components/page/ChapterTitle.svelte +4 -4
- package/dist/components/page/ChapterTitle.svelte.d.ts +6 -19
- package/dist/components/page/Contexts.js +2 -2
- package/dist/components/page/DefinitionView.svelte +51 -44
- package/dist/components/page/DefinitionView.svelte.d.ts +6 -18
- package/dist/components/page/Description.svelte +10 -4
- package/dist/components/page/Description.svelte.d.ts +16 -14
- package/dist/components/page/EditableHeader.svelte +4 -6
- package/dist/components/page/EditableHeader.svelte.d.ts +7 -18
- package/dist/components/page/Edition.svelte +57 -71
- package/dist/components/page/Edition.svelte.d.ts +7 -20
- package/dist/components/page/EditionLoader.svelte +119 -82
- package/dist/components/page/EditionLoader.svelte.d.ts +6 -19
- package/dist/components/page/Editions.svelte +61 -41
- package/dist/components/page/Editions.svelte.d.ts +5 -17
- package/dist/components/page/Glossary.svelte +31 -35
- package/dist/components/page/Glossary.svelte.d.ts +3 -16
- package/dist/components/page/Header.svelte +43 -49
- package/dist/components/page/Header.svelte.d.ts +19 -30
- package/dist/components/page/Index.svelte +46 -46
- package/dist/components/page/Index.svelte.d.ts +3 -16
- package/dist/components/page/Instructions.svelte +2 -2
- package/dist/components/page/Instructions.svelte.d.ts +6 -19
- package/dist/components/page/License.svelte +13 -7
- package/dist/components/page/License.svelte.d.ts +16 -14
- package/dist/components/page/Loading.svelte +9 -9
- package/dist/components/page/Loading.svelte.d.ts +22 -21
- package/dist/components/page/Media.svelte +36 -27
- package/dist/components/page/Media.svelte.d.ts +3 -16
- package/dist/components/page/MediaPreview.svelte +22 -19
- package/dist/components/page/MediaPreview.svelte.d.ts +8 -21
- package/dist/components/page/Muted.svelte +4 -1
- package/dist/components/page/Muted.svelte.d.ts +5 -28
- package/dist/components/page/Outline.svelte +76 -97
- package/dist/components/page/Outline.svelte.d.ts +8 -20
- package/dist/components/page/Page.svelte +27 -35
- package/dist/components/page/Page.svelte.d.ts +7 -20
- package/dist/components/page/PageHeader.svelte +2 -2
- package/dist/components/page/PageHeader.svelte.d.ts +6 -19
- package/dist/components/page/PageParagraph.svelte +4 -1
- package/dist/components/page/PageParagraph.svelte.d.ts +5 -28
- package/dist/components/page/PossibleChapter.svelte +7 -7
- package/dist/components/page/PossibleChapter.svelte.d.ts +3 -16
- package/dist/components/page/PossibleReference.svelte +4 -5
- package/dist/components/page/PossibleReference.svelte.d.ts +6 -18
- package/dist/components/page/Print.svelte +18 -2
- package/dist/components/page/Print.svelte.d.ts +3 -16
- package/dist/components/page/Publish.svelte +47 -47
- package/dist/components/page/Publish.svelte.d.ts +3 -16
- package/dist/components/page/Reference.svelte +24 -35
- package/dist/components/page/Reference.svelte.d.ts +6 -18
- package/dist/components/page/References.svelte +21 -22
- package/dist/components/page/References.svelte.d.ts +3 -16
- package/dist/components/page/Rows.svelte +4 -1
- package/dist/components/page/Rows.svelte.d.ts +5 -28
- package/dist/components/page/Search.svelte +58 -60
- package/dist/components/page/Search.svelte.d.ts +3 -16
- package/dist/components/page/Status.svelte +2 -2
- package/dist/components/page/Status.svelte.d.ts +16 -14
- package/dist/components/page/SubdomainEditor.svelte +11 -11
- package/dist/components/page/SubdomainEditor.svelte.d.ts +16 -14
- package/dist/components/page/TableOfContents.svelte +143 -125
- package/dist/components/page/TableOfContents.svelte.d.ts +3 -16
- package/dist/components/page/TableOfContentsImage.svelte +6 -7
- package/dist/components/page/TableOfContentsImage.svelte.d.ts +6 -18
- package/dist/components/page/TableOfContentsRow.svelte +32 -32
- package/dist/components/page/TableOfContentsRow.svelte.d.ts +10 -22
- package/dist/components/page/ThemeEditor.svelte +35 -28
- package/dist/components/page/ThemeEditor.svelte.d.ts +3 -16
- package/dist/components/page/ThemeEditorPreview.svelte +11 -13
- package/dist/components/page/ThemeEditorPreview.svelte.d.ts +5 -17
- package/dist/components/page/ThemeSetEditor.svelte +4 -6
- package/dist/components/page/ThemeSetEditor.svelte.d.ts +7 -19
- package/dist/components/page/ThemeVariableEditor.svelte +9 -11
- package/dist/components/page/ThemeVariableEditor.svelte.d.ts +7 -19
- package/dist/components/page/Title.svelte +4 -1
- package/dist/components/page/Title.svelte.d.ts +5 -28
- package/dist/components/page/Unknown.svelte +11 -8
- package/dist/components/page/Unknown.svelte.d.ts +5 -17
- package/dist/models/CRUD.js +23 -4
- package/dist/models/Firebase.js +18 -4
- package/dist/models/book/Book.d.ts +1 -1
- package/dist/models/book/Book.js +4 -3
- package/dist/models/book/BookMedia.js +1 -2
- package/dist/models/book/Chapter.js +3 -2
- package/dist/models/book/Edition.d.ts +1 -1
- package/dist/models/book/Edition.js +5 -1
- package/dist/models/chapter/BlocksNode.js +3 -1
- package/dist/models/chapter/BlocksNode.test.js +5 -1
- package/dist/models/chapter/Node.test.js +2 -2
- package/package.json +36 -25
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
events: {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
};
|
|
7
|
-
slots: {};
|
|
8
|
-
exports?: {} | undefined;
|
|
9
|
-
bindings?: string | undefined;
|
|
10
|
-
};
|
|
11
|
-
export type PrintProps = typeof __propDef.props;
|
|
12
|
-
export type PrintEvents = typeof __propDef.events;
|
|
13
|
-
export type PrintSlots = typeof __propDef.slots;
|
|
14
|
-
export default class Print extends SvelteComponent<PrintProps, PrintEvents, PrintSlots> {
|
|
15
|
-
}
|
|
16
|
-
export {};
|
|
1
|
+
declare const Print: import("svelte").Component<Record<string, never>, {}, "">;
|
|
2
|
+
type Print = ReturnType<typeof Print>;
|
|
3
|
+
export default Print;
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
<script>import Parser from
|
|
2
|
-
import BookishEditor from
|
|
3
|
-
import Switch from
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import
|
|
12
|
-
import
|
|
1
|
+
<script lang="ts">import Parser from "../../models/chapter/Parser";
|
|
2
|
+
import BookishEditor from "../editor/BookishEditor.svelte";
|
|
3
|
+
import Switch from "../editor/Switch.svelte";
|
|
4
|
+
import {
|
|
5
|
+
getUser,
|
|
6
|
+
getEdition,
|
|
7
|
+
getLeasee,
|
|
8
|
+
isEditionEditable,
|
|
9
|
+
lease
|
|
10
|
+
} from "./Contexts";
|
|
11
|
+
import Format from "../chapter/Format.svelte";
|
|
12
|
+
import Note from "../editor/Note.svelte";
|
|
13
|
+
import Instructions from "./Instructions.svelte";
|
|
14
|
+
import Link from "../Link.svelte";
|
|
15
|
+
import { PUBLIC_CONTEXT } from "$env/static/public";
|
|
16
|
+
import Button from "../app/Button.svelte";
|
|
17
|
+
import { publish } from "../../models/CRUD";
|
|
18
|
+
import Feedback from "../app/Feedback.svelte";
|
|
13
19
|
let auth = getUser();
|
|
14
20
|
let edition = getEdition();
|
|
15
21
|
let editable = isEditionEditable();
|
|
16
22
|
let publishing = false;
|
|
17
|
-
let feedback =
|
|
18
|
-
let error =
|
|
19
|
-
let url =
|
|
23
|
+
let feedback = $state(void 0);
|
|
24
|
+
let error = $state(void 0);
|
|
25
|
+
let url = $state(void 0);
|
|
20
26
|
async function requestPublish() {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
publishing = false;
|
|
42
|
-
}
|
|
27
|
+
if ($edition) {
|
|
28
|
+
publishing = true;
|
|
29
|
+
error = void 0;
|
|
30
|
+
feedback = "Binding the book, this could take a minute...";
|
|
31
|
+
try {
|
|
32
|
+
const result = await publish($edition);
|
|
33
|
+
if (typeof result === "string") {
|
|
34
|
+
error = result;
|
|
35
|
+
feedback = void 0;
|
|
36
|
+
} else {
|
|
37
|
+
url = result.url;
|
|
38
|
+
}
|
|
39
|
+
} catch (err) {
|
|
40
|
+
console.log(err);
|
|
41
|
+
feedback = void 0;
|
|
42
|
+
error = "Unable to bundle the book for download :(";
|
|
43
|
+
} finally {
|
|
44
|
+
publishing = false;
|
|
43
45
|
}
|
|
46
|
+
}
|
|
44
47
|
}
|
|
45
|
-
let publisher =
|
|
46
|
-
$: {
|
|
47
|
-
if ($auth && $auth.user)
|
|
48
|
-
updateUserClaims();
|
|
49
|
-
}
|
|
48
|
+
let publisher = $state(void 0);
|
|
50
49
|
async function updateUserClaims() {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
publisher =
|
|
55
|
-
'publisher' in token.claims && token.claims.publisher === true;
|
|
50
|
+
if ($auth === void 0 || $auth.user === null) return;
|
|
51
|
+
const token = await $auth.user.getIdTokenResult();
|
|
52
|
+
publisher = "publisher" in token.claims && token.claims.publisher === true;
|
|
56
53
|
}
|
|
54
|
+
$effect(() => {
|
|
55
|
+
if ($auth && $auth.user) updateUserClaims();
|
|
56
|
+
});
|
|
57
57
|
</script>
|
|
58
58
|
|
|
59
59
|
{#if $edition && (publisher === true || PUBLIC_CONTEXT === 'local')}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
events: {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
};
|
|
7
|
-
slots: {};
|
|
8
|
-
exports?: {} | undefined;
|
|
9
|
-
bindings?: string | undefined;
|
|
10
|
-
};
|
|
11
|
-
export type PublishProps = typeof __propDef.props;
|
|
12
|
-
export type PublishEvents = typeof __propDef.events;
|
|
13
|
-
export type PublishSlots = typeof __propDef.slots;
|
|
14
|
-
export default class Publish extends SvelteComponent<PublishProps, PublishEvents, PublishSlots> {
|
|
15
|
-
}
|
|
16
|
-
export {};
|
|
1
|
+
declare const Publish: import("svelte").Component<Record<string, never>, {}, "">;
|
|
2
|
+
type Publish = ReturnType<typeof Publish>;
|
|
3
|
+
export default Publish;
|
|
@@ -1,36 +1,30 @@
|
|
|
1
|
-
<
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
import Note from '../editor/Note.svelte';
|
|
11
|
-
export let reference;
|
|
12
|
-
export let edit = false;
|
|
1
|
+
<script lang="ts">import Reference from "../../models/book/Reference";
|
|
2
|
+
import Button from "../app/Button.svelte";
|
|
3
|
+
import Table from "../app/Table.svelte";
|
|
4
|
+
import ConfirmButton from "../editor/ConfirmButton.svelte";
|
|
5
|
+
import TextEditor from "../editor/TextEditor.svelte";
|
|
6
|
+
import { getEdition, isEditionEditable } from "./Contexts";
|
|
7
|
+
import Link from "../Link.svelte";
|
|
8
|
+
import Note from "../editor/Note.svelte";
|
|
9
|
+
let { reference, edit = false } = $props();
|
|
13
10
|
let editable = isEditionEditable();
|
|
14
11
|
let edition = getEdition();
|
|
15
|
-
let editing = false;
|
|
12
|
+
let editing = $state(false);
|
|
16
13
|
function startEditing() {
|
|
17
|
-
|
|
14
|
+
editing = true;
|
|
18
15
|
}
|
|
19
16
|
function stopEditing() {
|
|
20
|
-
|
|
17
|
+
editing = false;
|
|
21
18
|
}
|
|
22
19
|
function move(field, direction) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (newInput)
|
|
32
|
-
newInput.focus();
|
|
33
|
-
}
|
|
20
|
+
let fields = Array.from(
|
|
21
|
+
document.querySelectorAll('input[type="text"]')
|
|
22
|
+
);
|
|
23
|
+
let index = fields.indexOf(field);
|
|
24
|
+
if (index >= 0) {
|
|
25
|
+
const newInput = direction < 0 && index > 0 ? fields[index - 1] : direction > 0 && index < fields.length - 1 ? fields[index + 1] : void 0;
|
|
26
|
+
if (newInput) newInput.focus();
|
|
27
|
+
}
|
|
34
28
|
}
|
|
35
29
|
</script>
|
|
36
30
|
|
|
@@ -43,7 +37,7 @@ function move(field, direction) {
|
|
|
43
37
|
: authorList.length === 2
|
|
44
38
|
? authorList[0].trim() + ' & ' + authorList[1].trim()
|
|
45
39
|
: authorList[0].trim() + ', et al.'}
|
|
46
|
-
<
|
|
40
|
+
<div class="reference">
|
|
47
41
|
{authors}
|
|
48
42
|
({reference.year}).
|
|
49
43
|
{#if reference.url === null}
|
|
@@ -53,7 +47,7 @@ function move(field, direction) {
|
|
|
53
47
|
{/if}
|
|
54
48
|
{reference.title.charAt(reference.title.length - 1) === '?' ? '' : '.'}
|
|
55
49
|
<em>{reference.source}</em>
|
|
56
|
-
</
|
|
50
|
+
</div>
|
|
57
51
|
{:else if editable && edit && editing}
|
|
58
52
|
<!-- If editable, place in rows to make room for text editors to not have to wrap. -->
|
|
59
53
|
<Table>
|
|
@@ -232,7 +226,7 @@ function move(field, direction) {
|
|
|
232
226
|
</Table>
|
|
233
227
|
{:else}
|
|
234
228
|
<!-- Otherwise, just render the reference. -->
|
|
235
|
-
<
|
|
229
|
+
<div class="reference">
|
|
236
230
|
{#if reference.authors}{reference.authors}{:else}<em>Authors</em>{/if}
|
|
237
231
|
{#if reference.year}({reference.year}){:else}<em>Year</em>{/if}. {#if reference.url === null || reference.url.length === 0}{#if reference.title}{reference.title}{:else}<em
|
|
238
232
|
>Title</em
|
|
@@ -244,7 +238,7 @@ function move(field, direction) {
|
|
|
244
238
|
>.
|
|
245
239
|
{#if reference.summary}<aside class="summary">{reference.summary}</aside
|
|
246
240
|
>{/if}
|
|
247
|
-
</
|
|
241
|
+
</div>
|
|
248
242
|
{/if}
|
|
249
243
|
{#if edit && editable && !reference.short}
|
|
250
244
|
<div class="controls">
|
|
@@ -274,11 +268,6 @@ function move(field, direction) {
|
|
|
274
268
|
margin-top: var(--bookish-block-padding);
|
|
275
269
|
}
|
|
276
270
|
|
|
277
|
-
p {
|
|
278
|
-
margin-top: 0;
|
|
279
|
-
margin-bottom: 0;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
271
|
.reference .summary {
|
|
283
272
|
font-size: var(--bookish-small-font-size);
|
|
284
273
|
padding-left: var(--bookish-block-padding);
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
import { SvelteComponent } from "svelte";
|
|
2
1
|
import Reference from '../../models/book/Reference';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
edit?: boolean;
|
|
7
|
-
};
|
|
8
|
-
events: {
|
|
9
|
-
[evt: string]: CustomEvent<any>;
|
|
10
|
-
};
|
|
11
|
-
slots: {};
|
|
12
|
-
exports?: {} | undefined;
|
|
13
|
-
bindings?: string | undefined;
|
|
14
|
-
};
|
|
15
|
-
export type ReferenceProps = typeof __propDef.props;
|
|
16
|
-
export type ReferenceEvents = typeof __propDef.events;
|
|
17
|
-
export type ReferenceSlots = typeof __propDef.slots;
|
|
18
|
-
export default class Reference extends SvelteComponent<ReferenceProps, ReferenceEvents, ReferenceSlots> {
|
|
2
|
+
interface Props {
|
|
3
|
+
reference: Reference;
|
|
4
|
+
edit?: boolean;
|
|
19
5
|
}
|
|
20
|
-
|
|
6
|
+
declare const Reference: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type Reference = ReturnType<typeof Reference>;
|
|
8
|
+
export default Reference;
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
<script>import Header from
|
|
2
|
-
import Outline from
|
|
3
|
-
import Page from
|
|
4
|
-
import ChapterIDs from
|
|
5
|
-
import BulkReferenceEditor from
|
|
6
|
-
import PossibleReference from
|
|
7
|
-
import { getUser, getEdition, isEditionEditable } from
|
|
1
|
+
<script lang="ts">import Header from "./Header.svelte";
|
|
2
|
+
import Outline from "./Outline.svelte";
|
|
3
|
+
import Page from "./Page.svelte";
|
|
4
|
+
import ChapterIDs from "../../models/book/ChapterID";
|
|
5
|
+
import BulkReferenceEditor from "./BulkReferenceEditor.svelte";
|
|
6
|
+
import PossibleReference from "./PossibleReference.svelte";
|
|
7
|
+
import { getUser, getEdition, isEditionEditable } from "./Contexts";
|
|
8
8
|
let auth = getUser();
|
|
9
9
|
let edition = getEdition();
|
|
10
10
|
let editable = isEditionEditable();
|
|
11
|
-
|
|
12
|
-
// Otherwise, map references to a list with letter headers.
|
|
13
|
-
if (references !== null) {
|
|
14
|
-
}
|
|
11
|
+
let references = $derived($edition?.hasReferences() ? $edition.getReferences() : null);
|
|
15
12
|
</script>
|
|
16
13
|
|
|
17
14
|
{#if $edition}
|
|
@@ -39,17 +36,19 @@ if (references !== null) {
|
|
|
39
36
|
)
|
|
40
37
|
: undefined}
|
|
41
38
|
>
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
39
|
+
{#snippet outline()}
|
|
40
|
+
<Outline
|
|
41
|
+
|
|
42
|
+
previous={$edition.getPreviousChapterID(
|
|
43
|
+
ChapterIDs.ReferencesID,
|
|
44
|
+
editable,
|
|
45
|
+
)}
|
|
46
|
+
next={$edition.getNextChapterID(
|
|
47
|
+
ChapterIDs.ReferencesID,
|
|
48
|
+
editable,
|
|
49
|
+
)}
|
|
50
|
+
/>
|
|
51
|
+
{/snippet}
|
|
53
52
|
</Header>
|
|
54
53
|
{#if editable}<BulkReferenceEditor />{/if}
|
|
55
54
|
{#if references !== null}
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
events: {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
};
|
|
7
|
-
slots: {};
|
|
8
|
-
exports?: {} | undefined;
|
|
9
|
-
bindings?: string | undefined;
|
|
10
|
-
};
|
|
11
|
-
export type ReferencesProps = typeof __propDef.props;
|
|
12
|
-
export type ReferencesEvents = typeof __propDef.events;
|
|
13
|
-
export type ReferencesSlots = typeof __propDef.slots;
|
|
14
|
-
export default class References extends SvelteComponent<ReferencesProps, ReferencesEvents, ReferencesSlots> {
|
|
15
|
-
}
|
|
16
|
-
export {};
|
|
1
|
+
declare const References: import("svelte").Component<Record<string, never>, {}, "">;
|
|
2
|
+
type References = ReturnType<typeof References>;
|
|
3
|
+
export default References;
|
|
@@ -1,29 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** @typedef {typeof __propDef.slots} RowsSlots */
|
|
4
|
-
export default class Rows extends SvelteComponent<{
|
|
5
|
-
[x: string]: never;
|
|
6
|
-
}, {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
}, {
|
|
9
|
-
default: {};
|
|
10
|
-
}> {
|
|
1
|
+
interface Props {
|
|
2
|
+
children?: import('svelte').Snippet;
|
|
11
3
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export
|
|
15
|
-
import { SvelteComponent } from "svelte";
|
|
16
|
-
declare const __propDef: {
|
|
17
|
-
props: {
|
|
18
|
-
[x: string]: never;
|
|
19
|
-
};
|
|
20
|
-
events: {
|
|
21
|
-
[evt: string]: CustomEvent<any>;
|
|
22
|
-
};
|
|
23
|
-
slots: {
|
|
24
|
-
default: {};
|
|
25
|
-
};
|
|
26
|
-
exports?: undefined;
|
|
27
|
-
bindings?: undefined;
|
|
28
|
-
};
|
|
29
|
-
export {};
|
|
4
|
+
declare const Rows: import("svelte").Component<Props, {}, "">;
|
|
5
|
+
type Rows = ReturnType<typeof Rows>;
|
|
6
|
+
export default Rows;
|
|
@@ -1,60 +1,56 @@
|
|
|
1
|
-
<script>import Header from
|
|
2
|
-
import Outline from
|
|
3
|
-
import Page from
|
|
4
|
-
import Link from
|
|
5
|
-
import Chapter from
|
|
6
|
-
import ChapterIDs from
|
|
7
|
-
import { getBase, getEdition, isEditionEditable } from
|
|
8
|
-
import ChapterTitle from
|
|
9
|
-
import ChapterNumber from
|
|
10
|
-
import PageHeader from
|
|
1
|
+
<script lang="ts">import Header from "./Header.svelte";
|
|
2
|
+
import Outline from "./Outline.svelte";
|
|
3
|
+
import Page from "./Page.svelte";
|
|
4
|
+
import Link from "../Link.svelte";
|
|
5
|
+
import Chapter from "../../models/book/Chapter";
|
|
6
|
+
import ChapterIDs from "../../models/book/ChapterID";
|
|
7
|
+
import { getBase, getEdition, isEditionEditable } from "./Contexts";
|
|
8
|
+
import ChapterTitle from "./ChapterTitle.svelte";
|
|
9
|
+
import ChapterNumber from "./ChapterNumber.svelte";
|
|
10
|
+
import PageHeader from "./PageHeader.svelte";
|
|
11
11
|
let edition = getEdition();
|
|
12
12
|
let base = getBase();
|
|
13
|
-
let query =
|
|
14
|
-
let results =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
13
|
+
let query = $state("");
|
|
14
|
+
let results = $derived.by(() => {
|
|
15
|
+
const list = [];
|
|
16
|
+
const searchQuery = query.trim();
|
|
17
|
+
const lowerQuery = searchQuery.toLowerCase();
|
|
18
|
+
if ($edition && searchQuery.length > 2)
|
|
19
|
+
for (const chapter of $edition?.getChapters() ?? []) {
|
|
20
|
+
let index = chapter.getIndex($edition);
|
|
21
|
+
if (index) {
|
|
22
|
+
const chapterMatches = [];
|
|
23
|
+
for (const word of Object.keys(index)) {
|
|
24
|
+
if (searchQuery.length > 0 && word.indexOf(lowerQuery) >= 0) {
|
|
25
25
|
if (index) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (query.length > 0 && word.indexOf(lowerQuery) >= 0) {
|
|
31
|
-
if (index) {
|
|
32
|
-
let matches = index[word];
|
|
33
|
-
matches.forEach((match) => {
|
|
34
|
-
chapterMatches.push(match);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
if (chapterMatches.length > 0) {
|
|
40
|
-
results.push(chapter);
|
|
41
|
-
chapterMatches.forEach((match, index) => {
|
|
42
|
-
// Only highlight the part of the word that matches.
|
|
43
|
-
const start = match.match
|
|
44
|
-
.toLowerCase()
|
|
45
|
-
.indexOf(lowerQuery);
|
|
46
|
-
results.push({
|
|
47
|
-
link: `${$base}/${chapter.getID()}?word=${match.match.toLowerCase()}&number=${index}`,
|
|
48
|
-
left: match.left +
|
|
49
|
-
match.match.substring(0, start),
|
|
50
|
-
match: match.match.substring(start, start + query.length),
|
|
51
|
-
right: match.match.substring(start + query.length) + match.right,
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
}
|
|
26
|
+
let matches = index[word];
|
|
27
|
+
matches.forEach((match) => {
|
|
28
|
+
chapterMatches.push(match);
|
|
29
|
+
});
|
|
55
30
|
}
|
|
31
|
+
}
|
|
56
32
|
}
|
|
57
|
-
|
|
33
|
+
if (chapterMatches.length > 0) {
|
|
34
|
+
list.push(chapter);
|
|
35
|
+
chapterMatches.forEach((match, index2) => {
|
|
36
|
+
const start = match.match.toLowerCase().indexOf(lowerQuery);
|
|
37
|
+
list.push({
|
|
38
|
+
link: `${$base}/${chapter.getID()}?word=${match.match.toLowerCase()}&number=${index2}`,
|
|
39
|
+
left: match.left + match.match.substring(0, start),
|
|
40
|
+
match: match.match.substring(
|
|
41
|
+
start,
|
|
42
|
+
start + searchQuery.length
|
|
43
|
+
),
|
|
44
|
+
right: match.match.substring(
|
|
45
|
+
start + searchQuery.length
|
|
46
|
+
) + match.right
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return list;
|
|
53
|
+
});
|
|
58
54
|
</script>
|
|
59
55
|
|
|
60
56
|
{#if $edition}
|
|
@@ -79,14 +75,16 @@ $: {
|
|
|
79
75
|
)
|
|
80
76
|
: undefined}
|
|
81
77
|
>
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
78
|
+
{#snippet outline()}
|
|
79
|
+
<Outline
|
|
80
|
+
|
|
81
|
+
previous={$edition.getPreviousChapterID(
|
|
82
|
+
ChapterIDs.SearchID,
|
|
83
|
+
false,
|
|
84
|
+
)}
|
|
85
|
+
next={$edition.getNextChapterID(ChapterIDs.SearchID, false)}
|
|
86
|
+
/>
|
|
87
|
+
{/snippet}
|
|
90
88
|
</Header>
|
|
91
89
|
|
|
92
90
|
<p>
|
|
@@ -1,16 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
events: {
|
|
5
|
-
[evt: string]: CustomEvent<any>;
|
|
6
|
-
};
|
|
7
|
-
slots: {};
|
|
8
|
-
exports?: {} | undefined;
|
|
9
|
-
bindings?: string | undefined;
|
|
10
|
-
};
|
|
11
|
-
export type SearchProps = typeof __propDef.props;
|
|
12
|
-
export type SearchEvents = typeof __propDef.events;
|
|
13
|
-
export type SearchSlots = typeof __propDef.slots;
|
|
14
|
-
export default class Search extends SvelteComponent<SearchProps, SearchEvents, SearchSlots> {
|
|
15
|
-
}
|
|
16
|
-
export {};
|
|
1
|
+
declare const Search: import("svelte").Component<Record<string, never>, {}, "">;
|
|
2
|
+
type Search = ReturnType<typeof Search>;
|
|
3
|
+
export default Search;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
<script>import BookSaveStatus from
|
|
2
|
-
import { getStatus } from
|
|
1
|
+
<script lang="ts">import BookSaveStatus from "../../models/book/BookSaveStatus";
|
|
2
|
+
import { getStatus } from "./Contexts";
|
|
3
3
|
let status = getStatus();
|
|
4
4
|
</script>
|
|
5
5
|
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
6
11
|
};
|
|
7
|
-
|
|
8
|
-
exports?: {} | undefined;
|
|
9
|
-
bindings?: string | undefined;
|
|
10
|
-
};
|
|
11
|
-
export type StatusProps = typeof __propDef.props;
|
|
12
|
-
export type StatusEvents = typeof __propDef.events;
|
|
13
|
-
export type StatusSlots = typeof __propDef.slots;
|
|
14
|
-
export default class Status extends SvelteComponent<StatusProps, StatusEvents, StatusSlots> {
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
15
13
|
}
|
|
16
|
-
|
|
14
|
+
declare const Status: $$__sveltets_2_IsomorphicComponent<Record<string, never>, {
|
|
15
|
+
[evt: string]: CustomEvent<any>;
|
|
16
|
+
}, {}, {}, string>;
|
|
17
|
+
type Status = InstanceType<typeof Status>;
|
|
18
|
+
export default Status;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
<script>import TextEditor from
|
|
2
|
-
import { isSubdomainAvailable } from
|
|
3
|
-
import { getSubdomain } from
|
|
4
|
-
import { getBook } from
|
|
5
|
-
import Muted from
|
|
1
|
+
<script lang="ts">import TextEditor from "../editor/TextEditor.svelte";
|
|
2
|
+
import { isSubdomainAvailable } from "../../models/CRUD";
|
|
3
|
+
import { getSubdomain } from "../../util/getSubdomain";
|
|
4
|
+
import { getBook } from "./Contexts";
|
|
5
|
+
import Muted from "./Muted.svelte";
|
|
6
6
|
let book = getBook();
|
|
7
7
|
const invalidNames = [
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
"email",
|
|
9
|
+
"login",
|
|
10
|
+
"confirm",
|
|
11
|
+
"about",
|
|
12
|
+
"read",
|
|
13
|
+
"write"
|
|
14
14
|
];
|
|
15
15
|
</script>
|
|
16
16
|
|