@nanoporetech-digital/components 3.3.4 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/assets/fonts/HVMicro500.woff +0 -0
  3. package/dist/assets/fonts/HVMicro500.woff2 +0 -0
  4. package/dist/assets/fonts/HVMicro500It.woff +0 -0
  5. package/dist/assets/fonts/HVMicro500It.woff2 +0 -0
  6. package/dist/cjs/index-41582c2a.js +16 -12
  7. package/dist/cjs/index.cjs.js.map +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/nano-components.cjs.js +1 -1
  10. package/dist/cjs/nano-demo.cjs.entry.js +291 -0
  11. package/dist/cjs/nano-demo.cjs.entry.js.map +1 -0
  12. package/dist/cjs/{nano-table-bf5002c4.js → nano-table-83e46f68.js} +486 -202
  13. package/dist/cjs/nano-table-83e46f68.js.map +1 -0
  14. package/dist/cjs/nano-table.cjs.entry.js +1 -1
  15. package/dist/cjs/{table.worker-496b9e90.js → table.worker-525ec230.js} +3 -3
  16. package/dist/cjs/table.worker-525ec230.js.map +1 -0
  17. package/dist/cjs/table.worker-e9fb087e.js +4 -0
  18. package/dist/collection/collection-manifest.json +1 -0
  19. package/dist/collection/components/alert/alert.helpers.js.map +1 -1
  20. package/dist/collection/components/demo/demo.js +284 -0
  21. package/dist/collection/components/demo/demo.js.map +1 -0
  22. package/dist/collection/components/dialog/dialog.helpers.js.map +1 -1
  23. package/dist/collection/components/table/table-interface.js.map +1 -1
  24. package/dist/collection/components/table/table.cell.js +65 -0
  25. package/dist/collection/components/table/table.cell.js.map +1 -0
  26. package/dist/collection/components/table/table.css +98 -20
  27. package/dist/collection/components/table/table.header.js +156 -0
  28. package/dist/collection/components/table/table.header.js.map +1 -0
  29. package/dist/collection/components/table/table.js +170 -18
  30. package/dist/collection/components/table/table.js.map +1 -1
  31. package/dist/collection/components/table/table.row.js +113 -0
  32. package/dist/collection/components/table/table.row.js.map +1 -0
  33. package/dist/collection/components/table/table.store.js +46 -9
  34. package/dist/collection/components/table/table.store.js.map +1 -1
  35. package/dist/collection/components/table/table.utils.js +230 -0
  36. package/dist/collection/components/table/table.utils.js.map +1 -1
  37. package/dist/collection/components/table/table.worker.js +1 -0
  38. package/dist/collection/components/table/table.worker.js.map +1 -1
  39. package/dist/components/index.d.ts +1 -0
  40. package/dist/components/index.js +1 -0
  41. package/dist/components/index.js.map +1 -1
  42. package/dist/components/nano-demo.d.ts +11 -0
  43. package/dist/components/nano-demo.js +341 -0
  44. package/dist/components/nano-demo.js.map +1 -0
  45. package/dist/components/nano-table.js +2 -1247
  46. package/dist/components/nano-table.js.map +1 -1
  47. package/dist/components/table.js +1539 -0
  48. package/dist/components/table.js.map +1 -0
  49. package/dist/components/table.worker.js +2 -2
  50. package/dist/custom-elements/index.d.ts +6 -0
  51. package/dist/custom-elements/index.js +772 -204
  52. package/dist/custom-elements/index.js.map +1 -1
  53. package/dist/esm/index-3c280603.js +16 -12
  54. package/dist/esm/index.js.map +1 -1
  55. package/dist/esm/loader.js +1 -1
  56. package/dist/esm/nano-components.js +1 -1
  57. package/dist/esm/nano-demo.entry.js +287 -0
  58. package/dist/esm/nano-demo.entry.js.map +1 -0
  59. package/dist/esm/{nano-table-c1b7d929.js → nano-table-e2405350.js} +487 -203
  60. package/dist/esm/nano-table-e2405350.js.map +1 -0
  61. package/dist/esm/nano-table.entry.js +1 -1
  62. package/dist/esm/{table.worker-7c546c85.js → table.worker-739c193f.js} +3 -3
  63. package/dist/esm/table.worker-739c193f.js.map +1 -0
  64. package/dist/esm/table.worker-e9fb087e.js +4 -0
  65. package/dist/nano-components/index.esm.js.map +1 -1
  66. package/dist/nano-components/nano-components.esm.js +1 -1
  67. package/dist/nano-components/nano-components.esm.js.map +1 -1
  68. package/dist/nano-components/p-28fdfa6b.js +5 -0
  69. package/dist/nano-components/p-28fdfa6b.js.map +1 -0
  70. package/dist/nano-components/p-85cfb0af.entry.js +5 -0
  71. package/dist/nano-components/p-85cfb0af.entry.js.map +1 -0
  72. package/dist/nano-components/p-a71989f3.js +5 -0
  73. package/dist/nano-components/{p-47d4385c.entry.js.map → p-a71989f3.js.map} +0 -0
  74. package/dist/nano-components/{p-47d4385c.entry.js → p-e4a28360.entry.js} +2 -2
  75. package/dist/nano-components/{p-bc92bdcd.js.map → p-e4a28360.entry.js.map} +0 -0
  76. package/dist/nano-components/p-e9fb087e.js +4 -0
  77. package/dist/themes/nanopore.css +1 -1
  78. package/dist/themes/nanopore.css.map +1 -1
  79. package/dist/types/components/alert/alert.helpers.d.ts +1 -1
  80. package/dist/types/components/demo/demo.d.ts +6 -0
  81. package/dist/types/components/dialog/dialog.helpers.d.ts +1 -1
  82. package/dist/types/components/table/table-interface.d.ts +38 -23
  83. package/dist/types/components/table/table.cell.d.ts +18 -0
  84. package/dist/types/components/table/table.d.ts +36 -1
  85. package/dist/types/components/table/table.header.d.ts +16 -0
  86. package/dist/types/components/table/table.row.d.ts +15 -0
  87. package/dist/types/components/table/table.utils.d.ts +99 -0
  88. package/dist/types/components.d.ts +50 -0
  89. package/docs-json.json +124 -3
  90. package/docs-vscode.json +17 -1
  91. package/package.json +2 -2
  92. package/dist/cjs/nano-table-bf5002c4.js.map +0 -1
  93. package/dist/cjs/table.worker-1fd13775.js +0 -4
  94. package/dist/cjs/table.worker-496b9e90.js.map +0 -1
  95. package/dist/collection/components/table/table.children.js +0 -224
  96. package/dist/collection/components/table/table.children.js.map +0 -1
  97. package/dist/collection/components/table/table.service.js +0 -121
  98. package/dist/collection/components/table/table.service.js.map +0 -1
  99. package/dist/esm/nano-table-c1b7d929.js.map +0 -1
  100. package/dist/esm/table.worker-1fd13775.js +0 -4
  101. package/dist/esm/table.worker-7c546c85.js.map +0 -1
  102. package/dist/nano-components/p-07238842.js +0 -5
  103. package/dist/nano-components/p-07238842.js.map +0 -1
  104. package/dist/nano-components/p-1fd13775.js +0 -4
  105. package/dist/nano-components/p-bc92bdcd.js +0 -5
  106. package/dist/types/components/table/table.children.d.ts +0 -30
  107. package/dist/types/components/table/table.service.d.ts +0 -42
