@ticketlayer/elements 0.4.0 → 1.0.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 (161) hide show
  1. package/dist/cjs/{index-I9CoYv3k.js → index-DanPUX0s.js} +1 -1
  2. package/dist/cjs/index.cjs.js +2 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/ticket-selector-BYVL13k_.js +3623 -0
  5. package/dist/cjs/ticketlayer-elements.cjs.js +2 -2
  6. package/dist/cjs/tl-buy-modal.cjs.entry.js +3 -3
  7. package/dist/cjs/tl-buy-tickets-button.cjs.entry.js +89 -74
  8. package/dist/cjs/tl-buy-tickets-wrapper.cjs.entry.js +61 -30
  9. package/dist/cjs/tl-cart-badge.cjs.entry.js +74 -61
  10. package/dist/cjs/tl-cart-drawer.cjs.entry.js +51 -23
  11. package/dist/cjs/tl-cart.cjs.entry.js +71 -103
  12. package/dist/cjs/tl-checkout-wrapper.cjs.entry.js +51 -29
  13. package/dist/cjs/tl-event-card.cjs.entry.js +43 -105
  14. package/dist/cjs/tl-event-list.cjs.entry.js +72 -35
  15. package/dist/cjs/tl-login.cjs.entry.js +74 -141
  16. package/dist/cjs/tl-my-orders.cjs.entry.js +52 -92
  17. package/dist/cjs/tl-occurrence-selector_2.cjs.entry.js +153 -921
  18. package/dist/cjs/tl-order-confirmation.cjs.entry.js +71 -107
  19. package/dist/cjs/tl-order-tickets_2.cjs.entry.js +48 -74
  20. package/dist/cjs/tl-promo-code.cjs.entry.js +50 -47
  21. package/dist/cjs/tl-seat-map.cjs.entry.js +3 -3
  22. package/dist/cjs/web-query-Ce73jB4k.js +16 -0
  23. package/dist/collection/components/tl-buy-modal/tl-buy-modal.js +2 -2
  24. package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.css +37 -0
  25. package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.js +105 -79
  26. package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.js +73 -30
  27. package/dist/collection/components/tl-cart/tl-cart.js +82 -107
  28. package/dist/collection/components/tl-cart-badge/tl-cart-badge.js +62 -62
  29. package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.js +56 -24
  30. package/dist/collection/components/tl-checkout-wrapper/tl-checkout-wrapper.js +61 -29
  31. package/dist/collection/components/tl-event-card/event-card-adapter.js +11 -23
  32. package/dist/collection/components/tl-event-card/tl-event-card.js +51 -84
  33. package/dist/collection/components/tl-event-list/tl-event-list.js +82 -38
  34. package/dist/collection/components/tl-login/tl-login.js +83 -147
  35. package/dist/collection/components/tl-my-orders/tl-my-orders.js +58 -96
  36. package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.js +137 -516
  37. package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.js +81 -115
  38. package/dist/collection/components/tl-order-tickets/tl-order-tickets.js +57 -92
  39. package/dist/collection/components/tl-promo-code/tl-promo-code.js +55 -50
  40. package/dist/collection/components/tl-seat-map/tl-seat-map.js +2 -2
  41. package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.js +34 -20
  42. package/dist/collection/utils/order-summary.js +15 -135
  43. package/dist/collection/utils/testing/deep-text.js +29 -0
  44. package/dist/collection/utils/testing/fixtures.js +290 -0
  45. package/dist/collection/utils/testing/mock-sdk.js +13 -2
  46. package/dist/collection/utils/web-query.js +12 -0
  47. package/dist/collection/utils/web-storage.js +22 -0
  48. package/dist/components/ticket-selector.js +1 -0
  49. package/dist/components/tl-buy-modal.js +1 -1
  50. package/dist/components/tl-buy-tickets-button.js +1 -1
  51. package/dist/components/tl-buy-tickets-wrapper2.js +1 -1
  52. package/dist/components/tl-cart-badge.js +1 -1
  53. package/dist/components/tl-cart-drawer.js +1 -1
  54. package/dist/components/tl-cart2.js +1 -1
  55. package/dist/components/tl-checkout-wrapper2.js +1 -1
  56. package/dist/components/tl-event-card2.js +1 -1
  57. package/dist/components/tl-event-list.js +1 -1
  58. package/dist/components/tl-login2.js +1 -1
  59. package/dist/components/tl-my-orders.js +1 -1
  60. package/dist/components/tl-occurrence-selector2.js +1 -1
  61. package/dist/components/tl-order-confirmation.js +1 -1
  62. package/dist/components/tl-order-tickets2.js +1 -1
  63. package/dist/components/tl-promo-code.js +1 -1
  64. package/dist/components/tl-seat-map.js +1 -1
  65. package/dist/components/tl-ticket-selector2.js +1 -1
  66. package/dist/components/web-query.js +1 -0
  67. package/dist/elements.docs.json +34 -34
  68. package/dist/esm/{index-OoYV1faY.js → index-imfxp765.js} +1 -1
  69. package/dist/esm/index.js +2 -1
  70. package/dist/esm/loader.js +3 -3
  71. package/dist/esm/ticket-selector-BwChnHVC.js +3606 -0
  72. package/dist/esm/ticketlayer-elements.js +3 -3
  73. package/dist/esm/tl-buy-modal.entry.js +3 -3
  74. package/dist/esm/tl-buy-tickets-button.entry.js +90 -75
  75. package/dist/esm/tl-buy-tickets-wrapper.entry.js +62 -31
  76. package/dist/esm/tl-cart-badge.entry.js +75 -62
  77. package/dist/esm/tl-cart-drawer.entry.js +52 -24
  78. package/dist/esm/tl-cart.entry.js +72 -104
  79. package/dist/esm/tl-checkout-wrapper.entry.js +52 -30
  80. package/dist/esm/tl-event-card.entry.js +44 -106
  81. package/dist/esm/tl-event-list.entry.js +73 -36
  82. package/dist/esm/tl-login.entry.js +75 -142
  83. package/dist/esm/tl-my-orders.entry.js +53 -93
  84. package/dist/esm/tl-occurrence-selector_2.entry.js +152 -920
  85. package/dist/esm/tl-order-confirmation.entry.js +72 -108
  86. package/dist/esm/tl-order-tickets_2.entry.js +49 -75
  87. package/dist/esm/tl-promo-code.entry.js +51 -48
  88. package/dist/esm/tl-seat-map.entry.js +3 -3
  89. package/dist/esm/web-query-Bdbb2lk5.js +14 -0
  90. package/dist/ticketlayer-elements/index.esm.js +1 -1
  91. package/dist/ticketlayer-elements/p-45923d2c.entry.js +1 -0
  92. package/dist/ticketlayer-elements/p-492adc77.entry.js +1 -0
  93. package/dist/ticketlayer-elements/p-4cfc9e53.entry.js +1 -0
  94. package/dist/ticketlayer-elements/{p-ac264adc.entry.js → p-5135630e.entry.js} +1 -1
  95. package/dist/ticketlayer-elements/p-5bbce3b5.entry.js +1 -0
  96. package/dist/ticketlayer-elements/p-7d547721.entry.js +1 -0
  97. package/dist/ticketlayer-elements/p-7fe7b6ba.entry.js +1 -0
  98. package/dist/ticketlayer-elements/p-8122f0c1.entry.js +1 -0
  99. package/dist/ticketlayer-elements/p-98d40869.entry.js +1 -0
  100. package/dist/ticketlayer-elements/p-Bdbb2lk5.js +1 -0
  101. package/dist/ticketlayer-elements/p-BwChnHVC.js +1 -0
  102. package/dist/ticketlayer-elements/p-abec290a.entry.js +1 -0
  103. package/dist/ticketlayer-elements/p-ac79a3f6.entry.js +1 -0
  104. package/dist/ticketlayer-elements/p-d01f4429.entry.js +1 -0
  105. package/dist/ticketlayer-elements/p-d7ffaf46.entry.js +1 -0
  106. package/dist/ticketlayer-elements/p-e7170f3c.entry.js +1 -0
  107. package/dist/ticketlayer-elements/p-e787e862.entry.js +1 -0
  108. package/dist/ticketlayer-elements/p-f1ff931f.entry.js +1 -0
  109. package/dist/ticketlayer-elements/p-imfxp765.js +3 -0
  110. package/dist/ticketlayer-elements/ticketlayer-elements.css +1 -1
  111. package/dist/ticketlayer-elements/ticketlayer-elements.esm.js +1 -1
  112. package/dist/types/components/tl-buy-tickets-button/tl-buy-tickets-button.d.ts +40 -8
  113. package/dist/types/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.d.ts +20 -1
  114. package/dist/types/components/tl-cart/tl-cart.d.ts +40 -42
  115. package/dist/types/components/tl-cart-badge/tl-cart-badge.d.ts +22 -7
  116. package/dist/types/components/tl-cart-drawer/tl-cart-drawer.d.ts +28 -5
  117. package/dist/types/components/tl-checkout-wrapper/tl-checkout-wrapper.d.ts +18 -1
  118. package/dist/types/components/tl-event-card/event-card-adapter.d.ts +9 -20
  119. package/dist/types/components/tl-event-card/tl-event-card.d.ts +25 -28
  120. package/dist/types/components/tl-event-list/tl-event-list.d.ts +46 -6
  121. package/dist/types/components/tl-login/tl-login.d.ts +68 -22
  122. package/dist/types/components/tl-my-orders/tl-my-orders.d.ts +30 -12
  123. package/dist/types/components/tl-occurrence-selector/tl-occurrence-selector.d.ts +73 -161
  124. package/dist/types/components/tl-order-confirmation/tl-order-confirmation.d.ts +48 -15
  125. package/dist/types/components/tl-order-tickets/tl-order-tickets.d.ts +29 -31
  126. package/dist/types/components/tl-promo-code/tl-promo-code.d.ts +28 -10
  127. package/dist/types/components/tl-ticket/tl-ticket.d.ts +2 -11
  128. package/dist/types/components/tl-ticket-selector/tl-ticket-selector.d.ts +22 -4
  129. package/dist/types/components.d.ts +270 -62
  130. package/dist/types/utils/order-summary.d.ts +14 -97
  131. package/dist/types/utils/testing/deep-text.d.ts +13 -0
  132. package/dist/types/utils/testing/fixtures.d.ts +225 -0
  133. package/dist/types/utils/testing/mock-sdk.d.ts +14 -1
  134. package/dist/types/utils/web-query.d.ts +18 -0
  135. package/dist/types/utils/web-storage.d.ts +16 -0
  136. package/elements.catalogue.json +602 -50
  137. package/package.json +8 -6
  138. package/dist/cjs/money-BtmM2gt-.js +0 -118
  139. package/dist/cjs/order-summary-X3TlZxc2.js +0 -150
  140. package/dist/components/money.js +0 -1
  141. package/dist/components/order-summary.js +0 -1
  142. package/dist/esm/money-4ig0-WB6.js +0 -112
  143. package/dist/esm/order-summary-DiDtvfZM.js +0 -136
  144. package/dist/ticketlayer-elements/p-0814420f.entry.js +0 -1
  145. package/dist/ticketlayer-elements/p-0acabc26.entry.js +0 -1
  146. package/dist/ticketlayer-elements/p-109a3feb.entry.js +0 -1
  147. package/dist/ticketlayer-elements/p-1a4ba71c.entry.js +0 -1
  148. package/dist/ticketlayer-elements/p-318965c1.entry.js +0 -1
  149. package/dist/ticketlayer-elements/p-347c7fd1.entry.js +0 -1
  150. package/dist/ticketlayer-elements/p-3649c26d.entry.js +0 -1
  151. package/dist/ticketlayer-elements/p-40260cc9.entry.js +0 -1
  152. package/dist/ticketlayer-elements/p-4ig0-WB6.js +0 -1
  153. package/dist/ticketlayer-elements/p-55fd2f9f.entry.js +0 -1
  154. package/dist/ticketlayer-elements/p-62ee659b.entry.js +0 -1
  155. package/dist/ticketlayer-elements/p-7d4ecc2b.entry.js +0 -1
  156. package/dist/ticketlayer-elements/p-7f0abf95.entry.js +0 -1
  157. package/dist/ticketlayer-elements/p-BXpVGW51.js +0 -1
  158. package/dist/ticketlayer-elements/p-OoYV1faY.js +0 -3
  159. package/dist/ticketlayer-elements/p-a3c1b26c.entry.js +0 -1
  160. package/dist/ticketlayer-elements/p-aeb4c6fb.entry.js +0 -1
  161. package/dist/ticketlayer-elements/p-ba62541f.entry.js +0 -1
