@riboseinc/paneron-registry-kit 2.0.9 → 2.0.10
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/package.json +2 -4
- package/views/detail/RegisterMeta/RegisterMetaForm.js +11 -7
- package/views/detail/RegisterMeta/RegisterMetaForm.js.map +1 -1
- package/site-builder/index.d.ts +0 -6
- package/site-builder/index.js +0 -27
- package/site-builder/index.js.map +0 -1
- package/site-builder/jsx-runtime.d.ts +0 -18
- package/site-builder/jsx-runtime.js +0 -105
- package/site-builder/jsx-runtime.js.map +0 -1
- package/site-builder/page.d.ts +0 -6
- package/site-builder/page.js +0 -22
- package/site-builder/page.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riboseinc/paneron-registry-kit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.10",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"author": "Ribose Inc. <open.source@ribose.com>",
|
|
6
6
|
"scripts": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"@emotion/react": "^11.10.6",
|
|
30
30
|
"@emotion/styled": "^11.10.6",
|
|
31
31
|
"@riboseinc/isogit-lfs": "0.1.6",
|
|
32
|
-
"@riboseinc/paneron-extension-kit": "2.0.
|
|
32
|
+
"@riboseinc/paneron-extension-kit": "2.0.7",
|
|
33
33
|
"@types/node": "^16.11.7",
|
|
34
34
|
"@types/object-hash": "~3.0.2",
|
|
35
35
|
"@types/ramda": "^0.27.35",
|
|
@@ -37,7 +37,6 @@
|
|
|
37
37
|
"@types/react-dom": "^17.0.2",
|
|
38
38
|
"@types/react-helmet": "^6.1.2",
|
|
39
39
|
"@types/react-window": "^1.8.5",
|
|
40
|
-
"@types/throttle-debounce": "^2.1.0",
|
|
41
40
|
"date-fns": "^2.22.1",
|
|
42
41
|
"immutability-helper": "^3.1.1",
|
|
43
42
|
"jsondiffpatch": "^0.4.1",
|
|
@@ -47,7 +46,6 @@
|
|
|
47
46
|
"react-visual-diff": "^0.4.3",
|
|
48
47
|
"react-window": "^1.8.8",
|
|
49
48
|
"rough-notation": "^0.5.1",
|
|
50
|
-
"throttle-debounce": "^2.3.0",
|
|
51
49
|
"typescript": "~4.6.0"
|
|
52
50
|
},
|
|
53
51
|
"license": "MIT"
|
|
@@ -174,7 +174,7 @@ const RegisterMetaForm = function ({
|
|
|
174
174
|
content: (0, _react2.jsx)(_react.default.Fragment, null, "Times are in your computer\u2019s current time zone.", onChange ? " When specifying, make sure to offset accordingly if it is different than register publication time zone." : null)
|
|
175
175
|
}))
|
|
176
176
|
}, (0, _react2.jsx)(_datetime.DatePicker, {
|
|
177
|
-
css: (0, _react2.css)`margin: 0 -${
|
|
177
|
+
css: (0, _react2.css)`margin: 0 -${PADDING_PX - 1}px;`,
|
|
178
178
|
timePrecision: _datetime.TimePrecision.MINUTE,
|
|
179
179
|
value: ((_value$version2 = value.version) === null || _value$version2 === void 0 ? void 0 : _value$version2.timestamp) ?? null,
|
|
180
180
|
showActionsBar: onChange ? true : false,
|
|
@@ -194,7 +194,7 @@ const RegisterMetaForm = function ({
|
|
|
194
194
|
icon: "add"
|
|
195
195
|
}, "Add") : null
|
|
196
196
|
}, stakeholders.length > 0 ? (0, _react2.jsx)(_core.HTMLTable, {
|
|
197
|
-
css: (0, _react2.css)`margin: 0 -${
|
|
197
|
+
css: (0, _react2.css)`margin: 0 -${PADDING_PX}px;`
|
|
198
198
|
}, (0, _react2.jsx)("thead", null, (0, _react2.jsx)("tr", {
|
|
199
199
|
css: (0, _react2.css)`& > * { white-space: nowrap }`
|
|
200
200
|
}, (0, _react2.jsx)("th", null, "Role"), (0, _react2.jsx)("th", null, "Name"), (0, _react2.jsx)("th", null, "Git server username"), (0, _react2.jsx)("th", null, "Parties"), (0, _react2.jsx)("th", null, "Name"), (0, _react2.jsx)("th", null, "Email"))), (0, _react2.jsx)("tbody", null, [...stakeholders.entries()].map(([idx, s]) => (0, _react2.jsx)("tr", {
|
|
@@ -302,23 +302,27 @@ const RegisterMetaForm = function ({
|
|
|
302
302
|
})))))))) : null));
|
|
303
303
|
};
|
|
304
304
|
|
|
305
|
-
const
|
|
305
|
+
const PADDING_PX = 11;
|
|
306
306
|
const FormGroup = (0, _styled.default)(_core.FormGroup)`
|
|
307
307
|
margin: 0;
|
|
308
308
|
`;
|
|
309
309
|
const SuperFormGroup_ = (0, _styled.default)(FormGroup)`
|
|
310
310
|
border-radius: 5px;
|
|
311
|
-
padding: ${
|
|
312
|
-
|
|
311
|
+
padding: ${PADDING_PX}px;
|
|
312
|
+
|
|
313
313
|
> label.bp4-label {
|
|
314
314
|
font-weight: bold;
|
|
315
|
-
margin-bottom: ${
|
|
315
|
+
margin-bottom: ${PADDING_PX}px;
|
|
316
316
|
}
|
|
317
317
|
> .bp4-form-content {
|
|
318
318
|
display: flex;
|
|
319
319
|
flex-flow: column nowrap;
|
|
320
|
-
gap: ${
|
|
320
|
+
gap: ${PADDING_PX}px;
|
|
321
321
|
}
|
|
322
|
+
|
|
323
|
+
/* Note: these colors are picked to work with date input widget specifically. */
|
|
324
|
+
background: ${_core.Colors.WHITE};
|
|
325
|
+
.bp4-dark & { background: ${_core.Colors.DARK_GRAY3}; }
|
|
322
326
|
`;
|
|
323
327
|
|
|
324
328
|
const SuperFormGroup = function (props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegisterMetaForm.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterMeta/RegisterMetaForm.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport update, { Spec } from 'immutability-helper';\nimport React from 'react';\nimport { jsx, css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n FormGroupProps,\n FormGroup as BaseFormGroup,\n Classes,\n ControlGroup,\n InputGroup,\n TextArea,\n HTMLTable,\n HTMLSelect,\n Button,\n ButtonGroup,\n} from '@blueprintjs/core';\nimport { DatePicker, TimePrecision } from '@blueprintjs/datetime';\nimport HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport type { Register, RegisterStakeholder, Locale } from '../../../types';\nimport { isStakeholderRole } from '../../../types';\nimport { STAKEHOLDER_ROLES, StakeholderRole } from '../../../types/stakeholder';\n\n\n\nconst DUMMY_VERSION: Register[\"version\"] = { id: '', timestamp: new Date() };\nconst DUMMY_CONTACT: Register[\"stakeholders\"][number][\"parties\"][number][\"contacts\"][number] = {\n label: 'email',\n value: ''\n}\nconst DUMMY_PARTY: Register[\"stakeholders\"][number][\"parties\"][number] = {\n name: '',\n contacts: [DUMMY_CONTACT],\n};\nconst DUMMY_STAKEHOLDER: Register[\"stakeholders\"][number] = {\n role: StakeholderRole.Submitter,\n name: '',\n gitServerUsername: undefined,\n parties: [DUMMY_PARTY],\n};\n\n\nconst RegisterMetaForm: React.FC<{\n value: Register;\n onChange?: (newMeta: Register) => void;\n className?: string;\n}> = function ({ value, onChange, className }) {\n\n function handleOperatingLanguageChange(fieldName: keyof Omit<Locale, 'characterEncoding'>) {\n return (evt: React.FormEvent<HTMLInputElement>) => {\n const newValue = update(value, { operatingLanguage: op => update(op ?? {}, { [fieldName]: { $set: evt.currentTarget.value } }) });\n onChange!(newValue);\n }\n }\n\n function makeFormEventHandler\n <T extends HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement = HTMLInputElement>\n (func: (val: string) => Spec<typeof value>) {\n return (evt: React.FormEvent<T>) => {\n const spec = func(evt.currentTarget.value);\n if (spec) {\n onChange!(update(value, spec));\n }\n };\n }\n\n const stakeholders = value.stakeholders ?? [];\n function makeStakeholderChangeHandler<T extends HTMLInputElement | HTMLSelectElement>(\n idx: number,\n func: (val: string) => Spec<typeof value[\"stakeholders\"][number]>,\n ) {\n return makeFormEventHandler<T>(val => ({ stakeholders: { [idx]: func(val) } }));\n }\n function handleStakeholderAdd() {\n onChange!({ ...value, stakeholders: [ ...stakeholders, DUMMY_STAKEHOLDER ] });\n }\n return (\n <div css={css`display: flex; flex-flow: row wrap; align-content: flex-start; align-items: flex-start; gap: 10px;`} className={className}>\n\n <SuperFormGroup label=\"Basics:\">\n <FormGroup label=\"Name:\">\n <InputGroup\n fill\n value={value.name || ''}\n readOnly={!onChange}\n onChange={makeFormEventHandler(val => ({ name: { $set: val } }))}\n />\n </FormGroup>\n\n <FormGroup label=\"Uniform resource identifier:\">\n <InputGroup\n fill\n type=\"url\"\n value={value.uniformResourceIdentifier || ''}\n readOnly={!onChange}\n onChange={makeFormEventHandler(val => ({ uniformResourceIdentifier: { $set: val } }))}\n />\n </FormGroup>\n\n <FormGroup label=\"Content summary:\">\n <TextArea\n fill\n value={value.contentSummary || ''}\n readOnly={!onChange}\n onChange={makeFormEventHandler<HTMLTextAreaElement>(val => ({ contentSummary: { $set: val } }))}\n />\n </FormGroup>\n\n <FormGroup label=\"Operating language (locale):\" helperText=\"Name, country and ISO 639-2 language code.\">\n <ControlGroup vertical>\n <InputGroup\n readOnly={!onChange}\n placeholder=\"E.g., Welsh\"\n value={value.operatingLanguage?.name ?? ''}\n onChange={handleOperatingLanguageChange('name')} />\n <InputGroup\n readOnly={!onChange}\n placeholder=\"3-character numerical country code from ISO 3166-1\"\n value={value.operatingLanguage?.country ?? ''}\n onChange={handleOperatingLanguageChange('country')} />\n <InputGroup\n readOnly={!onChange}\n placeholder=\"3-character language code from ISO 639-2\"\n value={value.operatingLanguage?.languageCode ?? ''}\n onChange={handleOperatingLanguageChange('languageCode')} />\n </ControlGroup>\n </FormGroup>\n </SuperFormGroup>\n\n <SuperFormGroup label=\"Version: \" css={css`padding-bottom: 0;`}>\n <FormGroup label=\"Identifier: \">\n <InputGroup\n value={value.version?.id ?? ''}\n readOnly={!onChange}\n placeholder=\"E.g., 1.2\"\n onChange={makeFormEventHandler(val =>\n ({ version: v => update(v ?? DUMMY_VERSION, { id: { $set: val } }) })\n )}\n />\n </FormGroup>\n <FormGroup\n label=\"Published on: \"\n helperText={\n <>\n Date and time are\n <br />\n in {Intl.DateTimeFormat().resolvedOptions().timeZone}.\n {\" \"}\n <HelpTooltip content={<>\n Times are in your computer’s current time zone.\n {onChange\n ? \" When specifying, make sure to offset accordingly if it is different than register publication time zone.\"\n : null}\n </>} />\n </>}>\n <DatePicker\n css={css`margin: 0 -${PADDING};`}\n timePrecision={TimePrecision.MINUTE}\n value={value.version?.timestamp ?? null}\n showActionsBar={onChange ? true : false}\n onChange={(val: Date | null) =>\n onChange!(update(value, val !== null\n ? { version: v => update(v ?? DUMMY_VERSION, { timestamp: { $set: val } }) }\n : { $unset: ['version'] }))\n }\n />\n </FormGroup>\n </SuperFormGroup>\n\n <SuperFormGroup\n label=\"Stakeholders:\"\n helperText={onChange\n ? <Button onClick={handleStakeholderAdd} icon=\"add\">Add</Button>\n : null}>\n {stakeholders.length > 0\n ? <HTMLTable css={css`margin: 0 -${PADDING};`}>\n <thead>\n <tr css={css`& > * { white-space: nowrap }`}>\n <th>Role</th>\n <th>Name</th>\n <th>Git server username</th>\n <th>Parties</th>\n <th>Name</th>\n <th>Email</th>\n </tr>\n </thead>\n <tbody>\n {[ ...stakeholders.entries() ].map(([idx, s]) =>\n <tr key={idx}>\n <td>\n <HTMLSelect\n options={STAKEHOLDER_ROLES.map(r => ({ value: r, label: r }))}\n disabled={!onChange}\n onChange={makeStakeholderChangeHandler<HTMLSelectElement>(idx, (val) =>\n isStakeholderRole(val)\n ? { role: { $set: val } } as Spec<RegisterStakeholder> // Why do we need to cast this\n : {}\n )}\n value={s.role} />\n </td>\n <td>\n <InputGroup\n readOnly={!onChange}\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ name: { $set: val } })\n )}\n value={s.name} />\n </td>\n <td>\n <InputGroup\n readOnly={!onChange}\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ gitServerUsername: { $set: val || undefined } })\n )}\n value={s.gitServerUsername || ''} />\n </td>\n <td>\n <ControlGroup vertical={s.parties.length > 1}>\n {s.parties.map((party, partyIdx) =>\n <ButtonGroup key={partyIdx}>\n <Button\n key=\"delete\"\n outlined\n disabled={!onChange || s.parties.length < 2 || party.name !== ''}\n title=\"Delete this party\"\n onClick={() => onChange!(update(value, { stakeholders: { [idx]: { parties: { $splice: [[ partyIdx, 1 ]] } } } }))}\n icon=\"cross\"\n />\n {partyIdx === s.parties.length - 1\n ? <Button\n key=\"add\"\n outlined\n disabled={!onChange}\n onClick={() => onChange!(update(value, { stakeholders: { [idx]: { parties: { $push: [DUMMY_PARTY] } } } }))}\n title=\"Append a party\"\n icon=\"plus\"\n />\n : null}\n </ButtonGroup>\n )}\n </ControlGroup>\n </td>\n <td>\n <ControlGroup vertical={s.parties.length > 1}>\n {s.parties.map((party, partyIdx) =>\n <InputGroup\n key={partyIdx}\n readOnly={!onChange}\n placeholder=\"Individual or organization\"\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ parties: { [partyIdx]: { name: { $set: val } } } })\n )}\n value={(party as { name: string }).name}\n />\n )}\n </ControlGroup>\n </td>\n <td>\n <ControlGroup vertical={s.parties.length > 1}>\n {s.parties.map((party, partyIdx) =>\n <InputGroup\n key={partyIdx}\n type=\"email\"\n placeholder=\"Contact email\"\n readOnly={!onChange}\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ parties: { [partyIdx]: { contacts: { 0: { value: { $set: val } } } } } })\n )}\n value={party.contacts[0].value || ''} />\n )}\n </ControlGroup>\n </td>\n </tr>)}\n </tbody>\n </HTMLTable>\n : null}\n </SuperFormGroup>\n </div>\n );\n};\n\n\nconst PADDING = '11px';\nconst FormGroup = styled(BaseFormGroup)`\n margin: 0;\n`;\nconst SuperFormGroup_ = styled(FormGroup)`\n border-radius: 5px;\n padding: ${PADDING};\n background: white;\n > label.bp4-label {\n font-weight: bold;\n margin-bottom: ${PADDING};\n }\n > .bp4-form-content {\n display: flex;\n flex-flow: column nowrap;\n gap: ${PADDING};\n }\n`;\n\nconst SuperFormGroup: React.FC<FormGroupProps> = function (props) {\n return <SuperFormGroup_ {...props} className={Classes.ELEVATION_3} />\n}\n\n\nexport default RegisterMetaForm;\n"]}
|
|
1
|
+
{"version":3,"file":"RegisterMetaForm.js","sourceRoot":"","sources":["../../../../src/views/detail/RegisterMeta/RegisterMetaForm.tsx"],"names":[],"mappings":"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","sourcesContent":["/** @jsx jsx */\n/** @jsxFrag React.Fragment */\n\nimport update, { Spec } from 'immutability-helper';\nimport React from 'react';\nimport { jsx, css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n FormGroupProps,\n FormGroup as BaseFormGroup,\n Classes,\n Colors,\n ControlGroup,\n InputGroup,\n TextArea,\n HTMLTable,\n HTMLSelect,\n Button,\n ButtonGroup,\n} from '@blueprintjs/core';\nimport { DatePicker, TimePrecision } from '@blueprintjs/datetime';\nimport HelpTooltip from '@riboseinc/paneron-extension-kit/widgets/HelpTooltip';\nimport type { Register, RegisterStakeholder, Locale } from '../../../types';\nimport { isStakeholderRole } from '../../../types';\nimport { STAKEHOLDER_ROLES, StakeholderRole } from '../../../types/stakeholder';\n\n\n\nconst DUMMY_VERSION: Register[\"version\"] = { id: '', timestamp: new Date() };\nconst DUMMY_CONTACT: Register[\"stakeholders\"][number][\"parties\"][number][\"contacts\"][number] = {\n label: 'email',\n value: ''\n}\nconst DUMMY_PARTY: Register[\"stakeholders\"][number][\"parties\"][number] = {\n name: '',\n contacts: [DUMMY_CONTACT],\n};\nconst DUMMY_STAKEHOLDER: Register[\"stakeholders\"][number] = {\n role: StakeholderRole.Submitter,\n name: '',\n gitServerUsername: undefined,\n parties: [DUMMY_PARTY],\n};\n\n\nconst RegisterMetaForm: React.FC<{\n value: Register;\n onChange?: (newMeta: Register) => void;\n className?: string;\n}> = function ({ value, onChange, className }) {\n\n function handleOperatingLanguageChange(fieldName: keyof Omit<Locale, 'characterEncoding'>) {\n return (evt: React.FormEvent<HTMLInputElement>) => {\n const newValue = update(value, { operatingLanguage: op => update(op ?? {}, { [fieldName]: { $set: evt.currentTarget.value } }) });\n onChange!(newValue);\n }\n }\n\n function makeFormEventHandler\n <T extends HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement = HTMLInputElement>\n (func: (val: string) => Spec<typeof value>) {\n return (evt: React.FormEvent<T>) => {\n const spec = func(evt.currentTarget.value);\n if (spec) {\n onChange!(update(value, spec));\n }\n };\n }\n\n const stakeholders = value.stakeholders ?? [];\n function makeStakeholderChangeHandler<T extends HTMLInputElement | HTMLSelectElement>(\n idx: number,\n func: (val: string) => Spec<typeof value[\"stakeholders\"][number]>,\n ) {\n return makeFormEventHandler<T>(val => ({ stakeholders: { [idx]: func(val) } }));\n }\n function handleStakeholderAdd() {\n onChange!({ ...value, stakeholders: [ ...stakeholders, DUMMY_STAKEHOLDER ] });\n }\n return (\n <div css={css`display: flex; flex-flow: row wrap; align-content: flex-start; align-items: flex-start; gap: 10px;`} className={className}>\n\n <SuperFormGroup label=\"Basics:\">\n <FormGroup label=\"Name:\">\n <InputGroup\n fill\n value={value.name || ''}\n readOnly={!onChange}\n onChange={makeFormEventHandler(val => ({ name: { $set: val } }))}\n />\n </FormGroup>\n\n <FormGroup label=\"Uniform resource identifier:\">\n <InputGroup\n fill\n type=\"url\"\n value={value.uniformResourceIdentifier || ''}\n readOnly={!onChange}\n onChange={makeFormEventHandler(val => ({ uniformResourceIdentifier: { $set: val } }))}\n />\n </FormGroup>\n\n <FormGroup label=\"Content summary:\">\n <TextArea\n fill\n value={value.contentSummary || ''}\n readOnly={!onChange}\n onChange={makeFormEventHandler<HTMLTextAreaElement>(val => ({ contentSummary: { $set: val } }))}\n />\n </FormGroup>\n\n <FormGroup label=\"Operating language (locale):\" helperText=\"Name, country and ISO 639-2 language code.\">\n <ControlGroup vertical>\n <InputGroup\n readOnly={!onChange}\n placeholder=\"E.g., Welsh\"\n value={value.operatingLanguage?.name ?? ''}\n onChange={handleOperatingLanguageChange('name')} />\n <InputGroup\n readOnly={!onChange}\n placeholder=\"3-character numerical country code from ISO 3166-1\"\n value={value.operatingLanguage?.country ?? ''}\n onChange={handleOperatingLanguageChange('country')} />\n <InputGroup\n readOnly={!onChange}\n placeholder=\"3-character language code from ISO 639-2\"\n value={value.operatingLanguage?.languageCode ?? ''}\n onChange={handleOperatingLanguageChange('languageCode')} />\n </ControlGroup>\n </FormGroup>\n </SuperFormGroup>\n\n <SuperFormGroup label=\"Version: \" css={css`padding-bottom: 0;`}>\n <FormGroup label=\"Identifier: \">\n <InputGroup\n value={value.version?.id ?? ''}\n readOnly={!onChange}\n placeholder=\"E.g., 1.2\"\n onChange={makeFormEventHandler(val =>\n ({ version: v => update(v ?? DUMMY_VERSION, { id: { $set: val } }) })\n )}\n />\n </FormGroup>\n <FormGroup\n label=\"Published on: \"\n helperText={\n <>\n Date and time are\n <br />\n in {Intl.DateTimeFormat().resolvedOptions().timeZone}.\n {\" \"}\n <HelpTooltip content={<>\n Times are in your computer’s current time zone.\n {onChange\n ? \" When specifying, make sure to offset accordingly if it is different than register publication time zone.\"\n : null}\n </>} />\n </>}>\n <DatePicker\n css={css`margin: 0 -${PADDING_PX - 1}px;`}\n timePrecision={TimePrecision.MINUTE}\n value={value.version?.timestamp ?? null}\n showActionsBar={onChange ? true : false}\n onChange={(val: Date | null) =>\n onChange!(update(value, val !== null\n ? { version: v => update(v ?? DUMMY_VERSION, { timestamp: { $set: val } }) }\n : { $unset: ['version'] }))\n }\n />\n </FormGroup>\n </SuperFormGroup>\n\n <SuperFormGroup\n label=\"Stakeholders:\"\n helperText={onChange\n ? <Button onClick={handleStakeholderAdd} icon=\"add\">Add</Button>\n : null}>\n {stakeholders.length > 0\n ? <HTMLTable css={css`margin: 0 -${PADDING_PX}px;`}>\n <thead>\n <tr css={css`& > * { white-space: nowrap }`}>\n <th>Role</th>\n <th>Name</th>\n <th>Git server username</th>\n <th>Parties</th>\n <th>Name</th>\n <th>Email</th>\n </tr>\n </thead>\n <tbody>\n {[ ...stakeholders.entries() ].map(([idx, s]) =>\n <tr key={idx}>\n <td>\n <HTMLSelect\n options={STAKEHOLDER_ROLES.map(r => ({ value: r, label: r }))}\n disabled={!onChange}\n onChange={makeStakeholderChangeHandler<HTMLSelectElement>(idx, (val) =>\n isStakeholderRole(val)\n ? { role: { $set: val } } as Spec<RegisterStakeholder> // Why do we need to cast this\n : {}\n )}\n value={s.role} />\n </td>\n <td>\n <InputGroup\n readOnly={!onChange}\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ name: { $set: val } })\n )}\n value={s.name} />\n </td>\n <td>\n <InputGroup\n readOnly={!onChange}\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ gitServerUsername: { $set: val || undefined } })\n )}\n value={s.gitServerUsername || ''} />\n </td>\n <td>\n <ControlGroup vertical={s.parties.length > 1}>\n {s.parties.map((party, partyIdx) =>\n <ButtonGroup key={partyIdx}>\n <Button\n key=\"delete\"\n outlined\n disabled={!onChange || s.parties.length < 2 || party.name !== ''}\n title=\"Delete this party\"\n onClick={() => onChange!(update(value, { stakeholders: { [idx]: { parties: { $splice: [[ partyIdx, 1 ]] } } } }))}\n icon=\"cross\"\n />\n {partyIdx === s.parties.length - 1\n ? <Button\n key=\"add\"\n outlined\n disabled={!onChange}\n onClick={() => onChange!(update(value, { stakeholders: { [idx]: { parties: { $push: [DUMMY_PARTY] } } } }))}\n title=\"Append a party\"\n icon=\"plus\"\n />\n : null}\n </ButtonGroup>\n )}\n </ControlGroup>\n </td>\n <td>\n <ControlGroup vertical={s.parties.length > 1}>\n {s.parties.map((party, partyIdx) =>\n <InputGroup\n key={partyIdx}\n readOnly={!onChange}\n placeholder=\"Individual or organization\"\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ parties: { [partyIdx]: { name: { $set: val } } } })\n )}\n value={(party as { name: string }).name}\n />\n )}\n </ControlGroup>\n </td>\n <td>\n <ControlGroup vertical={s.parties.length > 1}>\n {s.parties.map((party, partyIdx) =>\n <InputGroup\n key={partyIdx}\n type=\"email\"\n placeholder=\"Contact email\"\n readOnly={!onChange}\n onChange={makeStakeholderChangeHandler(idx, (val) =>\n ({ parties: { [partyIdx]: { contacts: { 0: { value: { $set: val } } } } } })\n )}\n value={party.contacts[0].value || ''} />\n )}\n </ControlGroup>\n </td>\n </tr>)}\n </tbody>\n </HTMLTable>\n : null}\n </SuperFormGroup>\n </div>\n );\n};\n\n\nconst PADDING_PX = 11;\nconst FormGroup = styled(BaseFormGroup)`\n margin: 0;\n`;\nconst SuperFormGroup_ = styled(FormGroup)`\n border-radius: 5px;\n padding: ${PADDING_PX}px;\n\n > label.bp4-label {\n font-weight: bold;\n margin-bottom: ${PADDING_PX}px;\n }\n > .bp4-form-content {\n display: flex;\n flex-flow: column nowrap;\n gap: ${PADDING_PX}px;\n }\n\n /* Note: these colors are picked to work with date input widget specifically. */\n background: ${Colors.WHITE};\n .bp4-dark & { background: ${Colors.DARK_GRAY3}; }\n`;\n\nconst SuperFormGroup: React.FC<FormGroupProps> = function (props) {\n return <SuperFormGroup_ {...props} className={Classes.ELEVATION_3} />\n}\n\n\nexport default RegisterMetaForm;\n"]}
|
package/site-builder/index.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { BufferDataset } from '@riboseinc/paneron-extension-kit/types/buffers';
|
|
2
|
-
import type { DatasetContext } from '@riboseinc/paneron-extension-kit/types/renderer';
|
|
3
|
-
export default function exportPublicSite({ getObjectData }: {
|
|
4
|
-
getObjectData: DatasetContext["getObjectData"];
|
|
5
|
-
onProgress?: (message: string) => void;
|
|
6
|
-
}): AsyncGenerator<BufferDataset, void, void>;
|
package/site-builder/index.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = exportPublicSite;
|
|
7
|
-
|
|
8
|
-
var _common = require("../common");
|
|
9
|
-
|
|
10
|
-
var _page = _interopRequireDefault(require("./page"));
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
async function* exportPublicSite({
|
|
15
|
-
getObjectData
|
|
16
|
-
}) {
|
|
17
|
-
const registerMeta = (await getObjectData({
|
|
18
|
-
objectPaths: [`/${_common.REGISTER_METADATA_FILENAME}`]
|
|
19
|
-
})).data[`/${_common.REGISTER_METADATA_FILENAME}`];
|
|
20
|
-
yield {
|
|
21
|
-
'/hello.txt': Buffer.from('hello'),
|
|
22
|
-
'/index.html': Buffer.from((0, _page.default)({
|
|
23
|
-
title: "Register"
|
|
24
|
-
})),
|
|
25
|
-
'/register-meta.json': Buffer.from(JSON.stringify(registerMeta))
|
|
26
|
-
};
|
|
27
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/site-builder/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,OAAO,MAAM,QAAQ,CAAC;AAG7B,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAG9D;IACC,MAAM,YAAY,GAAG,CAAC,MAAM,aAAa,CAAC;QACxC,WAAW,EAAE,CAAC,IAAI,0BAA0B,EAAE,CAAC;KAChD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,0BAA0B,EAAE,CAAC,CAAC;IAE3C,MAAM;QACJ,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1D,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;KACjE,CAAC;AACJ,CAAC","sourcesContent":["import type { BufferDataset } from '@riboseinc/paneron-extension-kit/types/buffers';\nimport type { DatasetContext } from '@riboseinc/paneron-extension-kit/types/renderer';\nimport { REGISTER_METADATA_FILENAME } from '../common'; \nimport getHTML from './page';\n\n\nexport default async function* exportPublicSite({ getObjectData }: {\n getObjectData: DatasetContext[\"getObjectData\"],\n onProgress?: (message: string) => void,\n}): AsyncGenerator<BufferDataset, void, void> {\n const registerMeta = (await getObjectData({\n objectPaths: [`/${REGISTER_METADATA_FILENAME}`],\n })).data[`/${REGISTER_METADATA_FILENAME}`];\n\n yield {\n '/hello.txt': Buffer.from('hello'),\n '/index.html': Buffer.from(getHTML({ title: \"Register\" })),\n '/register-meta.json': Buffer.from(JSON.stringify(registerMeta)),\n };\n}\n"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare namespace JSX {
|
|
2
|
-
type Element = string;
|
|
3
|
-
interface IntrinsicElements {
|
|
4
|
-
[el: string]: any;
|
|
5
|
-
}
|
|
6
|
-
}
|
|
7
|
-
declare type AttributeValue = number | string | Date | boolean;
|
|
8
|
-
export interface Children {
|
|
9
|
-
children?: string | string[];
|
|
10
|
-
}
|
|
11
|
-
export interface CustomElementHandler {
|
|
12
|
-
(attributes: Attributes & Children, contents: string[]): string;
|
|
13
|
-
}
|
|
14
|
-
export interface Attributes {
|
|
15
|
-
[key: string]: AttributeValue;
|
|
16
|
-
}
|
|
17
|
-
declare function createElement(name: string | CustomElementHandler, attributes: Attributes & Children | undefined, ...contents: string[]): string;
|
|
18
|
-
export { createElement as jsxs, createElement as jsx };
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.jsx = exports.jsxs = createElement;
|
|
7
|
-
const capitalACharCode = 'A'.charCodeAt(0);
|
|
8
|
-
const capitalZCharCode = 'Z'.charCodeAt(0);
|
|
9
|
-
|
|
10
|
-
function isUpper(input, index) {
|
|
11
|
-
const charCode = input.charCodeAt(index);
|
|
12
|
-
return capitalACharCode <= charCode && capitalZCharCode >= charCode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
;
|
|
16
|
-
|
|
17
|
-
function toKebabCase(camelCased) {
|
|
18
|
-
let kebabCased = '';
|
|
19
|
-
|
|
20
|
-
for (let i = 0; i < camelCased.length; i++) {
|
|
21
|
-
const prevUpperCased = i > 0 ? isUpper(camelCased, i - 1) : true;
|
|
22
|
-
const currentUpperCased = isUpper(camelCased, i);
|
|
23
|
-
const nextUpperCased = i < camelCased.length - 1 ? isUpper(camelCased, i + 1) : true;
|
|
24
|
-
|
|
25
|
-
if (!prevUpperCased && currentUpperCased || currentUpperCased && !nextUpperCased) {
|
|
26
|
-
kebabCased += '-';
|
|
27
|
-
kebabCased += camelCased[i].toLowerCase();
|
|
28
|
-
} else {
|
|
29
|
-
kebabCased += camelCased[i];
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return kebabCased;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
;
|
|
37
|
-
|
|
38
|
-
function escapeAttrNodeValue(value) {
|
|
39
|
-
return value.replace(/(&)|(")|(\u00A0)/g, (_, amp, quote) => {
|
|
40
|
-
if (amp) {
|
|
41
|
-
return '&';
|
|
42
|
-
} else if (quote) {
|
|
43
|
-
return '"';
|
|
44
|
-
} else {
|
|
45
|
-
return ' ';
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
;
|
|
51
|
-
|
|
52
|
-
function getAttributeStringifier(attributes) {
|
|
53
|
-
return function attributeToString(name) {
|
|
54
|
-
const value = attributes[name];
|
|
55
|
-
const formattedName = toKebabCase(name);
|
|
56
|
-
|
|
57
|
-
const makeAttribute = value => `${formattedName}="${value}"`;
|
|
58
|
-
|
|
59
|
-
if (value instanceof Date) {
|
|
60
|
-
return makeAttribute(value.toISOString());
|
|
61
|
-
} else switch (typeof value) {
|
|
62
|
-
case 'boolean':
|
|
63
|
-
if (value) {
|
|
64
|
-
return formattedName;
|
|
65
|
-
} else {
|
|
66
|
-
return '';
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
default:
|
|
70
|
-
return makeAttribute(escapeAttrNodeValue(value.toString()));
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
;
|
|
76
|
-
|
|
77
|
-
function attributesToString(attributes) {
|
|
78
|
-
const spaceSeparated = Object.keys(attributes).filter(attribute => attribute !== 'children').map(getAttributeStringifier(attributes)).filter(attribute => attribute.length).join(' ');
|
|
79
|
-
|
|
80
|
-
if (spaceSeparated.trim()) {
|
|
81
|
-
return ` ${spaceSeparated}`;
|
|
82
|
-
} else {
|
|
83
|
-
return '';
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
;
|
|
88
|
-
|
|
89
|
-
function contentsToString(contents) {
|
|
90
|
-
return contents.map(elements => Array.isArray(elements) ? elements.join('\n') : elements).join('\n') ?? '';
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
;
|
|
94
|
-
|
|
95
|
-
function createElement(name, attributes, ...contents) {
|
|
96
|
-
if (typeof name === 'function') {
|
|
97
|
-
return name(attributes ?? {}, contents);
|
|
98
|
-
} else {
|
|
99
|
-
const tagName = toKebabCase(name);
|
|
100
|
-
const inner1 = contentsToString(contents);
|
|
101
|
-
const inner2 = attributes !== null && attributes !== void 0 && attributes.children ? contentsToString(Array.isArray(attributes.children) ? attributes.children : [attributes.children]) : '';
|
|
102
|
-
const inner = inner1 && inner2 ? `${inner1}\n${inner2}` : inner1 || inner2;
|
|
103
|
-
return `<${tagName}${attributes ? attributesToString(attributes) : ''}>${inner}</${tagName}>`;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../src/site-builder/jsx-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["export namespace JSX {\n export type Element = string;\n export interface IntrinsicElements {\n [el: string]: any\n }\n}\n\ntype AttributeValue = number | string | Date | boolean;\n\nexport interface Children {\n children?: string | string[];\n}\n\nexport interface CustomElementHandler {\n (attributes: Attributes & Children, contents: string[]): string;\n}\n\nexport interface Attributes {\n [key: string]: AttributeValue;\n}\n\nconst capitalACharCode = 'A'.charCodeAt(0);\nconst capitalZCharCode = 'Z'.charCodeAt(0);\n\nfunction isUpper(input: string, index: number) {\n const charCode = input.charCodeAt(index);\n return capitalACharCode <= charCode && capitalZCharCode >= charCode;\n};\n\nfunction toKebabCase(camelCased: string) {\n let kebabCased = '';\n for (let i = 0; i < camelCased.length; i++) {\n const prevUpperCased = i > 0 ? isUpper(camelCased, i - 1) : true;\n const currentUpperCased = isUpper(camelCased, i);\n const nextUpperCased = i < camelCased.length - 1 ? isUpper(camelCased, i + 1) : true;\n if (!prevUpperCased && currentUpperCased || currentUpperCased && !nextUpperCased) {\n kebabCased += '-';\n kebabCased += camelCased[i].toLowerCase();\n } else {\n kebabCased += camelCased[i];\n }\n }\n return kebabCased;\n};\n\nfunction escapeAttrNodeValue(value: string) {\n return (\n value.replace(/(&)|(\")|(\\u00A0)/g, (_, amp, quote) => {\n if (amp) { return '&'; }\n else if (quote) { return '"'; }\n else { return ' '; }\n })\n );\n};\n\nfunction getAttributeStringifier(attributes: Attributes) {\n return function attributeToString(name: string): string {\n const value = attributes[name];\n const formattedName = toKebabCase(name);\n const makeAttribute = (value: string) => `${formattedName}=\"${value}\"`;\n\n if (value instanceof Date) {\n return makeAttribute(value.toISOString());\n } else switch (typeof value) {\n case 'boolean':\n if (value) {\n return formattedName;\n } else {\n return '';\n }\n default:\n return makeAttribute(escapeAttrNodeValue(value.toString()));\n }\n }\n};\n\nfunction attributesToString(attributes: Attributes) {\n const spaceSeparated = Object.keys(attributes).\n filter(attribute => attribute !== 'children').\n map(getAttributeStringifier(attributes)).\n filter(attribute => attribute.length).\n join(' ');\n if (spaceSeparated.trim()) {\n return ` ${spaceSeparated}`;\n } else {\n return '';\n }\n};\n\nfunction contentsToString(contents: string[]) {\n return contents.\n map(elements => Array.isArray(elements) ? elements.join('\\n') : elements).\n join('\\n') ?? ''\n};\n\nfunction createElement(\n name: string | CustomElementHandler,\n attributes: Attributes & Children | undefined,\n ...contents: string[]\n): string {\n if (typeof name === 'function') {\n return name(attributes ?? {}, contents);\n } else {\n const tagName = toKebabCase(name);\n const inner1 = contentsToString(contents);\n const inner2 = attributes?.children\n ? contentsToString(\n Array.isArray(attributes.children)\n ? attributes.children\n : [attributes.children]\n )\n : '';\n const inner = inner1 && inner2\n ? `${inner1}\\n${inner2}`\n : inner1 || inner2;\n return `<${tagName}${attributes ? attributesToString(attributes) : ''}>${inner}</${tagName}>`;\n }\n}\n\nexport { createElement as jsxs, createElement as jsx }\n"]}
|
package/site-builder/page.d.ts
DELETED
package/site-builder/page.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = getHTML;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("./jsx-runtime");
|
|
9
|
-
|
|
10
|
-
function getHTML(meta) {
|
|
11
|
-
return (0, _jsxRuntime.jsxs)("html", {
|
|
12
|
-
children: [(0, _jsxRuntime.jsx)("head", {
|
|
13
|
-
children: (0, _jsxRuntime.jsx)("title", {
|
|
14
|
-
children: meta.title
|
|
15
|
-
})
|
|
16
|
-
}), (0, _jsxRuntime.jsx)("body", {
|
|
17
|
-
children: (0, _jsxRuntime.jsx)("div", {
|
|
18
|
-
children: "test"
|
|
19
|
-
})
|
|
20
|
-
})]
|
|
21
|
-
});
|
|
22
|
-
}
|
package/site-builder/page.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/site-builder/page.tsx"],"names":[],"mappings":";AAOA,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,IAAc;IAC5C,OAAO,2BACL,yBACE,0BAAQ,IAAI,CAAC,KAAK,GAAS,GACtB,EACP,yBACE,iCAAe,GACV,IACF,CAAC;AACV,CAAC","sourcesContent":["/** @jsxImportSource . */\n\n\ninterface PageMeta {\n title: string\n}\n\nexport default function getHTML(meta: PageMeta): string {\n return <html>\n <head>\n <title>{meta.title}</title>\n </head>\n <body>\n <div>test</div>\n </body>\n </html>;\n}\n"]}
|