@multiplatform.one/frappe-ui 7.22.0 → 7.23.1

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 (222) hide show
  1. package/README.md +14 -0
  2. package/dist/cjs/FrappeForm.cjs +96 -52
  3. package/dist/cjs/FrappeForm.native.js +103 -52
  4. package/dist/cjs/FrappeForm.native.js.map +1 -1
  5. package/dist/cjs/FrappeFormActions.cjs +161 -0
  6. package/dist/cjs/FrappeFormActions.native.js +167 -0
  7. package/dist/cjs/FrappeFormActions.native.js.map +1 -0
  8. package/dist/cjs/FrappeTable.cjs +42 -13
  9. package/dist/cjs/FrappeTable.native.js +55 -19
  10. package/dist/cjs/FrappeTable.native.js.map +1 -1
  11. package/dist/cjs/desk/DeskFormPage.cjs +2 -1
  12. package/dist/cjs/desk/DeskFormPage.native.js +3 -0
  13. package/dist/cjs/desk/DeskFormPage.native.js.map +1 -1
  14. package/dist/cjs/filterFields.cjs +277 -34
  15. package/dist/cjs/filterFields.native.js +311 -36
  16. package/dist/cjs/filterFields.native.js.map +1 -1
  17. package/dist/cjs/formEngine/docLifecycle.cjs +98 -0
  18. package/dist/cjs/formEngine/docLifecycle.native.js +131 -0
  19. package/dist/cjs/formEngine/docLifecycle.native.js.map +1 -0
  20. package/dist/cjs/formEngine/useAmendedAs.cjs +48 -0
  21. package/dist/cjs/formEngine/useAmendedAs.native.js +60 -0
  22. package/dist/cjs/formEngine/useAmendedAs.native.js.map +1 -0
  23. package/dist/cjs/formEngine/useDocRights.cjs +2 -2
  24. package/dist/cjs/formEngine/useDocRights.native.js +2 -2
  25. package/dist/cjs/formEngine/useDocRights.native.js.map +1 -1
  26. package/dist/cjs/formEngine/useFormEngine.cjs +1 -0
  27. package/dist/cjs/formEngine/useFormEngine.native.js +1 -0
  28. package/dist/cjs/formEngine/useFormEngine.native.js.map +1 -1
  29. package/dist/cjs/index.cjs +30 -1
  30. package/dist/cjs/index.native.js +30 -1
  31. package/dist/cjs/index.native.js.map +1 -1
  32. package/dist/cjs/list/listColumns.cjs +397 -0
  33. package/dist/cjs/list/listColumns.native.js +447 -0
  34. package/dist/cjs/list/listColumns.native.js.map +1 -0
  35. package/dist/cjs/list/listFields.cjs +50 -0
  36. package/dist/cjs/list/listFields.native.js +79 -0
  37. package/dist/cjs/list/listFields.native.js.map +1 -0
  38. package/dist/cjs/list/listFormat.cjs +68 -0
  39. package/dist/cjs/list/listFormat.native.js +74 -0
  40. package/dist/cjs/list/listFormat.native.js.map +1 -0
  41. package/dist/cjs/list/statusColors.cjs +102 -0
  42. package/dist/cjs/list/statusColors.native.js +109 -0
  43. package/dist/cjs/list/statusColors.native.js.map +1 -0
  44. package/dist/cjs/useFrappeAggregate.cjs +1 -1
  45. package/dist/cjs/useFrappeAggregate.native.js +1 -1
  46. package/dist/cjs/useFrappeAggregate.native.js.map +1 -1
  47. package/dist/esm/FrappeForm.mjs +97 -53
  48. package/dist/esm/FrappeForm.mjs.map +1 -1
  49. package/dist/esm/FrappeForm.native.js +104 -53
  50. package/dist/esm/FrappeForm.native.js.map +1 -1
  51. package/dist/esm/FrappeFormActions.mjs +136 -0
  52. package/dist/esm/FrappeFormActions.mjs.map +1 -0
  53. package/dist/esm/FrappeFormActions.native.js +139 -0
  54. package/dist/esm/FrappeFormActions.native.js.map +1 -0
  55. package/dist/esm/FrappeTable.mjs +42 -13
  56. package/dist/esm/FrappeTable.mjs.map +1 -1
  57. package/dist/esm/FrappeTable.native.js +55 -19
  58. package/dist/esm/FrappeTable.native.js.map +1 -1
  59. package/dist/esm/desk/DeskFormPage.mjs +2 -1
  60. package/dist/esm/desk/DeskFormPage.mjs.map +1 -1
  61. package/dist/esm/desk/DeskFormPage.native.js +3 -0
  62. package/dist/esm/desk/DeskFormPage.native.js.map +1 -1
  63. package/dist/esm/filterFields.mjs +263 -34
  64. package/dist/esm/filterFields.mjs.map +1 -1
  65. package/dist/esm/filterFields.native.js +297 -36
  66. package/dist/esm/filterFields.native.js.map +1 -1
  67. package/dist/esm/formEngine/docLifecycle.mjs +68 -0
  68. package/dist/esm/formEngine/docLifecycle.mjs.map +1 -0
  69. package/dist/esm/formEngine/docLifecycle.native.js +98 -0
  70. package/dist/esm/formEngine/docLifecycle.native.js.map +1 -0
  71. package/dist/esm/formEngine/useAmendedAs.mjs +23 -0
  72. package/dist/esm/formEngine/useAmendedAs.mjs.map +1 -0
  73. package/dist/esm/formEngine/useAmendedAs.native.js +32 -0
  74. package/dist/esm/formEngine/useAmendedAs.native.js.map +1 -0
  75. package/dist/esm/formEngine/useDocRights.mjs +2 -2
  76. package/dist/esm/formEngine/useDocRights.mjs.map +1 -1
  77. package/dist/esm/formEngine/useDocRights.native.js +2 -2
  78. package/dist/esm/formEngine/useDocRights.native.js.map +1 -1
  79. package/dist/esm/formEngine/useFormEngine.mjs +1 -1
  80. package/dist/esm/formEngine/useFormEngine.mjs.map +1 -1
  81. package/dist/esm/formEngine/useFormEngine.native.js +1 -1
  82. package/dist/esm/formEngine/useFormEngine.native.js.map +1 -1
  83. package/dist/esm/index.mjs +6 -2
  84. package/dist/esm/index.mjs.map +1 -1
  85. package/dist/esm/index.native.js +6 -2
  86. package/dist/esm/index.native.js.map +1 -1
  87. package/dist/esm/list/listColumns.mjs +372 -0
  88. package/dist/esm/list/listColumns.mjs.map +1 -0
  89. package/dist/esm/list/listColumns.native.js +419 -0
  90. package/dist/esm/list/listColumns.native.js.map +1 -0
  91. package/dist/esm/list/listFields.mjs +23 -0
  92. package/dist/esm/list/listFields.mjs.map +1 -0
  93. package/dist/esm/list/listFields.native.js +49 -0
  94. package/dist/esm/list/listFields.native.js.map +1 -0
  95. package/dist/esm/list/listFormat.mjs +38 -0
  96. package/dist/esm/list/listFormat.mjs.map +1 -0
  97. package/dist/esm/list/listFormat.native.js +41 -0
  98. package/dist/esm/list/listFormat.native.js.map +1 -0
  99. package/dist/esm/list/statusColors.mjs +77 -0
  100. package/dist/esm/list/statusColors.mjs.map +1 -0
  101. package/dist/esm/list/statusColors.native.js +81 -0
  102. package/dist/esm/list/statusColors.native.js.map +1 -0
  103. package/dist/esm/useFrappeAggregate.mjs +1 -1
  104. package/dist/esm/useFrappeAggregate.mjs.map +1 -1
  105. package/dist/esm/useFrappeAggregate.native.js +1 -1
  106. package/dist/esm/useFrappeAggregate.native.js.map +1 -1
  107. package/dist/jsx/FrappeForm.mjs +97 -53
  108. package/dist/jsx/FrappeForm.mjs.map +1 -1
  109. package/dist/jsx/FrappeForm.native.js +103 -52
  110. package/dist/jsx/FrappeForm.native.js.map +1 -1
  111. package/dist/jsx/FrappeFormActions.mjs +136 -0
  112. package/dist/jsx/FrappeFormActions.mjs.map +1 -0
  113. package/dist/jsx/FrappeFormActions.native.js +167 -0
  114. package/dist/jsx/FrappeFormActions.native.js.map +1 -0
  115. package/dist/jsx/FrappeTable.mjs +42 -13
  116. package/dist/jsx/FrappeTable.mjs.map +1 -1
  117. package/dist/jsx/FrappeTable.native.js +55 -19
  118. package/dist/jsx/FrappeTable.native.js.map +1 -1
  119. package/dist/jsx/desk/DeskFormPage.mjs +2 -1
  120. package/dist/jsx/desk/DeskFormPage.mjs.map +1 -1
  121. package/dist/jsx/desk/DeskFormPage.native.js +3 -0
  122. package/dist/jsx/desk/DeskFormPage.native.js.map +1 -1
  123. package/dist/jsx/filterFields.mjs +263 -34
  124. package/dist/jsx/filterFields.mjs.map +1 -1
  125. package/dist/jsx/filterFields.native.js +311 -36
  126. package/dist/jsx/filterFields.native.js.map +1 -1
  127. package/dist/jsx/formEngine/docLifecycle.mjs +68 -0
  128. package/dist/jsx/formEngine/docLifecycle.mjs.map +1 -0
  129. package/dist/jsx/formEngine/docLifecycle.native.js +131 -0
  130. package/dist/jsx/formEngine/docLifecycle.native.js.map +1 -0
  131. package/dist/jsx/formEngine/useAmendedAs.mjs +23 -0
  132. package/dist/jsx/formEngine/useAmendedAs.mjs.map +1 -0
  133. package/dist/jsx/formEngine/useAmendedAs.native.js +60 -0
  134. package/dist/jsx/formEngine/useAmendedAs.native.js.map +1 -0
  135. package/dist/jsx/formEngine/useDocRights.mjs +2 -2
  136. package/dist/jsx/formEngine/useDocRights.mjs.map +1 -1
  137. package/dist/jsx/formEngine/useDocRights.native.js +2 -2
  138. package/dist/jsx/formEngine/useDocRights.native.js.map +1 -1
  139. package/dist/jsx/formEngine/useFormEngine.mjs +1 -1
  140. package/dist/jsx/formEngine/useFormEngine.mjs.map +1 -1
  141. package/dist/jsx/formEngine/useFormEngine.native.js +1 -0
  142. package/dist/jsx/formEngine/useFormEngine.native.js.map +1 -1
  143. package/dist/jsx/index.js +6 -2
  144. package/dist/jsx/index.js.map +1 -1
  145. package/dist/jsx/index.mjs +6 -2
  146. package/dist/jsx/index.mjs.map +1 -1
  147. package/dist/jsx/index.native.js +30 -1
  148. package/dist/jsx/index.native.js.map +1 -1
  149. package/dist/jsx/list/listColumns.mjs +372 -0
  150. package/dist/jsx/list/listColumns.mjs.map +1 -0
  151. package/dist/jsx/list/listColumns.native.js +447 -0
  152. package/dist/jsx/list/listColumns.native.js.map +1 -0
  153. package/dist/jsx/list/listFields.mjs +23 -0
  154. package/dist/jsx/list/listFields.mjs.map +1 -0
  155. package/dist/jsx/list/listFields.native.js +79 -0
  156. package/dist/jsx/list/listFields.native.js.map +1 -0
  157. package/dist/jsx/list/listFormat.mjs +38 -0
  158. package/dist/jsx/list/listFormat.mjs.map +1 -0
  159. package/dist/jsx/list/listFormat.native.js +74 -0
  160. package/dist/jsx/list/listFormat.native.js.map +1 -0
  161. package/dist/jsx/list/statusColors.mjs +77 -0
  162. package/dist/jsx/list/statusColors.mjs.map +1 -0
  163. package/dist/jsx/list/statusColors.native.js +109 -0
  164. package/dist/jsx/list/statusColors.native.js.map +1 -0
  165. package/dist/jsx/useFrappeAggregate.mjs +1 -1
  166. package/dist/jsx/useFrappeAggregate.mjs.map +1 -1
  167. package/dist/jsx/useFrappeAggregate.native.js +1 -1
  168. package/dist/jsx/useFrappeAggregate.native.js.map +1 -1
  169. package/package.json +22 -16
  170. package/src/FrappeForm.deskSemantics.spec.tsx +1 -1
  171. package/src/FrappeForm.lifecycle.spec.tsx +463 -0
  172. package/src/FrappeForm.lifecycle.stories.tsx +84 -0
  173. package/src/FrappeForm.tsx +124 -84
  174. package/src/FrappeFormActions.tsx +216 -0
  175. package/src/FrappeTable.defaultColumns.spec.tsx +229 -0
  176. package/src/FrappeTable.tsx +79 -32
  177. package/src/desk/DeskFormPage.tsx +1 -0
  178. package/src/filterFields.spec.ts +57 -2
  179. package/src/filterFields.ts +365 -38
  180. package/src/formEngine/docLifecycle.spec.ts +195 -0
  181. package/src/formEngine/docLifecycle.ts +148 -0
  182. package/src/formEngine/useAmendedAs.ts +38 -0
  183. package/src/formEngine/useDocRights.ts +11 -3
  184. package/src/formEngine/useFormEngine.ts +1 -1
  185. package/src/frappeViews.designLaw.spec.ts +6 -0
  186. package/src/index.ts +47 -1
  187. package/src/list/listColumns.tsx +488 -0
  188. package/src/list/listFields.spec.ts +147 -0
  189. package/src/list/listFields.ts +68 -0
  190. package/src/list/listFormat.spec.ts +151 -0
  191. package/src/list/listFormat.ts +80 -0
  192. package/src/list/seam.spec.ts +116 -0
  193. package/src/list/statusColors.spec.ts +100 -0
  194. package/src/list/statusColors.ts +94 -0
  195. package/src/useFrappeAggregate.ts +1 -1
  196. package/types/FrappeForm.d.ts +13 -3
  197. package/types/FrappeForm.d.ts.map +1 -1
  198. package/types/FrappeFormActions.d.ts +36 -0
  199. package/types/FrappeFormActions.d.ts.map +1 -0
  200. package/types/FrappeTable.d.ts +11 -5
  201. package/types/FrappeTable.d.ts.map +1 -1
  202. package/types/desk/DeskFormPage.d.ts.map +1 -1
  203. package/types/filterFields.d.ts +81 -10
  204. package/types/filterFields.d.ts.map +1 -1
  205. package/types/formEngine/docLifecycle.d.ts +59 -0
  206. package/types/formEngine/docLifecycle.d.ts.map +1 -0
  207. package/types/formEngine/useAmendedAs.d.ts +9 -0
  208. package/types/formEngine/useAmendedAs.d.ts.map +1 -0
  209. package/types/formEngine/useDocRights.d.ts +1 -1
  210. package/types/formEngine/useDocRights.d.ts.map +1 -1
  211. package/types/formEngine/useFormEngine.d.ts +1 -0
  212. package/types/formEngine/useFormEngine.d.ts.map +1 -1
  213. package/types/index.d.ts +5 -1
  214. package/types/index.d.ts.map +1 -1
  215. package/types/list/listColumns.d.ts +41 -0
  216. package/types/list/listColumns.d.ts.map +1 -0
  217. package/types/list/listFields.d.ts +16 -0
  218. package/types/list/listFields.d.ts.map +1 -0
  219. package/types/list/listFormat.d.ts +30 -0
  220. package/types/list/listFormat.d.ts.map +1 -0
  221. package/types/list/statusColors.d.ts +14 -0
  222. package/types/list/statusColors.d.ts.map +1 -0
