@dropins/storefront-purchase-order 0.0.5-alpha1 → 0.0.5-alpha11

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/api/fetch-graphql/fetch-graphql.d.ts +16 -0
  2. package/api/fetch-graphql/index.d.ts +16 -0
  3. package/api/getPurchaseOrder/graphql/getPurchaseOrder.graphql.d.ts +1 -1
  4. package/api/graphql/PurchaseOrderQuoteFragment.d.ts +22 -0
  5. package/api/graphql/PurchaseOrdersFragment.graphql.d.ts +1 -1
  6. package/api/index.d.ts +1 -0
  7. package/api/initialize/index.d.ts +16 -0
  8. package/api/initialize/initialize.d.ts +1 -0
  9. package/api/permissions.d.ts +27 -0
  10. package/api.js +12 -74
  11. package/api.js.map +1 -1
  12. package/chunks/FormLoader.js +1 -1
  13. package/chunks/FormLoader.js.map +1 -1
  14. package/chunks/PurchaseOrderHistoryLogContent.js +4 -0
  15. package/chunks/PurchaseOrderHistoryLogContent.js.map +1 -0
  16. package/chunks/PurchaseOrdersHeader.js +1 -1
  17. package/chunks/PurchaseOrdersHeader.js.map +1 -1
  18. package/chunks/PurchaseOrdersTableActions.js +1 -1
  19. package/chunks/PurchaseOrdersTableActions.js.map +1 -1
  20. package/chunks/fetch-graphql.js.map +1 -1
  21. package/chunks/formatDate.js +4 -0
  22. package/chunks/formatDate.js.map +1 -0
  23. package/chunks/getPurchaseOrders.js +3 -77
  24. package/chunks/getPurchaseOrders.js.map +1 -1
  25. package/chunks/pageSize.config.js +1 -1
  26. package/chunks/pageSize.config.js.map +1 -1
  27. package/chunks/permissions.js +4 -0
  28. package/chunks/permissions.js.map +1 -0
  29. package/chunks/placeOrderForPurchaseOrder.js +39 -0
  30. package/chunks/placeOrderForPurchaseOrder.js.map +1 -0
  31. package/chunks/rejectPurchaseOrders.js +439 -0
  32. package/chunks/rejectPurchaseOrders.js.map +1 -0
  33. package/chunks/transform-purchase-order-approval-rule.js.map +1 -1
  34. package/chunks/useCustomerRolePermissions.js +1 -1
  35. package/chunks/useCustomerRolePermissions.js.map +1 -1
  36. package/chunks/usePurchaseOrders.js +1 -1
  37. package/chunks/usePurchaseOrders.js.map +1 -1
  38. package/components/ApprovalRuleDetailsContent/index.d.ts +11 -3
  39. package/components/ApprovalRuleForm/index.d.ts +11 -3
  40. package/components/PurchaseOrderHistoryLogContent/PurchaseOrderHistoryLogContent.d.ts +5 -0
  41. package/components/PurchaseOrderHistoryLogContent/index.d.ts +19 -0
  42. package/components/PurchaseOrderStatusContent/PurchaseOrderStatusContent.d.ts +5 -0
  43. package/components/PurchaseOrderStatusContent/index.d.ts +19 -0
  44. package/components/index.d.ts +2 -0
  45. package/containers/ApprovalRuleDetails/index.d.ts +11 -3
  46. package/containers/ApprovalRuleDetails.js +1 -1
  47. package/containers/ApprovalRuleDetails.js.map +1 -1
  48. package/containers/ApprovalRuleForm/index.d.ts +11 -3
  49. package/containers/ApprovalRuleForm.js +1 -1
  50. package/containers/ApprovalRuleForm.js.map +1 -1
  51. package/containers/ApprovalRulesList.js +1 -1
  52. package/containers/ApprovalRulesList.js.map +1 -1
  53. package/containers/CompanyPurchaseOrders.js +1 -1
  54. package/containers/CompanyPurchaseOrders.js.map +1 -1
  55. package/containers/CustomerPurchaseOrders.js +1 -1
  56. package/containers/CustomerPurchaseOrders.js.map +1 -1
  57. package/containers/PurchaseOrderConfirmation.js +1 -1
  58. package/containers/PurchaseOrderConfirmation.js.map +1 -1
  59. package/containers/PurchaseOrderHistoryLog/PurchaseOrderHistoryLog.d.ts +5 -0
  60. package/containers/PurchaseOrderHistoryLog/index.d.ts +19 -0
  61. package/containers/PurchaseOrderHistoryLog.d.ts +3 -0
  62. package/containers/PurchaseOrderHistoryLog.js +4 -0
  63. package/containers/PurchaseOrderHistoryLog.js.map +1 -0
  64. package/containers/PurchaseOrderStatus/PurchaseOrderStatus.d.ts +5 -0
  65. package/containers/PurchaseOrderStatus/index.d.ts +19 -0
  66. package/containers/PurchaseOrderStatus.d.ts +3 -0
  67. package/containers/PurchaseOrderStatus.js +4 -0
  68. package/containers/PurchaseOrderStatus.js.map +1 -0
  69. package/containers/RequireApprovalPurchaseOrders.js +1 -1
  70. package/containers/RequireApprovalPurchaseOrders.js.map +1 -1
  71. package/containers/index.d.ts +2 -0
  72. package/data/models/customer-order-model.d.ts +0 -1
  73. package/data/models/purchase-order-model.d.ts +228 -14
  74. package/hooks/index.d.ts +2 -0
  75. package/hooks/usePurchaseOrderData.d.ts +7 -0
  76. package/hooks/usePurchaseOrderStatus.d.ts +4 -0
  77. package/i18n/en_US.json.d.ts +78 -0
  78. package/lib/cleanAndDeep.d.ts +16 -0
  79. package/lib/getRange.d.ts +16 -0
  80. package/lib/index.d.ts +16 -0
  81. package/lib/isValidUrl.d.ts +16 -0
  82. package/mocks/index.d.ts +16 -0
  83. package/mocks/storybook/events-data.d.ts +17 -5
  84. package/package.json +1 -1
  85. package/render/index.d.ts +16 -0
  86. package/render.js +2 -2
  87. package/render.js.map +1 -1
  88. package/types/api/api.enums.types.d.ts +16 -0
  89. package/types/api/index.d.ts +16 -0
  90. package/types/components/index.d.ts +18 -0
  91. package/types/components/purchaseOrderHistoryLogContent.types.d.ts +7 -0
  92. package/types/components/purchaseOrderStatusContent.types.d.ts +17 -0
  93. package/types/components/purchaseOrdersTableActions.d.ts +16 -0
  94. package/types/containers/approvalRuleDetailsProps.types.d.ts +16 -0
  95. package/types/containers/index.d.ts +18 -0
  96. package/types/containers/purchaseOrderHistoryLog.types.d.ts +23 -0
  97. package/types/containers/purchaseOrderStatus.types.d.ts +18 -0
  98. package/types/hooks/index.d.ts +17 -0
  99. package/types/hooks/useApprovalRuleDetails.types.d.ts +16 -0
  100. package/types/hooks/usePurchaseOrderStatus.types.d.ts +19 -0
  101. package/chunks/FormLoader2.js +0 -4
  102. package/chunks/FormLoader2.js.map +0 -1
