@pisell/private-materials 6.3.220 → 6.3.222

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 (125) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +13 -13
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +13 -13
  9. package/es/components/kioskSkuDetail/index.js +7 -7
  10. package/es/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +53 -26
  11. package/es/components/scanOrder/components/Content/index.js +14 -2
  12. package/es/components/scanOrder/components/ExitConfirmModal/index.js +84 -0
  13. package/es/components/scanOrder/components/ExitConfirmModal/index.less +182 -0
  14. package/es/components/scanOrder/locales.js +20 -0
  15. package/es/index.d.ts +9 -1
  16. package/es/index.js +6 -2
  17. package/es/plus/inventory/BindingModal.js +94 -0
  18. package/es/plus/inventory/InventoryItemManagement.d.ts +7 -0
  19. package/es/plus/inventory/InventoryItemManagement.js +204 -0
  20. package/es/plus/inventory/InventoryLocationManagement.d.ts +7 -0
  21. package/es/plus/inventory/InventoryLocationManagement.js +296 -0
  22. package/es/plus/inventory/InventoryUnitManagement.d.ts +7 -0
  23. package/es/plus/inventory/InventoryUnitManagement.js +144 -0
  24. package/es/plus/inventory/ItemDrawer.js +266 -0
  25. package/es/plus/inventory/RecordDialog.js +141 -0
  26. package/es/plus/inventory/StockList.js +132 -0
  27. package/es/plus/inventory/api.js +66 -0
  28. package/es/plus/inventory/components.js +172 -0
  29. package/es/plus/inventory/context.js +118 -0
  30. package/es/plus/inventory/forms.js +46 -0
  31. package/es/plus/inventory/hooks.js +235 -0
  32. package/es/plus/inventory/index.less +559 -0
  33. package/es/plus/inventory/locales.js +277 -0
  34. package/es/plus/inventory/types.d.ts +10 -0
  35. package/es/plus/inventory/utils.js +24 -0
  36. package/es/plus/panpacificTask/JobCard.js +22 -0
  37. package/es/plus/panpacificTask/JobDrawer.js +366 -0
  38. package/es/plus/panpacificTask/JobForm.js +312 -0
  39. package/es/plus/panpacificTask/JobStatus.js +29 -0
  40. package/es/plus/panpacificTask/PanpacificTask.d.ts +7 -0
  41. package/es/plus/panpacificTask/PanpacificTask.js +552 -0
  42. package/es/plus/panpacificTask/PhotoPreview.js +37 -0
  43. package/es/plus/panpacificTask/README.md +114 -0
  44. package/es/plus/panpacificTask/attachments.js +64 -0
  45. package/es/plus/panpacificTask/index.d.ts +2 -0
  46. package/es/plus/panpacificTask/index.less +539 -0
  47. package/es/plus/panpacificTask/locales.js +586 -0
  48. package/es/plus/panpacificTask/model.js +260 -0
  49. package/es/plus/panpacificTask/saveJob.js +68 -0
  50. package/es/plus/panpacificTask/serve.js +243 -0
  51. package/es/plus/panpacificTask/tenant.js +16 -0
  52. package/es/plus/panpacificTask/types.d.ts +19 -0
  53. package/es/plus/pisellReservation/data/bookingToReservationTables.js +1 -1
  54. package/es/plus/pisellReservation/floorMap/floorPlanApi.js +1 -1
  55. package/es/plus/pisellReservation/floorMap/reservationMock.js +1 -1
  56. package/es/plus/pisellSupersetDashboard/README.md +291 -0
  57. package/es/plus/pisellSupersetDashboard/index.d.ts +15 -0
  58. package/es/plus/pisellSupersetDashboard/index.js +187 -0
  59. package/es/plus/pisellSupersetDashboard/index.less +83 -0
  60. package/es/plus/pisellSupersetDashboard/locales.js +36 -0
  61. package/es/plus/pisellSupersetDashboard/serve.js +51 -0
  62. package/es/plus/pisellSupersetDashboard/types.d.ts +17 -0
  63. package/es/plus/skuOptionsSelection/store/createStore.js +2 -2
  64. package/es/private-materials/lowcode/authmodal/meta.d.ts +1 -0
  65. package/es/pro/Login2.0/AuthModal.d.ts +1 -1
  66. package/es/pro/Login2.0/index.d.ts +1 -2
  67. package/es/pro/Login2.0/shared/types.d.ts +1 -1
  68. package/lib/components/kioskSkuDetail/index.js +7 -7
  69. package/lib/components/pay/toC/PaymentMethods/MWCreditCard/tds2.js +53 -26
  70. package/lib/components/scanOrder/components/Content/index.js +14 -2
  71. package/lib/components/scanOrder/components/ExitConfirmModal/index.js +86 -0
  72. package/lib/components/scanOrder/components/ExitConfirmModal/index.less +182 -0
  73. package/lib/components/scanOrder/locales.js +20 -0
  74. package/lib/index.d.ts +9 -1
  75. package/lib/index.js +136 -126
  76. package/lib/plus/inventory/BindingModal.js +96 -0
  77. package/lib/plus/inventory/InventoryItemManagement.d.ts +7 -0
  78. package/lib/plus/inventory/InventoryItemManagement.js +206 -0
  79. package/lib/plus/inventory/InventoryLocationManagement.d.ts +7 -0
  80. package/lib/plus/inventory/InventoryLocationManagement.js +298 -0
  81. package/lib/plus/inventory/InventoryUnitManagement.d.ts +7 -0
  82. package/lib/plus/inventory/InventoryUnitManagement.js +146 -0
  83. package/lib/plus/inventory/ItemDrawer.js +268 -0
  84. package/lib/plus/inventory/RecordDialog.js +143 -0
  85. package/lib/plus/inventory/StockList.js +134 -0
  86. package/lib/plus/inventory/api.js +66 -0
  87. package/lib/plus/inventory/components.js +181 -0
  88. package/lib/plus/inventory/context.js +121 -0
  89. package/lib/plus/inventory/forms.js +50 -0
  90. package/lib/plus/inventory/hooks.js +240 -0
  91. package/lib/plus/inventory/index.less +559 -0
  92. package/lib/plus/inventory/locales.js +277 -0
  93. package/lib/plus/inventory/types.d.ts +10 -0
  94. package/lib/plus/inventory/utils.js +30 -0
  95. package/lib/plus/panpacificTask/JobCard.js +24 -0
  96. package/lib/plus/panpacificTask/JobDrawer.js +368 -0
  97. package/lib/plus/panpacificTask/JobForm.js +314 -0
  98. package/lib/plus/panpacificTask/JobStatus.js +33 -0
  99. package/lib/plus/panpacificTask/PanpacificTask.d.ts +7 -0
  100. package/lib/plus/panpacificTask/PanpacificTask.js +555 -0
  101. package/lib/plus/panpacificTask/PhotoPreview.js +39 -0
  102. package/lib/plus/panpacificTask/README.md +114 -0
  103. package/lib/plus/panpacificTask/attachments.js +66 -0
  104. package/lib/plus/panpacificTask/index.d.ts +2 -0
  105. package/lib/plus/panpacificTask/index.less +539 -0
  106. package/lib/plus/panpacificTask/locales.js +586 -0
  107. package/lib/plus/panpacificTask/model.js +289 -0
  108. package/lib/plus/panpacificTask/saveJob.js +68 -0
  109. package/lib/plus/panpacificTask/serve.js +260 -0
  110. package/lib/plus/panpacificTask/tenant.js +17 -0
  111. package/lib/plus/panpacificTask/types.d.ts +19 -0
  112. package/lib/plus/pisellSupersetDashboard/README.md +291 -0
  113. package/lib/plus/pisellSupersetDashboard/index.d.ts +15 -0
  114. package/lib/plus/pisellSupersetDashboard/index.js +189 -0
  115. package/lib/plus/pisellSupersetDashboard/index.less +83 -0
  116. package/lib/plus/pisellSupersetDashboard/locales.js +36 -0
  117. package/lib/plus/pisellSupersetDashboard/serve.js +52 -0
  118. package/lib/plus/pisellSupersetDashboard/types.d.ts +17 -0
  119. package/lowcode/inventory-item-management/meta.ts +20 -0
  120. package/lowcode/inventory-location-management/meta.ts +20 -0
  121. package/lowcode/inventory-unit-management/meta.ts +20 -0
  122. package/lowcode/panpacific-task/meta.ts +51 -0
  123. package/lowcode/pisell-superset-dashboard/meta.ts +75 -0
  124. package/package.json +4 -2
  125. package/es/plus/pisellReservation/index.js +0 -17