@@ -1 +1 @@
1
- {"version":3,"names":["mapFieldToFilterType","fieldtypeToTableField","NON_FILTERABLE_FIELDTYPES","Set","STANDARD_DOC_FIELDS","id","label","type","docFieldsToFilterFields","fields","mapped","seen","field","fieldname","has","fieldtype","String","startsWith","tableField","options","fieldProps","add","push","standard"],"sources":["../../src/filterFields.ts"],"sourcesContent":[null],"mappings":"AAYA,SAGEA,oBAAA,QACK;AACP,SAASC,qBAAA,QAA6B;AAGtC,MAAMC,yBAAA,GAA4B,mBAAIC,GAAA,CAAI,CACxC,iBACA,gBACA,aACA,QACA,WACA,QACA,UACA,SACA,UACA,gBACA,aACA,eACA,WACD;AAGD,MAAMC,mBAAA,GAAyC,CAC7C;EAAEC,EAAA,EAAI;EAAQC,KAAA,EAAO;EAAMC,IAAA,EAAM;AAAO,GACxC;EAAEF,EAAA,EAAI;EAASC,KAAA,EAAO;EAAcC,IAAA,EAAM;AAAO,GACjD;EAAEF,EAAA,EAAI;EAAYC,KAAA,EAAO;EAAcC,IAAA,EAAM;AAAO,GACpD;EAAEF,EAAA,EAAI;EAAYC,KAAA,EAAO;EAAmBC,IAAA,EAAM;AAAO,EAC3D;AAOO,SAASC,wBAAwBC,MAAA,EAA2C;EACjF,MAAMC,MAAA,GAA4B,EAAC;EACnC,MAAMC,IAAA,GAAO,mBAAIR,GAAA,CAAY;EAC7B,WAAWS,KAAA,IAASH,MAAA,EAAQ;IAC1B,IAAI,CAACG,KAAA,CAAMC,SAAA,IAAaF,IAAA,CAAKG,GAAA,CAAIF,KAAA,CAAMC,SAAS,GAAG;IACnD,MAAME,SAAA,GAAYC,MAAA,CAAOJ,KAAA,CAAMG,SAAS;IACxC,IAAIb,yBAAA,CAA0BY,GAAA,CAAIC,SAAS,KAAKA,SAAA,CAAUE,UAAA,CAAW,OAAO,GAAG;IAC/E,MAAMC,UAAA,GAAajB,qBAAA,CAAsBc,SAAA,EAAWH,KAAA,CAAMO,OAAO;IACjE,MAAMA,OAAA,GAAWD,UAAA,CAAWE,UAAA,EACxBD,OAAA;IACJR,IAAA,CAAKU,GAAA,CAAIT,KAAA,CAAMC,SAAS;IACxBH,MAAA,CAAOY,IAAA,CAAK;MACVjB,EAAA,EAAIO,KAAA,CAAMC,SAAA;MACVP,KAAA,EAAOM,KAAA,CAAMN,KAAA,IAASM,KAAA,CAAMC,SAAA;MAAA;MAAA;MAG5BN,IAAA,EACEQ,SAAA,KAAc,WACV,WACAf,oBAAA,CAAqBkB,UAAA,CAAWN,KAAuB;MAC7D,IAAIO,OAAA,GAAU;QAAEA;MAAQ,IAAI,CAAC;IAC/B,CAAC;EACH;EACA,WAAWI,QAAA,IAAYnB,mBAAA,EAAqB;IAC1C,IAAI,CAACO,IAAA,CAAKG,GAAA,CAAIS,QAAA,CAASlB,EAAE,GAAGK,MAAA,CAAOY,IAAA,CAAKC,QAAQ;EAClD;EACA,OAAOb,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["mapFieldToFilterType","fieldtypeToTableField","NON_FILTERABLE_FIELDTYPES","Set","NUMBER_FIELDTYPES","DATE_FIELDTYPES","fieldKind","fieldtype","has","toDescriptor","field","fieldname","label","kind","options","standardDocFilterFields","filterableDescriptors","fields","out","seen","String","startsWith","add","push","standard","filterableFieldsFromMeta","meta","toTableFilterField","tableField","fieldProps","id","type","docFieldsToFilterFields","map","standardFiltersFromMeta","fromMeta","filter","in_standard_filter","hidden","extras","titleField","title_field","titleMeta","find","length","selectOptionsFromField","split","line","trim","Boolean","value","fieldLabelFor","known","pretty","replace","word","charAt","toUpperCase","slice","join","DESK_OPERATOR_LABELS","like","in","between","BASE_OPERATORS","operatorsForKind","defaultOperatorForKind","draftToTuple","draft","operator","values","from","to","text","includes","SCALAR_OPERATORS","tupleToDraft","tuple","raw","Array","isArray","setFieldFilter","filters","rest","name","quickFilterValue","endsWith","filterTupleLabel"],"sources":["../../src/filterFields.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,25 +1,82 @@
1
1
  import { mapFieldToFilterType } from "@multiplatform.one/table";
2
2
  import { fieldtypeToTableField } from "./fieldRegistry.native.js";
3
3
  var NON_FILTERABLE_FIELDTYPES = /* @__PURE__ */new Set(["Section Break", "Column Break", "Tab Break", "Fold", "Heading", "HTML", "Button", "Image", "Attach", "Attach Image", "Signature", "Geolocation", "Password"]);
4
- var STANDARD_DOC_FIELDS = [{
5
- id: "name",
6
- label: "ID",
7
- type: "text"
8
- }, {
9
- id: "owner",
10
- label: "Created By",
11
- type: "text"
12
- }, {
13
- id: "creation",
14
- label: "Created On",
15
- type: "date"
16
- }, {
17
- id: "modified",
18
- label: "Last Updated On",
19
- type: "date"
20
- }];
21
- function docFieldsToFilterFields(fields) {
22
- var mapped = [];
4
+ var NUMBER_FIELDTYPES = /* @__PURE__ */new Set(["Int", "Float", "Currency", "Percent", "Duration", "Rating"]);
5
+ var DATE_FIELDTYPES = /* @__PURE__ */new Set(["Date", "Datetime", "Time"]);
6
+ function fieldKind(fieldtype) {
7
+ if (fieldtype === "Select") return "select";
8
+ if (fieldtype === "Link") return "link";
9
+ if (fieldtype === "Check") return "check";
10
+ if (DATE_FIELDTYPES.has(fieldtype)) return "date";
11
+ if (NUMBER_FIELDTYPES.has(fieldtype)) return "number";
12
+ return "text";
13
+ }
14
+ function toDescriptor(field) {
15
+ return {
16
+ fieldname: field.fieldname,
17
+ label: field.label || field.fieldname,
18
+ fieldtype: field.fieldtype,
19
+ kind: fieldKind(field.fieldtype),
20
+ options: field.options
21
+ };
22
+ }
23
+ function standardDocFilterFields() {
24
+ return [{
25
+ fieldname: "name",
26
+ label: "ID",
27
+ fieldtype: "Data",
28
+ kind: "text"
29
+ }, {
30
+ fieldname: "owner",
31
+ label: "Created By",
32
+ fieldtype: "Link",
33
+ kind: "link",
34
+ options: "User"
35
+ }, {
36
+ fieldname: "creation",
37
+ label: "Created On",
38
+ fieldtype: "Datetime",
39
+ kind: "date"
40
+ }, {
41
+ fieldname: "modified",
42
+ label: "Last Updated On",
43
+ fieldtype: "Datetime",
44
+ kind: "date"
45
+ }, {
46
+ fieldname: "modified_by",
47
+ label: "Last Updated By",
48
+ fieldtype: "Link",
49
+ kind: "link",
50
+ options: "User"
51
+ },
52
+ // Desk `_` facet columns — the sidebar facets and heart column write
53
+ // tuples on these, so chips and the editor must label them (desk offers
54
+ // them in its filter field picker too). Never surface the raw
55
+ // underscore fieldname (no-raw-fieldname rule candidate).
56
+ {
57
+ fieldname: "_assign",
58
+ label: "Assigned To",
59
+ fieldtype: "Data",
60
+ kind: "text"
61
+ }, {
62
+ fieldname: "_user_tags",
63
+ label: "Tags",
64
+ fieldtype: "Data",
65
+ kind: "text"
66
+ }, {
67
+ fieldname: "_liked_by",
68
+ label: "Liked By",
69
+ fieldtype: "Data",
70
+ kind: "text"
71
+ }, {
72
+ fieldname: "_comments",
73
+ label: "Comments",
74
+ fieldtype: "Data",
75
+ kind: "text"
76
+ }];
77
+ }
78
+ function filterableDescriptors(fields) {
79
+ var out = [];
23
80
  var seen = /* @__PURE__ */new Set();
24
81
  var _iteratorNormalCompletion = true,
25
82
  _didIteratorError = false,
@@ -27,23 +84,11 @@ function docFieldsToFilterFields(fields) {
27
84
  try {
28
85
  for (var _iterator = fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
29
86
  var field = _step.value;
30
- var _tableField_fieldProps;
31
87
  if (!field.fieldname || seen.has(field.fieldname)) continue;
32
88
  var fieldtype = String(field.fieldtype);
33
89
  if (NON_FILTERABLE_FIELDTYPES.has(fieldtype) || fieldtype.startsWith("Table")) continue;
34
- var tableField = fieldtypeToTableField(fieldtype, field.options);
35
- var options = (_tableField_fieldProps = tableField.fieldProps) === null || _tableField_fieldProps === void 0 ? void 0 : _tableField_fieldProps.options;
36
90
  seen.add(field.fieldname);
37
- mapped.push({
38
- id: field.fieldname,
39
- label: field.label || field.fieldname,
40
- // Rating cells map to a custom render (fraction contract) which would
41
- // otherwise fall through to "text"; it filters as the number it is.
42
- type: fieldtype === "Rating" ? "number" : mapFieldToFilterType(tableField.field),
43
- ...(options ? {
44
- options
45
- } : {})
46
- });
91
+ out.push(toDescriptor(field));
47
92
  }
48
93
  } catch (err) {
49
94
  _didIteratorError = true;
@@ -63,9 +108,9 @@ function docFieldsToFilterFields(fields) {
63
108
  _didIteratorError1 = false,
64
109
  _iteratorError1 = void 0;
65
110
  try {
66
- for (var _iterator1 = STANDARD_DOC_FIELDS[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
111
+ for (var _iterator1 = standardDocFilterFields()[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
67
112
  var standard = _step1.value;
68
- if (!seen.has(standard.id)) mapped.push(standard);
113
+ if (!seen.has(standard.fieldname)) out.push(standard);
69
114
  }
70
115
  } catch (err) {
71
116
  _didIteratorError1 = true;
@@ -81,7 +126,223 @@ function docFieldsToFilterFields(fields) {
81
126
  }
82
127
  }
83
128
  }
84
- return mapped;
129
+ return out;
130
+ }
131
+ function filterableFieldsFromMeta(meta) {
132
+ var _ref;
133
+ return filterableDescriptors((_ref = meta === null || meta === void 0 ? void 0 : meta.fields) !== null && _ref !== void 0 ? _ref : []);
134
+ }
135
+ function toTableFilterField(field) {
136
+ var _tableField_fieldProps;
137
+ var tableField = fieldtypeToTableField(field.fieldtype, field.options);
138
+ var options = (_tableField_fieldProps = tableField.fieldProps) === null || _tableField_fieldProps === void 0 ? void 0 : _tableField_fieldProps.options;
139
+ return {
140
+ id: field.fieldname,
141
+ label: field.label,
142
+ // Rating cells map to a custom render (fraction contract) which would
143
+ // otherwise fall through to "text"; it filters as the number it is.
144
+ type: field.fieldtype === "Rating" ? "number" : mapFieldToFilterType(tableField.field),
145
+ ...(options ? {
146
+ options
147
+ } : {})
148
+ };
149
+ }
150
+ function docFieldsToFilterFields(fields) {
151
+ return filterableDescriptors(fields).map(toTableFilterField);
152
+ }
153
+ function standardFiltersFromMeta(meta) {
154
+ var _ref;
155
+ var fromMeta = ((_ref = meta === null || meta === void 0 ? void 0 : meta.fields) !== null && _ref !== void 0 ? _ref : []).filter(function (field) {
156
+ return field.in_standard_filter === 1 && field.hidden !== 1 && field.fieldname;
157
+ }).map(toDescriptor);
158
+ var seen = new Set(fromMeta.map(function (field) {
159
+ return field.fieldname;
160
+ }));
161
+ var extras = [];
162
+ if (!seen.has("name")) {
163
+ extras.push({
164
+ fieldname: "name",
165
+ label: "ID",
166
+ fieldtype: "Data",
167
+ kind: "text"
168
+ });
169
+ seen.add("name");
170
+ }
171
+ var titleField = meta === null || meta === void 0 ? void 0 : meta.title_field;
172
+ if (titleField && !seen.has(titleField)) {
173
+ var _meta_fields;
174
+ var titleMeta = meta === null || meta === void 0 ? void 0 : (_meta_fields = meta.fields) === null || _meta_fields === void 0 ? void 0 : _meta_fields.find(function (field) {
175
+ return field.fieldname === titleField;
176
+ });
177
+ extras.push({
178
+ fieldname: titleField,
179
+ label: (titleMeta === null || titleMeta === void 0 ? void 0 : titleMeta.label) || "Title",
180
+ fieldtype: (titleMeta === null || titleMeta === void 0 ? void 0 : titleMeta.fieldtype) || "Data",
181
+ kind: fieldKind((titleMeta === null || titleMeta === void 0 ? void 0 : titleMeta.fieldtype) || "Data")
182
+ });
183
+ }
184
+ return extras.length > 0 ? [...extras, ...fromMeta] : fromMeta;
185
+ }
186
+ function selectOptionsFromField(options) {
187
+ return (options !== null && options !== void 0 ? options : "").split("\n").map(function (line) {
188
+ return line.trim();
189
+ }).filter(Boolean).map(function (line) {
190
+ return {
191
+ label: line,
192
+ value: line
193
+ };
194
+ });
195
+ }
196
+ function fieldLabelFor(fields, fieldname) {
197
+ var _fields_find;
198
+ var known = (_fields_find = fields.find(function (field) {
199
+ return field.fieldname === fieldname;
200
+ })) === null || _fields_find === void 0 ? void 0 : _fields_find.label;
201
+ if (known) return known;
202
+ var pretty = fieldname.replace(/^_+/, "").split("_").filter(Boolean).map(function (word) {
203
+ return word.charAt(0).toUpperCase() + word.slice(1);
204
+ }).join(" ");
205
+ return pretty || fieldname;
206
+ }
207
+ var DESK_OPERATOR_LABELS = {
208
+ "=": "Equals",
209
+ "!=": "Not Equals",
210
+ like: "Like",
211
+ "not like": "Not Like",
212
+ in: "In",
213
+ "not in": "Not In",
214
+ ">": "Greater Than",
215
+ "<": "Less Than",
216
+ ">=": "Greater Than or Equal",
217
+ "<=": "Less Than or Equal",
218
+ between: "Between",
219
+ "is set": "Is Set",
220
+ "is not set": "Is Not Set"
221
+ };
222
+ var BASE_OPERATORS = ["=", "!=", "like", "not like", "in", "not in", "is set", "is not set"];
223
+ function operatorsForKind(kind) {
224
+ switch (kind) {
225
+ case "check":
226
+ return ["=", "!="];
227
+ case "number":
228
+ case "date":
229
+ return ["=", "!=", ">", "<", ">=", "<=", "between", "in", "not in", "is set", "is not set"];
230
+ default:
231
+ return BASE_OPERATORS;
232
+ }
233
+ }
234
+ function defaultOperatorForKind(kind) {
235
+ return kind === "text" ? "like" : "=";
236
+ }
237
+ function draftToTuple(draft, kind) {
238
+ var {
239
+ fieldname,
240
+ operator
241
+ } = draft;
242
+ if (!fieldname) return null;
243
+ switch (operator) {
244
+ case "is set":
245
+ return [fieldname, "is", "set"];
246
+ case "is not set":
247
+ return [fieldname, "is", "not set"];
248
+ case "in":
249
+ case "not in":
250
+ {
251
+ var values = kind === "select" ? draft.values.map(function (value) {
252
+ return value.trim();
253
+ }).filter(Boolean) : draft.value.split(",").map(function (value) {
254
+ return value.trim();
255
+ }).filter(Boolean);
256
+ return values.length ? [fieldname, operator, values] : null;
257
+ }
258
+ case "between":
259
+ {
260
+ var _draft_values_, _draft_values_1;
261
+ var from = ((_draft_values_ = draft.values[0]) !== null && _draft_values_ !== void 0 ? _draft_values_ : "").trim();
262
+ var to = ((_draft_values_1 = draft.values[1]) !== null && _draft_values_1 !== void 0 ? _draft_values_1 : "").trim();
263
+ return from && to ? [fieldname, "between", [from, to]] : null;
264
+ }
265
+ case "like":
266
+ case "not like":
267
+ {
268
+ var text = draft.value.trim();
269
+ if (!text) return null;
270
+ return [fieldname, operator, text.includes("%") ? text : `%${text}%`];
271
+ }
272
+ default:
273
+ {
274
+ var text1 = draft.value.trim();
275
+ return text1 ? [fieldname, operator, text1] : null;
276
+ }
277
+ }
278
+ }
279
+ var SCALAR_OPERATORS = ["=", "!=", "like", "not like", ">", "<", ">=", "<="];
280
+ function tupleToDraft(tuple) {
281
+ var [fieldname, operator, raw] = tuple;
282
+ if (operator === "is") {
283
+ return {
284
+ fieldname,
285
+ operator: raw === "set" ? "is set" : "is not set",
286
+ value: "",
287
+ values: []
288
+ };
289
+ }
290
+ if (operator === "in" || operator === "not in") {
291
+ var values = Array.isArray(raw) ? raw.map(String) : String(raw !== null && raw !== void 0 ? raw : "").split(",").map(function (value) {
292
+ return value.trim();
293
+ }).filter(Boolean);
294
+ return {
295
+ fieldname,
296
+ operator,
297
+ value: values.join(", "),
298
+ values
299
+ };
300
+ }
301
+ if (operator === "between") {
302
+ var _values_, _values_1;
303
+ var values1 = Array.isArray(raw) ? raw.map(String) : [];
304
+ return {
305
+ fieldname,
306
+ operator: "between",
307
+ value: "",
308
+ values: [(_values_ = values1[0]) !== null && _values_ !== void 0 ? _values_ : "", (_values_1 = values1[1]) !== null && _values_1 !== void 0 ? _values_1 : ""]
309
+ };
310
+ }
311
+ var known = SCALAR_OPERATORS.includes(operator) ? operator : "=";
312
+ return {
313
+ fieldname,
314
+ operator: known,
315
+ value: raw === null || raw === void 0 ? "" : String(raw),
316
+ values: []
317
+ };
318
+ }
319
+ function setFieldFilter(filters, fieldname, tuple) {
320
+ var rest = filters.filter(function (param) {
321
+ var [name] = param;
322
+ return name !== fieldname;
323
+ });
324
+ return tuple ? [...rest, tuple] : rest;
325
+ }
326
+ function quickFilterValue(filters, fieldname) {
327
+ var tuple = filters.find(function (param) {
328
+ var [name] = param;
329
+ return name === fieldname;
330
+ });
331
+ if (!tuple) return "";
332
+ var [, operator, raw] = tuple;
333
+ if (operator === "like") {
334
+ var text = String(raw !== null && raw !== void 0 ? raw : "");
335
+ return text.startsWith("%") && text.endsWith("%") && text.length >= 2 ? text.slice(1, -1) : text;
336
+ }
337
+ if (operator === "=") return raw === null || raw === void 0 ? "" : String(raw);
338
+ return "";
339
+ }
340
+ function filterTupleLabel(fields, tuple) {
341
+ var [fieldname, operator, raw] = tuple;
342
+ var label = fieldLabelFor(fields, fieldname);
343
+ if (operator === "is") return `${label} ${raw === "set" ? "is set" : "is not set"}`;
344
+ var value = Array.isArray(raw) ? raw.map(String).join(", ") : String(raw !== null && raw !== void 0 ? raw : "");
345
+ return `${label} ${operator} ${value}`;
85
346
  }
86
- export { docFieldsToFilterFields };
347
+ export { DESK_OPERATOR_LABELS, defaultOperatorForKind, docFieldsToFilterFields, draftToTuple, fieldKind, fieldLabelFor, filterTupleLabel, filterableFieldsFromMeta, operatorsForKind, quickFilterValue, selectOptionsFromField, setFieldFilter, standardDocFilterFields, standardFiltersFromMeta, tupleToDraft };
87
348
  //# sourceMappingURL=filterFields.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["mapFieldToFilterType","fieldtypeToTableField","NON_FILTERABLE_FIELDTYPES","Set","STANDARD_DOC_FIELDS","id","label","type","docFieldsToFilterFields","fields","mapped","seen","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","field","value","_tableField_fieldProps","fieldname","has","fieldtype","String"],"sources":["../../src/filterFields.ts"],"sourcesContent":[null],"mappings":"AAYA,SAAAA,oBAAA;AAAA,SAGEC,qBAAA;AAAA,IAAAC,yBACK,sBAAAC,GAAA,EACP,eAAS,EAGT,cAAM,EACJ,aACA,QACA,WACA,QACA,UACA,SACA,UACA,gBACA,aACA,eACA,YACA;AAAA,IACAC,mBAAA,IACD;EAGDC,EAAM;EACFC,KAAI;EACJC,IAAI;AACN,GACA;EACFF,EAAA;EAOOC,KAAS;EACdC,IAAM;AACN,GACA;EACEF,EAAA,EAAI,UAAO;EACXC,KAAA,EAAM,YAAY;EAClBC,IAAI;AACJ,GACA;EAEAF,EAAA,YAAS;EACTC,KAAA,EAAO,iBAAK;EAAAC,IACV,EAAI;AAAM,EACkB;AAAA,SAAAC,wBAAAC,MAAA;EAAA,IAG5BC,MACE;EAE2D,IAC7DC,IAAI,kBAAoB,IAAIR,GAAC;EAAA,IAC9BS,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EACH;IACA,SAAWC,SAAA,GAAYN,MAAA,CAAAO,MAAA,CAAAC,QAAqB,KAAAC,KAAA,IAAAN,yBAAA,IAAAM,KAAA,GAAAH,SAAA,CAAAI,IAAA,IAAAC,IAAA,GAAAR,yBAAA;MAC1C,IAAKS,KAAK,GAAIH,KAAA,CAAAI,KAAW;MAC3B,IAAAC,sBAAA;MACA,IAAO,CAAAF,KAAA,CAAAG,SAAA,IAAAb,IAAA,CAAAc,GAAA,CAAAJ,KAAA,CAAAG,SAAA;MACT,IAAAE,SAAA,GAAAC,MAAA,CAAAN,KAAA,CAAAK,SAAA","ignoreList":[]}
1
+ {"version":3,"names":["mapFieldToFilterType","fieldtypeToTableField","NON_FILTERABLE_FIELDTYPES","Set","NUMBER_FIELDTYPES","DATE_FIELDTYPES","fieldKind","fieldtype","has","toDescriptor","field","fieldname","label","kind","options","standardDocFilterFields","filterableDescriptors","fields","out","seen","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","String","startsWith","add","push","err","return","_iteratorNormalCompletion1","_didIteratorError1","_iteratorError1","_iterator1","_step1","standard","filterableFieldsFromMeta","meta","_ref","toTableFilterField","_tableField_fieldProps","tableField","fieldProps","id","type","docFieldsToFilterFields","map","standardFiltersFromMeta","fromMeta","filter","in_standard_filter","hidden","extras","titleField","title_field","_meta_fields","titleMeta","find","length","selectOptionsFromField","split","line","trim","Boolean","fieldLabelFor","_fields_find","known","pretty","replace","word","charAt","toUpperCase","slice","join","DESK_OPERATOR_LABELS","like","in"],"sources":["../../src/filterFields.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ import { formatCalendarDate } from "@multiplatform.one/theme";
2
+ function resolveDocAction(state) {
3
+ const action = resolveDeskAction(state);
4
+ if (state.isReadOnlyView && (action === "save" || action === "update")) return void 0;
5
+ return action;
6
+ }
7
+ function resolveDeskAction(state) {
8
+ const {
9
+ docstatus,
10
+ isCreate,
11
+ isDirty,
12
+ isSubmittable,
13
+ perms
14
+ } = state;
15
+ if (docstatus === 0) {
16
+ if (isSubmittable && !isCreate && !isDirty && perms.submit) return "submit";
17
+ return perms.write ? "save" : void 0;
18
+ }
19
+ if (!isSubmittable) return void 0;
20
+ if (docstatus === 1) {
21
+ if (isDirty && perms.write && perms.submit) return "update";
22
+ return perms.cancel ? "cancel" : void 0;
23
+ }
24
+ if (docstatus === 2 && perms.amend) return "amend";
25
+ return void 0;
26
+ }
27
+ function canDeleteDoc(docstatus) {
28
+ return docstatus !== 1;
29
+ }
30
+ function canEditDoc(docstatus, meta) {
31
+ if (docstatus === 0) return true;
32
+ if (docstatus === 1) return !!meta?.fields.some(field => field.allow_on_submit);
33
+ return false;
34
+ }
35
+ function resolveDocIndicator(state) {
36
+ if (state.isCreate || state.isDirty) return "notSaved";
37
+ if (state.docstatus === 1) return "submitted";
38
+ if (state.docstatus === 2) return "cancelled";
39
+ return state.isSubmittable ? "draft" : void 0;
40
+ }
41
+ function isAmendable(meta) {
42
+ return !!meta?.fields.some(field => field.fieldname === "amended_from");
43
+ }
44
+ const amendSkipped = /* @__PURE__ */new Set(["name", "amended_from", "amendment_date", "cancel_reason"]);
45
+ const rowBookkeeping = /* @__PURE__ */new Set(["name", "parent", "parentfield", "parenttype", "owner", "creation", "modified", "modified_by", "docstatus"]);
46
+ const tableTypes = /* @__PURE__ */new Set(["Table", "Table MultiSelect"]);
47
+ function buildAmendValues(fields, doc, cancelledName) {
48
+ const draft = {};
49
+ for (const field of fields) {
50
+ if (amendSkipped.has(field.fieldname) || field.fieldtype === "Password") continue;
51
+ const value = doc[field.fieldname];
52
+ if (value === void 0) continue;
53
+ if (tableTypes.has(field.fieldtype)) {
54
+ if (!Array.isArray(value)) continue;
55
+ draft[field.fieldname] = value.map(row => Object.fromEntries(Object.entries(row ?? {}).filter(([key]) => !rowBookkeeping.has(key))));
56
+ continue;
57
+ }
58
+ draft[field.fieldname] = value;
59
+ }
60
+ draft.amended_from = cancelledName;
61
+ draft.docstatus = 0;
62
+ if (fields.some(field => field.fieldname === "amendment_date")) {
63
+ draft.amendment_date = formatCalendarDate(/* @__PURE__ */new Date());
64
+ }
65
+ return draft;
66
+ }
67
+ export { buildAmendValues, canDeleteDoc, canEditDoc, isAmendable, resolveDocAction, resolveDocIndicator };
68
+ //# sourceMappingURL=docLifecycle.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatCalendarDate","resolveDocAction","state","action","resolveDeskAction","isReadOnlyView","docstatus","isCreate","isDirty","isSubmittable","perms","submit","write","cancel","amend","canDeleteDoc","canEditDoc","meta","fields","some","field","allow_on_submit","resolveDocIndicator","isAmendable","fieldname","amendSkipped","Set","rowBookkeeping","tableTypes","buildAmendValues","doc","cancelledName","draft","has","fieldtype","value","Array","isArray","map","row","Object","fromEntries","entries","filter","key","amended_from","amendment_date","Date"],"sources":["../../../src/formEngine/docLifecycle.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,98 @@
1
+ import { formatCalendarDate } from "@multiplatform.one/theme";
2
+ function resolveDocAction(state) {
3
+ var action = resolveDeskAction(state);
4
+ if (state.isReadOnlyView && (action === "save" || action === "update")) return void 0;
5
+ return action;
6
+ }
7
+ function resolveDeskAction(state) {
8
+ var {
9
+ docstatus,
10
+ isCreate,
11
+ isDirty,
12
+ isSubmittable,
13
+ perms
14
+ } = state;
15
+ if (docstatus === 0) {
16
+ if (isSubmittable && !isCreate && !isDirty && perms.submit) return "submit";
17
+ return perms.write ? "save" : void 0;
18
+ }
19
+ if (!isSubmittable) return void 0;
20
+ if (docstatus === 1) {
21
+ if (isDirty && perms.write && perms.submit) return "update";
22
+ return perms.cancel ? "cancel" : void 0;
23
+ }
24
+ if (docstatus === 2 && perms.amend) return "amend";
25
+ return void 0;
26
+ }
27
+ function canDeleteDoc(docstatus) {
28
+ return docstatus !== 1;
29
+ }
30
+ function canEditDoc(docstatus, meta) {
31
+ if (docstatus === 0) return true;
32
+ if (docstatus === 1) return !!(meta === null || meta === void 0 ? void 0 : meta.fields.some(function (field) {
33
+ return field.allow_on_submit;
34
+ }));
35
+ return false;
36
+ }
37
+ function resolveDocIndicator(state) {
38
+ if (state.isCreate || state.isDirty) return "notSaved";
39
+ if (state.docstatus === 1) return "submitted";
40
+ if (state.docstatus === 2) return "cancelled";
41
+ return state.isSubmittable ? "draft" : void 0;
42
+ }
43
+ function isAmendable(meta) {
44
+ return !!(meta === null || meta === void 0 ? void 0 : meta.fields.some(function (field) {
45
+ return field.fieldname === "amended_from";
46
+ }));
47
+ }
48
+ var amendSkipped = /* @__PURE__ */new Set(["name", "amended_from", "amendment_date", "cancel_reason"]);
49
+ var rowBookkeeping = /* @__PURE__ */new Set(["name", "parent", "parentfield", "parenttype", "owner", "creation", "modified", "modified_by", "docstatus"]);
50
+ var tableTypes = /* @__PURE__ */new Set(["Table", "Table MultiSelect"]);
51
+ function buildAmendValues(fields, doc, cancelledName) {
52
+ var draft = {};
53
+ var _iteratorNormalCompletion = true,
54
+ _didIteratorError = false,
55
+ _iteratorError = void 0;
56
+ try {
57
+ for (var _iterator = fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
58
+ var field = _step.value;
59
+ if (amendSkipped.has(field.fieldname) || field.fieldtype === "Password") continue;
60
+ var value = doc[field.fieldname];
61
+ if (value === void 0) continue;
62
+ if (tableTypes.has(field.fieldtype)) {
63
+ if (!Array.isArray(value)) continue;
64
+ draft[field.fieldname] = value.map(function (row) {
65
+ return Object.fromEntries(Object.entries(row !== null && row !== void 0 ? row : {}).filter(function (param) {
66
+ var [key] = param;
67
+ return !rowBookkeeping.has(key);
68
+ }));
69
+ });
70
+ continue;
71
+ }
72
+ draft[field.fieldname] = value;
73
+ }
74
+ } catch (err) {
75
+ _didIteratorError = true;
76
+ _iteratorError = err;
77
+ } finally {
78
+ try {
79
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
80
+ _iterator.return();
81
+ }
82
+ } finally {
83
+ if (_didIteratorError) {
84
+ throw _iteratorError;
85
+ }
86
+ }
87
+ }
88
+ draft.amended_from = cancelledName;
89
+ draft.docstatus = 0;
90
+ if (fields.some(function (field2) {
91
+ return field2.fieldname === "amendment_date";
92
+ })) {
93
+ draft.amendment_date = formatCalendarDate(/* @__PURE__ */new Date());
94
+ }
95
+ return draft;
96
+ }
97
+ export { buildAmendValues, canDeleteDoc, canEditDoc, isAmendable, resolveDocAction, resolveDocIndicator };
98
+ //# sourceMappingURL=docLifecycle.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["formatCalendarDate","resolveDocAction","state","action","resolveDeskAction","isReadOnlyView","docstatus","isCreate","isDirty","isSubmittable","perms","submit","write","cancel","amend","canDeleteDoc","canEditDoc","meta","fields","some","field","allow_on_submit","resolveDocIndicator","isAmendable","fieldname","amendSkipped","Set","rowBookkeeping","tableTypes","buildAmendValues","doc","cancelledName","draft","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","value","has","fieldtype","Array","isArray","map","row","Object","fromEntries","entries","filter","param","key"],"sources":["../../../src/formEngine/docLifecycle.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ import { eq, useFrappeCollection, useLiveQuery } from "@multiplatform.one/frappe";
2
+ import { useMemo } from "react";
3
+ function useAmendedAs(connection, doctype, name) {
4
+ const collection = useFrappeCollection(name ? connection : void 0, doctype, {
5
+ fields: ["name", "amended_from", "docstatus"],
6
+ filters: name ? {
7
+ amended_from: name
8
+ } : void 0
9
+ });
10
+ const {
11
+ data
12
+ } = useLiveQuery(q => collection && name ? q.from({
13
+ _row: collection
14
+ }).where(({
15
+ _row
16
+ }) => eq(_row.amended_from, name)) : null, [collection, name]);
17
+ return useMemo(() => {
18
+ const rows = Array.isArray(data) ? data : [];
19
+ return rows.find(row => Number(row.docstatus ?? 0) < 2)?.name;
20
+ }, [data]);
21
+ }
22
+ export { useAmendedAs };
23
+ //# sourceMappingURL=useAmendedAs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["eq","useFrappeCollection","useLiveQuery","useMemo","useAmendedAs","connection","doctype","name","collection","fields","filters","amended_from","data","q","from","_row","where","rows","Array","isArray","find","row","Number","docstatus"],"sources":["../../../src/formEngine/useAmendedAs.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,EAAA,EAAIC,mBAAA,EAAqBC,YAAA,QAAoB;AACtD,SAASC,OAAA,QAAe;AAgBjB,SAASC,aACdC,UAAA,EACAC,OAAA,EACAC,IAAA,EACoB;EACpB,MAAMC,UAAA,GAAaP,mBAAA,CAAkCM,IAAA,GAAOF,UAAA,GAAa,QAAWC,OAAA,EAAS;IAC3FG,MAAA,EAAQ,CAAC,QAAQ,gBAAgB,WAAW;IAC5CC,OAAA,EAASH,IAAA,GAAO;MAAEI,YAAA,EAAcJ;IAAK,IAAI;EAC3C,CAAC;EACD,MAAM;IAAEK;EAAK,IAAIV,YAAA,CACdW,CAAA,IACCL,UAAA,IAAcD,IAAA,GACVM,CAAA,CAAEC,IAAA,CAAK;IAAEC,IAAA,EAAMP;EAAW,CAAC,EAAEQ,KAAA,CAAM,CAAC;IAAED;EAAK,MAAMf,EAAA,CAAGe,IAAA,CAAKJ,YAAA,EAAcJ,IAAI,CAAC,IAC5E,MACN,CAACC,UAAA,EAAYD,IAAI,CACnB;EACA,OAAOJ,OAAA,CAAQ,MAAM;IACnB,MAAMc,IAAA,GAAQC,KAAA,CAAMC,OAAA,CAAQP,IAAI,IAAIA,IAAA,GAAO,EAAC;IAC5C,OAAOK,IAAA,CAAKG,IAAA,CAAMC,GAAA,IAAQC,MAAA,CAAOD,GAAA,CAAIE,SAAA,IAAa,CAAC,IAAI,CAAC,GAAGhB,IAAA;EAC7D,GAAG,CAACK,IAAI,CAAC;AACX","ignoreList":[]}