@@ -0,0 +1,439 @@
1
+ /*! Copyright 2025 Adobe
2
+ All Rights Reserved. */
3
+ import{f as nn,h as ln}from"./fetch-graphql.js";import{h as an}from"./fetch-error.js";const un=`
4
+ fragment PURCHASE_ORDER_QUOTE_FRAGMENT on Cart {
5
+ __typename
6
+ id
7
+ email
8
+ is_virtual
9
+ total_quantity
10
+ applied_coupons {
11
+ code
12
+ }
13
+ applied_gift_cards {
14
+ code
15
+ applied_balance {
16
+ value
17
+ currency
18
+ }
19
+ current_balance {
20
+ value
21
+ currency
22
+ }
23
+ expiration_date
24
+ }
25
+ applied_reward_points {
26
+ money {
27
+ value
28
+ currency
29
+ }
30
+ points
31
+ }
32
+ applied_store_credit {
33
+ applied_balance {
34
+ value
35
+ currency
36
+ }
37
+ current_balance {
38
+ value
39
+ currency
40
+ }
41
+ }
42
+ available_gift_wrappings {
43
+ uid
44
+ design
45
+ price {
46
+ value
47
+ currency
48
+ }
49
+ image {
50
+ url
51
+ label
52
+ }
53
+ }
54
+ gift_message {
55
+ from
56
+ to
57
+ message
58
+ }
59
+ gift_receipt_included
60
+ gift_wrapping {
61
+ uid
62
+ design
63
+ price {
64
+ value
65
+ currency
66
+ }
67
+ image {
68
+ url
69
+ label
70
+ }
71
+ }
72
+ printed_card_included
73
+ available_payment_methods {
74
+ code
75
+ title
76
+ is_deferred
77
+ }
78
+ selected_payment_method {
79
+ code
80
+ title
81
+ }
82
+ billing_address {
83
+ city
84
+ company
85
+ country {
86
+ code
87
+ label
88
+ }
89
+ firstname
90
+ lastname
91
+ postcode
92
+ region {
93
+ code
94
+ label
95
+ }
96
+ street
97
+ telephone
98
+ custom_attributes {
99
+ code
100
+ }
101
+ fax
102
+ id
103
+ middlename
104
+ prefix
105
+ suffix
106
+ uid
107
+ vat_id
108
+ }
109
+ shipping_addresses {
110
+ city
111
+ company
112
+ country {
113
+ code
114
+ label
115
+ }
116
+ firstname
117
+ lastname
118
+ postcode
119
+ region {
120
+ code
121
+ label
122
+ }
123
+ street
124
+ telephone
125
+ custom_attributes {
126
+ code
127
+ }
128
+ fax
129
+ id
130
+ middlename
131
+ prefix
132
+ suffix
133
+ uid
134
+ vat_id
135
+ available_shipping_methods {
136
+ amount {
137
+ value
138
+ currency
139
+ }
140
+ carrier_code
141
+ carrier_title
142
+ method_code
143
+ method_title
144
+ }
145
+ selected_shipping_method {
146
+ amount {
147
+ value
148
+ currency
149
+ }
150
+ carrier_code
151
+ carrier_title
152
+ method_code
153
+ method_title
154
+ }
155
+ }
156
+ rules {
157
+ uid
158
+ }
159
+ itemsV2(pageSize: 100, currentPage: 1) {
160
+ items {
161
+ uid
162
+ quantity
163
+ product {
164
+ __typename
165
+ uid
166
+ name
167
+ sku
168
+ url_key
169
+ canonical_url
170
+ stock_status
171
+ only_x_left_in_stock
172
+ image {
173
+ url
174
+ label
175
+ }
176
+ small_image {
177
+ url
178
+ label
179
+ }
180
+ thumbnail {
181
+ url
182
+ label
183
+ }
184
+ price_range {
185
+ maximum_price {
186
+ regular_price {
187
+ value
188
+ currency
189
+ }
190
+ final_price {
191
+ value
192
+ currency
193
+ }
194
+ }
195
+ }
196
+ }
197
+ prices {
198
+ price {
199
+ value
200
+ currency
201
+ }
202
+ price_including_tax {
203
+ value
204
+ currency
205
+ }
206
+ original_item_price {
207
+ value
208
+ currency
209
+ }
210
+ original_row_total {
211
+ value
212
+ currency
213
+ }
214
+ row_total {
215
+ value
216
+ currency
217
+ }
218
+ row_total_including_tax {
219
+ value
220
+ currency
221
+ }
222
+ total_item_discount {
223
+ value
224
+ currency
225
+ }
226
+ discounts {
227
+ label
228
+ amount {
229
+ value
230
+ currency
231
+ }
232
+ }
233
+ fixed_product_taxes {
234
+ label
235
+ amount {
236
+ value
237
+ currency
238
+ }
239
+ }
240
+ }
241
+ ... on SimpleCartItem {
242
+ customizable_options {
243
+ label
244
+ values {
245
+ label
246
+ value
247
+ }
248
+ }
249
+ }
250
+ ... on ConfigurableCartItem {
251
+ configurable_options {
252
+ option_label
253
+ value_label
254
+ }
255
+ }
256
+ ... on BundleCartItem {
257
+ bundle_options {
258
+ uid
259
+ label
260
+ type
261
+ values {
262
+ uid
263
+ label
264
+ quantity
265
+ }
266
+ }
267
+ }
268
+ ... on DownloadableCartItem {
269
+ links {
270
+ uid
271
+ title
272
+ }
273
+ }
274
+ ... on GiftCardCartItem {
275
+ sender_name
276
+ sender_email
277
+ recipient_name
278
+ recipient_email
279
+ message
280
+ amount {
281
+ value
282
+ currency
283
+ }
284
+ }
285
+ errors {
286
+ code
287
+ message
288
+ }
289
+ is_available
290
+ max_qty
291
+ min_qty
292
+ not_available_message
293
+ note_from_buyer {
294
+ note_uid
295
+ note
296
+ created_at
297
+ }
298
+ note_from_seller {
299
+ note_uid
300
+ note
301
+ created_at
302
+ }
303
+ }
304
+ page_info {
305
+ current_page
306
+ page_size
307
+ total_pages
308
+ }
309
+ total_count
310
+ }
311
+ prices {
312
+ grand_total {
313
+ value
314
+ currency
315
+ }
316
+ grand_total_excluding_tax {
317
+ value
318
+ currency
319
+ }
320
+ subtotal_excluding_tax {
321
+ value
322
+ currency
323
+ }
324
+ subtotal_including_tax {
325
+ value
326
+ currency
327
+ }
328
+ subtotal_with_discount_excluding_tax {
329
+ value
330
+ currency
331
+ }
332
+ applied_taxes {
333
+ label
334
+ amount {
335
+ value
336
+ currency
337
+ }
338
+ }
339
+ discounts {
340
+ label
341
+ amount {
342
+ value
343
+ currency
344
+ }
345
+ }
346
+ gift_options {
347
+ gift_wrapping_for_items {
348
+ value
349
+ currency
350
+ }
351
+ gift_wrapping_for_items_incl_tax {
352
+ value
353
+ currency
354
+ }
355
+ gift_wrapping_for_order {
356
+ value
357
+ currency
358
+ }
359
+ gift_wrapping_for_order_incl_tax {
360
+ value
361
+ currency
362
+ }
363
+ printed_card {
364
+ value
365
+ currency
366
+ }
367
+ printed_card_incl_tax {
368
+ value
369
+ currency
370
+ }
371
+ }
372
+ }
373
+ }
374
+ `,en=`
375
+ fragment PURCHASE_ORDERS_FRAGMENT on PurchaseOrder {
376
+ __typename
377
+ uid
378
+ number
379
+ status
380
+ available_actions
381
+ comments {
382
+ created_at
383
+ author {
384
+ firstname
385
+ lastname
386
+ email
387
+ }
388
+ text
389
+ }
390
+ created_at
391
+ updated_at
392
+ created_by {
393
+ firstname
394
+ lastname
395
+ email
396
+ }
397
+ history_log {
398
+ message
399
+ created_at
400
+ activity
401
+ __typename
402
+ uid
403
+ }
404
+ order {
405
+ number
406
+ }
407
+ quote {
408
+ ...PURCHASE_ORDER_QUOTE_FRAGMENT
409
+ }
410
+ }
411
+ ${un}
412
+ `,_n=l=>{var w,u,t,s,E,m,b,P,I,T;return{typename:(l==null?void 0:l.__typename)??"",uid:(l==null?void 0:l.uid)??"",number:(l==null?void 0:l.number)??"",status:(l==null?void 0:l.status)??"",availableActions:(l==null?void 0:l.available_actions)??[],approvalFlow:l!=null&&l.approval_flow?{ruleName:((w=l==null?void 0:l.approval_flow)==null?void 0:w.rule_name)??"",events:((t=(u=l==null?void 0:l.approval_flow)==null?void 0:u.events)==null?void 0:t.map(i=>({message:(i==null?void 0:i.message)??"",name:(i==null?void 0:i.name)??"",role:(i==null?void 0:i.role)??"",status:(i==null?void 0:i.status)??"",updatedAt:(i==null?void 0:i.updated_at)??""})))??[]}:null,comments:((s=l==null?void 0:l.comments)==null?void 0:s.map(i=>{var N,C,p;return{createdAt:(i==null?void 0:i.created_at)??"",author:{firstname:((N=i==null?void 0:i.author)==null?void 0:N.firstname)??"",lastname:((C=i==null?void 0:i.author)==null?void 0:C.lastname)??"",email:((p=i==null?void 0:i.author)==null?void 0:p.email)??""},text:(i==null?void 0:i.text)??""}}))??[],createdAt:(l==null?void 0:l.created_at)??"",updatedAt:(l==null?void 0:l.updated_at)??"",createdBy:{firstname:((E=l==null?void 0:l.created_by)==null?void 0:E.firstname)??"",lastname:((m=l==null?void 0:l.created_by)==null?void 0:m.lastname)??"",email:((b=l==null?void 0:l.created_by)==null?void 0:b.email)??""},historyLog:((P=l==null?void 0:l.history_log)==null?void 0:P.map(i=>({activity:(i==null?void 0:i.activity)??"",createdAt:(i==null?void 0:i.created_at)??"",message:(i==null?void 0:i.message)??"",uid:(i==null?void 0:i.uid)??""})))??[],quote:tn(l==null?void 0:l.quote),order:{id:((I=l==null?void 0:l.order)==null?void 0:I.id)??"",orderNumber:((T=l==null?void 0:l.order)==null?void 0:T.number)??""}}};function tn(l){var Q,H,W,$,j,B,V,z,L,J,K,M,X;if(!l)return null;const f=n=>n||0,w=n=>({firstName:(n==null?void 0:n.firstname)??"",lastName:(n==null?void 0:n.lastname)??"",middleName:(n==null?void 0:n.middlename)??""}),u=n=>{var r,y,g,v;const{firstName:a,lastName:e,middleName:_}=w(n);return{firstName:a,lastName:e,middleName:_,city:(n==null?void 0:n.city)??"",company:(n==null?void 0:n.company)??"",country:((r=n==null?void 0:n.country)==null?void 0:r.label)??"",countryCode:((y=n==null?void 0:n.country)==null?void 0:y.code)??"",fax:(n==null?void 0:n.fax)??"",postCode:(n==null?void 0:n.postcode)??"",prefix:(n==null?void 0:n.prefix)??"",region:((g=n==null?void 0:n.region)==null?void 0:g.label)??"",regionId:((v=n==null?void 0:n.region)==null?void 0:v.code)??"",street:(n==null?void 0:n.street)??[],suffix:(n==null?void 0:n.suffix)??"",telephone:(n==null?void 0:n.telephone)??"",vatId:(n==null?void 0:n.vat_id)??"",customAttributes:(n==null?void 0:n.custom_attributes)??[]}},t=n=>{var a,e,_,r,y,g,v,R,D,S;return{__typename:(n==null?void 0:n.__typename)||"",uid:(n==null?void 0:n.uid)||"",onlyXLeftInStock:(n==null?void 0:n.only_x_left_in_stock)??0,stockStatus:(n==null?void 0:n.stock_status)??"",priceRange:{maximumPrice:{regularPrice:{currency:((_=(e=(a=n==null?void 0:n.price_range)==null?void 0:a.maximum_price)==null?void 0:e.regular_price)==null?void 0:_.currency)??"",value:((g=(y=(r=n==null?void 0:n.price_range)==null?void 0:r.maximum_price)==null?void 0:y.regular_price)==null?void 0:g.value)??0}}},canonicalUrl:(n==null?void 0:n.canonical_url)??"",urlKey:(n==null?void 0:n.url_key)||"",id:(n==null?void 0:n.uid)??"",name:(n==null?void 0:n.name)||"",sku:(n==null?void 0:n.sku)||"",image:((v=n==null?void 0:n.image)==null?void 0:v.url)||"",imageAlt:((R=n==null?void 0:n.image)==null?void 0:R.label)||"",productType:(n==null?void 0:n.__typename)||"",thumbnail:{label:((D=n==null?void 0:n.thumbnail)==null?void 0:D.label)||"",url:((S=n==null?void 0:n.thumbnail)==null?void 0:S.url)||""}}},s=n=>{if(!n||!("configurable_options"in n))return;const a={};for(const e of n.configurable_options)a[e.option_label]=e.value_label;return a},E=n=>{const a=n==null?void 0:n.map(_=>({uid:_.uid,label:_.label,values:_.values.map(r=>r.product_name).join(", ")})),e={};return a==null||a.forEach(_=>{e[_.label]=_.values}),Object.keys(e).length>0?e:null},m=n=>(n==null?void 0:n.length)>0?{count:n.length,result:n.map(a=>a.title).join(", ")}:null,b=n=>{var a,e,_,r,y;return{senderName:((a=n==null?void 0:n.gift_card)==null?void 0:a.sender_name)||"",senderEmail:((e=n==null?void 0:n.gift_card)==null?void 0:e.sender_email)||"",recipientEmail:((_=n==null?void 0:n.gift_card)==null?void 0:_.recipient_email)||"",recipientName:((r=n==null?void 0:n.gift_card)==null?void 0:r.recipient_name)||"",message:((y=n==null?void 0:n.gift_card)==null?void 0:y.message)||""}},P=n=>{var a,e,_;return{senderName:((a=n==null?void 0:n.gift_message)==null?void 0:a.from)??"",recipientName:((e=n==null?void 0:n.gift_message)==null?void 0:e.to)??"",message:((_=n==null?void 0:n.gift_message)==null?void 0:_.message)??""}},I=n=>{var a,e,_,r,y,g,v,R,D,S,A;return{design:((a=n==null?void 0:n.gift_wrapping)==null?void 0:a.design)??"",uid:((e=n==null?void 0:n.gift_wrapping)==null?void 0:e.uid)??"",selected:!!((_=n==null?void 0:n.gift_wrapping)!=null&&_.uid),image:{url:((y=(r=n==null?void 0:n.gift_wrapping)==null?void 0:r.image)==null?void 0:y.url)??"",label:((v=(g=n==null?void 0:n.gift_wrapping)==null?void 0:g.image)==null?void 0:v.label)??""},price:{currency:((D=(R=n==null?void 0:n.gift_wrapping)==null?void 0:R.price)==null?void 0:D.currency)??"USD",value:((A=(S=n==null?void 0:n.gift_wrapping)==null?void 0:S.price)==null?void 0:A.value)??0}}},T=n=>({currency:(n==null?void 0:n.currency)??"USD",value:(n==null?void 0:n.value)??0}),i=(n,a)=>{const e=n==null?void 0:n.price,_=n==null?void 0:n.priceIncludingTax,r=n==null?void 0:n.originalPrice,y=!1,g=y?r==null?void 0:r.value:_==null?void 0:_.value,v={originalPrice:r,baseOriginalPrice:{value:g,currency:r==null?void 0:r.currency},baseDiscountedPrice:{value:_==null?void 0:_.value,currency:_==null?void 0:_.currency},baseExcludingTax:{value:e==null?void 0:e.value,currency:e==null?void 0:e.currency}},R={originalPrice:r,baseOriginalPrice:{value:r==null?void 0:r.value,currency:_==null?void 0:_.currency},baseDiscountedPrice:{value:a==null?void 0:a.value,currency:e==null?void 0:e.currency},baseExcludingTax:{value:e==null?void 0:e.value,currency:e==null?void 0:e.currency}},D={singleItemPrice:{value:y?r.value:_.value,currency:_.currency},baseOriginalPrice:{value:g,currency:_.currency},baseDiscountedPrice:{value:_.value,currency:_.currency}};return{includeAndExcludeTax:v,excludeTax:R,includeTax:D}},N=n=>{var v,R,D,S,A,Y,Z,h,q,O,d;const a=n==null?void 0:n.product,e=n==null?void 0:n.prices,_=f(n==null?void 0:n.quantity),r={price:(e==null?void 0:e.price)??{value:0,currency:"USD"},priceIncludingTax:(e==null?void 0:e.price_including_tax)??{value:0,currency:"USD"},originalPrice:(e==null?void 0:e.original_item_price)??{value:0,currency:"USD"},originalPriceIncludingTax:(e==null?void 0:e.original_item_price)??{value:0,currency:"USD"},discounts:(e==null?void 0:e.discounts)??[]},y=(((v=e==null?void 0:e.original_item_price)==null?void 0:v.value)??0)>(((R=e==null?void 0:e.price)==null?void 0:R.value)??0),g=(e==null?void 0:e.price)??{value:0,currency:"USD"};return{giftMessage:P(n),giftWrappingPrice:T((D=n==null?void 0:n.gift_wrapping)==null?void 0:D.price),productGiftWrapping:[I(n)],taxCalculations:i(r,g),productSalePrice:g,status:n!=null&&n.is_available?"available":"unavailable",currentReturnOrderQuantity:0,eligibleForReturn:!1,productSku:(a==null?void 0:a.sku)??"",type:(a==null?void 0:a.__typename)??"",discounted:y,id:(n==null?void 0:n.uid)??"",productName:(a==null?void 0:a.name)??"",productUrlKey:(a==null?void 0:a.url_key)??"",regularPrice:{value:((Y=(A=(S=a==null?void 0:a.price_range)==null?void 0:S.maximum_price)==null?void 0:A.regular_price)==null?void 0:Y.value)??0,currency:((q=(h=(Z=a==null?void 0:a.price_range)==null?void 0:Z.maximum_price)==null?void 0:h.regular_price)==null?void 0:q.currency)??"USD"},price:g,product:t(a),selectedOptions:(n==null?void 0:n.customizable_options)??[],thumbnail:{label:((O=a==null?void 0:a.thumbnail)==null?void 0:O.label)||"",url:((d=a==null?void 0:a.thumbnail)==null?void 0:d.url)||""},downloadableLinks:(a==null?void 0:a.__typename)==="DownloadableProduct"&&(n!=null&&n.downloadable_links)?m(n.downloadable_links):null,prices:r,itemPrices:r,bundleOptions:(a==null?void 0:a.__typename)==="BundleProduct"&&(n!=null&&n.bundle_options)?E(n.bundle_options):null,totalInclTax:(e==null?void 0:e.row_total_including_tax)??{value:0,currency:"USD"},priceInclTax:(e==null?void 0:e.price_including_tax)??{value:0,currency:"USD"},total:(e==null?void 0:e.row_total)??{value:0,currency:"USD"},configurableOptions:(a==null?void 0:a.__typename)==="ConfigurableProduct"?s(n):void 0,giftCard:(a==null?void 0:a.__typename)==="GiftCardProduct"?b(n):void 0,quantityCanceled:0,quantityInvoiced:0,quantityOrdered:_,quantityRefunded:0,quantityReturned:0,quantityShipped:0,requestQuantity:0,totalQuantity:_,returnableQuantity:0,quantityReturnRequested:0}},C=n=>({giftWrappingForItems:(n==null?void 0:n.gift_wrapping_for_items)??{value:0,currency:"USD"},giftWrappingForItemsInclTax:(n==null?void 0:n.gift_wrapping_for_items_incl_tax)??{value:0,currency:"USD"},giftWrappingForOrder:(n==null?void 0:n.gift_wrapping_for_order)??{value:0,currency:"USD"},giftWrappingForOrderInclTax:(n==null?void 0:n.gift_wrapping_for_order_incl_tax)??{value:0,currency:"USD"},printedCard:(n==null?void 0:n.printed_card)??{value:0,currency:"USD"},printedCardInclTax:(n==null?void 0:n.printed_card_incl_tax)??{value:0,currency:"USD"}}),p=(n=[])=>!n||n.length===0?[]:n.map(a=>{var e,_;return{code:(a==null?void 0:a.code)??"",appliedBalance:{value:((e=a==null?void 0:a.applied_balance)==null?void 0:e.value)??0,currency:((_=a==null?void 0:a.applied_balance)==null?void 0:_.currency)??"USD"}}}),rn=(n=[])=>!n||n.length===0?[]:n.map(a=>{var e,_;return{amount:{value:((e=a==null?void 0:a.amount)==null?void 0:e.value)??0,currency:((_=a==null?void 0:a.amount)==null?void 0:_.currency)??"USD"},rate:(a==null?void 0:a.rate)??0,title:(a==null?void 0:a.title)??(a==null?void 0:a.label)??""}}),x=(Q=l==null?void 0:l.shipping_addresses)==null?void 0:Q[0],G=l==null?void 0:l.billing_address,o=x==null?void 0:x.selected_shipping_method,U=l==null?void 0:l.selected_payment_method,c=l==null?void 0:l.prices,k=((W=(H=l==null?void 0:l.itemsV2)==null?void 0:H.items)==null?void 0:W.map(N))??[],cn=k.reduce((n,a)=>n+a.totalQuantity,0),F=o?`${o.carrier_title??""} - ${o.method_title??""}`.trim():"";return{giftReceiptIncluded:(l==null?void 0:l.gift_receipt_included)??!1,printedCardIncluded:(l==null?void 0:l.printed_card_included)??!1,giftWrappingOrder:{price:{value:((j=($=l==null?void 0:l.gift_wrapping)==null?void 0:$.price)==null?void 0:j.value)??0,currency:((V=(B=l==null?void 0:l.gift_wrapping)==null?void 0:B.price)==null?void 0:V.currency)??"USD"},uid:((z=l==null?void 0:l.gift_wrapping)==null?void 0:z.uid)??""},placeholderImage:"",returnNumber:void 0,id:(l==null?void 0:l.id)??"",orderStatusChangeDate:void 0,number:"",email:(l==null?void 0:l.email)??"",token:void 0,status:"pending",isVirtual:(l==null?void 0:l.is_virtual)??!1,totalQuantity:cn,shippingMethod:F,carrier:(o==null?void 0:o.carrier_code)??"",orderDate:"",returns:[],discounts:(c==null?void 0:c.discounts)??[],coupons:(l==null?void 0:l.applied_coupons)??[],payments:[{code:(U==null?void 0:U.code)??"",name:(U==null?void 0:U.title)??""}],shipping:{code:F,amount:((L=o==null?void 0:o.amount)==null?void 0:L.value)??0,currency:((J=o==null?void 0:o.amount)==null?void 0:J.currency)??"USD"},shipments:[],items:k,totalGiftCard:{value:0,currency:"USD"},grandTotal:(c==null?void 0:c.grand_total)??{value:0,currency:"USD"},totalShipping:(o==null?void 0:o.amount)??{value:0,currency:"USD"},subtotalExclTax:(c==null?void 0:c.subtotal_excluding_tax)??{value:0,currency:"USD"},subtotalInclTax:(c==null?void 0:c.subtotal_including_tax)??{value:0,currency:"USD"},totalTax:{value:(((K=c==null?void 0:c.grand_total)==null?void 0:K.value)??0)-(((M=c==null?void 0:c.grand_total_excluding_tax)==null?void 0:M.value)??0),currency:((X=c==null?void 0:c.grand_total)==null?void 0:X.currency)??"USD"},shippingAddress:x?u(x):null,totalGiftOptions:C(c==null?void 0:c.gift_options),billingAddress:G?u(G):null,availableActions:[],taxes:rn(c==null?void 0:c.applied_taxes),appliedGiftCards:p(l==null?void 0:l.applied_gift_cards)}}const yn=`
413
+ mutation APPROVE_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {
414
+ approvePurchaseOrders(input: $input) {
415
+ purchase_orders {
416
+ ...PURCHASE_ORDERS_FRAGMENT
417
+ }
418
+ errors {
419
+ message
420
+ type
421
+ }
422
+ }
423
+ }
424
+ ${en}
425
+ `,bn=async l=>{const f=Array.isArray(l)?l:[l];if(!f||f.length===0)throw new Error("Purchase Order UID(s) are required");if(f.some(u=>!u||u.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return nn(yn,{variables:{input:{purchase_order_uids:f}}}).then(u=>{var s,E,m;(s=u.errors)!=null&&s.length&&an(u.errors);const t=(E=u.data)==null?void 0:E.approvePurchaseOrders;if(!t)throw new Error("Failed to approve purchase orders");return{errors:((t==null?void 0:t.errors)??[]).map(b=>({message:(b==null?void 0:b.message)??"",type:(b==null?void 0:b.type)??""})),purchaseOrders:((m=t==null?void 0:t.purchase_orders)==null?void 0:m.map(b=>_n(b)))??[]}}).catch(ln)},on=`
426
+ mutation REJECT_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {
427
+ rejectPurchaseOrders(input: $input) {
428
+ purchase_orders {
429
+ ...PURCHASE_ORDERS_FRAGMENT
430
+ }
431
+ errors {
432
+ message
433
+ type
434
+ }
435
+ }
436
+ }
437
+ ${en}
438
+ `,vn=async l=>{const f=Array.isArray(l)?l:[l];if(!f||f.length===0)throw new Error("Purchase Order UID(s) are required");if(f.some(u=>!u||u.trim()===""))throw new Error("All Purchase Order UIDs must be valid");return nn(on,{variables:{input:{purchase_order_uids:f}}}).then(u=>{var s,E;(s=u.errors)!=null&&s.length&&an(u.errors);const t=(E=u.data)==null?void 0:E.rejectPurchaseOrders;return{errors:((t==null?void 0:t.errors)??[]).map(m=>({message:(m==null?void 0:m.message)??"",type:(m==null?void 0:m.type)??""})),purchaseOrders:((t==null?void 0:t.purchase_orders)??[]).map(_n)}}).catch(ln)};export{en as P,bn as a,vn as r,_n as t};
439
+ //# sourceMappingURL=rejectPurchaseOrders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rejectPurchaseOrders.js","sources":["/@dropins/storefront-purchase-order/src/api/graphql/PurchaseOrderQuoteFragment.ts","/@dropins/storefront-purchase-order/src/api/graphql/PurchaseOrdersFragment.graphql.ts","/@dropins/storefront-purchase-order/src/data/transforms/transform-purchase-order.ts","/@dropins/storefront-purchase-order/src/api/approvePurchaseOrders/graphql/approvePurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/approvePurchaseOrders/approvePurchaseOrders.ts","/@dropins/storefront-purchase-order/src/api/rejectPurchaseOrders/graphql/rejectPurchaseOrders.graphql.ts","/@dropins/storefront-purchase-order/src/api/rejectPurchaseOrders/rejectPurchaseOrders.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\n/**\n * Limited Quote fragment for Purchase Order context\n * Some fields from full Cart type may not be available in purchase_order.quote\n */\nexport const PURCHASE_ORDER_QUOTE_FRAGMENT = /* GraphQL */ `\n fragment PURCHASE_ORDER_QUOTE_FRAGMENT on Cart {\n __typename\n id\n email\n is_virtual\n total_quantity\n applied_coupons {\n code\n }\n applied_gift_cards {\n code\n applied_balance {\n value\n currency\n }\n current_balance {\n value\n currency\n }\n expiration_date\n }\n applied_reward_points {\n money {\n value\n currency\n }\n points\n }\n applied_store_credit {\n applied_balance {\n value\n currency\n }\n current_balance {\n value\n currency\n }\n }\n available_gift_wrappings {\n uid\n design\n price {\n value\n currency\n }\n image {\n url\n label\n }\n }\n gift_message {\n from\n to\n message\n }\n gift_receipt_included\n gift_wrapping {\n uid\n design\n price {\n value\n currency\n }\n image {\n url\n label\n }\n }\n printed_card_included\n available_payment_methods {\n code\n title\n is_deferred\n }\n selected_payment_method {\n code\n title\n }\n billing_address {\n city\n company\n country {\n code\n label\n }\n firstname\n lastname\n postcode\n region {\n code\n label\n }\n street\n telephone\n custom_attributes {\n code\n }\n fax\n id\n middlename\n prefix\n suffix\n uid\n vat_id\n }\n shipping_addresses {\n city\n company\n country {\n code\n label\n }\n firstname\n lastname\n postcode\n region {\n code\n label\n }\n street\n telephone\n custom_attributes {\n code\n }\n fax\n id\n middlename\n prefix\n suffix\n uid\n vat_id\n available_shipping_methods {\n amount {\n value\n currency\n }\n carrier_code\n carrier_title\n method_code\n method_title\n }\n selected_shipping_method {\n amount {\n value\n currency\n }\n carrier_code\n carrier_title\n method_code\n method_title\n }\n }\n rules {\n uid\n }\n itemsV2(pageSize: 100, currentPage: 1) {\n items {\n uid\n quantity\n product {\n __typename\n uid\n name\n sku\n url_key\n canonical_url\n stock_status\n only_x_left_in_stock\n image {\n url\n label\n }\n small_image {\n url\n label\n }\n thumbnail {\n url\n label\n }\n price_range {\n maximum_price {\n regular_price {\n value\n currency\n }\n final_price {\n value\n currency\n }\n }\n }\n }\n prices {\n price {\n value\n currency\n }\n price_including_tax {\n value\n currency\n }\n original_item_price {\n value\n currency\n }\n original_row_total {\n value\n currency\n }\n row_total {\n value\n currency\n }\n row_total_including_tax {\n value\n currency\n }\n total_item_discount {\n value\n currency\n }\n discounts {\n label\n amount {\n value\n currency\n }\n }\n fixed_product_taxes {\n label\n amount {\n value\n currency\n }\n }\n }\n ... on SimpleCartItem {\n customizable_options {\n label\n values {\n label\n value\n }\n }\n }\n ... on ConfigurableCartItem {\n configurable_options {\n option_label\n value_label\n }\n }\n ... on BundleCartItem {\n bundle_options {\n uid\n label\n type\n values {\n uid\n label\n quantity\n }\n }\n }\n ... on DownloadableCartItem {\n links {\n uid\n title\n }\n }\n ... on GiftCardCartItem {\n sender_name\n sender_email\n recipient_name\n recipient_email\n message\n amount {\n value\n currency\n }\n }\n errors {\n code\n message\n }\n is_available\n max_qty\n min_qty\n not_available_message\n note_from_buyer {\n note_uid\n note\n created_at\n }\n note_from_seller {\n note_uid\n note\n created_at\n }\n }\n page_info {\n current_page\n page_size\n total_pages\n }\n total_count\n }\n prices {\n grand_total {\n value\n currency\n }\n grand_total_excluding_tax {\n value\n currency\n }\n subtotal_excluding_tax {\n value\n currency\n }\n subtotal_including_tax {\n value\n currency\n }\n subtotal_with_discount_excluding_tax {\n value\n currency\n }\n applied_taxes {\n label\n amount {\n value\n currency\n }\n }\n discounts {\n label\n amount {\n value\n currency\n }\n }\n gift_options {\n gift_wrapping_for_items {\n value\n currency\n }\n gift_wrapping_for_items_incl_tax {\n value\n currency\n }\n gift_wrapping_for_order {\n value\n currency\n }\n gift_wrapping_for_order_incl_tax {\n value\n currency\n }\n printed_card {\n value\n currency\n }\n printed_card_incl_tax {\n value\n currency\n }\n }\n }\n }\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDER_QUOTE_FRAGMENT } from \"./PurchaseOrderQuoteFragment\";\n\n// TODO - Add approval_flow after backend functionality will be adjusted\nexport const PURCHASE_ORDERS_FRAGMENT = /* GraphQL */ `\n fragment PURCHASE_ORDERS_FRAGMENT on PurchaseOrder {\n __typename\n uid\n number\n status\n available_actions\n comments {\n created_at\n author {\n firstname\n lastname\n email\n }\n text\n }\n created_at\n updated_at\n created_by {\n firstname\n lastname\n email\n }\n history_log {\n message\n created_at\n activity\n __typename\n uid\n }\n order {\n number\n }\n quote {\n ...PURCHASE_ORDER_QUOTE_FRAGMENT\n }\n }\n ${PURCHASE_ORDER_QUOTE_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const transformPurchaseOrder = (\n purchaseOrder: any\n): PurchaseOrderModel => {\n const order = {\n typename: purchaseOrder?.__typename ?? '',\n uid: purchaseOrder?.uid ?? '',\n number: purchaseOrder?.number ?? '',\n status: purchaseOrder?.status ?? '',\n availableActions: purchaseOrder?.available_actions ?? [],\n approvalFlow: purchaseOrder?.approval_flow\n ? {\n ruleName: purchaseOrder?.approval_flow?.rule_name ?? '',\n events:\n purchaseOrder?.approval_flow?.events?.map((event: any) => ({\n message: event?.message ?? '',\n name: event?.name ?? '',\n role: event?.role ?? '',\n status: event?.status ?? '',\n updatedAt: event?.updated_at ?? '',\n })) ?? [],\n }\n : null,\n comments:\n purchaseOrder?.comments?.map((comment: any) => ({\n createdAt: comment?.created_at ?? '',\n author: {\n firstname: comment?.author?.firstname ?? '',\n lastname: comment?.author?.lastname ?? '',\n email: comment?.author?.email ?? '',\n },\n text: comment?.text ?? '',\n })) ?? [],\n createdAt: purchaseOrder?.created_at ?? '',\n updatedAt: purchaseOrder?.updated_at ?? '',\n createdBy: {\n firstname: purchaseOrder?.created_by?.firstname ?? '',\n lastname: purchaseOrder?.created_by?.lastname ?? '',\n email: purchaseOrder?.created_by?.email ?? '',\n },\n historyLog:\n purchaseOrder?.history_log?.map((log: any) => ({\n activity: log?.activity ?? '',\n createdAt: log?.created_at ?? '',\n message: log?.message ?? '',\n uid: log?.uid ?? '',\n })) ?? [],\n quote: transformQuoteToOrder(purchaseOrder?.quote),\n order:{\n id: purchaseOrder?.order?.id ?? '',\n orderNumber: purchaseOrder?.order?.number ?? '',\n }\n };\n\n return order;\n};\n\nfunction transformQuoteToOrder(quote: any) {\n if (!quote) return null;\n\n // Helper functions\n const parseNumber = (value: number | undefined | null) => {\n return value || 0;\n };\n\n const transformUserInformation = (user: any) => {\n return {\n firstName: user?.firstname ?? '',\n lastName: user?.lastname ?? '',\n middleName: user?.middlename ?? '',\n };\n };\n\n const transformAddress = (address: any) => {\n const { firstName, lastName, middleName } =\n transformUserInformation(address);\n\n return {\n firstName,\n lastName,\n middleName,\n city: address?.city ?? '',\n company: address?.company ?? '',\n country: address?.country?.label ?? '',\n countryCode: address?.country?.code ?? '',\n fax: address?.fax ?? '',\n postCode: address?.postcode ?? '',\n prefix: address?.prefix ?? '',\n region: address?.region?.label ?? '',\n regionId: address?.region?.code ?? '',\n street: address?.street ?? [],\n suffix: address?.suffix ?? '',\n telephone: address?.telephone ?? '',\n vatId: address?.vat_id ?? '',\n customAttributes: address?.custom_attributes ?? [],\n };\n };\n\n const transformProduct = (product: any) => {\n return {\n __typename: product?.__typename || '',\n uid: product?.uid || '',\n onlyXLeftInStock: product?.only_x_left_in_stock ?? 0,\n stockStatus: product?.stock_status ?? '',\n priceRange: {\n maximumPrice: {\n regularPrice: {\n currency:\n product?.price_range?.maximum_price?.regular_price?.currency ??\n '',\n value:\n product?.price_range?.maximum_price?.regular_price?.value ?? 0,\n },\n },\n },\n canonicalUrl: product?.canonical_url ?? '',\n urlKey: product?.url_key || '',\n id: product?.uid ?? '',\n name: product?.name || '',\n sku: product?.sku || '',\n image: product?.image?.url || '',\n imageAlt: product?.image?.label || '',\n productType: product?.__typename || '',\n thumbnail: {\n label: product?.thumbnail?.label || '',\n url: product?.thumbnail?.url || '',\n },\n };\n };\n\n const transformConfigurableOptions = (item: any) => {\n if (!item) return;\n\n // GraphQL returns configurable_options (not selected_options)\n if (!('configurable_options' in item)) return;\n\n const configurableOptions: Record<string, string> = {};\n\n for (const option of item.configurable_options!) {\n // GraphQL fields: option_label and value_label\n configurableOptions[option!.option_label] = option!.value_label;\n }\n\n return configurableOptions;\n };\n const transformBundleOptions = (data: any) => {\n const bundle = data?.map((option: any) => ({\n uid: option.uid,\n label: option.label,\n values: option.values.map((value: any) => value.product_name).join(', '),\n }));\n\n const bundleOptions: { [key: string]: any } = {};\n\n bundle?.forEach((option: any) => {\n bundleOptions[option.label] = option.values;\n });\n\n return Object.keys(bundleOptions).length > 0 ? bundleOptions : null;\n };\n\n const transformLinks = (links: { title: string }[]) => {\n return links?.length > 0\n ? {\n count: links.length,\n result: links.map((link: any) => link.title).join(', '),\n }\n : null;\n };\n\n const transformGiftCard = (item: any) => {\n return {\n senderName: item?.gift_card?.sender_name || '',\n senderEmail: item?.gift_card?.sender_email || '',\n recipientEmail: item?.gift_card?.recipient_email || '',\n recipientName: item?.gift_card?.recipient_name || '',\n message: item?.gift_card?.message || '',\n };\n };\n\n const transformGiftMessage = (data: any) => {\n return {\n senderName: data?.gift_message?.from ?? '',\n recipientName: data?.gift_message?.to ?? '',\n message: data?.gift_message?.message ?? '',\n };\n };\n\n const transformGiftWrapping = (data: any) => {\n return {\n design: data?.gift_wrapping?.design ?? '',\n uid: data?.gift_wrapping?.uid ?? '',\n selected: Boolean(data?.gift_wrapping?.uid),\n image: {\n url: data?.gift_wrapping?.image?.url ?? '',\n label: data?.gift_wrapping?.image?.label ?? '',\n },\n price: {\n currency: data?.gift_wrapping?.price?.currency ?? 'USD',\n value: data?.gift_wrapping?.price?.value ?? 0,\n },\n };\n };\n\n const transformWrappingPrice = (data: any) => {\n return {\n currency: data?.currency ?? 'USD',\n value: data?.value ?? 0,\n };\n };\n\n const transformTaxCalculations = (\n itemPrices: any,\n productPrice: { value: number; currency: string }\n ) => {\n const price = itemPrices?.price;\n const priceIncludingTax = itemPrices?.priceIncludingTax;\n const originalPrice = itemPrices?.originalPrice;\n\n // For quote, discounted is always false since there are no discounts yet\n const discounted = false;\n const baseOriginalPriceValue = discounted\n ? originalPrice?.value\n : priceIncludingTax?.value;\n\n const includeAndExcludeTax = {\n originalPrice,\n baseOriginalPrice: {\n value: baseOriginalPriceValue,\n currency: originalPrice?.currency,\n },\n baseDiscountedPrice: {\n value: priceIncludingTax?.value,\n currency: priceIncludingTax?.currency,\n },\n baseExcludingTax: {\n value: price?.value,\n currency: price?.currency,\n },\n };\n\n const excludeTax = {\n originalPrice,\n baseOriginalPrice: {\n value: originalPrice?.value,\n currency: priceIncludingTax?.currency,\n },\n baseDiscountedPrice: {\n value: productPrice?.value,\n currency: price?.currency,\n },\n baseExcludingTax: {\n value: price?.value,\n currency: price?.currency,\n },\n };\n\n const includeTax = {\n singleItemPrice: {\n value: discounted ? originalPrice.value : priceIncludingTax.value,\n currency: priceIncludingTax.currency,\n },\n baseOriginalPrice: {\n value: baseOriginalPriceValue,\n currency: priceIncludingTax.currency,\n },\n baseDiscountedPrice: {\n value: priceIncludingTax.value,\n currency: priceIncludingTax.currency,\n },\n };\n\n return {\n includeAndExcludeTax,\n excludeTax,\n includeTax,\n };\n };\n\n const transformQuoteItem = (item: any) => {\n const product = item?.product;\n const prices = item?.prices;\n const quantity = parseNumber(item?.quantity);\n\n const itemPrices = {\n price: prices?.price ?? { value: 0, currency: 'USD' },\n priceIncludingTax: prices?.price_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n originalPrice: prices?.original_item_price ?? {\n value: 0,\n currency: 'USD',\n },\n originalPriceIncludingTax: prices?.original_item_price ?? {\n value: 0,\n currency: 'USD',\n },\n discounts: prices?.discounts ?? [],\n };\n\n const discounted =\n (prices?.original_item_price?.value ?? 0) > (prices?.price?.value ?? 0);\n\n const price = prices?.price ?? { value: 0, currency: 'USD' };\n\n return {\n giftMessage: transformGiftMessage(item),\n giftWrappingPrice: transformWrappingPrice(item?.gift_wrapping?.price),\n productGiftWrapping: [transformGiftWrapping(item)],\n taxCalculations: transformTaxCalculations(itemPrices, price),\n productSalePrice: price,\n status: item?.is_available ? 'available' : 'unavailable',\n currentReturnOrderQuantity: 0,\n eligibleForReturn: false,\n productSku: product?.sku ?? '',\n type: product?.__typename ?? '',\n discounted,\n id: item?.uid ?? '',\n productName: product?.name ?? '',\n productUrlKey: product?.url_key ?? '',\n regularPrice: {\n value: product?.price_range?.maximum_price?.regular_price?.value ?? 0,\n currency:\n product?.price_range?.maximum_price?.regular_price?.currency ?? 'USD',\n },\n price,\n product: transformProduct(product),\n selectedOptions: item?.customizable_options ?? [],\n thumbnail: {\n label: product?.thumbnail?.label || '',\n url: product?.thumbnail?.url || '',\n },\n downloadableLinks:\n product?.__typename === 'DownloadableProduct' &&\n item?.downloadable_links\n ? transformLinks(item.downloadable_links)\n : null,\n prices: itemPrices,\n itemPrices,\n bundleOptions:\n product?.__typename === 'BundleProduct' && item?.bundle_options\n ? transformBundleOptions(item.bundle_options)\n : null,\n totalInclTax: prices?.row_total_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n priceInclTax: prices?.price_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n total: prices?.row_total ?? { value: 0, currency: 'USD' },\n configurableOptions:\n product?.__typename === 'ConfigurableProduct'\n ? transformConfigurableOptions(item)\n : undefined,\n giftCard:\n product?.__typename === 'GiftCardProduct'\n ? transformGiftCard(item)\n : undefined,\n quantityCanceled: 0,\n quantityInvoiced: 0,\n quantityOrdered: quantity,\n quantityRefunded: 0,\n quantityReturned: 0,\n quantityShipped: 0,\n requestQuantity: 0,\n totalQuantity: quantity,\n returnableQuantity: 0,\n quantityReturnRequested: 0,\n };\n };\n\n const transformGiftOptions = (giftOptions: any) => {\n return {\n giftWrappingForItems: giftOptions?.gift_wrapping_for_items ?? {\n value: 0,\n currency: 'USD',\n },\n giftWrappingForItemsInclTax:\n giftOptions?.gift_wrapping_for_items_incl_tax ?? {\n value: 0,\n currency: 'USD',\n },\n giftWrappingForOrder: giftOptions?.gift_wrapping_for_order ?? {\n value: 0,\n currency: 'USD',\n },\n giftWrappingForOrderInclTax:\n giftOptions?.gift_wrapping_for_order_incl_tax ?? {\n value: 0,\n currency: 'USD',\n },\n printedCard: giftOptions?.printed_card ?? {\n value: 0,\n currency: 'USD',\n },\n printedCardInclTax: giftOptions?.printed_card_incl_tax ?? {\n value: 0,\n currency: 'USD',\n },\n };\n };\n\n const transformAppliedGiftCards = (appliedGiftCards: any[] = []) => {\n if (!appliedGiftCards || appliedGiftCards.length === 0) return [];\n\n return appliedGiftCards.map((giftCard: any) => ({\n code: giftCard?.code ?? '',\n appliedBalance: {\n value: giftCard?.applied_balance?.value ?? 0,\n currency: giftCard?.applied_balance?.currency ?? 'USD',\n },\n }));\n };\n\n const transformTaxes = (appliedTaxes: any[] = []) => {\n if (!appliedTaxes || appliedTaxes.length === 0) return [];\n\n return appliedTaxes.map((tax: any) => ({\n amount: {\n value: tax?.amount?.value ?? 0,\n currency: tax?.amount?.currency ?? 'USD',\n },\n rate: tax?.rate ?? 0,\n title: tax?.title ?? tax?.label ?? '',\n }));\n };\n\n // Get shipping address (first one if multiple)\n const shippingAddressData = quote?.shipping_addresses?.[0];\n const billingAddressData = quote?.billing_address;\n const selectedShippingMethod = shippingAddressData?.selected_shipping_method;\n const selectedPaymentMethod = quote?.selected_payment_method;\n const prices = quote?.prices;\n\n // Transform items from quote\n const items = quote?.itemsV2?.items?.map(transformQuoteItem) ?? [];\n\n // Calculate total quantity\n const totalQuantity = items.reduce(\n (accum: number, item: any) => accum + item.totalQuantity,\n 0\n );\n\n // Build OrderDataModel structure from quote\n // Build shipping method string like in order: \"carrier_title - method_title\"\n const shippingMethodString = selectedShippingMethod\n ? `${selectedShippingMethod.carrier_title ?? ''} - ${\n selectedShippingMethod.method_title ?? ''\n }`.trim()\n : '';\n\n return {\n giftReceiptIncluded: quote?.gift_receipt_included ?? false,\n printedCardIncluded: quote?.printed_card_included ?? false,\n giftWrappingOrder: {\n price: {\n value: quote?.gift_wrapping?.price?.value ?? 0,\n currency: quote?.gift_wrapping?.price?.currency ?? 'USD',\n },\n uid: quote?.gift_wrapping?.uid ?? '',\n },\n placeholderImage: '',\n returnNumber: undefined,\n id: quote?.id ?? '',\n orderStatusChangeDate: undefined,\n number: '', // Quotes don't have order numbers yet\n email: quote?.email ?? '',\n token: undefined,\n status: 'pending', // Quote status\n isVirtual: quote?.is_virtual ?? false,\n totalQuantity,\n shippingMethod: shippingMethodString,\n carrier: selectedShippingMethod?.carrier_code ?? '',\n orderDate: '', // Quotes don't have order date yet\n returns: [],\n discounts: prices?.discounts ?? [],\n coupons: quote?.applied_coupons ?? [],\n payments: [\n {\n code: selectedPaymentMethod?.code ?? '',\n name: selectedPaymentMethod?.title ?? '',\n },\n ],\n shipping: {\n code: shippingMethodString,\n amount: selectedShippingMethod?.amount?.value ?? 0,\n currency: selectedShippingMethod?.amount?.currency ?? 'USD',\n },\n shipments: [],\n items,\n totalGiftCard: {\n value: 0,\n currency: 'USD',\n },\n grandTotal: prices?.grand_total ?? { value: 0, currency: 'USD' },\n totalShipping: selectedShippingMethod?.amount ?? {\n value: 0,\n currency: 'USD',\n },\n subtotalExclTax: prices?.subtotal_excluding_tax ?? {\n value: 0,\n currency: 'USD',\n },\n subtotalInclTax: prices?.subtotal_including_tax ?? {\n value: 0,\n currency: 'USD',\n },\n totalTax: {\n value:\n (prices?.grand_total?.value ?? 0) -\n (prices?.grand_total_excluding_tax?.value ?? 0),\n currency: prices?.grand_total?.currency ?? 'USD',\n },\n shippingAddress: shippingAddressData\n ? transformAddress(shippingAddressData)\n : null,\n totalGiftOptions: transformGiftOptions(prices?.gift_options),\n billingAddress: billingAddressData\n ? transformAddress(billingAddressData)\n : null,\n availableActions: [],\n taxes: transformTaxes(prices?.applied_taxes),\n appliedGiftCards: transformAppliedGiftCards(quote?.applied_gift_cards),\n };\n}\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const APPROVE_PURCHASE_ORDERS = /* GraphQL */ `\n mutation APPROVE_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {\n approvePurchaseOrders(input: $input) {\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n errors {\n message\n type\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { APPROVE_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/approvePurchaseOrders/graphql/approvePurchaseOrders.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const approvePurchaseOrders = async (\n uids: string | string[]\n): Promise<{\n errors: { message: string; type: string }[];\n purchaseOrders: PurchaseOrderModel[];\n}> => {\n const uidArray = Array.isArray(uids) ? uids : [uids];\n\n if (!uidArray || uidArray.length === 0) {\n throw new Error('Purchase Order UID(s) are required');\n }\n\n if (uidArray.some((uid) => !uid || uid.trim() === '')) {\n throw new Error('All Purchase Order UIDs must be valid');\n }\n\n const input = {\n purchase_order_uids: uidArray,\n };\n\n return fetchGraphQl(APPROVE_PURCHASE_ORDERS, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const data = response.data?.approvePurchaseOrders;\n if (!data) {\n throw new Error('Failed to approve purchase orders');\n }\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders:\n data?.purchase_orders?.map((order: any) =>\n transformPurchaseOrder(order)\n ) ?? [],\n };\n })\n .catch(handleNetworkError);\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PURCHASE_ORDERS_FRAGMENT } from '@/b2b-purchase-order/api/graphql/PurchaseOrdersFragment.graphql';\n\nexport const REJECT_PURCHASE_ORDERS = /* GraphQL */ `\n mutation REJECT_PURCHASE_ORDERS($input: PurchaseOrdersActionInput!) {\n rejectPurchaseOrders(input: $input) {\n purchase_orders {\n ...PURCHASE_ORDERS_FRAGMENT\n }\n errors {\n message\n type\n }\n }\n }\n ${PURCHASE_ORDERS_FRAGMENT}\n`;\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\nimport { fetchGraphQl } from '@/b2b-purchase-order/api/fetch-graphql';\nimport { handleNetworkError } from '@/b2b-purchase-order/lib/network-error';\nimport { handleFetchError } from '@/b2b-purchase-order/lib/fetch-error';\nimport { REJECT_PURCHASE_ORDERS } from '@/b2b-purchase-order/api/rejectPurchaseOrders/graphql/rejectPurchaseOrders.graphql';\nimport { transformPurchaseOrder } from '@/b2b-purchase-order/data/transforms/transform-purchase-order';\nimport { PurchaseOrderModel } from '@/b2b-purchase-order/data/models';\n\nexport const rejectPurchaseOrders = async (\n uids: string | string[]\n): Promise<{\n errors: { message: string; type: string }[];\n purchaseOrders: PurchaseOrderModel[];\n}> => {\n const uidArray = Array.isArray(uids) ? uids : [uids];\n\n if (!uidArray || uidArray.length === 0) {\n throw new Error('Purchase Order UID(s) are required');\n }\n\n if (uidArray.some((uid) => !uid || uid.trim() === '')) {\n throw new Error('All Purchase Order UIDs must be valid');\n }\n\n const input = {\n purchase_order_uids: uidArray,\n };\n\n return fetchGraphQl(REJECT_PURCHASE_ORDERS, {\n variables: { input },\n })\n .then((response: any) => {\n if (response.errors?.length) {\n handleFetchError(response.errors);\n }\n\n const data = response.data?.rejectPurchaseOrders;\n\n return {\n errors: (data?.errors ?? []).map((error: any) => ({\n message: error?.message ?? '',\n type: error?.type ?? '',\n })),\n purchaseOrders: (data?.purchase_orders ?? []).map(\n transformPurchaseOrder\n ),\n };\n })\n .catch(handleNetworkError);\n};\n"],"names":["PURCHASE_ORDER_QUOTE_FRAGMENT","PURCHASE_ORDERS_FRAGMENT","transformPurchaseOrder","purchaseOrder","_a","_c","_b","event","_d","comment","_e","_f","_g","_h","log","transformQuoteToOrder","_i","_j","quote","parseNumber","value","transformUserInformation","user","transformAddress","address","firstName","lastName","middleName","transformProduct","product","transformConfigurableOptions","item","configurableOptions","option","transformBundleOptions","data","bundle","bundleOptions","transformLinks","links","link","transformGiftCard","transformGiftMessage","transformGiftWrapping","_k","transformWrappingPrice","transformTaxCalculations","itemPrices","productPrice","price","priceIncludingTax","originalPrice","discounted","baseOriginalPriceValue","includeAndExcludeTax","excludeTax","includeTax","transformQuoteItem","prices","quantity","transformGiftOptions","giftOptions","transformAppliedGiftCards","appliedGiftCards","giftCard","transformTaxes","appliedTaxes","tax","shippingAddressData","billingAddressData","selectedShippingMethod","selectedPaymentMethod","items","totalQuantity","accum","shippingMethodString","_l","_m","APPROVE_PURCHASE_ORDERS","approvePurchaseOrders","uids","uidArray","uid","fetchGraphQl","response","handleFetchError","error","order","handleNetworkError","REJECT_PURCHASE_ORDERS","rejectPurchaseOrders"],"mappings":"sFAqBO,MAAMA,GAA8C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transform-purchase-order-approval-rule.js","sources":["/@dropins/storefront-purchase-order/src/data/transforms/transform-purchase-order-approval-rule.ts"],"sourcesContent":["import { PurchaseOrderApprovalRuleModel } from '../models/purchase-order-approval-rule-model';\n\nexport const transformPurchaseOrderApprovalRule = (\n approvalRule: any\n): PurchaseOrderApprovalRuleModel => {\n // Transform company role helper function\n const transformCompanyRole = (role: any) => ({\n id: role?.id || '',\n name: role?.name || '',\n usersCount: role?.users_count || 0,\n permissions: (role?.permissions || []).map((permission: any) => ({\n id: permission?.id || '',\n sortOrder: permission?.sort_order || 0,\n text: permission?.text || '',\n })),\n });\n\n // Transform condition helper function\n const transformCondition = (condition: any) => ({\n attribute: condition?.attribute,\n operator: condition?.operator,\n quantity: condition?.quantity || 0,\n amount: {\n currency: condition?.amount?.currency || 'USD',\n value: condition?.amount?.value || 0,\n },\n });\n\n return {\n uid: approvalRule?.uid || '',\n name: approvalRule?.name || '',\n description: approvalRule?.description || '',\n status: approvalRule?.status,\n createdAt: approvalRule?.created_at || '',\n updatedAt: approvalRule?.updated_at || '',\n createdBy: approvalRule?.created_by,\n appliesToRoles: (approvalRule?.applies_to_roles || []).map(\n transformCompanyRole\n ),\n approverRoles: (approvalRule?.approver_roles || []).map(\n transformCompanyRole\n ),\n condition: transformCondition(approvalRule?.condition || {}),\n };\n};\n"],"names":["transformPurchaseOrderApprovalRule","approvalRule","transformCompanyRole","role","permission","transformCondition","condition","_a","_b"],"mappings":"AAEO,MAAMA,EACXC,GACmC,CAEnC,MAAMC,EAAwBC,IAAe,CAC3C,IAAIA,GAAA,YAAAA,EAAM,KAAM,GAChB,MAAMA,GAAA,YAAAA,EAAM,OAAQ,GACpB,YAAYA,GAAA,YAAAA,EAAM,cAAe,EACjC,cAAcA,GAAA,YAAAA,EAAM,cAAe,CAAA,GAAI,IAAKC,IAAqB,CAC/D,IAAIA,GAAA,YAAAA,EAAY,KAAM,GACtB,WAAWA,GAAA,YAAAA,EAAY,aAAc,EACrC,MAAMA,GAAA,YAAAA,EAAY,OAAQ,EAAA,EAC1B,CAAA,GAIEC,EAAsBC,GAAA,CAhBvB,IAAAC,EAAAC,EAgB2C,OAC9C,UAAWF,GAAA,YAAAA,EAAW,UACtB,SAAUA,GAAA,YAAAA,EAAW,SACrB,UAAUA,GAAA,YAAAA,EAAW,WAAY,EACjC,OAAQ,CACN,WAAUC,EAAAD,GAAA,YAAAA,EAAW,SAAX,YAAAC,EAAmB,WAAY,MACzC,QAAOC,EAAAF,GAAA,YAAAA,EAAW,SAAX,YAAAE,EAAmB,QAAS,CAAA,CACrC,GAGF,MAAO,CACL,KAAKP,GAAA,YAAAA,EAAc,MAAO,GAC1B,MAAMA,GAAA,YAAAA,EAAc,OAAQ,GAC5B,aAAaA,GAAA,YAAAA,EAAc,cAAe,GAC1C,OAAQA,GAAA,YAAAA,EAAc,OACtB,WAAWA,GAAA,YAAAA,EAAc,aAAc,GACvC,WAAWA,GAAA,YAAAA,EAAc,aAAc,GACvC,UAAWA,GAAA,YAAAA,EAAc,WACzB,iBAAiBA,GAAA,YAAAA,EAAc,mBAAoB,CAAA,GAAI,IACrDC,CAAA,EAEF,gBAAgBD,GAAA,YAAAA,EAAc,iBAAkB,CAAA,GAAI,IAClDC,CAAA,EAEF,UAAWG,GAAmBJ,GAAA,YAAAA,EAAc,YAAa,CAAA,CAAE,CAAA,CAE/D"}
1
+ {"version":3,"file":"transform-purchase-order-approval-rule.js","sources":["/@dropins/storefront-purchase-order/src/data/transforms/transform-purchase-order-approval-rule.ts"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { PurchaseOrderApprovalRuleModel } from '../models/purchase-order-approval-rule-model';\n\nexport const transformPurchaseOrderApprovalRule = (\n approvalRule: any\n): PurchaseOrderApprovalRuleModel => {\n // Transform company role helper function\n const transformCompanyRole = (role: any) => ({\n id: role?.id || '',\n name: role?.name || '',\n usersCount: role?.users_count || 0,\n permissions: (role?.permissions || []).map((permission: any) => ({\n id: permission?.id || '',\n sortOrder: permission?.sort_order || 0,\n text: permission?.text || '',\n })),\n });\n\n // Transform condition helper function\n const transformCondition = (condition: any) => ({\n attribute: condition?.attribute,\n operator: condition?.operator,\n quantity: condition?.quantity || 0,\n amount: {\n currency: condition?.amount?.currency || 'USD',\n value: condition?.amount?.value || 0,\n },\n });\n\n return {\n uid: approvalRule?.uid || '',\n name: approvalRule?.name || '',\n description: approvalRule?.description || '',\n status: approvalRule?.status,\n createdAt: approvalRule?.created_at || '',\n updatedAt: approvalRule?.updated_at || '',\n createdBy: approvalRule?.created_by,\n appliesToRoles: (approvalRule?.applies_to_roles || []).map(\n transformCompanyRole\n ),\n approverRoles: (approvalRule?.approver_roles || []).map(\n transformCompanyRole\n ),\n condition: transformCondition(approvalRule?.condition || {}),\n };\n};\n"],"names":["transformPurchaseOrderApprovalRule","approvalRule","transformCompanyRole","role","permission","transformCondition","condition","_a","_b"],"mappings":"AAmBO,MAAMA,EACXC,GACmC,CAEnC,MAAMC,EAAwBC,IAAe,CAC3C,IAAIA,GAAA,YAAAA,EAAM,KAAM,GAChB,MAAMA,GAAA,YAAAA,EAAM,OAAQ,GACpB,YAAYA,GAAA,YAAAA,EAAM,cAAe,EACjC,cAAcA,GAAA,YAAAA,EAAM,cAAe,CAAA,GAAI,IAAKC,IAAqB,CAC/D,IAAIA,GAAA,YAAAA,EAAY,KAAM,GACtB,WAAWA,GAAA,YAAAA,EAAY,aAAc,EACrC,MAAMA,GAAA,YAAAA,EAAY,OAAQ,EAAA,EAC1B,CAAA,GAIEC,EAAsBC,GAAA,CAhBvB,IAAAC,EAAAC,EAgB2C,OAC9C,UAAWF,GAAA,YAAAA,EAAW,UACtB,SAAUA,GAAA,YAAAA,EAAW,SACrB,UAAUA,GAAA,YAAAA,EAAW,WAAY,EACjC,OAAQ,CACN,WAAUC,EAAAD,GAAA,YAAAA,EAAW,SAAX,YAAAC,EAAmB,WAAY,MACzC,QAAOC,EAAAF,GAAA,YAAAA,EAAW,SAAX,YAAAE,EAAmB,QAAS,CAAA,CACrC,GAGF,MAAO,CACL,KAAKP,GAAA,YAAAA,EAAc,MAAO,GAC1B,MAAMA,GAAA,YAAAA,EAAc,OAAQ,GAC5B,aAAaA,GAAA,YAAAA,EAAc,cAAe,GAC1C,OAAQA,GAAA,YAAAA,EAAc,OACtB,WAAWA,GAAA,YAAAA,EAAc,aAAc,GACvC,WAAWA,GAAA,YAAAA,EAAc,aAAc,GACvC,UAAWA,GAAA,YAAAA,EAAc,WACzB,iBAAiBA,GAAA,YAAAA,EAAc,mBAAoB,CAAA,GAAI,IACrDC,CAAA,EAEF,gBAAgBD,GAAA,YAAAA,EAAc,iBAAkB,CAAA,GAAI,IAClDC,CAAA,EAEF,UAAWG,GAAmBJ,GAAA,YAAAA,EAAc,YAAa,CAAA,CAAE,CAAA,CAE/D"}
@@ -1,4 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
- import{useState as l,useEffect as p,useMemo as c}from"@dropins/tools/preact-hooks.js";import{events as i}from"@dropins/tools/event-bus.js";const d=a=>{if(!a)return{isAdmin:!1,purchaseOrderEnabled:!1,role:{id:"",name:""},permissions:{purchaseOrderAll:!1,viewPurchaseOrders:!1,viewPurchaseOrdersForSubordinates:!1,viewPurchaseOrdersForCompany:!1,autoApprovePurchaseOrder:!1,superApprovePurchaseOrder:!1,viewApprovalRules:!1,manageApprovalRules:!1}};const r=a.admin===!0,e=s=>{const n=a[s];return n===!1?!1:n===!0?!0:r},u={purchaseOrderAll:e("Magento_PurchaseOrder::all"),viewPurchaseOrders:e("Magento_PurchaseOrder::view_purchase_orders"),viewPurchaseOrdersForSubordinates:e("Magento_PurchaseOrder::view_purchase_orders_for_subordinates"),viewPurchaseOrdersForCompany:e("Magento_PurchaseOrder::view_purchase_orders_for_company"),autoApprovePurchaseOrder:e("Magento_PurchaseOrder::autoapprove_purchase_order"),superApprovePurchaseOrder:e("Magento_PurchaseOrderRule::super_approve_purchase_order"),viewApprovalRules:e("Magento_PurchaseOrderRule::view_approval_rules"),manageApprovalRules:e("Magento_PurchaseOrderRule::manage_approval_rules")},o=Object.values(a).some(s=>s===!1)?!1:Object.values(u).some(s=>s===!0);return{isAdmin:r,purchaseOrderEnabled:o,role:{id:"",name:r?"Company Administrator":""},permissions:u}},v=()=>{const a=i.lastPayload("auth/permissions"),[r,e]=l(a);p(()=>{const o=i.on("auth/permissions",s=>{e(s)},{eager:!0});return()=>{o==null||o.off()}},[]);const u=!r;return{permissions:c(()=>d(r),[r]),loadingPermissions:u}};export{v as u};
3
+ import{useState as m,useEffect as p,useMemo as c}from"@dropins/tools/preact-hooks.js";import{events as u}from"@dropins/tools/event-bus.js";import{P as s}from"./permissions.js";const P=o=>{if(!o)return{isAdmin:!1,purchaseOrderEnabled:!1,role:{id:"",name:""},permissions:{purchaseOrderAll:!1,viewPurchaseOrders:!1,viewPurchaseOrdersForSubordinates:!1,viewPurchaseOrdersForCompany:!1,autoApprovePurchaseOrder:!1,superApprovePurchaseOrder:!1,viewApprovalRules:!1,manageApprovalRules:!1}};const r=o.admin===!0,e=a=>{const t=o[a];return t===!1?!1:t===!0?!0:r},n={purchaseOrderAll:e(s.PO_ALL),viewPurchaseOrders:e(s.VIEW_CUSTOMER),viewPurchaseOrdersForSubordinates:e(s.VIEW_SUBORDINATES),viewPurchaseOrdersForCompany:e(s.VIEW_COMPANY),autoApprovePurchaseOrder:e(s.AUTO_APPROVE),superApprovePurchaseOrder:e(s.SUPER_APPROVE),viewApprovalRules:e(s.VIEW_RULES),manageApprovalRules:e(s.MANAGE_RULES)},i=Object.values(o).some(a=>a===!1)?!1:Object.values(n).some(a=>a===!0);return{isAdmin:r,purchaseOrderEnabled:i,role:{id:"",name:r?"Company Administrator":""},permissions:n}},A=()=>{const o=u.lastPayload("auth/permissions"),[r,e]=m(o);p(()=>{const i=u.on("auth/permissions",a=>{e(a)},{eager:!0});return()=>{i==null||i.off()}},[]);const n=!r;return{permissions:c(()=>P(r),[r]),loadingPermissions:n}};export{A as u};
4
4
  //# sourceMappingURL=useCustomerRolePermissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCustomerRolePermissions.js","sources":["/@dropins/storefront-purchase-order/src/data/transforms/transform-customer-role-permissions.ts","/@dropins/storefront-purchase-order/src/hooks/useCustomerRolePermissions.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models/customer-role-permissions-model';\n\ntype PermissionsPayload = {\n admin?: boolean;\n [key: string]: boolean | undefined;\n};\n\n/**\n * Transforms flat permissions object from auth/permissions event into CustomerRolePermissionsModel\n *\n * Permission Logic:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin privileges - indicates PO feature is disabled)\n * - Default: Admins get access, regular users don't\n *\n * @param permissionsData - Flat object with permission keys and admin flag\n * @returns CustomerRolePermissionsModel\n */\nexport const transformPermissions = (\n permissionsData: PermissionsPayload | null | undefined\n): CustomerRolePermissionsModel => {\n // Fallback for edge cases\n if (!permissionsData) {\n return {\n isAdmin: false,\n purchaseOrderEnabled: false,\n role: { id: '', name: '' },\n permissions: {\n purchaseOrderAll: false,\n viewPurchaseOrders: false,\n viewPurchaseOrdersForSubordinates: false,\n viewPurchaseOrdersForCompany: false,\n autoApprovePurchaseOrder: false,\n superApprovePurchaseOrder: false,\n viewApprovalRules: false,\n manageApprovalRules: false,\n },\n };\n }\n\n const isAdmin = permissionsData.admin === true;\n\n /**\n * Check if permission is granted\n * - false: Overrides admin (PO disabled)\n * - true: Permission granted\n * - Default: Use admin status\n */\n const hasPermission = (key: string): boolean => {\n const permissionValue = permissionsData[key];\n\n if (permissionValue === false) {\n return false;\n }\n\n if (permissionValue === true) {\n return true;\n }\n\n return isAdmin;\n };\n\n const permissions = {\n purchaseOrderAll: hasPermission('Magento_PurchaseOrder::all'),\n viewPurchaseOrders: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders'\n ),\n viewPurchaseOrdersForSubordinates: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders_for_subordinates'\n ),\n viewPurchaseOrdersForCompany: hasPermission(\n 'Magento_PurchaseOrder::view_purchase_orders_for_company'\n ),\n autoApprovePurchaseOrder: hasPermission(\n 'Magento_PurchaseOrder::autoapprove_purchase_order'\n ),\n superApprovePurchaseOrder: hasPermission(\n 'Magento_PurchaseOrderRule::super_approve_purchase_order'\n ),\n viewApprovalRules: hasPermission(\n 'Magento_PurchaseOrderRule::view_approval_rules'\n ),\n manageApprovalRules: hasPermission(\n 'Magento_PurchaseOrderRule::manage_approval_rules'\n ),\n };\n\n // Purchase orders are disabled if ANY permission in the payload is explicitly set to false\n // Otherwise enabled if user has at least one permission\n const hasExplicitlyDisabledPermission = Object.values(permissionsData).some(\n (value) => value === false\n );\n const purchaseOrderEnabled = hasExplicitlyDisabledPermission\n ? false\n : Object.values(permissions).some((permission) => permission === true);\n\n return {\n isAdmin,\n purchaseOrderEnabled,\n role: {\n id: '',\n name: isAdmin ? 'Company Administrator' : '',\n },\n permissions,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useMemo, useState, useEffect } from 'preact/hooks';\nimport { events } from '@adobe-commerce/event-bus';\nimport { transformPermissions } from '@/b2b-purchase-order/data/transforms/transform-customer-role-permissions';\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models';\n\n/**\n * Hook to consume customer role permissions from the auth/permissions event\n *\n * Initializes with last payload and subscribes to real-time updates.\n * Transforms permissions data where:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin - PO feature disabled)\n * - Default: Admins get access, regular users don't\n *\n * @returns {permissions: CustomerRolePermissionsModel, loadingPermissions: boolean}\n */\nexport const useCustomerRolePermissions = (): {\n permissions: CustomerRolePermissionsModel;\n loadingPermissions: boolean;\n} => {\n // Initialize with the last payload from the auth/permissions event\n const initialPermissionsData = events.lastPayload('auth/permissions');\n\n // State to hold permissions data, updated when event is triggered\n const [permissionsData, setPermissionsData] = useState(\n initialPermissionsData\n );\n\n // Subscribe to auth/permissions event for real-time updates\n useEffect(() => {\n const subscription = events.on(\n 'auth/permissions',\n (payload) => {\n setPermissionsData(payload);\n },\n { eager: true }\n );\n\n // Cleanup subscription on unmount\n return () => {\n subscription?.off();\n };\n }, []);\n\n // We're loading if we don't have permissions data from the event yet\n const loadingPermissions = !permissionsData;\n\n // Transform and memoize the permissions data\n const permissions = useMemo(() => {\n return transformPermissions(permissionsData);\n }, [permissionsData]);\n\n return {\n permissions,\n loadingPermissions,\n };\n};\n"],"names":["transformPermissions","permissionsData","isAdmin","hasPermission","key","permissionValue","permissions","purchaseOrderEnabled","value","permission","useCustomerRolePermissions","initialPermissionsData","events","setPermissionsData","useState","useEffect","subscription","payload","loadingPermissions","useMemo"],"mappings":"2IAmCO,MAAMA,EACXC,GACiC,CAEjC,GAAI,CAACA,EACH,MAAO,CACL,QAAS,GACT,qBAAsB,GACtB,KAAM,CAAE,GAAI,GAAI,KAAM,EAAA,EACtB,YAAa,CACX,iBAAkB,GAClB,mBAAoB,GACpB,kCAAmC,GACnC,6BAA8B,GAC9B,yBAA0B,GAC1B,0BAA2B,GAC3B,kBAAmB,GACnB,oBAAqB,EAAA,CACvB,EAIJ,MAAMC,EAAUD,EAAgB,QAAU,GAQpCE,EAAiBC,GAAyB,CAC9C,MAAMC,EAAkBJ,EAAgBG,CAAG,EAE3C,OAAIC,IAAoB,GACf,GAGLA,IAAoB,GACf,GAGFH,CACT,EAEMI,EAAc,CAClB,iBAAkBH,EAAc,4BAA4B,EAC5D,mBAAoBA,EAClB,6CAAA,EAEF,kCAAmCA,EACjC,8DAAA,EAEF,6BAA8BA,EAC5B,yDAAA,EAEF,yBAA0BA,EACxB,mDAAA,EAEF,0BAA2BA,EACzB,yDAAA,EAEF,kBAAmBA,EACjB,gDAAA,EAEF,oBAAqBA,EACnB,kDAAA,CACF,EAQII,EAHkC,OAAO,OAAON,CAAe,EAAE,KACpEO,GAAUA,IAAU,EAAA,EAGnB,GACA,OAAO,OAAOF,CAAW,EAAE,KAAMG,GAAeA,IAAe,EAAI,EAEvE,MAAO,CACL,QAAAP,EACA,qBAAAK,EACA,KAAM,CACJ,GAAI,GACJ,KAAML,EAAU,wBAA0B,EAAA,EAE5C,YAAAI,CAAA,CAEJ,ECzFaI,EAA6B,IAGrC,CAEH,MAAMC,EAAyBC,EAAO,YAAY,kBAAkB,EAG9D,CAACX,EAAiBY,CAAkB,EAAIC,EAC5CH,CAAA,EAIFI,EAAU,IAAM,CACd,MAAMC,EAAeJ,EAAO,GAC1B,mBACCK,GAAY,CACXJ,EAAmBI,CAAO,CAC5B,EACA,CAAE,MAAO,EAAA,CAAK,EAIhB,MAAO,IAAM,CACXD,GAAA,MAAAA,EAAc,KAChB,CACF,EAAG,CAAA,CAAE,EAGL,MAAME,EAAqB,CAACjB,EAO5B,MAAO,CACL,YALkBkB,EAAQ,IACnBnB,EAAqBC,CAAe,EAC1C,CAACA,CAAe,CAAC,EAIlB,mBAAAiB,CAAA,CAEJ"}
1
+ {"version":3,"file":"useCustomerRolePermissions.js","sources":["/@dropins/storefront-purchase-order/src/data/transforms/transform-customer-role-permissions.ts","/@dropins/storefront-purchase-order/src/hooks/useCustomerRolePermissions.tsx"],"sourcesContent":["/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models/customer-role-permissions-model';\nimport { PO_PERMISSIONS } from '@/b2b-purchase-order/api/permissions';\n\ntype PermissionsPayload = {\n admin?: boolean;\n [key: string]: boolean | undefined;\n};\n\n/**\n * Transforms flat permissions object from auth/permissions event into CustomerRolePermissionsModel\n *\n * Permission Logic:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin privileges - indicates PO feature is disabled)\n * - Default: Admins get access, regular users don't\n *\n * @param permissionsData - Flat object with permission keys and admin flag\n * @returns CustomerRolePermissionsModel\n */\nexport const transformPermissions = (\n permissionsData: PermissionsPayload | null | undefined\n): CustomerRolePermissionsModel => {\n // Fallback for edge cases\n if (!permissionsData) {\n return {\n isAdmin: false,\n purchaseOrderEnabled: false,\n role: { id: '', name: '' },\n permissions: {\n purchaseOrderAll: false,\n viewPurchaseOrders: false,\n viewPurchaseOrdersForSubordinates: false,\n viewPurchaseOrdersForCompany: false,\n autoApprovePurchaseOrder: false,\n superApprovePurchaseOrder: false,\n viewApprovalRules: false,\n manageApprovalRules: false,\n },\n };\n }\n\n const isAdmin = permissionsData.admin === true;\n\n /**\n * Check if permission is granted\n * - false: Overrides admin (PO disabled)\n * - true: Permission granted\n * - Default: Use admin status\n */\n const hasPermission = (key: string): boolean => {\n const permissionValue = permissionsData[key];\n\n if (permissionValue === false) {\n return false;\n }\n\n if (permissionValue === true) {\n return true;\n }\n\n return isAdmin;\n };\n\n const permissions = {\n purchaseOrderAll: hasPermission(PO_PERMISSIONS.PO_ALL),\n viewPurchaseOrders: hasPermission(PO_PERMISSIONS.VIEW_CUSTOMER),\n viewPurchaseOrdersForSubordinates: hasPermission(\n PO_PERMISSIONS.VIEW_SUBORDINATES\n ),\n viewPurchaseOrdersForCompany: hasPermission(PO_PERMISSIONS.VIEW_COMPANY),\n autoApprovePurchaseOrder: hasPermission(PO_PERMISSIONS.AUTO_APPROVE),\n superApprovePurchaseOrder: hasPermission(PO_PERMISSIONS.SUPER_APPROVE),\n viewApprovalRules: hasPermission(PO_PERMISSIONS.VIEW_RULES),\n manageApprovalRules: hasPermission(PO_PERMISSIONS.MANAGE_RULES),\n };\n\n // Purchase orders are disabled if ANY permission in the payload is explicitly set to false\n // Otherwise enabled if user has at least one permission\n const hasExplicitlyDisabledPermission = Object.values(permissionsData).some(\n (value) => value === false\n );\n const purchaseOrderEnabled = hasExplicitlyDisabledPermission\n ? false\n : Object.values(permissions).some((permission) => permission === true);\n\n return {\n isAdmin,\n purchaseOrderEnabled,\n role: {\n id: '',\n name: isAdmin ? 'Company Administrator' : '',\n },\n permissions,\n };\n};\n","/********************************************************************\n * ADOBE CONFIDENTIAL\n * __________________\n *\n * Copyright 2025 Adobe\n * All Rights Reserved.\n *\n * NOTICE: All information contained herein is, and remains\n * the property of Adobe and its suppliers, if any. The intellectual\n * and technical concepts contained herein are proprietary to Adobe\n * and its suppliers and are protected by all applicable intellectual\n * property laws, including trade secret and copyright laws.\n * Dissemination of this information or reproduction of this material\n * is strictly forbidden unless prior written permission is obtained\n * from Adobe.\n *******************************************************************/\n\nimport { useMemo, useState, useEffect } from 'preact/hooks';\nimport { events } from '@adobe-commerce/event-bus';\nimport { transformPermissions } from '@/b2b-purchase-order/data/transforms/transform-customer-role-permissions';\nimport { CustomerRolePermissionsModel } from '@/b2b-purchase-order/data/models';\n\n/**\n * Hook to consume customer role permissions from the auth/permissions event\n *\n * Initializes with last payload and subscribes to real-time updates.\n * Transforms permissions data where:\n * - true: Permission granted\n * - false: Permission disabled (overrides admin - PO feature disabled)\n * - Default: Admins get access, regular users don't\n *\n * @returns {permissions: CustomerRolePermissionsModel, loadingPermissions: boolean}\n */\nexport const useCustomerRolePermissions = (): {\n permissions: CustomerRolePermissionsModel;\n loadingPermissions: boolean;\n} => {\n // Initialize with the last payload from the auth/permissions event\n const initialPermissionsData = events.lastPayload('auth/permissions');\n\n // State to hold permissions data, updated when event is triggered\n const [permissionsData, setPermissionsData] = useState(\n initialPermissionsData\n );\n\n // Subscribe to auth/permissions event for real-time updates\n useEffect(() => {\n const subscription = events.on(\n 'auth/permissions',\n (payload) => {\n setPermissionsData(payload);\n },\n { eager: true }\n );\n\n // Cleanup subscription on unmount\n return () => {\n subscription?.off();\n };\n }, []);\n\n // We're loading if we don't have permissions data from the event yet\n const loadingPermissions = !permissionsData;\n\n // Transform and memoize the permissions data\n const permissions = useMemo(() => {\n return transformPermissions(permissionsData);\n }, [permissionsData]);\n\n return {\n permissions,\n loadingPermissions,\n };\n};\n"],"names":["transformPermissions","permissionsData","isAdmin","hasPermission","key","permissionValue","permissions","PO_PERMISSIONS","purchaseOrderEnabled","value","permission","useCustomerRolePermissions","initialPermissionsData","events","setPermissionsData","useState","useEffect","subscription","payload","loadingPermissions","useMemo"],"mappings":"gLAoCO,MAAMA,EACXC,GACiC,CAEjC,GAAI,CAACA,EACH,MAAO,CACL,QAAS,GACT,qBAAsB,GACtB,KAAM,CAAE,GAAI,GAAI,KAAM,EAAA,EACtB,YAAa,CACX,iBAAkB,GAClB,mBAAoB,GACpB,kCAAmC,GACnC,6BAA8B,GAC9B,yBAA0B,GAC1B,0BAA2B,GAC3B,kBAAmB,GACnB,oBAAqB,EAAA,CACvB,EAIJ,MAAMC,EAAUD,EAAgB,QAAU,GAQpCE,EAAiBC,GAAyB,CAC9C,MAAMC,EAAkBJ,EAAgBG,CAAG,EAE3C,OAAIC,IAAoB,GACf,GAGLA,IAAoB,GACf,GAGFH,CACT,EAEMI,EAAc,CAClB,iBAAkBH,EAAcI,EAAe,MAAM,EACrD,mBAAoBJ,EAAcI,EAAe,aAAa,EAC9D,kCAAmCJ,EACjCI,EAAe,iBAAA,EAEjB,6BAA8BJ,EAAcI,EAAe,YAAY,EACvE,yBAA0BJ,EAAcI,EAAe,YAAY,EACnE,0BAA2BJ,EAAcI,EAAe,aAAa,EACrE,kBAAmBJ,EAAcI,EAAe,UAAU,EAC1D,oBAAqBJ,EAAcI,EAAe,YAAY,CAAA,EAQ1DC,EAHkC,OAAO,OAAOP,CAAe,EAAE,KACpEQ,GAAUA,IAAU,EAAA,EAGnB,GACA,OAAO,OAAOH,CAAW,EAAE,KAAMI,GAAeA,IAAe,EAAI,EAEvE,MAAO,CACL,QAAAR,EACA,qBAAAM,EACA,KAAM,CACJ,GAAI,GACJ,KAAMN,EAAU,wBAA0B,EAAA,EAE5C,YAAAI,CAAA,CAEJ,EC9EaK,EAA6B,IAGrC,CAEH,MAAMC,EAAyBC,EAAO,YAAY,kBAAkB,EAG9D,CAACZ,EAAiBa,CAAkB,EAAIC,EAC5CH,CAAA,EAIFI,EAAU,IAAM,CACd,MAAMC,EAAeJ,EAAO,GAC1B,mBACCK,GAAY,CACXJ,EAAmBI,CAAO,CAC5B,EACA,CAAE,MAAO,EAAA,CAAK,EAIhB,MAAO,IAAM,CACXD,GAAA,MAAAA,EAAc,KAChB,CACF,EAAG,CAAA,CAAE,EAGL,MAAME,EAAqB,CAAClB,EAO5B,MAAO,CACL,YALkBmB,EAAQ,IACnBpB,EAAqBC,CAAe,EAC1C,CAACA,CAAe,CAAC,EAIlB,mBAAAkB,CAAA,CAEJ"}