@fiduswriter/bibliography-manager 0.1.0

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.
Files changed (105) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +20 -0
  3. package/dist/database/index.js +172 -0
  4. package/dist/database/index.js.map +1 -0
  5. package/dist/database/server_connector.js +47 -0
  6. package/dist/database/server_connector.js.map +1 -0
  7. package/dist/export/index.js +23 -0
  8. package/dist/export/index.js.map +1 -0
  9. package/dist/form/cats.js +22 -0
  10. package/dist/form/cats.js.map +1 -0
  11. package/dist/form/fields/date.js +28 -0
  12. package/dist/form/fields/date.js.map +1 -0
  13. package/dist/form/fields/key.js +100 -0
  14. package/dist/form/fields/key.js.map +1 -0
  15. package/dist/form/fields/key_list.js +37 -0
  16. package/dist/form/fields/key_list.js.map +1 -0
  17. package/dist/form/fields/literal.js +43 -0
  18. package/dist/form/fields/literal.js.map +1 -0
  19. package/dist/form/fields/literal_list.js +36 -0
  20. package/dist/form/fields/literal_list.js.map +1 -0
  21. package/dist/form/fields/literal_long.js +42 -0
  22. package/dist/form/fields/literal_long.js.map +1 -0
  23. package/dist/form/fields/name.js +121 -0
  24. package/dist/form/fields/name.js.map +1 -0
  25. package/dist/form/fields/name_list.js +36 -0
  26. package/dist/form/fields/name_list.js.map +1 -0
  27. package/dist/form/fields/range.js +89 -0
  28. package/dist/form/fields/range.js.map +1 -0
  29. package/dist/form/fields/range_list.js +36 -0
  30. package/dist/form/fields/range_list.js.map +1 -0
  31. package/dist/form/fields/tag_list.js +30 -0
  32. package/dist/form/fields/tag_list.js.map +1 -0
  33. package/dist/form/fields/title.js +46 -0
  34. package/dist/form/fields/title.js.map +1 -0
  35. package/dist/form/fields/uri.js +40 -0
  36. package/dist/form/fields/uri.js.map +1 -0
  37. package/dist/form/fields/verbatim.js +19 -0
  38. package/dist/form/fields/verbatim.js.map +1 -0
  39. package/dist/form/index.js +344 -0
  40. package/dist/form/index.js.map +1 -0
  41. package/dist/form/strings.js +89 -0
  42. package/dist/form/strings.js.map +1 -0
  43. package/dist/form/templates.js +59 -0
  44. package/dist/form/templates.js.map +1 -0
  45. package/dist/import/bibliography_import.js +83 -0
  46. package/dist/import/bibliography_import.js.map +1 -0
  47. package/dist/import/dialog.js +71 -0
  48. package/dist/import/dialog.js.map +1 -0
  49. package/dist/import/index.js +3 -0
  50. package/dist/import/index.js.map +1 -0
  51. package/dist/import/templates.js +12 -0
  52. package/dist/import/templates.js.map +1 -0
  53. package/dist/index.js +6 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/overview/index.js +453 -0
  56. package/dist/overview/index.js.map +1 -0
  57. package/dist/overview/menu.js +91 -0
  58. package/dist/overview/menu.js.map +1 -0
  59. package/dist/overview/templates.js +24 -0
  60. package/dist/overview/templates.js.map +1 -0
  61. package/dist/plugins/bibliography_overview/index.js +2 -0
  62. package/dist/plugins/bibliography_overview/index.js.map +1 -0
  63. package/dist/schema/literal.js +24 -0
  64. package/dist/schema/literal.js.map +1 -0
  65. package/dist/schema/literal_long.js +40 -0
  66. package/dist/schema/literal_long.js.map +1 -0
  67. package/dist/schema/title.js +31 -0
  68. package/dist/schema/title.js.map +1 -0
  69. package/dist/tools.js +53 -0
  70. package/dist/tools.js.map +1 -0
  71. package/package.json +55 -0
  72. package/src/database/index.js +234 -0
  73. package/src/database/server_connector.js +57 -0
  74. package/src/export/index.js +27 -0
  75. package/src/form/cats.js +24 -0
  76. package/src/form/fields/date.js +31 -0
  77. package/src/form/fields/key.js +113 -0
  78. package/src/form/fields/key_list.js +45 -0
  79. package/src/form/fields/literal.js +48 -0
  80. package/src/form/fields/literal_list.js +42 -0
  81. package/src/form/fields/literal_long.js +47 -0
  82. package/src/form/fields/name.js +152 -0
  83. package/src/form/fields/name_list.js +42 -0
  84. package/src/form/fields/range.js +104 -0
  85. package/src/form/fields/range_list.js +42 -0
  86. package/src/form/fields/tag_list.js +33 -0
  87. package/src/form/fields/title.js +51 -0
  88. package/src/form/fields/uri.js +43 -0
  89. package/src/form/fields/verbatim.js +21 -0
  90. package/src/form/index.js +424 -0
  91. package/src/form/strings.js +122 -0
  92. package/src/form/templates.js +70 -0
  93. package/src/import/bibliography_import.js +104 -0
  94. package/src/import/dialog.js +95 -0
  95. package/src/import/index.js +2 -0
  96. package/src/import/templates.js +12 -0
  97. package/src/index.js +5 -0
  98. package/src/overview/index.js +548 -0
  99. package/src/overview/menu.js +106 -0
  100. package/src/overview/templates.js +30 -0
  101. package/src/plugins/bibliography_overview/index.js +1 -0
  102. package/src/schema/literal.js +34 -0
  103. package/src/schema/literal_long.js +50 -0
  104. package/src/schema/title.js +42 -0
  105. package/src/tools.js +58 -0
