@nextmoe/edit-ui-catalog 0.3.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/vocab.ts","../src/helpers.ts","../src/identity.ts","../src/character.ts","../src/release.ts","../src/taxonomy.ts","../src/work_media.ts","../src/work.ts","../src/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { EditSelectOption } from '@nextmoe/edit-ui-core'\n\nconst option = (\n value: string | number,\n label: string\n): EditSelectOption => ({ value, label })\n\nconst LANG_LABEL: Record<string, string> = {\n '': '未知',\n ar: '阿拉伯语',\n be: '白俄罗斯语',\n bg: '保加利亚语',\n ca: '加泰罗尼亚语',\n // Not a language: MapWikiOLang groups \"ck\" with \"\" and \"others\" and maps all\n // three to the default, so it is a legacy marker carried in from the wiki\n // import. Releases still accept it, which is why it is in the list at all.\n ck: '其他(历史值)',\n cs: '捷克语',\n da: '丹麦语',\n de: '德语',\n el: '希腊语',\n en: '英语',\n eo: '世界语',\n es: '西班牙语',\n et: '爱沙尼亚语',\n eu: '巴斯克语',\n fa: '波斯语',\n fi: '芬兰语',\n fr: '法语',\n ga: '爱尔兰语',\n gd: '苏格兰盖尔语',\n gl: '加利西亚语',\n he: '希伯来语',\n hi: '印地语',\n hr: '克罗地亚语',\n hu: '匈牙利语',\n id: '印度尼西亚语',\n it: '意大利语',\n iu: '因纽特语',\n ja: '日语',\n kk: '哈萨克语',\n ko: '韩语',\n la: '拉丁语',\n lt: '立陶宛语',\n lv: '拉脱维亚语',\n mk: '马其顿语',\n ms: '马来语',\n nl: '荷兰语',\n no: '挪威语',\n pl: '波兰语',\n 'pt-br': '葡萄牙语(巴西)',\n 'pt-pt': '葡萄牙语(葡萄牙)',\n ro: '罗马尼亚语',\n ru: '俄语',\n sk: '斯洛伐克语',\n sl: '斯洛文尼亚语',\n sr: '塞尔维亚语',\n sv: '瑞典语',\n ta: '泰米尔语',\n th: '泰语',\n tr: '土耳其语',\n uk: '乌克兰语',\n ur: '乌尔都语',\n vi: '越南语',\n zh: '中文',\n 'zh-Hans': '简体中文',\n 'zh-Hant': '繁体中文'\n}\n\nconst langOptions = (codes: readonly string[]): EditSelectOption[] =>\n codes.map((code) => option(code, LANG_LABEL[code] ?? code))\n\nconst OLANG_CODES = [\n 'ar', 'be', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'eo',\n 'es', 'fi', 'fr', 'ga', 'gd', 'he', 'hi', 'hr', 'hu', 'id',\n 'it', 'iu', 'ja', 'ko', 'la', 'lt', 'lv', 'mk', 'ms', 'nl',\n 'no', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'sk', 'sl', 'sr', 'sv',\n 'ta', 'th', 'tr', 'uk', 'ur', 'vi', 'zh', 'zh-Hans', 'zh-Hant'\n] as const\n\nconst RELEASE_LANG_CODES = [\n 'ar', 'be', 'bg', 'ca', 'ck', 'cs', 'da', 'de', 'el', 'en',\n 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fr', 'ga', 'gd', 'gl',\n 'he', 'hi', 'hr', 'hu', 'id', 'it', 'iu', 'ja', 'kk', 'ko',\n 'la', 'lt', 'lv', 'mk', 'ms', 'nl', 'no', 'pl', 'pt-br', 'pt-pt',\n 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'ta', 'th', 'tr', 'uk',\n 'ur', 'vi', 'zh', 'zh-Hans', 'zh-Hant'\n] as const\n\nconst PLATFORM_LABEL: Record<string, string> = {\n and: 'Android',\n bdp: 'Blu-ray Player',\n dos: 'DOS',\n drc: 'Dreamcast',\n dvd: 'DVD Player',\n fm7: 'FM-7',\n fmt: 'FM Towns',\n gba: 'Game Boy Advance',\n gbc: 'Game Boy Color',\n ios: 'iOS',\n lin: 'Linux',\n mac: 'macOS',\n mob: '功能机',\n msx: 'MSX',\n n3d: 'Nintendo 3DS',\n nds: 'Nintendo DS',\n nes: 'Famicom',\n oth: '其他',\n p88: 'PC-88',\n p98: 'PC-98',\n pce: 'PC Engine',\n pcf: 'PC-FX',\n ps1: 'PlayStation',\n ps2: 'PlayStation 2',\n ps3: 'PlayStation 3',\n ps4: 'PlayStation 4',\n ps5: 'PlayStation 5',\n psp: 'PlayStation Portable',\n psv: 'PlayStation Vita',\n sat: 'Sega Saturn',\n scd: 'Sega Mega-CD',\n sfc: 'Super Famicom',\n smd: 'Mega Drive',\n sw2: 'Nintendo Switch 2',\n swi: 'Nintendo Switch',\n tdo: '3DO',\n vnd: 'VNDS',\n web: '网页',\n wii: 'Wii',\n win: 'Windows',\n wiu: 'Wii U',\n x1s: 'Sharp X1',\n x68: 'Sharp X68000',\n xb1: 'Xbox',\n xb3: 'Xbox 360',\n xbo: 'Xbox One',\n xxs: 'Xbox Series X/S'\n}\n\n// The published vocabulary's order, wiu-before-win included. platform is\n// token-coded, so no wire code is an index into this list and the order is\n// presentational — but vocab.spec.ts asserts it against the census, so a\n// private sort here fails the suite.\nconst PLATFORM_CODES = [\n 'and', 'bdp', 'dos', 'drc', 'dvd', 'fm7', 'fmt', 'gba', 'gbc', 'ios',\n 'lin', 'mac', 'mob', 'msx', 'n3d', 'nds', 'nes', 'oth', 'p88', 'p98',\n 'pce', 'pcf', 'ps1', 'ps2', 'ps3', 'ps4', 'ps5', 'psp', 'psv', 'sat',\n 'scd', 'sfc', 'smd', 'sw2', 'swi', 'tdo', 'vnd', 'web', 'wii', 'wiu',\n 'win', 'x1s', 'x68', 'xb1', 'xb3', 'xbo', 'xxs'\n] as const\n\nexport const OLANG_OPTIONS: EditSelectOption[] = langOptions(OLANG_CODES)\n\nexport const CHARACTER_LANG_OPTIONS: EditSelectOption[] = langOptions([\n '',\n ...OLANG_CODES\n])\n\n// Same code set as a character's language, different meaning for the empty\n// string: on a title it is \"this alias belongs to no language\", which the engine\n// accepts only for the alias kind — not \"the language is unknown\".\nexport const TITLE_LANG_OPTIONS: EditSelectOption[] = [\n option('', '不限定语言(仅别名)'),\n ...OLANG_OPTIONS\n]\n\nexport const RELEASE_LANG_OPTIONS: EditSelectOption[] =\n langOptions(RELEASE_LANG_CODES)\n\nexport const INTRO_LANG_OPTIONS: EditSelectOption[] = langOptions([\n 'en',\n 'ja',\n 'zh-Hans',\n 'zh-Hant'\n])\n\nexport const CONTENT_RATING_OPTIONS: EditSelectOption[] = [\n option(0, '全年龄'),\n option(1, '敏感'),\n option(2, 'R18')\n]\n\nexport const GENDER_OPTIONS: EditSelectOption[] = [\n option(1, '男性'),\n option(2, '女性'),\n option(3, '其他')\n]\n\nexport const BLOOD_TYPE_OPTIONS: EditSelectOption[] = [\n option(1, 'A 型'),\n option(2, 'B 型'),\n option(3, 'AB 型'),\n option(4, 'O 型')\n]\n\nexport const TITLE_KIND_OPTIONS: EditSelectOption[] = [\n option(0, '官方'),\n option(1, '别名'),\n option(2, '简称')\n]\n\nexport const ALIAS_KIND_OPTIONS: EditSelectOption[] = [\n option(0, '译名'),\n option(1, '拼写变体')\n]\n\nexport const ROSTER_KIND_OPTIONS: EditSelectOption[] = [\n option(0, '未知'),\n option(1, '主角'),\n option(2, '配角'),\n option(3, '出场')\n]\n\nexport const SPOILER_OPTIONS: EditSelectOption[] = [\n option(0, '无剧透'),\n option(1, '轻微剧透'),\n option(2, '严重剧透')\n]\n\nexport const LABEL_KIND_OPTIONS: EditSelectOption[] = [\n option(0, '社团'),\n option(1, '发行商'),\n option(2, '开发商'),\n option(3, '品牌')\n]\n\nexport const RELEASE_KIND_OPTIONS: EditSelectOption[] = [\n option(0, '默认'),\n option(1, '数字版'),\n option(2, '实体版'),\n option(3, '体验版'),\n option(4, '补丁')\n]\n\nexport const RELEASE_PLATFORM_OPTIONS: EditSelectOption[] = PLATFORM_CODES.map(\n (code) => option(code, PLATFORM_LABEL[code] ?? code)\n)\n\nexport const SEXUAL_OPTIONS: EditSelectOption[] = [\n option(0, '安全'),\n option(1, '性暗示'),\n option(2, '露骨')\n]\n\nexport const VIOLENCE_OPTIONS: EditSelectOption[] = [\n option(0, '平和'),\n option(1, '暴力'),\n option(2, '血腥')\n]\n","import type {\n EditColumnType,\n EditFieldConfig,\n EditObjectColumn,\n EditSelectOption\n} from '@nextmoe/edit-ui-core'\n\nimport type { CatalogResolve, CatalogSearch } from './types'\nimport { INTRO_LANG_OPTIONS } from './vocab'\n\nexport const GROUP = {\n basic: '基本',\n name: '名称',\n desc: '描述',\n rel: '关系',\n media: '媒体',\n release: '发行'\n} as const\n\nexport const suppressed = (\n parentLabel: string,\n group: string\n): EditFieldConfig => ({\n label: `${parentLabel}(已隐藏)`,\n group,\n control: 'readonly'\n})\n\n// ObjectListCell only mounts KunSelect when control is 'select'; options\n// alone still render a text input, and a typed public-API string is a 422.\nexport const selectColumn = (\n key: string,\n label: string,\n type: EditColumnType,\n required: boolean,\n options: EditSelectOption[],\n width?: string\n): EditObjectColumn => ({\n key,\n label,\n type,\n required,\n options,\n control: 'select',\n ...(width ? { width } : {})\n})\n\nexport const switchColumn = (\n key: string,\n label: string,\n required: boolean,\n width = 'w-24'\n): EditObjectColumn => ({\n key,\n label,\n type: 'boolean',\n required,\n control: 'switch',\n width\n})\n\nexport const textColumn = (\n key: string,\n label: string,\n required: boolean,\n extra?: Partial<EditObjectColumn>\n): EditObjectColumn => ({\n key,\n label,\n type: 'string',\n required,\n ...extra\n})\n\nexport const idColumn = (\n key: string,\n label: string,\n required: boolean,\n refs?: {\n search?: CatalogSearch\n resolve?: CatalogResolve\n width?: string\n }\n): EditObjectColumn => {\n const column: EditObjectColumn = {\n key,\n label,\n type: 'integer',\n required\n }\n if (refs?.search) {\n column.control = 'entity-picker'\n column.searchEntities = refs.search\n if (refs.resolve) {\n column.resolveEntities = refs.resolve\n }\n }\n if (refs?.width) {\n column.width = refs.width\n }\n return column\n}\n\nexport const introColumns = (): EditObjectColumn[] => [\n selectColumn('lang', '语言', 'string', true, INTRO_LANG_OPTIONS, 'w-32'),\n textColumn('intro', '介绍', true, { control: 'textarea' })\n]\n\nexport const introList = (label = '介绍'): EditFieldConfig => ({\n label,\n group: GROUP.desc,\n description:\n '每种语言一条,语言仅限英语、日语、简体中文、繁体中文。介绍最多 50000 字,最多 200 条。',\n columns: introColumns()\n})\n\nexport const urlList = (label = '链接'): EditFieldConfig => ({\n label,\n group: GROUP.media,\n control: 'string-list',\n description: '须为 http(s) URL,最多 200 条,每条最多 2000 字。'\n})\n\nexport const nameField = (\n maxRunes: number,\n label = '名称'\n): EditFieldConfig => ({\n label,\n group: GROUP.name,\n description: `不能为空,最多 ${maxRunes} 字。`\n})\n","import { cleanEditText } from '@nextmoe/edit-ui-core'\n\nconst asObject = (item: unknown): Record<string, unknown> | null =>\n item !== null && typeof item === 'object' && !Array.isArray(item)\n ? (item as Record<string, unknown>)\n : null\n\nconst asInteger = (value: unknown): number | null =>\n typeof value === 'number' && Number.isInteger(value) ? value : null\n\nexport const workTitleIdentityKey = (item: unknown): string | null => {\n const row = asObject(item)\n if (!row) {\n return null\n }\n const kind = asInteger(row.kind)\n if (kind === null) {\n return null\n }\n // An alias may carry no language, and the row that reaches here has had every\n // blank optional key dropped for the wire payload — but the column is NOT NULL\n // and stores \"\", so the key keeps an empty segment. Rejecting the missing lang\n // left exactly those rows with no key, hence no suppression toggle at all.\n const lang = row.lang === undefined ? '' : row.lang\n if (typeof lang !== 'string') {\n return null\n }\n if (typeof row.title !== 'string') {\n return null\n }\n const text = cleanEditText(row.title)\n if (text === '') {\n return null\n }\n return `title:${kind}:${lang}:${text}`\n}\n\nexport const characterAliasIdentityKey = (item: unknown): string | null => {\n const row = asObject(item)\n if (!row) {\n return null\n }\n const kind = asInteger(row.kind)\n if (kind === null) {\n return null\n }\n if (typeof row.lang !== 'string') {\n return null\n }\n if (typeof row.name !== 'string') {\n return null\n }\n const text = cleanEditText(row.name)\n if (text === '') {\n return null\n }\n return `alias:${kind}:${row.lang}:${text}`\n}\n\nexport const workRosterIdentityKey = (item: unknown): string | null => {\n const row = asObject(item)\n if (!row) {\n return null\n }\n const characterId = asInteger(row.character_id)\n if (characterId === null || characterId <= 0) {\n return null\n }\n return `roster:${characterId}`\n}\n\nexport const workCreditIdentityKey = (item: unknown): string | null => {\n const row = asObject(item)\n if (!row) {\n return null\n }\n const roleId = asInteger(row.role_id)\n const creditNameId = asInteger(row.credit_name_id)\n if (roleId === null || roleId <= 0) {\n return null\n }\n if (creditNameId === null || creditNameId <= 0) {\n return null\n }\n // The server stores character_id 0 when the credit names no character;\n // omitting the key here has to produce that same segment or the suppression\n // set misses the row.\n if (!('character_id' in row) || row.character_id === undefined) {\n return `credit:${roleId}:${creditNameId}:0`\n }\n const characterId = asInteger(row.character_id)\n if (characterId === null || characterId < 0) {\n return null\n }\n return `credit:${roleId}:${creditNameId}:${characterId}`\n}\n","import type { EditFieldConfigMap } from '@nextmoe/edit-ui-core'\n\nimport {\n GROUP,\n introList,\n selectColumn,\n suppressed,\n switchColumn,\n textColumn\n} from './helpers'\nimport { characterAliasIdentityKey } from './identity'\nimport type { CatalogPresetOptions } from './types'\nimport {\n ALIAS_KIND_OPTIONS,\n BLOOD_TYPE_OPTIONS,\n CHARACTER_LANG_OPTIONS,\n GENDER_OPTIONS,\n OLANG_OPTIONS\n} from './vocab'\n\nconst measure = (\n label: string,\n min: number,\n max: number\n): EditFieldConfigMap[string] => ({\n label,\n group: GROUP.basic,\n nullable: true,\n description: `${min}–${max},可空。`\n})\n\nexport const characterPreset = (\n _options: CatalogPresetOptions\n): EditFieldConfigMap => ({\n 'catalog.character.aliases': {\n label: '别名',\n group: GROUP.name,\n description:\n '最多 200 条。名称最多 300 字。同一 (名称, 语言) 不能重复。检索提示(kind 2)不可编辑。',\n identityKey: characterAliasIdentityKey,\n columns: [\n textColumn('name', '名称', true),\n selectColumn('lang', '语言', 'string', true, OLANG_OPTIONS, 'w-32'),\n selectColumn('kind', '类型', 'integer', true, ALIAS_KIND_OPTIONS, 'w-28'),\n textColumn('latin', '拉丁转写', false, { width: 'w-32' }),\n switchColumn('primary', '该语言主名', false)\n ]\n },\n 'catalog.character.aliases.suppressed': suppressed('别名', GROUP.name),\n 'catalog.character.birthday_day': {\n label: '生日(日)',\n group: GROUP.basic,\n nullable: true,\n description: '1–31,可空。'\n },\n 'catalog.character.birthday_month': {\n label: '生日(月)',\n group: GROUP.basic,\n nullable: true,\n description: '1–12,可空。'\n },\n 'catalog.character.blood_type': {\n label: '血型',\n group: GROUP.basic,\n nullable: true,\n options: BLOOD_TYPE_OPTIONS\n },\n 'catalog.character.bust_cm': measure('胸围', 1, 500),\n 'catalog.character.cup': {\n label: '罩杯',\n group: GROUP.basic,\n nullable: true,\n description: '最多 8 字,可空。'\n },\n 'catalog.character.description': {\n label: '描述',\n group: GROUP.desc,\n description: '最多 50000 字。'\n },\n 'catalog.character.display_name': {\n label: '显示名',\n group: GROUP.name,\n description: '不能为空,最多 300 字。'\n },\n 'catalog.character.gender': {\n label: '性别',\n group: GROUP.basic,\n nullable: true,\n options: GENDER_OPTIONS\n },\n 'catalog.character.height_cm': measure('身高', 1, 1000),\n 'catalog.character.hip_cm': measure('臀围', 1, 500),\n 'catalog.character.intros': introList(),\n 'catalog.character.lang': {\n label: '语言',\n group: GROUP.basic,\n options: CHARACTER_LANG_OPTIONS,\n description: '空字符串表示未知。'\n },\n 'catalog.character.latin': {\n label: '拉丁转写',\n group: GROUP.name,\n nullable: true,\n description: '最多 300 字,可空。'\n },\n 'catalog.character.waist_cm': measure('腰围', 1, 500),\n 'catalog.character.weight_kg': measure('体重', 1, 1000)\n})\n","import type { EditFieldConfigMap } from '@nextmoe/edit-ui-core'\n\nimport { GROUP } from './helpers'\nimport type { CatalogPresetOptions } from './types'\nimport {\n RELEASE_KIND_OPTIONS,\n RELEASE_LANG_OPTIONS,\n RELEASE_PLATFORM_OPTIONS\n} from './vocab'\n\nexport const releasePreset = (\n _options: CatalogPresetOptions\n): EditFieldConfigMap => ({\n 'catalog.release.hidden': {\n label: '隐藏',\n group: GROUP.basic,\n control: 'switch'\n },\n 'catalog.release.kind': {\n label: '发行类型',\n group: GROUP.release,\n options: RELEASE_KIND_OPTIONS\n },\n 'catalog.release.lang': {\n label: '语言',\n group: GROUP.release,\n nullable: true,\n options: RELEASE_LANG_OPTIONS\n },\n 'catalog.release.platform': {\n label: '平台',\n group: GROUP.release,\n nullable: true,\n options: RELEASE_PLATFORM_OPTIONS\n },\n 'catalog.release.released': {\n label: '发行日期',\n group: GROUP.release,\n nullable: true,\n description: '年份须在 1950–2200。填日必须先填月。可空。'\n },\n 'catalog.release.title': {\n label: '标题',\n group: GROUP.name,\n nullable: true,\n description: '最多 300 字,可空。'\n }\n})\n","import type { EditFieldConfigMap } from '@nextmoe/edit-ui-core'\n\nimport { GROUP, introList, nameField, urlList } from './helpers'\nimport type { CatalogPresetOptions } from './types'\n\nexport const labelPreset = (\n _options: CatalogPresetOptions\n): EditFieldConfigMap => ({\n 'catalog.label.intros': introList(),\n 'catalog.label.links': urlList(),\n 'catalog.label.name': nameField(300)\n})\n\nexport const enginePreset = (\n _options: CatalogPresetOptions\n): EditFieldConfigMap => ({\n 'catalog.engine.aliases': {\n label: '别名',\n group: GROUP.name,\n control: 'string-list',\n description: '最多 200 条,每条去重后最多 300 字,不能为空。'\n },\n 'catalog.engine.intro': {\n label: '介绍',\n group: GROUP.desc,\n description: '最多 50000 字。'\n },\n 'catalog.engine.name': nameField(300)\n})\n\nexport const seriesPreset = (\n _options: CatalogPresetOptions\n): EditFieldConfigMap => ({\n 'catalog.series.intros': introList(),\n 'catalog.series.name': {\n label: '名称',\n group: GROUP.name,\n description: '不能为空,最多 300 字。仅自建系列可改名。'\n }\n})\n\nexport const tagPreset = (\n _options: CatalogPresetOptions\n): EditFieldConfigMap => ({\n 'catalog.tag.intros': introList()\n})\n","import type { EditFieldConfig } from '@nextmoe/edit-ui-core'\n\nimport { GROUP, selectColumn, textColumn } from './helpers'\nimport type { CatalogPresetOptions } from './types'\nimport { SEXUAL_OPTIONS, VIOLENCE_OPTIONS } from './vocab'\n\nconst withImageFns = (\n options: CatalogPresetOptions\n): Pick<EditFieldConfig, 'uploadImage' | 'resolveImage'> => ({\n ...(options.uploadImage ? { uploadImage: options.uploadImage } : {}),\n ...(options.resolveImage ? { resolveImage: options.resolveImage } : {})\n})\n\nexport const workCoverConfig = (\n options: CatalogPresetOptions\n): EditFieldConfig => ({\n label: '封面',\n group: GROUP.media,\n description:\n '最多 200 张。种类为开放词表,最多 64 字。竖版封面通过钉选设置,同一时刻只能钉一张。',\n control: 'image-list',\n pinItemFlag: { key: 'portrait_pinned', label: '竖版封面' },\n itemColumns: [\n textColumn('kind', '种类', false, { width: 'w-32' }),\n selectColumn('sexual', '性相关', 'integer', false, SEXUAL_OPTIONS, 'w-28'),\n selectColumn('violence', '暴力', 'integer', false, VIOLENCE_OPTIONS, 'w-28')\n ],\n ...withImageFns(options)\n})\n\nexport const workScreenshotConfig = (\n options: CatalogPresetOptions\n): EditFieldConfig => ({\n label: '截图',\n group: GROUP.media,\n description: '最多 200 张。说明最多 500 字。',\n control: 'image-list',\n itemColumns: [\n textColumn('caption', '说明', false, { control: 'textarea' }),\n selectColumn('sexual', '性相关', 'integer', false, SEXUAL_OPTIONS, 'w-28'),\n selectColumn('violence', '暴力', 'integer', false, VIOLENCE_OPTIONS, 'w-28')\n ],\n ...withImageFns(options)\n})\n","import type { EditFieldConfig, EditFieldConfigMap } from '@nextmoe/edit-ui-core'\n\nimport {\n GROUP,\n idColumn,\n introList,\n selectColumn,\n suppressed,\n textColumn,\n urlList\n} from './helpers'\nimport {\n workCreditIdentityKey,\n workRosterIdentityKey,\n workTitleIdentityKey\n} from './identity'\nimport type { CatalogPresetOptions } from './types'\nimport {\n TITLE_LANG_OPTIONS,\n CONTENT_RATING_OPTIONS,\n LABEL_KIND_OPTIONS,\n OLANG_OPTIONS,\n ROSTER_KIND_OPTIONS,\n SPOILER_OPTIONS,\n TITLE_KIND_OPTIONS\n} from './vocab'\nimport { workCoverConfig, workScreenshotConfig } from './work_media'\n\nconst idList = (\n options: CatalogPresetOptions,\n ref: 'tag' | 'engine' | 'series',\n label: string,\n description: string,\n fallbackDescription = description\n): EditFieldConfig => {\n const search = options.searchEntities?.[ref]\n const resolve = options.resolveEntities?.[ref]\n if (search) {\n return {\n label,\n group: GROUP.rel,\n description,\n control: 'entity-picker',\n multiple: true,\n searchEntities: search,\n ...(resolve ? { resolveEntities: resolve } : {})\n }\n }\n return {\n label,\n group: GROUP.rel,\n description: fallbackDescription,\n control: 'number-list'\n }\n}\n\nconst titles = (): EditFieldConfig => ({\n label: '标题',\n group: GROUP.name,\n description:\n '至少一条官方标题,最多 100 条。标题最多 500 字。只有别名可以不填语言。',\n identityKey: workTitleIdentityKey,\n columns: [\n selectColumn(\n 'lang',\n '语言',\n 'string',\n true,\n TITLE_LANG_OPTIONS,\n 'w-32'\n ),\n textColumn('title', '标题', true),\n textColumn('latin', '拉丁转写', false, { width: 'w-32' }),\n selectColumn('kind', '类型', 'integer', true, TITLE_KIND_OPTIONS, 'w-28')\n ]\n})\n\nconst credits = (options: CatalogPresetOptions): EditFieldConfig => ({\n label: '制作人员',\n group: GROUP.rel,\n description: options.searchEntities?.role\n ? '最多 500 条。不关联角色时不要填写角色。'\n : '最多 500 条。职责请填写 catalog_role 的正整数 id。不关联角色时不要填写角色。',\n identityKey: workCreditIdentityKey,\n columns: [\n idColumn('role_id', '职责', true, {\n search: options.searchEntities?.role,\n resolve: options.resolveEntities?.role,\n width: 'w-40'\n }),\n idColumn('credit_name_id', '职人', true, {\n search: options.searchEntities?.credit_name,\n resolve: options.resolveEntities?.credit_name\n }),\n idColumn('character_id', '角色', false, {\n search: options.searchEntities?.character,\n resolve: options.resolveEntities?.character\n }),\n textColumn('note', '备注', false, { control: 'textarea' })\n ]\n})\n\nconst roster = (options: CatalogPresetOptions): EditFieldConfig => ({\n label: '登场角色',\n group: GROUP.rel,\n description:\n '不能新增或删除行,只能改已有登场角色的定位和剧透。新增的行会在合并时被拒绝。最多 500 条。',\n identityKey: workRosterIdentityKey,\n allowAdd: false,\n allowRemove: false,\n columns: [\n idColumn('character_id', '角色', true, {\n search: options.searchEntities?.character,\n resolve: options.resolveEntities?.character\n }),\n selectColumn('kind', '定位', 'integer', true, ROSTER_KIND_OPTIONS, 'w-28'),\n selectColumn('spoiler', '剧透', 'integer', true, SPOILER_OPTIONS, 'w-28')\n ]\n})\n\nconst labels = (options: CatalogPresetOptions): EditFieldConfig => ({\n label: '厂商',\n group: GROUP.rel,\n description: '最多 200 条。同一厂商可以挂多种身份。',\n columns: [\n idColumn('label_id', '厂商', true, {\n search: options.searchEntities?.label,\n resolve: options.resolveEntities?.label\n }),\n selectColumn('kind', '身份', 'integer', true, LABEL_KIND_OPTIONS, 'w-28')\n ]\n})\n\nexport const workPreset = (\n options: CatalogPresetOptions\n): EditFieldConfigMap => ({\n 'catalog.work.content_rating': {\n label: '内容分级',\n group: GROUP.basic,\n options: CONTENT_RATING_OPTIONS\n },\n 'catalog.work.covers': workCoverConfig(options),\n 'catalog.work.credits': credits(options),\n 'catalog.work.credits.suppressed': suppressed('制作人员', GROUP.rel),\n 'catalog.work.display_name': {\n label: '显示名',\n group: GROUP.name,\n description: '不能为空,最多 500 字。'\n },\n 'catalog.work.display_nsfw': {\n label: '显示为限制级',\n group: GROUP.basic,\n control: 'switch'\n },\n 'catalog.work.engine_ids': idList(\n options,\n 'engine',\n '引擎',\n '最多 200 个。',\n '请填写引擎 id。最多 200 个。'\n ),\n 'catalog.work.intros': introList(),\n 'catalog.work.labels': labels(options),\n 'catalog.work.links': urlList(),\n 'catalog.work.olang': {\n label: '原语言',\n group: GROUP.basic,\n options: OLANG_OPTIONS\n },\n 'catalog.work.roster': roster(options),\n 'catalog.work.roster.suppressed': suppressed('登场角色', GROUP.rel),\n 'catalog.work.screenshots': workScreenshotConfig(options),\n 'catalog.work.series_ids': idList(\n options,\n 'series',\n '系列',\n '仅可关联自建系列,最多 200 个。',\n '仅可填写自建系列的 id,最多 200 个。'\n ),\n 'catalog.work.tag_ids': idList(options, 'tag', '标签', '最多 200 个。'),\n 'catalog.work.titles': titles(),\n 'catalog.work.titles.suppressed': suppressed('标题', GROUP.name)\n})\n","import type { EditFieldConfigMap } from '@nextmoe/edit-ui-core'\n\nimport { characterPreset } from './character'\nimport { releasePreset } from './release'\nimport {\n enginePreset,\n labelPreset,\n seriesPreset,\n tagPreset\n} from './taxonomy'\nimport type { CatalogEntityType, CatalogPresetOptions } from './types'\nimport { workPreset } from './work'\n\nexport const CATALOG_ENTITY_TYPES = [\n 'catalog.work',\n 'catalog.character',\n 'catalog.release',\n 'catalog.label',\n 'catalog.engine',\n 'catalog.series',\n 'catalog.tag'\n] as const satisfies readonly CatalogEntityType[]\n\nexport const catalogConfig = (\n type: CatalogEntityType,\n options: CatalogPresetOptions = {}\n): EditFieldConfigMap => {\n switch (type) {\n case 'catalog.work':\n return workPreset(options)\n case 'catalog.character':\n return characterPreset(options)\n case 'catalog.release':\n return releasePreset(options)\n case 'catalog.label':\n return labelPreset(options)\n case 'catalog.engine':\n return enginePreset(options)\n case 'catalog.series':\n return seriesPreset(options)\n case 'catalog.tag':\n return tagPreset(options)\n default:\n return {}\n }\n}\n\nexport { characterPreset } from './character'\nexport { releasePreset } from './release'\nexport {\n enginePreset,\n labelPreset,\n seriesPreset,\n tagPreset\n} from './taxonomy'\nexport { workPreset } from './work'\n\nexport {\n characterAliasIdentityKey,\n workCreditIdentityKey,\n workRosterIdentityKey,\n workTitleIdentityKey\n} from './identity'\n\nexport {\n ALIAS_KIND_OPTIONS,\n BLOOD_TYPE_OPTIONS,\n CHARACTER_LANG_OPTIONS,\n CONTENT_RATING_OPTIONS,\n GENDER_OPTIONS,\n INTRO_LANG_OPTIONS,\n LABEL_KIND_OPTIONS,\n OLANG_OPTIONS,\n TITLE_LANG_OPTIONS,\n RELEASE_KIND_OPTIONS,\n RELEASE_LANG_OPTIONS,\n RELEASE_PLATFORM_OPTIONS,\n ROSTER_KIND_OPTIONS,\n SEXUAL_OPTIONS,\n SPOILER_OPTIONS,\n TITLE_KIND_OPTIONS,\n VIOLENCE_OPTIONS\n} from './vocab'\n\nexport type {\n CatalogEntityRef,\n CatalogEntityType,\n CatalogPresetOptions,\n CatalogResolve,\n CatalogSearch\n} from './types'\n"]}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@nextmoe/edit-ui-catalog",
3
+ "version": "0.3.0",
4
+ "description": "Field presets for the NextMoe catalog editing API — a tested EditFieldConfig table covering every field the editing engine registers, so a site does not have to rediscover each field's control, enum vocabulary and element shape.",
5
+ "type": "module",
6
+ "keywords": [
7
+ "nextmoe",
8
+ "edit-ui",
9
+ "catalog",
10
+ "schema",
11
+ "preset"
12
+ ],
13
+ "license": "AGPL-3.0-only",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/next-moe/nextmoe-edit-ui.git",
17
+ "directory": "packages/catalog"
18
+ },
19
+ "homepage": "https://github.com/next-moe/nextmoe-edit-ui#readme",
20
+ "bugs": "https://github.com/next-moe/nextmoe-edit-ui/issues",
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "sideEffects": false,
25
+ "files": [
26
+ "CHANGELOG.md",
27
+ "dist"
28
+ ],
29
+ "main": "./dist/index.cjs",
30
+ "module": "./dist/index.js",
31
+ "types": "./dist/index.d.ts",
32
+ "exports": {
33
+ ".": {
34
+ "types": "./dist/index.d.ts",
35
+ "import": "./dist/index.js",
36
+ "require": "./dist/index.cjs"
37
+ }
38
+ },
39
+ "dependencies": {
40
+ "@nextmoe/edit-ui-core": "0.3.0"
41
+ },
42
+ "devDependencies": {
43
+ "tsup": "^8.5.0",
44
+ "typescript": "^5.7.0",
45
+ "vite": "^8.0.16",
46
+ "vitest": "^4.1.7"
47
+ },
48
+ "scripts": {
49
+ "build": "tsup",
50
+ "dev": "tsup --watch",
51
+ "typecheck": "tsc --noEmit",
52
+ "test": "vitest run",
53
+ "test:watch": "vitest",
54
+ "clean": "rm -rf dist"
55
+ }
56
+ }