@@ -1,9 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-I9CoYv3k.js');
3
+ var index = require('./index-DanPUX0s.js');
4
4
  var sdkConnector = require('./sdk-connector-ClDF3013.js');
5
- var orderSummary = require('./order-summary-X3TlZxc2.js');
6
- require('./money-BtmM2gt-.js');
5
+ var ticketSelector = require('./ticket-selector-BYVL13k_.js');
7
6
 
8
7
  const tlMyOrdersCss = () => `:host{display:block;font-family:var(--tl-font-family);color:var(--tl-foreground)}.orders{display:flex;flex-direction:column;gap:var(--tl-spacing-4)}.order-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--tl-spacing-3)}.order{background:var(--tl-background);border:1px solid var(--tl-border);border-radius:var(--tl-radius-lg);overflow:hidden;transition:border-color 0.2s ease, box-shadow 0.2s ease}.order:hover,.order.expanded{border-color:var(--tl-primary);box-shadow:0 1px 3px rgba(0, 0, 0, 0.08)}.order-row{display:flex;align-items:center;justify-content:space-between;gap:var(--tl-spacing-4);width:100%;padding:var(--tl-spacing-4);font:inherit;color:inherit;text-align:left;background:none;border:none;cursor:pointer}.order-main{display:flex;flex-direction:column;gap:var(--tl-spacing-1);min-width:0}.order-number{font-size:0.75rem;font-weight:500;text-transform:uppercase;letter-spacing:0.05em;color:var(--tl-muted-foreground)}.order-event{font-size:1rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-meta{display:flex;flex-wrap:wrap;gap:var(--tl-spacing-3);font-size:0.8125rem;color:var(--tl-muted-foreground)}.order-side{display:flex;align-items:center;gap:var(--tl-spacing-3);flex-shrink:0}.order-total{font-weight:600}.status{padding:0.125rem 0.5rem;font-size:0.75rem;font-weight:500;border-radius:9999px;background:var(--tl-secondary);color:var(--tl-secondary-foreground)}.status-success{background:var(--tl-success);color:var(--tl-success-foreground)}.status-info{background:var(--tl-primary);color:var(--tl-primary-foreground)}.status-warning{background:var(--tl-warning);color:var(--tl-warning-foreground)}.status-error{background:var(--tl-error);color:var(--tl-error-foreground)}.chevron{width:1.125rem;height:1.125rem;color:var(--tl-muted-foreground);transition:transform 0.2s ease}.expanded .chevron{transform:rotate(90deg)}.order-tickets{padding:0 var(--tl-spacing-4) var(--tl-spacing-4);border-top:1px solid var(--tl-border);padding-top:var(--tl-spacing-4)}@media (max-width: 480px){.order-row{flex-direction:column;align-items:stretch}.order-side{justify-content:space-between}}.signin{text-align:center}.signin-title,.state-title{margin:0;font-size:1.125rem;font-weight:600}.signin-text,.state-text{margin:var(--tl-spacing-1) 0 0;font-size:0.875rem;color:var(--tl-muted-foreground)}.state{padding:var(--tl-spacing-8) var(--tl-spacing-4);text-align:center;background:var(--tl-background);border:1px solid var(--tl-border);border-radius:var(--tl-radius-lg)}.state.error .state-title{color:var(--tl-error)}.empty-icon{width:3rem;height:3rem;margin:0 auto var(--tl-spacing-3);color:var(--tl-primary)}.skeleton{height:5rem;background:var(--tl-secondary);border-radius:var(--tl-radius-lg);animation:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}`;