@@ -0,0 +1,121 @@
1
+ import { TypeSwitch, getFocusIndex, setFocusIndex } from "fwtoolkit";
2
+ import { LiteralFieldForm } from "./literal";
3
+ // There are only name lists, no name fields in the data format. The separation
4
+ // between NameFieldForm and NameListForm is for keeping consistency with other fields
5
+ // and lists.
6
+ export class NameFieldForm {
7
+ constructor(dom, initialValue = {
8
+ given: [],
9
+ family: [],
10
+ prefix: [],
11
+ suffix: [],
12
+ useprefix: false,
13
+ literal: []
14
+ }) {
15
+ this.currentValue = initialValue;
16
+ this.dom = dom;
17
+ // We set the mode based on whether there was a literal name.
18
+ if (initialValue.literal) {
19
+ this.realPerson = false;
20
+ }
21
+ else {
22
+ this.realPerson = true;
23
+ }
24
+ }
25
+ init() {
26
+ this.typeSwitch = new TypeSwitch({
27
+ dom: this.dom,
28
+ label1: gettext("Person"),
29
+ label2: gettext("Organization"),
30
+ initialMode: this.realPerson ? 1 : 2,
31
+ beforeChange: () => {
32
+ const formValue = this.value;
33
+ if (formValue) {
34
+ Object.assign(this.currentValue, formValue);
35
+ }
36
+ },
37
+ onChange: mode => {
38
+ this.realPerson = mode === 1;
39
+ const focusIndex = getFocusIndex();
40
+ this.drawForm();
41
+ setFocusIndex(focusIndex);
42
+ }
43
+ });
44
+ this.drawForm();
45
+ }
46
+ drawForm() {
47
+ if (this.realPerson) {
48
+ this.drawPersonForm();
49
+ }
50
+ else {
51
+ this.drawOrganizationForm();
52
+ }
53
+ }
54
+ drawPersonForm() {
55
+ this.fields = {};
56
+ this.typeSwitch.innerElement.innerHTML = `
57
+ <div class='given field-part field-part-long'></div>
58
+ <div class='prefix field-part field-part-short'></div>
59
+ <div class='family field-part field-part-long'></div>
60
+ <div class='suffix field-part field-part-short'></div>
61
+ <div class='useprefix field-part'>
62
+ <input type='checkbox' class='useprefix'
63
+ ${this.currentValue.useprefix ? "checked" : ""}>
64
+ &nbsp;${gettext("Prefix used")}
65
+ </div>
66
+ `;
67
+ this.fields["given"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".given"), this.currentValue.given, gettext("First name"));
68
+ this.fields.given.init();
69
+ this.fields["prefix"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".prefix"), this.currentValue.prefix, gettext("Prefix"));
70
+ this.fields.prefix.init();
71
+ this.fields["family"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".family"), this.currentValue.family, gettext("Last name"));
72
+ this.fields.family.init();
73
+ this.fields["suffix"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".suffix"), this.currentValue.suffix, gettext("Suffix"));
74
+ this.fields.suffix.init();
75
+ }
76
+ drawOrganizationForm() {
77
+ this.fields = {};
78
+ this.typeSwitch.innerElement.innerHTML = `<div class='literal-text field-part field-part-single'></div>`;
79
+ this.fields["literal"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".literal-text"), this.currentValue.literal, gettext("Organization name"));
80
+ this.fields.literal.init();
81
+ }
82
+ get value() {
83
+ if (this.realPerson) {
84
+ if (!this.fields.family.value &&
85
+ !this.fields.given.value &&
86
+ !this.fields.prefix.value &&
87
+ !this.fields.suffix.value) {
88
+ return false;
89
+ }
90
+ const returnObject = {
91
+ family: this.fields.family.value
92
+ ? this.fields.family.value
93
+ : [],
94
+ given: this.fields.given.value ? this.fields.given.value : []
95
+ };
96
+ if (this.fields.prefix.value) {
97
+ returnObject["prefix"] = this.fields.prefix.value;
98
+ returnObject["useprefix"] =
99
+ this.typeSwitch.innerElement.querySelector("input.useprefix").checked
100
+ ? true
101
+ : false;
102
+ }
103
+ if (this.fields.suffix.value) {
104
+ returnObject["suffix"] = this.fields.suffix.value;
105
+ }
106
+ return returnObject;
107
+ }
108
+ else {
109
+ if (!this.fields.literal.value) {
110
+ return false;
111
+ }
112
+ return {
113
+ literal: this.fields.literal.value
114
+ };
115
+ }
116
+ }
117
+ check() {
118
+ return true;
119
+ }
120
+ }
121
+ //# sourceMappingURL=name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name.js","sourceRoot":"","sources":["../../../src/form/fields/name.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { InputList } from "fwtoolkit";
2
+ import { NameFieldForm } from "./name";
3
+ export class NameListForm {
4
+ constructor(dom, initialValue = [[]]) {
5
+ this.dom = dom;
6
+ this.fieldHandlers = new WeakMap();
7
+ this.inputList = new InputList({
8
+ dom,
9
+ initialValues: initialValue,
10
+ emptyValue: [],
11
+ renderItem: value => ({
12
+ html: `<div class="name-field"></div>`,
13
+ bind: el => {
14
+ const fieldHandler = new NameFieldForm(el.firstElementChild, value);
15
+ fieldHandler.init();
16
+ this.fieldHandlers.set(el, fieldHandler);
17
+ }
18
+ }),
19
+ getValue: el => this.fieldHandlers.get(el).value
20
+ });
21
+ }
22
+ init() {
23
+ // InputList is already rendered by the constructor.
24
+ }
25
+ get value() {
26
+ const formValue = this.inputList.values.filter(value => value !== false);
27
+ if (formValue.length === 0) {
28
+ return false;
29
+ }
30
+ return formValue;
31
+ }
32
+ check() {
33
+ return true;
34
+ }
35
+ }
36
+ //# sourceMappingURL=name_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name_list.js","sourceRoot":"","sources":["../../../src/form/fields/name_list.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,QAAQ,CAAA;AAEpC,MAAM,OAAO,YAAY;IACrB,YAAY,GAAG,EAAE,YAAY,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;YAC3B,GAAG;YACH,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE,EAAE,CAAC,EAAE;oBACP,MAAM,YAAY,GAAG,IAAI,aAAa,CAClC,EAAE,CAAC,iBAAiB,EACpB,KAAK,CACR,CAAA;oBACD,YAAY,CAAC,IAAI,EAAE,CAAA;oBACnB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;gBAC5C,CAAC;aACJ,CAAC;YACF,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK;SACnD,CAAC,CAAA;IACN,CAAC;IAED,IAAI;QACA,oDAAoD;IACxD,CAAC;IAED,IAAI,KAAK;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QACxE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAA;QAChB,CAAC;QACD,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -0,0 +1,89 @@
1
+ import { TypeSwitch, getFocusIndex, setFocusIndex } from "fwtoolkit";
2
+ import { LiteralFieldForm } from "./literal";
3
+ // There are only range lists, no range fields in the data format. The separation
4
+ // between RangeFieldForm and RangeListForm is for keeping consistency with other fields
5
+ // and lists.
6
+ export class RangeFieldForm {
7
+ constructor(dom, initialValue = [[]]) {
8
+ this.currentValue = initialValue;
9
+ this.dom = dom;
10
+ // We set the mode based on whether there is one or two initial values.
11
+ if (initialValue.length > 1) {
12
+ this.range = true;
13
+ }
14
+ else {
15
+ this.range = false;
16
+ }
17
+ }
18
+ init() {
19
+ this.typeSwitch = new TypeSwitch({
20
+ dom: this.dom,
21
+ label1: gettext("Single value"),
22
+ label2: gettext("Range"),
23
+ initialMode: this.range ? 2 : 1,
24
+ beforeChange: () => {
25
+ const formValue = this.value;
26
+ if (formValue) {
27
+ Object.assign(this.currentValue, formValue);
28
+ }
29
+ },
30
+ onChange: mode => {
31
+ this.range = mode === 2;
32
+ const focusIndex = getFocusIndex();
33
+ this.drawForm();
34
+ setFocusIndex(focusIndex);
35
+ }
36
+ });
37
+ this.drawForm();
38
+ }
39
+ drawForm() {
40
+ if (this.range) {
41
+ this.drawRangeForm();
42
+ }
43
+ else {
44
+ this.drawSingleValueForm();
45
+ }
46
+ }
47
+ drawSingleValueForm() {
48
+ this.fields = {};
49
+ this.typeSwitch.innerElement.innerHTML = `<div class='single-value field-part field-part-single'></div>`;
50
+ this.fields["single"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".single-value"), this.currentValue[0]);
51
+ this.fields.single.init();
52
+ }
53
+ drawRangeForm() {
54
+ this.fields = {};
55
+ this.typeSwitch.innerElement.innerHTML = `
56
+ <div class='range-from field-part field-part-huge'></div>
57
+ <div class='range-to field-part field-part-huge'></div>
58
+ `;
59
+ this.fields["from"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".range-from"), this.currentValue[0], gettext("From"));
60
+ this.fields.from.init();
61
+ this.fields["to"] = new LiteralFieldForm(this.typeSwitch.innerElement.querySelector(".range-to"), this.currentValue[1], gettext("To"));
62
+ this.fields.to.init();
63
+ }
64
+ get value() {
65
+ if (this.range) {
66
+ if (!this.fields.from.value && !this.fields.to.value) {
67
+ return false;
68
+ }
69
+ return [
70
+ this.fields.from.value
71
+ ? this.fields.from.value
72
+ : [{ type: "text", text: "" }],
73
+ this.fields.to.value
74
+ ? this.fields.to.value
75
+ : [{ type: "text", text: "" }]
76
+ ];
77
+ }
78
+ else {
79
+ if (!this.fields.single.value) {
80
+ return false;
81
+ }
82
+ return [this.fields.single.value];
83
+ }
84
+ }
85
+ check() {
86
+ return true;
87
+ }
88
+ }
89
+ //# sourceMappingURL=range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../../src/form/fields/range.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { InputList } from "fwtoolkit";
2
+ import { RangeFieldForm } from "./range";
3
+ export class RangeListForm {
4
+ constructor(dom, initialValue = [[]]) {
5
+ this.dom = dom;
6
+ this.fieldHandlers = new WeakMap();
7
+ this.inputList = new InputList({
8
+ dom,
9
+ initialValues: initialValue,
10
+ emptyValue: [],
11
+ renderItem: value => ({
12
+ html: `<div class="range-field"></div>`,
13
+ bind: el => {
14
+ const fieldHandler = new RangeFieldForm(el.firstElementChild, value);
15
+ fieldHandler.init();
16
+ this.fieldHandlers.set(el, fieldHandler);
17
+ }
18
+ }),
19
+ getValue: el => this.fieldHandlers.get(el).value
20
+ });
21
+ }
22
+ init() {
23
+ // InputList is already rendered by the constructor.
24
+ }
25
+ get value() {
26
+ const formValue = this.inputList.values.filter(value => value !== false);
27
+ if (formValue.length === 0) {
28
+ return false;
29
+ }
30
+ return formValue;
31
+ }
32
+ check() {
33
+ return true;
34
+ }
35
+ }
36
+ //# sourceMappingURL=range_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range_list.js","sourceRoot":"","sources":["../../../src/form/fields/range_list.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAA;AACnC,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAA;AAEtC,MAAM,OAAO,aAAa;IACtB,YAAY,GAAG,EAAE,YAAY,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAA;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;YAC3B,GAAG;YACH,aAAa,EAAE,YAAY;YAC3B,UAAU,EAAE,EAAE;YACd,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,EAAE,iCAAiC;gBACvC,IAAI,EAAE,EAAE,CAAC,EAAE;oBACP,MAAM,YAAY,GAAG,IAAI,cAAc,CACnC,EAAE,CAAC,iBAAiB,EACpB,KAAK,CACR,CAAA;oBACD,YAAY,CAAC,IAAI,EAAE,CAAA;oBACnB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;gBAC5C,CAAC;aACJ,CAAC;YACF,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK;SACnD,CAAC,CAAA;IACN,CAAC;IAED,IAAI;QACA,oDAAoD;IACxD,CAAC;IAED,IAAI,KAAK;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA;QACxE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAA;QAChB,CAAC;QACD,OAAO,SAAS,CAAA;IACpB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -0,0 +1,30 @@
1
+ import TokenField from "tokenfield";
2
+ export class TagListForm {
3
+ constructor(dom, initialValue = []) {
4
+ this.dom = dom;
5
+ this.initialValue = initialValue;
6
+ }
7
+ init() {
8
+ this.dom.innerHTML = '<input class="tags" type="text">';
9
+ this.tokenInput = new TokenField({
10
+ el: this.dom.querySelector(".tags"),
11
+ setItems: this.initialValue.map((key, index) => {
12
+ return { id: index, name: key };
13
+ }),
14
+ keys: {
15
+ 188: "delimiter"
16
+ }
17
+ });
18
+ }
19
+ get value() {
20
+ const formValue = this.tokenInput.getItems().map(item => {
21
+ return item.name;
22
+ });
23
+ // If the form has not been filled out, don't consider this form
24
+ return formValue.length > 0 ? formValue : false;
25
+ }
26
+ check() {
27
+ return true;
28
+ }
29
+ }
30
+ //# sourceMappingURL=tag_list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag_list.js","sourceRoot":"","sources":["../../../src/form/fields/tag_list.js"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAA;AAEnC,MAAM,OAAO,WAAW;IACpB,YAAY,GAAG,EAAE,YAAY,GAAG,EAAE;QAC9B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,kCAAkC,CAAA;QACvD,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC;YAC7B,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC;YACnC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC3C,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAC,CAAA;YACjC,CAAC,CAAC;YACF,IAAI,EAAE;gBACF,GAAG,EAAE,WAAW;aACnB;SACJ,CAAC,CAAA;IACN,CAAC;IAED,IAAI,KAAK;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,OAAO,IAAI,CAAC,IAAI,CAAA;QACpB,CAAC,CAAC,CAAA;QACF,gEAAgE;QAChE,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IACnD,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -0,0 +1,46 @@
1
+ import { toggleMark } from "prosemirror-commands";
2
+ import { InlineInput, icon } from "fwtoolkit";
3
+ import { titleSchema } from "../../schema/title";
4
+ export class TitleFieldForm {
5
+ constructor(dom, initialValue) {
6
+ this.inlineInput = new InlineInput(dom, {
7
+ schema: titleSchema,
8
+ nodeType: "literal",
9
+ initialValue,
10
+ tools: [
11
+ {
12
+ command: toggleMark(titleSchema.marks.strong),
13
+ dom: icon("strong", gettext("Strong"))
14
+ },
15
+ {
16
+ command: toggleMark(titleSchema.marks.em),
17
+ dom: icon("em", gettext("Emphasis"))
18
+ },
19
+ {
20
+ command: toggleMark(titleSchema.marks.smallcaps),
21
+ dom: icon("smallcaps", gettext("Small caps"))
22
+ },
23
+ {
24
+ command: toggleMark(titleSchema.marks.sub),
25
+ dom: icon("sub", gettext("Subscript₊"))
26
+ },
27
+ {
28
+ command: toggleMark(titleSchema.marks.sup),
29
+ dom: icon("sup", gettext("Supscript²"))
30
+ },
31
+ {
32
+ command: toggleMark(titleSchema.marks.nocase),
33
+ dom: icon("nocase", gettext("CasE ProTecT"))
34
+ }
35
+ ]
36
+ });
37
+ }
38
+ init() { }
39
+ get value() {
40
+ return this.inlineInput.value;
41
+ }
42
+ check() {
43
+ return this.inlineInput.check();
44
+ }
45
+ }
46
+ //# sourceMappingURL=title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title.js","sourceRoot":"","sources":["../../../src/form/fields/title.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EAAC,WAAW,EAAE,IAAI,EAAC,MAAM,WAAW,CAAA;AAE3C,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAA;AAE9C,MAAM,OAAO,cAAc;IACvB,YAAY,GAAG,EAAE,YAAY;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE;YACpC,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,SAAS;YACnB,YAAY;YACZ,KAAK,EAAE;gBACH;oBACI,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7C,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;iBACzC;gBACD;oBACI,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;iBACvC;gBACD;oBACI,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC;oBAChD,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;iBAChD;gBACD;oBACI,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;oBAC1C,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;iBAC1C;gBACD;oBACI,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;oBAC1C,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;iBAC1C;gBACD;oBACI,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;oBAC7C,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;iBAC/C;aACJ;SACJ,CAAC,CAAA;IACN,CAAC;IAED,IAAI,KAAI,CAAC;IAET,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAA;IACjC,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;IACnC,CAAC;CACJ"}
@@ -0,0 +1,40 @@
1
+ // Simple regex to check for a basic URL structure
2
+ const simpleUrlRegex = /^(https?:\/\/)?[\w.-]+\.[a-z]{2,}(\/\S*)?$/i;
3
+ function isValidUrl(string) {
4
+ if (simpleUrlRegex.test(string)) {
5
+ try {
6
+ new URL(string);
7
+ return true;
8
+ }
9
+ catch (_e) {
10
+ return false;
11
+ }
12
+ }
13
+ return false;
14
+ }
15
+ export class URIFieldForm {
16
+ constructor(dom, initialValue = "", placeHolder = "") {
17
+ this.dom = dom;
18
+ this.initialValue = initialValue;
19
+ this.placeHolder = placeHolder;
20
+ }
21
+ init() {
22
+ this.dom.innerHTML = `<input class="uri" type="text" value="${this.initialValue}" placeholder="${this.placeHolder}">`;
23
+ }
24
+ get value() {
25
+ const formValue = this.dom.querySelector("input.uri").value;
26
+ // If the form has not been filled out, don't consider this form
27
+ return formValue.length > 0 ? formValue : false;
28
+ }
29
+ check() {
30
+ const formValue = this.value;
31
+ if (formValue) {
32
+ if (!isValidUrl(formValue)) {
33
+ this.dom.classList.add("fw-fomt-error");
34
+ return false;
35
+ }
36
+ }
37
+ return true;
38
+ }
39
+ }
40
+ //# sourceMappingURL=uri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uri.js","sourceRoot":"","sources":["../../../src/form/fields/uri.js"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,cAAc,GAAG,6CAA6C,CAAA;AAEpE,SAAS,UAAU,CAAC,MAAM;IACtB,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,IAAI,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;YACf,OAAO,IAAI,CAAA;QACf,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACV,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,MAAM,OAAO,YAAY;IACrB,YAAY,GAAG,EAAE,YAAY,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE;QAChD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,yCAAyC,IAAI,CAAC,YAAY,kBAAkB,IAAI,CAAC,WAAW,IAAI,CAAA;IACzH,CAAC;IAED,IAAI,KAAK;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,KAAK,CAAA;QAC3D,gEAAgE;QAChE,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IACnD,CAAC;IAED,KAAK;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5B,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;gBACvC,OAAO,KAAK,CAAA;YAChB,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}
@@ -0,0 +1,19 @@
1
+ export class VerbatimFieldForm {
2
+ constructor(dom, initialValue = "", placeHolder = "") {
3
+ this.dom = dom;
4
+ this.initialValue = initialValue;
5
+ this.placeHolder = placeHolder;
6
+ }
7
+ init() {
8
+ this.dom.innerHTML = `<input class="verbatim" type="text" value="${this.initialValue}" placeholder="${this.placeHolder}">`;
9
+ }
10
+ get value() {
11
+ const formValue = this.dom.querySelector("input.verbatim").value;
12
+ // If the form has not been filled out, don't consider this form
13
+ return formValue.length > 0 ? formValue : false;
14
+ }
15
+ check() {
16
+ return true;
17
+ }
18
+ }
19
+ //# sourceMappingURL=verbatim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verbatim.js","sourceRoot":"","sources":["../../../src/form/fields/verbatim.js"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAiB;IAC1B,YAAY,GAAG,EAAE,YAAY,GAAG,EAAE,EAAE,WAAW,GAAG,EAAE;QAChD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IAED,IAAI;QACA,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,8CAA8C,IAAI,CAAC,YAAY,kBAAkB,IAAI,CAAC,WAAW,IAAI,CAAA;IAC9H,CAAC;IAED,IAAI,KAAK;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAA;QAChE,gEAAgE;QAChE,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IACnD,CAAC;IAED,KAAK;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ"}