@@ -0,0 +1,114 @@
1
+ # PanpacificTask
2
+
3
+ 替代 Panpacific 原型 `#task` 的完整工作台。低代码页面只放一个组件,不再维护页面 JS、表单节点、抽屉或弹窗节点。
4
+
5
+ ```tsx
6
+ import { PanpacificTask } from '@pisell/private-materials';
7
+
8
+ <PanpacificTask />;
9
+ ```
10
+
11
+ 低代码物料名称:`PanpacificTask`,面板标题:**Panpacific Job 工作台**。注册文件在 `lowcode/panpacific-task/meta.ts`。物料包更新后,可直接导入仓库 `panpacific files/component-v1/schema.json`,或从物料面板拖入组件。该示例页面不再调用旧 Page.jsx;旧 `jsx-v1` 文件保留供回退。
12
+
13
+ 这是 proCode 组件,内部使用受控 Ant Design Modal / Drawer;低代码编辑器不需要单独管理它们。组件自身负责打开、关闭、未保存内容确认及请求中的锁定,并用 ConfigProvider 设置 pisell-lowcode 前缀以接入物料样式。
14
+
15
+ ## 已实现
16
+
17
+ - Calendar / Timeline / List 三个视图。日历按到期日显示,可切换完整周期;双击日期创建 Job。
18
+ - 日历每天最多展示四个项目,更多项目可从 +N 面板查看、拖出。右侧卡片按原型显示整行状态标签、Job 编号、供应商名称、到期日;悬停卡片关联高亮对应日历项目。标签、日历项目、甘特条和图例共用六种背景与文字颜色;已开票显示票据图标,取消状态显示删除线。
19
+ - Timeline 顶部按展示状态筛选(全部、Create、Collected、Invoice、Complete、Cancel、Delayed),按存储状态分组,可折叠分组。
20
+ - List 的列顺序:Job code、Supplier、Schedule、Due date、Status、Items、Payment、Actions。Items 对应新版数据结构中的物料明细数量;产出产品独立展示在抽屉中。
21
+ - 搜索覆盖编号、供应商名称 / 州 / 分公司或邮编、联系方式、来源、付款条款、物料和产品的名称及描述,不搜索软删除明细。输入状态即时更新,结果列表使用延迟渲染;搜索、到期日和展示状态采用 AND 组合,可清空、重置;变更筛选回到第一页。
22
+ - 日历项目、右侧卡片、List 行 / View、甘特条 / 左侧名称都打开同一个详情抽屉。Edit 进入抽屉编辑;Create 打开完整表单。
23
+ - 表单顺序:基础信息(任务分类、日期与物流)→ 供应商(含联络信息)→ 物料 → 产出产品 → 付款条款。使用真正的 `Form.List`;Select 保留 small API,表单 / 抽屉内按钮、单行输入、数字输入、日期选择,以及顶部筛选控件统一为 38px;多行备注保持自适应高度,浮层挂载到滚动容器。新建底部为 Cancel / Create,编辑底部为 Cancel / Save,操作文案使用独立翻译键。
24
+ - 选择供应商填充快照字段,并按 `STATE_SUPPLIER_00001` 生成编号。手动编辑编号后停止覆盖,Reset 恢复自动生成。保存时若服务端返回编号重复,保留填写内容并提示“Job 编号已存在,请修改后重试”,不预查询编号、不自动换号或重发请求。
25
+ - 详情抽屉宽 520px,按原型使用灰底白色分区、右上编辑 / 关闭、底部状态操作;编辑时扩展到 820px。展示供应商及其联络信息、排期、物流、付款条款、任务分类、提货照片、收付款记录。物料与产品独立分区,每区再按 Scheduled / Confirmed 分组;标签与其他详情字段字号一致,使用带圆点的单行列表,如 Battery Module ×40 @ 8.5/kg。
26
+ - 状态主操作 Create → Collected → Invoice → Complete;More 支持其他状态、取消、复制和移除。复制打开新建草稿,清除父子 ID、发票日期和旧编号,不复制收付款 / 提货记录。
27
+ - 记录付款 / 收款、金额、参考号、凭证图片;凭证入口位于金额、单据号同排最前端,上传后替换为缩略图,在预览中删除后恢复入口。提货照片同样可在预览中删除,删除失败保留原图。只记录业务数据,不发起实际付款。
28
+ - Calendar 移动排期、Gantt 移动和两端调整会调用更新接口,成功后同步三个视图;失败不接受拖动结果。甘特条使用 60px 行高显示两行内容,两端提供可见拖动手柄。
29
+ - 中、繁中、英、日、葡五种语言。业务加载失败只记录 console,不插入 `pp-job-warning`;保存错误保留输入并展示。
30
+
31
+ ## 数据规则
32
+
33
+ 以提供的 `job.txt` / 关联表 schema 为准。`delayed` 是展示状态,仅在 **due_date 早于今天** 且状态非 complete / cancel 时成立,不写入数据库。时间区间起点为 pickup_date(缺省为 due_date),终点为 due_date(含当天);组件适配为 endExclusive。
34
+
35
+ 移动只平移 due_date 及已有的 pickup_date;缺省提货日期保持缺省。甘特图左端调整写入 pickup_date,右端调整写入 due_date。job_created_date 是创建日期,拖拽不会修改;与旧原型平移创建日期的行为有意区分。
36
+
37
+ 选择供应商后,按下表自动填写 Job 的供应商快照(包含联络信息),允许在当前 Job 内调整。切换供应商时,缺失字段置空,避免残留上一家供应商的信息;编辑和详情读取已保存的 Job 快照,供应商主数据后续变化不自动覆盖历史 Job。
38
+
39
+ | Supplier | Job |
40
+ | ------------ | ----------------- |
41
+ | name | supplier_name |
42
+ | state | supplier_state |
43
+ | sub_name | supplier_sub_name |
44
+ | contact_name | company_contact |
45
+ | phone | supplier_phone |
46
+ | email | supplier_email |
47
+ | lead_source | lead_source |
48
+
49
+ sub_name 的业务含义为“分公司/邮编”。创建、编辑表单及详情统一标为“分公司 / 邮编”(英文 Branch / Postcode),选择供应商后从 sub_name 自动填写 supplier_sub_name,可在当前 Job 中调整,并参与搜索。该字段使用普通文本输入,允许分公司名称或邮编,不做纯数字邮编校验,也不根据 State 推导。供应商摘要显示“名称 · 分公司/邮编”,为空时仅显示名称;历史 Job 使用已保存的快照。
50
+
51
+ contact_method 已停用,不参与表单、详情、搜索、自动填充或提交;历史数据库值保留,不用它推断电话或邮箱。Supplier.memo 没有对应的 Job 字段,不映射到物流备注或付款备注。
52
+
53
+ Status / Invoice date 不作为表单输入,也不随编辑保存覆盖。新建写入 create / null;首次流转到 invoice 时写入当前日期,后续流转保留原有开票日期。
54
+
55
+ 物料 / 产品明细暂不显示 description 输入,也不要求用户填写。数据库不允许 description 为 null,因此未填时统一提交空字符串,不以名称自动补齐;创建、复制及编辑明细共用此规则,已有描述保留。详情优先显示名称,旧记录没有名称时仍能以描述识别。物料关联和数量的必填校验保持与数据结构一致。
56
+
57
+ 原型 Remove 是本地永久删除。此实现按数据库的 `deleted_at` 软移除 Job,避免关联付款 / 照片被级联删除或成为孤儿。子明细删除只对编辑会话中已读取且属于当前 Job 的记录调用 destroy。
58
+
59
+ 主表写入字段在 `model.ts/jobFields` 白名单内。新建(包括复制)只调用一次 `/api/prs_job:create`,body 包含 `job_materials` 和 `job_items` 两个关联数组,由 NocoBase 建立子记录的 job_id;新明细不传 id、job_id 或表单 \_key。BIGINT 保持原值,金额和数量保留十进制字符串;不填写 operator / audit 字段。
60
+
61
+ 提交时从 `appHelper.utils.store.getState().core.core.tenant.id` 读取当前租户 ID。saas_shop 将第一次 `/tenant/core` 响应存入该 store;响应中的 `tenant.tenant_id` 是第二次查询 parentCore 时使用的上级租户 ID,不用于此处,也不作为回退值。创建 Job 主表及两类明细、编辑时新增明细均显式写入当前租户 ID;不沿用复制草稿或供应商记录中的租户值,也不修改已有记录的 tenant_id。创建任何新记录前若无法取得有效租户,保留草稿并提示刷新,不先写入部分数据。无需解析鉴权凭证;后端仍负责鉴权和关联记录的访问权限。
62
+
63
+ 新建使用 NocoBase 原生关联创建事务,成功后结束新建会话,不继续调用子表 create;需要再次编辑时重新加载详情。明确失败保留草稿,可重试整次请求;超时或未返回父记录 ID 时结果不确定,需关闭后刷新核实,不自动降级为分步创建。实际事务与关联权限需在部署环境验证。
64
+
65
+ 编辑继续先更新主表,再分别新增、修改或删除两类明细,不使用嵌套数组全量替换。编辑的多个请求不构成整体事务:已成功的明细记录 checkpoint,后续明确失败可重试剩余操作。编辑新增明细、付款 / 照片创建也不自动重试不明确的结果。
66
+
67
+ ## 多语言与宿主接入
68
+
69
+ 参照 `saasTeamMembers/locales.ts`,`locales.ts` 按 en / zh-CN / zh-HK / ja / pt 分组,使用 `pisell2.panpacific.task.*` 键。组件从 `useEngineContext()` 取得 `engine.props.locale`,通过 `@pisell/utils` 的 `locales.init(localeTexts, locale)` 初始化,使用同一 `locales.getText` 渲染视图、表单、抽屉和校验提示。语言格式兼容与英文回退沿用共享工具,不再维护独立 translator 或 locale prop。
70
+
71
+ ## 接口及扩展
72
+
73
+ 默认复用 `appHelper.utils.request`,缺省使用 private-materials 初始化的 request;没有独立 token、域名或 fetch。`serve.ts` 按 `systemSettings/registry/services.ts` 的方式导出业务函数,以宿主 request 为首个参数,通过 `request.get/post` 调用 `/api/prs_…:action`,配置 `isNocobase: true` 和 `x-data-source: pisell2`。查询参数由 URLSearchParams 编码到 URL,写入字段放在 POST body,保留完整响应以读取分页 meta。
74
+
75
+ 所需 collection 权限:
76
+
77
+ | Collection | Action |
78
+ | --------------------------------------------------------------------------------- | ---------------------------- |
79
+ | prs_job | list / get / create / update |
80
+ | prs_job_material、prs_job_item | create / update / destroy |
81
+ | prs_supplier、prs_material_item、prs_product、prs_payment_term、prs_task_category | list |
82
+ | prs_job_payment | list / create |
83
+ | prs_job_pickup_photo | list / create / update |
84
+
85
+ Job create 必须允许写入 `job_materials`、`job_items` 关联字段及相应子字段。Job list / get 的 `appends` 必须支持 `job_materials` 和 `job_items`。详情未返回完整关系时禁止进入编辑,防止误清空明细。列表分页每页 200,最多 100 页,超过上限不会展示部分结果为完整列表。
86
+
87
+ 附件上传参考 `BaseUpload` 的非 shop 分支,读取 `appHelper.constants.mediaUploadUrl` 和 `getHeaders()`,直接 POST multipart 表单(`file`、`group_id=0`)。媒体请求使用宿主给定的完整地址和最新鉴权头,不经业务客户端拼接前缀;Content-Type 的 boundary 交由浏览器生成。租户环境可配置 `/tenant/media/upload`,编辑器可配置 `/admin/media/upload`,组件不硬编码环境地址,也不请求商城的 `/shop/ali-upload/policy`。缺少上传地址时明确报错,不猜测备用端点。
88
+
89
+ 附件 JSON 写入 `{ ...上传结果, url, name }`;读取兼容 url 字符串、数组、对象及原型 dataUrl。提货照片 JSON 若包含多张图片,删除仅移除选中的附件;最后一张删除时更新该照片记录的 deleted_at,不删除媒体库文件。图片限制 10MB,HTTP / 业务失败或未返回有效 URL 时不保存附件记录。如已有不同协议,可传 `uploadPhoto(file): Promise<Attachment>`。
90
+
91
+ 可选 props:
92
+
93
+ | Prop | 默认 / 用途 |
94
+ | ----------------- | ------------------------------------------------------------- |
95
+ | defaultTab | calendar;可选 timeline / list |
96
+ | uploadPhoto | 自定义图片上传流程,返回持久化附件 JSON |
97
+ | onJobChange | 保存、状态、日期、付款 / 照片或移除成功后通知宿主,参数 jobId |
98
+ | className / style | 外层样式 |
99
+
100
+ 组件无需页面 dataSource 配置,也不接收 transport / dataSourceMap 适配。接口扩展在 serve.ts 中完成。
101
+
102
+ 编号是前端预览值,唯一性由数据库约束保证。识别 `prs_job_tenant_job_number_unique` 冲突后仅显示多语言提示,由用户修改编号后重新提交;明确的编号重复不会被当作创建结果不确定而锁住表单。
103
+
104
+ ## 维护与验证
105
+
106
+ `PanpacificTask.tsx` 组织视图和状态;`JobForm.tsx` / `JobDrawer.tsx` 负责表单和详情;`model.ts` 管理业务规则;`serve.ts` 定义接口;`saveJob.ts` 管理父子记录保存与重试检查点,`tenant.ts` 读取当前 NocoBase 租户;`attachments.ts` 处理附件,`PhotoPreview.tsx` 提供预览及删除入口;样式和翻译各自独立。
107
+
108
+ 仓库根目录执行保存逻辑的回归测试:
109
+
110
+ ```sh
111
+ pnpm --filter @pisell/private-materials exec vitest run --config vitest.panpacific.config.ts
112
+ ```
113
+
114
+ `saveJob.test.ts` 使用内存 get/post 客户端,覆盖不同错误响应结构、重复时不自动换号或重发、用户修改后重新提交、其他错误提示,以及超时保护和五种语言的提示键。还验证父子新记录的租户一致性、缺少租户时停止写入、编辑不改写已有租户、空描述兼容,以及删除影响 0 行时保留检查点、重试不重复删除已成功的记录。`tenant.test.ts` 验证当前租户 id 为 20、上级 tenant_id 为 1 时的提交、store 更新及缺失或无效字段的处理。独立 Node 配置不加载通用 UI 测试 setup,不访问远端业务数据。
@@ -0,0 +1,66 @@
1
+ const require_objectSpread2 = require("../../_virtual/_@oxc-project_runtime@0.122.0/helpers/objectSpread2.js");
2
+ const require_asyncToGenerator = require("../../_virtual/_@oxc-project_runtime@0.122.0/helpers/asyncToGenerator.js");
3
+ //#region src/plus/panpacificTask/attachments.ts
4
+ function attachments(value) {
5
+ if (!value) return [];
6
+ if (Array.isArray(value)) return value.flatMap(attachments);
7
+ if (typeof value === "string") try {
8
+ return attachments(JSON.parse(value));
9
+ } catch (_unused) {
10
+ return /^(https?:\/\/|\/|data:image\/)/i.test(value) ? [{ url: value }] : [];
11
+ }
12
+ if (typeof value === "object") {
13
+ const url = value.url || value.dataUrl;
14
+ if (typeof url === "string" && /^(https?:\/\/|\/|data:image\/)/i.test(url)) return [require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, value), {}, { url })];
15
+ if (value.data) return attachments(value.data);
16
+ }
17
+ return [];
18
+ }
19
+ function preparePhoto(file) {
20
+ var _file$name$split$pop;
21
+ if (file.size > 10 * 1024 * 1024) throw new Error("pisell2.panpacific.task.imageOnly");
22
+ if (file.type.startsWith("image/")) return file;
23
+ const type = {
24
+ png: "image/png",
25
+ jpg: "image/jpeg",
26
+ jpeg: "image/jpeg",
27
+ webp: "image/webp",
28
+ gif: "image/gif"
29
+ }[((_file$name$split$pop = file.name.split(".").pop()) === null || _file$name$split$pop === void 0 ? void 0 : _file$name$split$pop.toLowerCase()) || ""];
30
+ if (!file.type && type) return new File([file], file.name, {
31
+ type,
32
+ lastModified: file.lastModified
33
+ });
34
+ throw new Error("pisell2.panpacific.task.imageOnly");
35
+ }
36
+ function defaultPhotoUploader({ mediaUploadUrl, getHeaders } = {}) {
37
+ return function() {
38
+ var _ref = require_asyncToGenerator._asyncToGenerator(function* (file) {
39
+ var _result$errors;
40
+ file = preparePhoto(file);
41
+ if (!mediaUploadUrl) throw new Error("pisell2.panpacific.task.uploadFailed");
42
+ const body = new FormData();
43
+ body.append("file", file);
44
+ body.append("group_id", "0");
45
+ const headers = new Headers(getHeaders === null || getHeaders === void 0 ? void 0 : getHeaders());
46
+ headers.delete("Content-Type");
47
+ const response = yield fetch(mediaUploadUrl, {
48
+ method: "POST",
49
+ body,
50
+ headers
51
+ });
52
+ const result = yield response.json().catch(() => null);
53
+ if (!response.ok || (result === null || result === void 0 ? void 0 : result.status) === false || (result === null || result === void 0 || (_result$errors = result.errors) === null || _result$errors === void 0 ? void 0 : _result$errors.length)) throw new Error("pisell2.panpacific.task.uploadFailed");
54
+ const image = attachments(result)[0];
55
+ if (!image) throw new Error("pisell2.panpacific.task.uploadFailed");
56
+ return require_objectSpread2._objectSpread2(require_objectSpread2._objectSpread2({}, image), {}, { name: file.name });
57
+ });
58
+ return function(_x) {
59
+ return _ref.apply(this, arguments);
60
+ };
61
+ }();
62
+ }
63
+ //#endregion
64
+ exports.attachments = attachments;
65
+ exports.defaultPhotoUploader = defaultPhotoUploader;
66
+ exports.preparePhoto = preparePhoto;
@@ -0,0 +1,2 @@
1
+ import { Attachment, PanpacificTaskProps } from "./types.js";
2
+ import { PanpacificTask } from "./PanpacificTask.js";