@@ -0,0 +1,291 @@
1
+ /*!
2
+ * Web Components for Nanopore digital Web Apps
3
+ */
4
+ 'use strict';
5
+
6
+ Object.defineProperty(exports, '__esModule', { value: true });
7
+
8
+ const index = require('./index-41582c2a.js');
9
+
10
+ function capitalise(value) {
11
+ if (!value)
12
+ return '';
13
+ return value.charAt(0).toUpperCase() + value.slice(1);
14
+ }
15
+ function mediumDate(date) {
16
+ if (!date)
17
+ return undefined;
18
+ return new Date(date).toLocaleDateString(undefined, {
19
+ year: 'numeric',
20
+ month: 'short',
21
+ day: 'numeric',
22
+ });
23
+ }
24
+ function currency(amount = 0, currencyCode = 'USD') {
25
+ currencyCode = currencyCode?.toLocaleUpperCase() || 'USD';
26
+ return new Intl.NumberFormat('en-US', {
27
+ style: 'currency',
28
+ currency: currencyCode,
29
+ }).format(amount);
30
+ }
31
+ const Demo = class {
32
+ constructor(hostRef) {
33
+ index.registerInstance(this, hostRef);
34
+ this.order = {
35
+ checks: [
36
+ {
37
+ name: 'Compliance',
38
+ external_id: 'CO',
39
+ status: 'complete',
40
+ account_info: {
41
+ name: 'Jeongmin Song',
42
+ email: 'js2957@cornell.edu',
43
+ address_line_1: '930 Campus Road',
44
+ address_line_2: 'Veterinary Medical Center C4 109',
45
+ address_postcode: '14853',
46
+ address_city: 'Ithaca',
47
+ address_region: 'New York',
48
+ address_country: 'US',
49
+ },
50
+ individual_name_compliance_information: {
51
+ table: {
52
+ names: [],
53
+ addresses: [],
54
+ match: false,
55
+ false_positive: null,
56
+ },
57
+ },
58
+ organization_compliance_information: {
59
+ table: {
60
+ names: [],
61
+ addresses: [],
62
+ match: false,
63
+ false_positive: null,
64
+ },
65
+ },
66
+ checks: [
67
+ {
68
+ label: 'Compliance check',
69
+ external_id: 'compliance_check',
70
+ item_type: 'pass/fail/escalate',
71
+ answer: 'pass',
72
+ },
73
+ ],
74
+ further_information: [],
75
+ attachments: [],
76
+ notes: [],
77
+ },
78
+ ],
79
+ orderId: '00886434',
80
+ createdAt: '2022-12-09T15:57:50',
81
+ updatedAt: '2022-12-09T16:02:29',
82
+ status: 'Processing',
83
+ subStatus: null,
84
+ currency: 'USD',
85
+ customerPaymentMethod: 'CC-USD',
86
+ paymentPlatform: 'Shop',
87
+ dataAreaId: 'OXUS',
88
+ defaultShippingWarehouse: null,
89
+ deliveryContact: 'Jeongmin Song',
90
+ deliveryMode: null,
91
+ deliveryName: 'Cornell University',
92
+ deliveryTerms: null,
93
+ invoiceAccountNumber: 'C038330',
94
+ orderAccountNumber: 'C038330',
95
+ orderAccountName: 'Cornell University',
96
+ originalLeadTime: null,
97
+ salesDate: '2022-12-09T15:57:50',
98
+ salesName: 'Cornell University',
99
+ salesOrigin: 'Shop',
100
+ salesOriginName: 'Main USD Store View',
101
+ customerReference: '',
102
+ purchaseOrder: null,
103
+ additionalDocuments: [],
104
+ total: 860,
105
+ shippingAmount: 50,
106
+ taxAmount: 0,
107
+ projectId: null,
108
+ deliveryPhoneNumber: '+16072533722',
109
+ invoicePhoneNumber: '+16072533722',
110
+ quoteNumber: null,
111
+ customerType: 'N/A',
112
+ invoiceAccountEmail: 'js2957@cornell.edu',
113
+ partnerReference: null,
114
+ sentToD365: false,
115
+ sentToD365Status: 'unsent',
116
+ orderAccountEmail: 'js2957@cornell.edu',
117
+ controllingAccountNumber: 'C038330',
118
+ controllingAccountEmail: 'js2957@cornell.edu',
119
+ deliveryAddress: {
120
+ street: ['930 Campus Road, Veterinary Medical Center C4 109'],
121
+ city: 'Ithaca',
122
+ postcode: '14853',
123
+ region: 'New York',
124
+ regionCode: 'NY',
125
+ countryCode: 'US',
126
+ },
127
+ invoiceAddress: {
128
+ street: ['930 Campus Road, Veterinary Medical Center C4 109'],
129
+ city: 'Ithaca',
130
+ postcode: '14853',
131
+ region: 'New York',
132
+ regionCode: 'NY',
133
+ countryCode: 'US',
134
+ },
135
+ shopOrderLines: [
136
+ {
137
+ name: 'Flongle Flow Cell (R9.4.1)',
138
+ sku: 'FLO-FLG001',
139
+ quantity: 1,
140
+ price: 810,
141
+ total: 810,
142
+ createdAt: '2022-12-09T15:57:50',
143
+ updatedAt: '2022-12-09T15:57:50',
144
+ maskSku: 'FLO-FLG001',
145
+ productType: 'bundle',
146
+ salesTag: 'FLGExpSP',
147
+ requestedShippingDate: null,
148
+ discount: 0,
149
+ discountPercentage: 0,
150
+ get finalSku() {
151
+ return this.maskSku || this.sku;
152
+ },
153
+ includedItems: [
154
+ {
155
+ name: 'Flongle Flow Cell (R9.4.1)',
156
+ sku: 'FLO-FLG001D',
157
+ quantity: 12,
158
+ price: 66,
159
+ total: 792,
160
+ createdAt: '2022-12-09T15:57:50',
161
+ updatedAt: '2022-12-09T15:57:50',
162
+ maskSku: 'FLO-FLG001',
163
+ productType: 'simple',
164
+ salesTag: 'FLGExpSP',
165
+ requestedShippingDate: '2022-12-27T00:00:00',
166
+ discount: 0,
167
+ discountPercentage: 0,
168
+ },
169
+ {
170
+ name: 'Flongle Flow Cell Priming Kit',
171
+ sku: 'EXP-FSE001',
172
+ quantity: 1,
173
+ price: 18,
174
+ total: 18,
175
+ createdAt: '2022-12-09T15:57:50',
176
+ updatedAt: '2022-12-09T15:57:50',
177
+ maskSku: '',
178
+ productType: 'simple',
179
+ salesTag: 'FLGExpSP',
180
+ requestedShippingDate: '2022-12-27T00:00:00',
181
+ discount: 0,
182
+ discountPercentage: 0,
183
+ },
184
+ ],
185
+ },
186
+ {
187
+ name: 'Carriage - Device shipment',
188
+ sku: 'FREIGHT',
189
+ quantity: 1,
190
+ price: 50,
191
+ total: 50,
192
+ createdAt: '2022-12-09T15:57:50',
193
+ updatedAt: '2022-12-09T15:57:50',
194
+ maskSku: '',
195
+ productType: 'virtual',
196
+ salesTag: null,
197
+ requestedShippingDate: '2022-12-27T00:00:00',
198
+ discount: 0,
199
+ discountPercentage: 0,
200
+ get finalSku() {
201
+ return this.maskSku || this.sku;
202
+ },
203
+ },
204
+ ],
205
+ orderLines: [],
206
+ pickedItems: [],
207
+ packedItems: [],
208
+ trackingNumbers: [],
209
+ trackingUpdates: [],
210
+ ecoOrder: false,
211
+ revenueOrder: false,
212
+ };
213
+ }
214
+ lineItemTotal(order) {
215
+ if (!order || !order.shopOrderLines?.length)
216
+ return;
217
+ let total = 0;
218
+ order.shopOrderLines.forEach((itm) => {
219
+ if (itm.status !== 'cancelled')
220
+ total += itm.total;
221
+ });
222
+ return total;
223
+ }
224
+ render() {
225
+ return (index.h(index.Host, null, index.h("nano-table", { rowRender: {
226
+ template: (_, c, TableCell) => [
227
+ c.renderedRow,
228
+ c.row.includedItems?.length ? (c.row.includedItems?.map((item) => {
229
+ return (index.h("tr", { class: "child-row" }, index.h(TableCell, { header: true }, item.name), index.h(TableCell, null, capitalise(c.row.status || this.order.status)), index.h(TableCell, null, capitalise(item.sku)), index.h(TableCell, null, capitalise(item.salesTag)), index.h(TableCell, null, mediumDate(item.requestedShippingDate))));
230
+ })) : (index.h(index.Fragment, null)),
231
+ ].flat(1),
232
+ }, columns: [
233
+ {
234
+ title: 'Name',
235
+ prop: 'name',
236
+ pinned: 'start',
237
+ rowHeader: true,
238
+ },
239
+ {
240
+ title: 'Status',
241
+ prop: 'status',
242
+ cellTemplate: (_, c) => capitalise(c.cellModel || this.order.status),
243
+ },
244
+ {
245
+ title: 'SKU',
246
+ prop: 'finalSku',
247
+ },
248
+ {
249
+ title: 'Sales tag',
250
+ prop: 'salesTag',
251
+ cellTemplate: (_, c) => c.cellModel || 'None',
252
+ },
253
+ {
254
+ title: 'Requested ship date',
255
+ prop: 'requestedShippingDate',
256
+ cellTemplate: (_, c) => mediumDate(c.cellModel) || 'N/A',
257
+ },
258
+ {
259
+ title: 'Quantity',
260
+ prop: 'quantity',
261
+ },
262
+ {
263
+ title: 'Unit price',
264
+ prop: 'price',
265
+ cellTemplate: (_, c) => currency(c.cellModel, this.order.currency),
266
+ },
267
+ {
268
+ title: 'Discount %',
269
+ prop: 'discountPercentage',
270
+ cellTemplate: (_, c) => c.cellModel || 0,
271
+ },
272
+ {
273
+ title: 'Line value',
274
+ prop: 'total',
275
+ cellTemplate: (_, c) => currency(c.cellModel, this.order.currency),
276
+ },
277
+ ], rows: this.order.shopOrderLines, caption: `List of order line items found within order ${this.order.orderId}`, showFooter: true, footRender: {
278
+ pinned: 'bottom',
279
+ template: () => [
280
+ index.h("tr", null, index.h("td", { colSpan: 6 }, "\u00A0"), index.h("th", { scope: "row", class: "tbl__pin nano-tbl__pin--end", colSpan: 3 }, index.h("div", { class: "nano-tbl__cell-content order-lines__total" }, index.h("span", { class: "order-lines__total--label" }, "Sub total:"), index.h("span", { class: "order-lines__total--num" }, currency(this.lineItemTotal(this.order), this.order.currency))))),
281
+ index.h("tr", null, index.h("td", { colSpan: 6 }, "\u00A0"), index.h("th", { scope: "row", class: "tbl__pin nano-tbl__pin--end", colSpan: 3 }, index.h("div", { class: "nano-tbl__cell-content order-lines__total" }, index.h("span", { class: "order-lines__total--label" }, "Total order tax:"), index.h("span", { class: "order-lines__total--num" }, currency(this.order.taxAmount, this.order.currency))))),
282
+ index.h("tr", null, index.h("td", { colSpan: 6 }, "\u00A0"), index.h("th", { scope: "row", class: "tbl__pin nano-tbl__pin--end", colSpan: 3 }, index.h("div", { class: "nano-tbl__cell-content order-lines__total" }, index.h("span", { class: "order-lines__total--label" }, "Total on order placement:"), index.h("span", { class: "order-lines__total--num" }, currency(this.order.total, this.order.currency))))),
283
+ ],
284
+ } })));
285
+ }
286
+ };
287
+ Demo.style = ":host {display: block}\n .child-row {\n opacity: .8;\n font-style: italic;\n }";
288
+
289
+ exports.nano_demo = Demo;
290
+
291
+ //# sourceMappingURL=nano-demo.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"nano-demo.entry.cjs.js","mappings":"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","names":["h","Host","Fragment"],"sources":["./src/components/demo/demo.tsx"],"sourcesContent":["import {\n Component,\n ComponentInterface,\n Fragment,\n h,\n Host,\n} from '@stencil/core';\n\nfunction capitalise(value: string) {\n if (!value) return '';\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction mediumDate(date: Date) {\n if (!date) return undefined;\n return new Date(date).toLocaleDateString(undefined, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n });\n}\n\nfunction currency(amount: number = 0, currencyCode: string = 'USD') {\n currencyCode = currencyCode?.toLocaleUpperCase() || 'USD';\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: currencyCode,\n }).format(amount);\n}\n\n@Component({\n tag: 'nano-demo',\n shadow: true,\n styles: /* css */ `\n :host {display: block}\n .child-row {\n opacity: .8;\n font-style: italic;\n }\n `,\n})\nexport class Demo implements ComponentInterface {\n private order = {\n checks: [\n {\n name: 'Compliance',\n external_id: 'CO',\n status: 'complete',\n account_info: {\n name: 'Jeongmin Song',\n email: 'js2957@cornell.edu',\n address_line_1: '930 Campus Road',\n address_line_2: 'Veterinary Medical Center C4 109',\n address_postcode: '14853',\n address_city: 'Ithaca',\n address_region: 'New York',\n address_country: 'US',\n },\n individual_name_compliance_information: {\n table: {\n names: [],\n addresses: [],\n match: false,\n false_positive: null,\n },\n },\n organization_compliance_information: {\n table: {\n names: [],\n addresses: [],\n match: false,\n false_positive: null,\n },\n },\n checks: [\n {\n label: 'Compliance check',\n external_id: 'compliance_check',\n item_type: 'pass/fail/escalate',\n answer: 'pass',\n },\n ],\n further_information: [],\n attachments: [],\n notes: [],\n },\n ],\n orderId: '00886434',\n createdAt: '2022-12-09T15:57:50',\n updatedAt: '2022-12-09T16:02:29',\n status: 'Processing',\n subStatus: null,\n currency: 'USD',\n customerPaymentMethod: 'CC-USD',\n paymentPlatform: 'Shop',\n dataAreaId: 'OXUS',\n defaultShippingWarehouse: null,\n deliveryContact: 'Jeongmin Song',\n deliveryMode: null,\n deliveryName: 'Cornell University',\n deliveryTerms: null,\n invoiceAccountNumber: 'C038330',\n orderAccountNumber: 'C038330',\n orderAccountName: 'Cornell University',\n originalLeadTime: null,\n salesDate: '2022-12-09T15:57:50',\n salesName: 'Cornell University',\n salesOrigin: 'Shop',\n salesOriginName: 'Main USD Store View',\n customerReference: '',\n purchaseOrder: null,\n additionalDocuments: [],\n total: 860,\n shippingAmount: 50,\n taxAmount: 0,\n projectId: null,\n deliveryPhoneNumber: '+16072533722',\n invoicePhoneNumber: '+16072533722',\n quoteNumber: null,\n customerType: 'N/A',\n invoiceAccountEmail: 'js2957@cornell.edu',\n partnerReference: null,\n sentToD365: false,\n sentToD365Status: 'unsent',\n orderAccountEmail: 'js2957@cornell.edu',\n controllingAccountNumber: 'C038330',\n controllingAccountEmail: 'js2957@cornell.edu',\n deliveryAddress: {\n street: ['930 Campus Road, Veterinary Medical Center C4 109'],\n city: 'Ithaca',\n postcode: '14853',\n region: 'New York',\n regionCode: 'NY',\n countryCode: 'US',\n },\n invoiceAddress: {\n street: ['930 Campus Road, Veterinary Medical Center C4 109'],\n city: 'Ithaca',\n postcode: '14853',\n region: 'New York',\n regionCode: 'NY',\n countryCode: 'US',\n },\n shopOrderLines: [\n {\n name: 'Flongle Flow Cell (R9.4.1)',\n sku: 'FLO-FLG001',\n quantity: 1,\n price: 810,\n total: 810,\n createdAt: '2022-12-09T15:57:50',\n updatedAt: '2022-12-09T15:57:50',\n maskSku: 'FLO-FLG001',\n productType: 'bundle',\n salesTag: 'FLGExpSP',\n requestedShippingDate: null,\n discount: 0,\n discountPercentage: 0,\n get finalSku() {\n return this.maskSku || this.sku;\n },\n includedItems: [\n {\n name: 'Flongle Flow Cell (R9.4.1)',\n sku: 'FLO-FLG001D',\n quantity: 12,\n price: 66,\n total: 792,\n createdAt: '2022-12-09T15:57:50',\n updatedAt: '2022-12-09T15:57:50',\n maskSku: 'FLO-FLG001',\n productType: 'simple',\n salesTag: 'FLGExpSP',\n requestedShippingDate: '2022-12-27T00:00:00',\n discount: 0,\n discountPercentage: 0,\n },\n {\n name: 'Flongle Flow Cell Priming Kit',\n sku: 'EXP-FSE001',\n quantity: 1,\n price: 18,\n total: 18,\n createdAt: '2022-12-09T15:57:50',\n updatedAt: '2022-12-09T15:57:50',\n maskSku: '',\n productType: 'simple',\n salesTag: 'FLGExpSP',\n requestedShippingDate: '2022-12-27T00:00:00',\n discount: 0,\n discountPercentage: 0,\n },\n ],\n },\n {\n name: 'Carriage - Device shipment',\n sku: 'FREIGHT',\n quantity: 1,\n price: 50,\n total: 50,\n createdAt: '2022-12-09T15:57:50',\n updatedAt: '2022-12-09T15:57:50',\n maskSku: '',\n productType: 'virtual',\n salesTag: null,\n requestedShippingDate: '2022-12-27T00:00:00',\n discount: 0,\n discountPercentage: 0,\n get finalSku() {\n return this.maskSku || this.sku;\n },\n },\n ],\n orderLines: [],\n pickedItems: [],\n packedItems: [],\n trackingNumbers: [],\n trackingUpdates: [],\n ecoOrder: false,\n revenueOrder: false,\n };\n\n private lineItemTotal(order) {\n if (!order || !order.shopOrderLines?.length) return;\n let total = 0;\n order.shopOrderLines.forEach((itm) => {\n if (itm.status !== 'cancelled') total += itm.total;\n });\n return total;\n }\n\n render() {\n return (\n <Host>\n <nano-table\n rowRender={{\n template: (_, c, TableCell) =>\n [\n c.renderedRow,\n c.row.includedItems?.length ? (\n c.row.includedItems?.map((item) => {\n return (\n <tr class=\"child-row\">\n <TableCell header={true}>{item.name}</TableCell>\n <TableCell>\n {capitalise(c.row.status || this.order.status)}\n </TableCell>\n <TableCell>{capitalise(item.sku)}</TableCell>\n <TableCell>{capitalise(item.salesTag)}</TableCell>\n <TableCell>\n {mediumDate(item.requestedShippingDate)}\n </TableCell>\n </tr>\n );\n })\n ) : (\n <Fragment />\n ),\n ].flat(1),\n }}\n columns={[\n {\n title: 'Name',\n prop: 'name',\n pinned: 'start',\n rowHeader: true,\n },\n {\n title: 'Status',\n prop: 'status',\n cellTemplate: (_, c) =>\n capitalise(c.cellModel || this.order.status),\n },\n {\n title: 'SKU',\n prop: 'finalSku',\n },\n {\n title: 'Sales tag',\n prop: 'salesTag',\n cellTemplate: (_, c) => c.cellModel || 'None',\n },\n {\n title: 'Requested ship date',\n prop: 'requestedShippingDate',\n cellTemplate: (_, c) => mediumDate(c.cellModel) || 'N/A',\n },\n {\n title: 'Quantity',\n prop: 'quantity',\n },\n {\n title: 'Unit price',\n prop: 'price',\n cellTemplate: (_, c) =>\n currency(c.cellModel, this.order.currency),\n },\n {\n title: 'Discount %',\n prop: 'discountPercentage',\n cellTemplate: (_, c) => c.cellModel || 0,\n },\n {\n title: 'Line value',\n prop: 'total',\n cellTemplate: (_, c) =>\n currency(c.cellModel, this.order.currency),\n },\n ]}\n rows={this.order.shopOrderLines}\n caption={`List of order line items found within order ${this.order.orderId}`}\n showFooter={true}\n footRender={{\n pinned: 'bottom',\n template: () => [\n <tr>\n <td colSpan={6}>&nbsp;</td>\n <th scope=\"row\" class=\"tbl__pin nano-tbl__pin--end\" colSpan={3}>\n <div class=\"nano-tbl__cell-content order-lines__total\">\n <span class=\"order-lines__total--label\">Sub total:</span>\n <span class=\"order-lines__total--num\">\n {currency(\n this.lineItemTotal(this.order),\n this.order.currency\n )}\n </span>\n </div>\n </th>\n </tr>,\n <tr>\n <td colSpan={6}>&nbsp;</td>\n <th scope=\"row\" class=\"tbl__pin nano-tbl__pin--end\" colSpan={3}>\n <div class=\"nano-tbl__cell-content order-lines__total\">\n <span class=\"order-lines__total--label\">\n Total order tax:\n </span>\n <span class=\"order-lines__total--num\">\n {currency(this.order.taxAmount, this.order.currency)}\n </span>\n </div>\n </th>\n </tr>,\n <tr>\n <td colSpan={6}>&nbsp;</td>\n <th scope=\"row\" class=\"tbl__pin nano-tbl__pin--end\" colSpan={3}>\n <div class=\"nano-tbl__cell-content order-lines__total\">\n <span class=\"order-lines__total--label\">\n Total on order placement:\n </span>\n <span class=\"order-lines__total--num\">\n {currency(this.order.total, this.order.currency)}\n </span>\n </div>\n </th>\n </tr>,\n ],\n }}\n />\n </Host>\n );\n }\n}\n"],"version":3}