9
8
 
@@ -16,108 +15,69 @@ const TlMyOrders = class {
16
15
  this.emptyMessage = "When you buy tickets they'll show up here, ready to view and download.";
17
16
  /** Columns for the expanded ticket grid. */
18
17
  this.columns = 2;
19
- this.orders = [];
20
- this.authenticated = false;
21
- this.loading = true;
22
- this.error = null;
23
- this.expandedId = null;
24
- this.sdk = null;
25
- this.unsubscribes = [];
18
+ this.element = ticketSelector.createElement(ticketSelector.myOrdersCore, {
19
+ client: () => sdkConnector.getSDK(),
20
+ clientReady: () => sdkConnector.whenSDK(),
21
+ emit: (event, detail) => this.forward(event, detail),
22
+ });
23
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
24
+ this.view = this.element.view;
26
25
  }
27
- async componentWillLoad() {
28
- this.sdk = await sdkConnector.whenSDK().catch(() => null);
29
- if (!this.sdk) {
30
- this.loading = false;
31
- this.error = 'Orders are not available right now';
32
- return;
33
- }
34
- // Older SDKs have no auth accessor: try the list and let a 401 decide.
35
- const auth = this.sdk.getAuthManager?.();
36
- this.authenticated = auth ? auth.authenticated : true;
37
- // The session hydrates after the SDK publishes; follow both signals.
38
- this.unsubscribes.push(this.sdk.on('auth:changed', () => this.syncAuth()));
39
- this.unsubscribes.push(this.sdk.on('session:changed', () => this.syncAuth()));
40
- if (this.authenticated) {
41
- await this.load();
42
- }
43
- else {
44
- this.loading = false;
45
- }
26
+ syncProps() {
27
+ this.element.setProps({ emptyMessage: this.emptyMessage, columns: this.columns });
46
28
  }
47
- disconnectedCallback() {
48
- this.unsubscribes.forEach((off) => off());
49
- this.unsubscribes = [];
29
+ connectedCallback() {
30
+ this.syncProps();
31
+ this.unsubscribe ?? (this.unsubscribe = this.element.subscribe((view) => {
32
+ this.view = view;
33
+ }));
34
+ this.view = this.element.view;
35
+ this.teardown = this.element.mount();
50
36
  }
51
- syncAuth() {
52
- const auth = this.sdk?.getAuthManager?.();
53
- if (!auth)
54
- return;
55
- const was = this.authenticated;
56
- this.authenticated = auth.authenticated;
57
- if (this.authenticated && !was) {
58
- this.load();
59
- }
60
- else if (!this.authenticated && was) {
61
- this.orders = [];
62
- this.expandedId = null;
63
- }
64
- }
65
- async load() {
66
- if (!this.sdk)
67
- return;
68
- try {
69
- this.loading = true;
70
- this.error = null;
71
- const orders = this.sdk.getOrdersManager?.();
72
- if (!orders)
73
- throw new Error('Orders are not available');
74
- const list = (await orders.mine());
75
- this.orders = list ?? [];
76
- this.authenticated = true;
77
- }
78
- catch (err) {
79
- if (orderSummary.isAuthError(err)) {
80
- // Not signed in: fall through to the inline login rather than an error.
81
- this.authenticated = false;
82
- this.orders = [];
83
- }
84
- else {
85
- console.error('[tl-my-orders] Failed to load orders:', err);
86
- this.error = orderSummary.errorMessage(err, 'Failed to load your orders');
87
- this.tlError.emit({ message: this.error });
88
- }
89
- }
90
- finally {
91
- this.loading = false;
92
- }
37
+ /**
38
+ * Off screen: run the mount's teardown, which drops both auth
39
+ * subscriptions. Not `destroy()`: Stencil calls this for a DOM move as well
40
+ * as a removal, and a destroyed core never mounts again.
41
+ */
42
+ disconnectedCallback() {
43
+ this.teardown?.();
44
+ this.teardown = undefined;
45
+ this.unsubscribe?.();
46
+ this.unsubscribe = undefined;
93
47
  }
94
- toggle(orderId) {
95
- const opening = this.expandedId !== orderId;
96
- this.expandedId = opening ? orderId : null;
97
- if (opening)
98
- this.tlOrderSelect.emit({ orderId });
48
+ forward(event, detail) {
49
+ if (event === 'tlOrderSelect')
50
+ this.tlOrderSelect.emit(detail);
51
+ else if (event === 'tlError')
52
+ this.tlError.emit(detail);
99
53
  }
100
- renderRow(order) {
101
- const expanded = this.expandedId === order.id;
102
- const count = orderSummary.ticketCount(order);
103
- const tone = orderSummary.statusTone(order.status);
104
- return (index.h("li", { class: { order: true, expanded }, key: order.id }, index.h("button", { type: "button", class: "order-row", "aria-expanded": expanded ? 'true' : 'false', onClick: () => this.toggle(order.id) }, index.h("span", { class: "order-main" }, index.h("span", { class: "order-number" }, "Order ", order.orderNumber), index.h("span", { class: "order-event" }, orderSummary.orderEventName(order) ?? 'Order'), index.h("span", { class: "order-meta" }, order.createdAt && index.h("span", null, orderSummary.formatDate(order.createdAt)), index.h("span", null, count, " ticket", count === 1 ? '' : 's'))), index.h("span", { class: "order-side" }, index.h("span", { class: "order-total" }, orderSummary.formatPrice(order.total, order.currency)), index.h("span", { class: `status status-${tone}` }, orderSummary.statusLabel(order.status)), index.h("svg", { class: "chevron", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "aria-hidden": "true" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 18l6-6-6-6" })))), expanded && (index.h("div", { class: "order-tickets" }, index.h("tl-order-tickets", { orderId: order.id, columns: this.columns })))));
54
+ renderRow(row) {
55
+ return (index.h("li", { class: { order: true, expanded: row.expanded }, key: row.id }, index.h("button", { type: "button", class: "order-row", "aria-expanded": row.expanded ? 'true' : 'false', onClick: () => this.element.actions.toggle(row.id) }, index.h("span", { class: "order-main" }, index.h("span", { class: "order-number" }, row.numberLabel), index.h("span", { class: "order-event" }, row.eventName), index.h("span", { class: "order-meta" }, row.dateLabel && index.h("span", null, row.dateLabel), index.h("span", null, row.countLabel))), index.h("span", { class: "order-side" }, index.h("span", { class: "order-total" }, row.totalLabel), index.h("span", { class: `status status-${row.statusTone}` }, row.statusLabel), index.h("svg", { class: "chevron", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "aria-hidden": "true" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "2", d: "M9 18l6-6-6-6" })))), row.expanded && (index.h("div", { class: "order-tickets" }, index.h("tl-order-tickets", { orderId: row.id, columns: this.columns })))));
105
56
  }
106
57
  render() {
107
- if (this.loading) {
58
+ const { status, strings, state, derived } = this.view;
59
+ if (status === 'loading') {
108
60
  return (index.h("div", { class: "orders" }, [0, 1, 2].map((i) => (index.h("div", { class: "skeleton", key: i })))));
109
61
  }
110
- if (!this.authenticated) {
111
- return (index.h("div", { class: "orders" }, index.h("div", { class: "signin" }, index.h("p", { class: "signin-title" }, "Sign in to see your orders"), index.h("p", { class: "signin-text" }, "Your tickets and order history live in your account.")), index.h("tl-login", null)));
62
+ if (status === 'signed-out') {
63
+ return (index.h("div", { class: "orders" }, index.h("div", { class: "signin" }, index.h("p", { class: "signin-title" }, strings.signInTitle), index.h("p", { class: "signin-text" }, strings.signInText)), index.h("tl-login", null)));
112
64
  }
113
- if (this.error) {
114
- return (index.h("div", { class: "orders" }, index.h("div", { class: "state error" }, index.h("p", { class: "state-title" }, "Could not load your orders"), index.h("p", { class: "state-text" }, this.error))));
65
+ if (status === 'error') {
66
+ return (index.h("div", { class: "orders" }, index.h("div", { class: "state error" }, index.h("p", { class: "state-title" }, strings.errorTitle), index.h("p", { class: "state-text" }, state.error))));
115
67
  }
116
- if (this.orders.length === 0) {
117
- return (index.h("div", { class: "orders" }, index.h("div", { class: "state empty" }, index.h("svg", { class: "empty-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "aria-hidden": "true" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "1.5", d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }), index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "1.5", d: "M13 5v2M13 17v2M13 11v2" })), index.h("p", { class: "state-title" }, "No orders yet"), index.h("p", { class: "state-text" }, this.emptyMessage))));
68
+ if (status === 'empty') {
69
+ return (index.h("div", { class: "orders" }, index.h("div", { class: "state empty" }, index.h("svg", { class: "empty-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "aria-hidden": "true" }, index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "1.5", d: "M2 9a3 3 0 0 1 0 6v2a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-2a3 3 0 0 1 0-6V7a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z" }), index.h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", "stroke-width": "1.5", d: "M13 5v2M13 17v2M13 11v2" })), index.h("p", { class: "state-title" }, strings.emptyTitle), index.h("p", { class: "state-text" }, this.emptyMessage))));
118
70
  }
119
- return (index.h("div", { class: "orders" }, index.h("ul", { class: "order-list" }, this.orders.map((o) => this.renderRow(o)))));
71
+ return (index.h("div", { class: "orders" }, index.h("ul", { class: "order-list" }, derived.rows.map((row) => this.renderRow(row)))));
120
72
  }
73
+ static get watchers() { return {
74
+ "emptyMessage": [{
75
+ "syncProps": 0
76
+ }],
77
+ "columns": [{
78
+ "syncProps": 0
79
+ }]
80
+ }; }
121
81
  };
122
82
  TlMyOrders.style = tlMyOrdersCss();
123
83