@inpageedit/core 0.11.1 → 0.12.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 (102) hide show
  1. package/LICENSE +20 -20
  2. package/dist/ActionButton-CRjo_l3y.js +24 -0
  3. package/dist/ActionButton-CRjo_l3y.js.map +1 -0
  4. package/dist/{CheckBox-D3rHnX7I.js → CheckBox-Bc79KBEB.js} +2 -2
  5. package/dist/{CheckBox-D3rHnX7I.js.map → CheckBox-Bc79KBEB.js.map} +1 -1
  6. package/dist/{IconQuickEdit-CAL1HXIb.js → IconQuickEdit-CMCQncyj.js} +2 -2
  7. package/dist/IconQuickEdit-CMCQncyj.js.map +1 -0
  8. package/dist/InPageEdit.d.ts +5 -1
  9. package/dist/{InputBox-BV4m05Xs.js → InputBox-DZAdyZ4B.js} +2 -2
  10. package/dist/InputBox-DZAdyZ4B.js.map +1 -0
  11. package/dist/PluginPrefSync-BPQkNtX8.js +292 -0
  12. package/dist/PluginPrefSync-BPQkNtX8.js.map +1 -0
  13. package/dist/PluginStoreApp-Cxspe6t8.js +158 -0
  14. package/dist/PluginStoreApp-Cxspe6t8.js.map +1 -0
  15. package/dist/Preferences-DS4-CFWe.js.map +1 -1
  16. package/dist/{RadioBox-nJqWsxW2.js → RadioBox-0UuxlcWZ.js} +2 -2
  17. package/dist/{RadioBox-nJqWsxW2.js.map → RadioBox-0UuxlcWZ.js.map} +1 -1
  18. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +10 -0
  19. package/dist/_plugin-vue_export-helper-CHgC5LLL.js.map +1 -0
  20. package/dist/components/index.js +51 -69
  21. package/dist/components/index.js.map +1 -1
  22. package/dist/constants/endpoints.d.ts +2 -1
  23. package/dist/index-B5DtUqkK.js +180 -0
  24. package/dist/index-B5DtUqkK.js.map +1 -0
  25. package/dist/{index-BUI2IX49.js → index-BXaiDKnr.js} +2312 -2315
  26. package/dist/index-BXaiDKnr.js.map +1 -0
  27. package/dist/{index-BNDyaWnI.js → index-Bv7Dw5eO.js} +10 -9
  28. package/dist/index-Bv7Dw5eO.js.map +1 -0
  29. package/dist/{index-MhNAv9Vf.js → index-CB7TltEb.js} +25 -30
  30. package/dist/index-CB7TltEb.js.map +1 -0
  31. package/dist/{index-lZkYoUca.js → index-CG38LlAh.js} +2 -2
  32. package/dist/index-CG38LlAh.js.map +1 -0
  33. package/dist/{index-BQzuJxBO.js → index-CJFePavo.js} +4 -4
  34. package/dist/index-CJFePavo.js.map +1 -0
  35. package/dist/{index-CvhkVj_L.js → index-CM_6yF2v.js} +3 -3
  36. package/dist/{index-CvhkVj_L.js.map → index-CM_6yF2v.js.map} +1 -1
  37. package/dist/{index-U2RPZk8N.js → index-CPoUaSMw.js} +8 -8
  38. package/dist/index-CPoUaSMw.js.map +1 -0
  39. package/dist/{index-CfgnJ51A.js → index-CYc6LH26.js} +53 -43
  40. package/dist/index-CYc6LH26.js.map +1 -0
  41. package/dist/index-CZXxH2-9.js +173 -0
  42. package/dist/index-CZXxH2-9.js.map +1 -0
  43. package/dist/{index-D5J7RU5I.js → index-Ckozkp6W.js} +5 -7
  44. package/dist/index-Ckozkp6W.js.map +1 -0
  45. package/dist/{index-etJXONAj.js → index-D4uwfUZL.js} +6 -6
  46. package/dist/index-D4uwfUZL.js.map +1 -0
  47. package/dist/{index-Bh70Udzi.js → index-DD5CVCfD.js} +2 -2
  48. package/dist/index-DD5CVCfD.js.map +1 -0
  49. package/dist/index-DEav9Ptt.js +365 -0
  50. package/dist/index-DEav9Ptt.js.map +1 -0
  51. package/dist/index-hSl8LzNb.js +1169 -0
  52. package/dist/index-hSl8LzNb.js.map +1 -0
  53. package/dist/index.js +1 -1
  54. package/dist/makeCallable-LDU0xZMJ.js.map +1 -1
  55. package/dist/models/MemoryStorage.d.ts +10 -0
  56. package/dist/models/WikiPage/index.d.ts +14 -0
  57. package/dist/noop-ClDc6zv4.js.map +1 -1
  58. package/dist/plugins/in-article-links/index.d.ts +5 -0
  59. package/dist/plugins/plugin-store/index.d.ts +59 -0
  60. package/dist/plugins/plugin-store/schema.d.ts +41 -0
  61. package/dist/plugins/preferences-ui/PluginPrefSync.d.ts +1 -0
  62. package/dist/plugins/preferences-ui/index.d.ts +34 -5
  63. package/dist/plugins/quick-delete/index.d.ts +3 -0
  64. package/dist/plugins/quick-diff/index.d.ts +3 -0
  65. package/dist/plugins/quick-edit/index.d.ts +8 -0
  66. package/dist/plugins/quick-move/index.d.ts +5 -3
  67. package/dist/plugins/quick-preview/index.d.ts +4 -0
  68. package/dist/plugins/quick-redirect/index.d.ts +11 -4
  69. package/dist/plugins/toolbox/index.d.ts +3 -0
  70. package/dist/services/PreferencesService.d.ts +53 -11
  71. package/dist/services/ResourceLoaderService.d.ts +3 -0
  72. package/dist/services/WikiMetadataService.d.ts +1 -1
  73. package/dist/services/storage/index.d.ts +18 -8
  74. package/dist/services/storage/{IPEStorageManager.d.ts → managers/IDBStorageManager.d.ts} +9 -6
  75. package/dist/services/storage/managers/LocalStorageManager.d.ts +27 -0
  76. package/dist/style.css +1 -1
  77. package/dist/vueHooks-D0uVqbO-.js +4032 -0
  78. package/dist/vueHooks-D0uVqbO-.js.map +1 -0
  79. package/lib/index.umd.js +11 -115
  80. package/lib/index.umd.js.map +1 -1
  81. package/lib/style.css +1 -1
  82. package/package.json +14 -14
  83. package/dist/IconQuickEdit-CAL1HXIb.js.map +0 -1
  84. package/dist/InputBox-BV4m05Xs.js.map +0 -1
  85. package/dist/PluginPrefSync-COidewzp.js +0 -258
  86. package/dist/PluginPrefSync-COidewzp.js.map +0 -1
  87. package/dist/index-BNDyaWnI.js.map +0 -1
  88. package/dist/index-BQzuJxBO.js.map +0 -1
  89. package/dist/index-BUI2IX49.js.map +0 -1
  90. package/dist/index-Bh70Udzi.js.map +0 -1
  91. package/dist/index-CBszdxJJ.js +0 -159
  92. package/dist/index-CBszdxJJ.js.map +0 -1
  93. package/dist/index-CfgnJ51A.js.map +0 -1
  94. package/dist/index-Cx4qgCJK.js +0 -4914
  95. package/dist/index-Cx4qgCJK.js.map +0 -1
  96. package/dist/index-D5J7RU5I.js.map +0 -1
  97. package/dist/index-MhNAv9Vf.js.map +0 -1
  98. package/dist/index-U2RPZk8N.js.map +0 -1
  99. package/dist/index-VnRKIVau.js +0 -167
  100. package/dist/index-VnRKIVau.js.map +0 -1
  101. package/dist/index-etJXONAj.js.map +0 -1
  102. package/dist/index-lZkYoUca.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-B5DtUqkK.js","sources":["../src/plugins/quick-move/index.tsx"],"sourcesContent":["import { Inject, InPageEdit, Schema } from '@/InPageEdit'\nimport { IPEModal } from '@inpageedit/modal'\n\ndeclare module '@/InPageEdit' {\n interface InPageEdit {\n quickMove: PluginQuickMove\n }\n interface Events {\n 'quick-move/init-options'(payload: {\n ctx: InPageEdit\n options: Partial<QuickMoveOptions>\n }): void\n 'quick-move/show-modal'(payload: { ctx: InPageEdit; modal: IPEModal }): void\n 'quick-move/submit'(payload: {\n ctx: InPageEdit\n modal: IPEModal\n payload: MovePageOptions\n }): void\n }\n interface PreferencesMap {\n 'quickMove.reason': string\n }\n}\n\nexport interface MovePageOptions {\n from: string\n to: string\n reason?: string\n movetalk?: boolean\n movesubpages?: boolean\n noredirect?: boolean\n}\nexport interface QuickMoveOptions extends Partial<MovePageOptions> {\n lockFromField?: boolean\n lockToField?: boolean\n}\n\n@RegisterPreferences(\n Schema.object({\n 'quickMove.reason': Schema.string().default('[IPE-NEXT] Quick move'),\n })\n .description('Quick move options')\n .extra('category', 'editor')\n)\n@Inject(['modal', 'wiki'])\nexport class PluginQuickMove extends BasePlugin {\n constructor(public ctx: InPageEdit) {\n super(ctx, {}, 'quick-move')\n ctx.set('quickMove', this)\n }\n\n protected start(): Promise<void> | void {\n this.ctx.inject(['toolbox'], (ctx) => {\n this.injectToolbox(ctx)\n })\n }\n\n private injectToolbox(ctx: InPageEdit) {\n const curPageName = window.mw?.config.get('wgPageName') || ''\n const canEdit = window.mw?.config.get('wgIsProbablyEditable')\n ctx.toolbox.addButton({\n id: 'quick-move',\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"icon icon-tabler icons-tabler-outline icon-tabler-forms\"\n >\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path d=\"M12 3a3 3 0 0 0 -3 3v12a3 3 0 0 0 3 3\" />\n <path d=\"M6 3a3 3 0 0 1 3 3v12a3 3 0 0 1 -3 3\" />\n <path d=\"M13 7h7a1 1 0 0 1 1 1v8a1 1 0 0 1 -1 1h-7\" />\n <path d=\"M5 7h-1a1 1 0 0 0 -1 1v8a1 1 0 0 0 1 1h1\" />\n <path d=\"M17 12h.01\" />\n <path d=\"M13 12h.01\" />\n </svg>\n ),\n tooltip: 'Quick Move',\n group: 'group1',\n index: 1,\n onClick: () => {\n this.showModal(\n canEdit\n ? {\n lockFromField: true,\n from: curPageName,\n }\n : {}\n )\n },\n })\n }\n\n async showModal(options?: Partial<QuickMoveOptions>) {\n const reason = await this.ctx.preferences.get('quickMove.reason')\n const modal = this.ctx.modal\n .createObject({\n title: 'Quick Move',\n content: (<ProgressBar />) as HTMLElement,\n className: 'quick-move compact-buttons',\n sizeClass: 'smallToMedium',\n center: true,\n })\n .init()\n\n let formRef: HTMLFormElement | null = null\n modal.setContent(\n (\n <form\n ref={(el) => (formRef = el)}\n style={{\n display: 'flex',\n flexDirection: 'column',\n gap: '1rem',\n }}\n onSubmit={(e) => {\n e.preventDefault()\n formRef?.checkValidity()\n if (!formRef?.reportValidity()) {\n return\n }\n const formData = new FormData(formRef!)\n const options = {\n from: formData.get('from')?.toString().trim()!,\n to: formData.get('to')?.toString().trim()!,\n reason: (formData.get('reason') as string) || '',\n movetalk: formData.get('movetalk') === 'on',\n movesubpages: formData.get('movesubpages') === 'on',\n noredirect: formData.get('noredirect') === 'on',\n }\n if (!options.from || !options.to) {\n this.ctx.modal.notify('error', {\n title: 'Failed to move',\n content: 'From and to are required.',\n })\n return\n }\n this.ctx.emit('quick-move/submit', { ctx: this.ctx, modal, payload: options })\n modal.setLoadingState(true)\n this.movePage(options)\n .then(() => {\n location.reload()\n })\n .catch((error) => {\n modal.setLoadingState(false)\n this.ctx.modal.notify('error', {\n title: 'Failed to move',\n content: error instanceof Error ? error.message : String(error),\n })\n })\n }}\n >\n <TwinSwapInput\n inputs={[\n {\n label: 'Move from',\n name: 'from',\n value: options?.from,\n required: true,\n },\n {\n label: 'Move to',\n name: 'to',\n value: options?.to,\n required: true,\n },\n ]}\n />\n <div>\n <CheckBox name=\"movetalk\" id=\"movetalk\" checked={options?.movetalk}>\n Move talk page\n </CheckBox>\n </div>\n <div>\n <CheckBox name=\"movesubpages\" id=\"movesubpages\" checked={options?.movesubpages}>\n Move subpage(s) (up to 100)\n </CheckBox>\n </div>\n {this.ctx.wiki.hasRight('suppressredirect') && (\n <div>\n <CheckBox name=\"noredirect\" id=\"noredirect\" checked={options?.noredirect}>\n Move without leaving a redirect\n </CheckBox>\n </div>\n )}\n <InputBox\n label=\"Reason\"\n id=\"reason\"\n name=\"reason\"\n value={options?.reason ?? reason ?? ''}\n />\n </form>\n ) as HTMLElement\n )\n\n modal.setButtons([\n {\n label: 'Move',\n className: 'is-primary is-ghost',\n method: () => {\n formRef?.dispatchEvent(new Event('submit'))\n },\n },\n ])\n\n return modal.show()\n }\n\n async movePage(options: MovePageOptions) {\n const { from, to, reason = '', ...rest } = options\n\n if (!from || !to) {\n throw new Error('From and to titles are required.')\n }\n if (from === to) {\n throw new Error('From and to titles cannot be the same.')\n }\n\n const wikiPage = await this.ctx.wikiPage.newFromTitle(from)\n return wikiPage.moveTo(to, reason, rest)\n }\n}\n"],"names":["_PluginQuickMove_decorators","_init","_a","RegisterPreferences","Schema","Inject","PluginQuickMove","BasePlugin","ctx","curPageName","canEdit","jsxs","jsx","options","reason","modal","ProgressBar","formRef","el","e","formData","error","TwinSwapInput","CheckBox","InputBox","from","to","rest","__decoratorStart","__decorateElement","__runInitializers"],"mappings":"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"}