@foxy.io/elements 1.37.0-beta.1 → 1.37.0-beta.3

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 (77) hide show
  1. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  2. package/dist/cdn/foxy-cart-form.js +1 -1
  3. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  4. package/dist/cdn/foxy-coupon-form.js +1 -1
  5. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  6. package/dist/cdn/foxy-customer-portal.js +1 -1
  7. package/dist/cdn/foxy-customer.js +1 -1
  8. package/dist/cdn/foxy-email-template-form.js +1 -1
  9. package/dist/cdn/foxy-experimental-add-to-cart-builder.js +1 -1
  10. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  11. package/dist/cdn/foxy-gift-card-form.js +1 -1
  12. package/dist/cdn/foxy-item-category-form.js +1 -1
  13. package/dist/cdn/foxy-item-form.js +1 -1
  14. package/dist/cdn/foxy-payment-method-card.js +1 -1
  15. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  16. package/dist/cdn/foxy-payments-api.js +1 -1
  17. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  18. package/dist/cdn/foxy-subscription-form.js +1 -1
  19. package/dist/cdn/foxy-tax-form.js +1 -1
  20. package/dist/cdn/foxy-template-set-form.js +1 -1
  21. package/dist/cdn/foxy-transaction.js +1 -1
  22. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  23. package/dist/cdn/foxy-webhook-form.js +1 -1
  24. package/dist/cdn/{shared-0782fee5.js → shared-2edce408.js} +1 -1
  25. package/dist/cdn/shared-79f84a95.js +1 -0
  26. package/dist/cdn/{shared-fda02728.js → shared-8df437b0.js} +1 -1
  27. package/dist/cdn/translations/admin-subscription-form/en.json +4 -1
  28. package/dist/cdn/translations/cart-form/en.json +5 -5
  29. package/dist/cdn/translations/customer/en.json +1 -1
  30. package/dist/cdn/translations/experimental-add-to-cart-builder/en.json +3 -3
  31. package/dist/cdn/translations/gift-card-code-form/en.json +3 -1
  32. package/dist/cdn/translations/gift-card-form/en.json +4 -2
  33. package/dist/cdn/translations/item-category-form/en.json +2 -2
  34. package/dist/cdn/translations/item-form/en.json +1 -1
  35. package/dist/cdn/translations/payment-method-card/en.json +2 -2
  36. package/dist/cdn/translations/transaction/en.json +4 -1
  37. package/dist/cdn/translations/update-payment-method-form/en.json +1 -1
  38. package/dist/cdn/translations/webhook-form/en.json +12 -12
  39. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +1 -1
  40. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +9 -7
  41. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  42. package/dist/elements/internal/InternalDateControl/InternalDateControl.d.ts +1 -0
  43. package/dist/elements/internal/InternalDateControl/InternalDateControl.js +18 -2
  44. package/dist/elements/internal/InternalDateControl/InternalDateControl.js.map +1 -1
  45. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +2 -1
  46. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +18 -5
  47. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -1
  48. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js +10 -3
  49. package/dist/elements/public/AdminSubscriptionForm/AdminSubscriptionForm.js.map +1 -1
  50. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.d.ts +4 -1
  51. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js +15 -1
  52. package/dist/elements/public/EmailTemplateForm/EmailTemplateForm.js.map +1 -1
  53. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +4 -1
  54. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +18 -1
  55. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  56. package/dist/elements/public/GiftCardCodeForm/index.d.ts +2 -0
  57. package/dist/elements/public/GiftCardCodeForm/index.js +2 -0
  58. package/dist/elements/public/GiftCardCodeForm/index.js.map +1 -1
  59. package/dist/elements/public/GiftCardCodeForm/types.d.ts +1 -0
  60. package/dist/elements/public/GiftCardCodeForm/types.js.map +1 -1
  61. package/dist/elements/public/GiftCardForm/GiftCardForm.d.ts +5 -0
  62. package/dist/elements/public/GiftCardForm/GiftCardForm.js +18 -8
  63. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  64. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +1 -1
  65. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
  66. package/dist/elements/public/PaymentsApi/PaymentsApi.js +1 -1
  67. package/dist/elements/public/PaymentsApi/PaymentsApi.js.map +1 -1
  68. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.d.ts +1 -0
  69. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js +15 -1
  70. package/dist/elements/public/Transaction/internal/InternalTransactionActionsControl/InternalTransactionActionsControl.js.map +1 -1
  71. package/dist/elements/public/WebhookForm/WebhookForm.js +5 -3
  72. package/dist/elements/public/WebhookForm/WebhookForm.js.map +1 -1
  73. package/dist/elements/public/WebhookForm/index.d.ts +0 -1
  74. package/dist/elements/public/WebhookForm/index.js +0 -1
  75. package/dist/elements/public/WebhookForm/index.js.map +1 -1
  76. package/package.json +1 -1
  77. package/dist/cdn/shared-a72df5aa.js +0 -1
@@ -1 +1 @@
1
- import"./shared-05ed8288.js";import{a as e}from"./shared-edb68eb7.js";import{x as t}from"./shared-fefaece7.js";import{c as a,h as r}from"./shared-ba5c42c7.js";import{_ as o}from"./shared-d1195c27.js";import{s as i}from"./shared-79d0699c.js";import{p as l}from"./shared-43e2c3f6.js";import{i as s}from"./shared-53e42a77.js";let n;function m(e){return new Array(7).fill(new Date).map(((t,a)=>{for(;t.getDay()!==a;)t.setDate(t.getDate()+1);return t.toLocaleDateString(e,{weekday:"short"})}))}function h(e){return new Array(7).fill(new Date).map(((t,a)=>{for(;t.getDay()!==a;)t.setDate(t.getDate()+1);return t.toLocaleDateString(e,{weekday:"long"})}))}t("vaadin-date-picker-text-field",a(n||(n=(e=>e)`:host([theme~=summary-item])::before{display:none}:host([theme~=summary-item]) .vaadin-text-field-container{display:grid;grid-template-columns:auto 1fr;grid-template-rows:repeat(3,min-content);gap:0 var(--lumo-space-m)}:host([theme~=summary-item]) [part=label]{font:normal var(--lumo-font-size-m) var(--lumo-font-family);color:var(--lumo-body-text-color)!important;grid-row:1;-webkit-text-fill-color:var(--lumo-body-text-color)!important}:host([theme~=summary-item]) [part=helper-text]{font:normal var(--lumo-font-size-s) var(--lumo-font-family);color:var(--lumo-secondary-text-color)!important;grid-row:2}:host([theme~=summary-item]) [part=helper-text]::before{display:none}:host([theme~=summary-item]) [part=error-message]{font:normal var(--lumo-font-size-s) var(--lumo-font-family);color:var(--lumo-error-text-color);grid-row:3}:host([theme~=summary-item]) [part=error-message],:host([theme~=summary-item]) [part=helper-text],:host([theme~=summary-item]) [part=label]{line-height:var(--lumo-line-height-xs);grid-column:1;padding:0}:host([theme~=summary-item]) [part=input-field]{grid-column:2;grid-row:1;padding:0;background:0 0;align-self:start;height:1em;--lumo-icon-size-m:1rem}:host([theme~=summary-item]) [part=input-field]::after,:host([theme~=summary-item][readonly]) [part=input-field] slot[name=suffix]{display:none}:host([theme~=summary-item]) [part=value]{line-height:var(--lumo-line-height-xs);text-align:right;min-height:auto;padding:0;margin-right:var(--lumo-space-xs);-webkit-mask-image:none}:host([theme~=summary-item][readonly]) [part=value]{margin-right:0}:host([theme~=summary-item]) [part=clear-button]{transform:scale(1.5)}:host([has-value]) slot[name=suffix]{display:none}`)));let u,d=e=>e;customElements.define("foxy-internal-date-control",class extends e{constructor(){super(...arguments),this.format=null,this.layout=null}static get properties(){return o(o({},super.properties),{},{format:{},layout:{}})}renderControl(){var e,t;let a;return a="0000-00-00"!==this._value&&this._value?"unix"===this.format?i(new Date(1e3*(null!==(e=this._value)&&void 0!==e?e:0))):"iso-long"===this.format?i(new Date(this._value)):this._value:"",r(u||(u=d` <vaadin-date-picker error-message="${0}" placeholder="${0}" helper-text="${0}" label="${0}" class="w-full" theme="${0}" ?disabled="${0}" ?readonly="${0}" .checkValidity="${0}" .value="${0}" .i18n="${0}" clear-button-visible @keydown="${0}" @change="${0}"> </vaadin-date-picker> `),s(this._errorMessage),this.placeholder,this.helperText,this.label,null!==(t=this.layout)&&void 0!==t?t:"standalone",this.disabled,this.readonly,this._checkValidity,a,this.__pickerI18n,(e=>{var t;return"Enter"===e.key&&(null===(t=this.nucleon)||void 0===t?void 0:t.submit())}),(e=>{var t,a,r,o;const i=e.currentTarget;"unix"===this.format?this._value=Math.floor((null!==(a=null===(t=l(i.value))||void 0===t?void 0:t.getTime())&&void 0!==a?a:0)/1e3):"iso-long"===this.format?this._value=null!==(o=null===(r=l(i.value))||void 0===r?void 0:r.toISOString())&&void 0!==o?o:null:this._value=i.value}))}get __pickerI18n(){return{monthNames:(e=this.lang||"en",new Array(12).fill(new Date).map(((t,a)=>(t.setMonth(a),t.toLocaleDateString(e,{month:"long"}))))),weekdays:h(this.lang||"en"),weekdaysShort:m(this.lang||"en"),firstDayOfWeek:0,week:this.t("week"),calendar:this.t("calendar"),clear:this.t("clear"),today:this.t("today"),cancel:this.t("cancel"),referenceDate:"",parseDate:null,formatTitle:(e,t)=>e+" "+t,formatDate:e=>this.t("display_value",{value:new Date(e.year,e.month,e.day)})};var e}});
1
+ import"./shared-05ed8288.js";import{a as e}from"./shared-edb68eb7.js";import{x as t}from"./shared-fefaece7.js";import{c as a,h as r}from"./shared-ba5c42c7.js";import{_ as o}from"./shared-d1195c27.js";import{s as i}from"./shared-79d0699c.js";import{p as l}from"./shared-43e2c3f6.js";import{i as s}from"./shared-53e42a77.js";let n;function m(e){return new Array(7).fill(new Date).map(((t,a)=>{for(;t.getDay()!==a;)t.setDate(t.getDate()+1);return t.toLocaleDateString(e,{weekday:"short"})}))}function h(e){return new Array(7).fill(new Date).map(((t,a)=>{for(;t.getDay()!==a;)t.setDate(t.getDate()+1);return t.toLocaleDateString(e,{weekday:"long"})}))}t("vaadin-date-picker-text-field",a(n||(n=(e=>e)`:host([theme~=summary-item])::before{display:none}:host([theme~=summary-item]) .vaadin-text-field-container{display:grid;grid-template-columns:auto 1fr;grid-template-rows:repeat(3,min-content);gap:0 var(--lumo-space-m)}:host([theme~=summary-item]) [part=label]{font:normal var(--lumo-font-size-m) var(--lumo-font-family);color:var(--lumo-body-text-color)!important;grid-row:1;-webkit-text-fill-color:var(--lumo-body-text-color)!important}:host([theme~=summary-item]) [part=helper-text]{font:normal var(--lumo-font-size-s) var(--lumo-font-family);color:var(--lumo-secondary-text-color)!important;grid-row:2}:host([theme~=summary-item]) [part=helper-text]::before{display:none}:host([theme~=summary-item]) [part=error-message]{font:normal var(--lumo-font-size-s) var(--lumo-font-family);color:var(--lumo-error-text-color);grid-row:3}:host([theme~=summary-item]) [part=error-message],:host([theme~=summary-item]) [part=helper-text],:host([theme~=summary-item]) [part=label]{line-height:var(--lumo-line-height-xs);grid-column:1;padding:0}:host([theme~=summary-item]) [part=input-field]{grid-column:2;grid-row:1;padding:0;background:0 0;align-self:start;height:1em;--lumo-icon-size-m:1rem}:host([theme~=summary-item]) [part=input-field]::after,:host([theme~=summary-item][readonly]) [part=input-field] slot[name=suffix]{display:none}:host([theme~=summary-item]) [part=value]{line-height:var(--lumo-line-height-xs);text-align:right;min-height:auto;padding:0;margin-right:var(--lumo-space-xs);-webkit-mask-image:none}:host([theme~=summary-item][readonly]) [part=value]{margin-right:0}:host([theme~=summary-item]) [part=clear-button]{transform:scale(1.5)}:host([has-value]) slot[name=suffix]{display:none}`)));let d,u=e=>e;customElements.define("foxy-internal-date-control",class extends e{constructor(){super(...arguments),this.format=null,this.layout=null}static get properties(){return o(o({},super.properties),{},{format:{},layout:{}})}renderControl(){var e,t;let a;return a="0000-00-00"!==this._value&&this._value?"unix"===this.format?i(new Date(1e3*(null!==(e=this._value)&&void 0!==e?e:0))):"iso-long"===this.format?i(new Date(this._value)):this._value:"",r(d||(d=u` <vaadin-date-picker error-message="${0}" placeholder="${0}" helper-text="${0}" label="${0}" class="w-full" theme="${0}" ?disabled="${0}" ?readonly="${0}" .checkValidity="${0}" .value="${0}" .i18n="${0}" clear-button-visible @keydown="${0}" @change="${0}"> </vaadin-date-picker> `),s(this._errorMessage),this.placeholder,this.helperText,this.label,null!==(t=this.layout)&&void 0!==t?t:"standalone",this.disabled,this.readonly,this._checkValidity,a,this.__pickerI18n,(e=>{var t;return"Enter"===e.key&&(null===(t=this.nucleon)||void 0===t?void 0:t.submit())}),(e=>{var t,a;const r=e.currentTarget;if("unix"===this.format)this._value=Math.floor((null!==(a=null===(t=l(r.value))||void 0===t?void 0:t.getTime())&&void 0!==a?a:0)/1e3);else if("iso-long"===this.format){const e=l(r.value);this._value=e?this.__toApiDate(e):null}else this._value=r.value}))}get __pickerI18n(){return{monthNames:(e=this.lang||"en",new Array(12).fill(new Date).map(((t,a)=>(t.setMonth(a),t.toLocaleDateString(e,{month:"long"}))))),weekdays:h(this.lang||"en"),weekdaysShort:m(this.lang||"en"),firstDayOfWeek:0,week:this.t("week"),calendar:this.t("calendar"),clear:this.t("clear"),today:this.t("today"),cancel:this.t("cancel"),referenceDate:"",parseDate:null,formatTitle:(e,t)=>e+" "+t,formatDate:e=>this.t("display_value",{value:new Date(e.year,e.month,e.day)})};var e}__toApiDate(e){return e.toLocaleString("en-US",{timeZone:"America/Los_Angeles",timeZoneName:"longOffset",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).replace(/(\d+)\/(\d+)\/(\d+),\s(\d+):(\d+):(\d+) GMT([+-])(\d+):(\d+)/,"$3-$1-$2T$4:$5:$6$7$8$9")}});
@@ -390,7 +390,7 @@
390
390
  "search": "Search",
391
391
  "clear": "Clear",
392
392
  "pagination": {
393
- "search_button_text": "Search",
393
+ "search_button_text": "Filters",
394
394
  "first": "First",
395
395
  "last": "Last",
396
396
  "next": "Next",
@@ -1949,6 +1949,9 @@
1949
1949
  },
1950
1950
  "subscription": {
1951
1951
  "caption": "Go to subscription"
1952
+ },
1953
+ "receipt": {
1954
+ "caption": "View receipt"
1952
1955
  }
1953
1956
  },
1954
1957
  "spinner": {
@@ -34,7 +34,7 @@
34
34
  "label": "Template sets",
35
35
  "helper_text": "",
36
36
  "pagination": {
37
- "search_button_text": "Search",
37
+ "search_button_text": "Filters",
38
38
  "first": "First",
39
39
  "last": "Last",
40
40
  "next": "Next",
@@ -119,7 +119,7 @@
119
119
  "value": "Value"
120
120
  },
121
121
  "pagination": {
122
- "search_button_text": "Search",
122
+ "search_button_text": "Filters",
123
123
  "first": "First",
124
124
  "last": "Last",
125
125
  "next": "Next",
@@ -185,7 +185,7 @@
185
185
  "search": "Search",
186
186
  "clear": "Clear",
187
187
  "pagination": {
188
- "search_button_text": "Search",
188
+ "search_button_text": "Filters",
189
189
  "first": "First",
190
190
  "last": "Last",
191
191
  "next": "Next",
@@ -360,7 +360,7 @@
360
360
  "value": "Value"
361
361
  },
362
362
  "pagination": {
363
- "search_button_text": "Search",
363
+ "search_button_text": "Filters",
364
364
  "first": "First",
365
365
  "last": "Last",
366
366
  "next": "Next",
@@ -656,7 +656,7 @@
656
656
  "search": "Search",
657
657
  "clear": "Clear",
658
658
  "pagination": {
659
- "search_button_text": "Search",
659
+ "search_button_text": "Filters",
660
660
  "first": "First",
661
661
  "last": "Last",
662
662
  "next": "Next",
@@ -942,7 +942,7 @@
942
942
  "search": "Search",
943
943
  "clear": "Clear",
944
944
  "pagination": {
945
- "search_button_text": "Search",
945
+ "search_button_text": "Filters",
946
946
  "first": "First",
947
947
  "last": "Last",
948
948
  "next": "Next",
@@ -29,7 +29,7 @@
29
29
  "search": "Search",
30
30
  "clear": "Clear",
31
31
  "pagination": {
32
- "search_button_text": "Search",
32
+ "search_button_text": "Filters",
33
33
  "first": "First",
34
34
  "last": "Last",
35
35
  "next": "Next",
@@ -388,7 +388,7 @@
388
388
  "search": "Search",
389
389
  "clear": "Clear",
390
390
  "pagination": {
391
- "search_button_text": "Search",
391
+ "search_button_text": "Filters",
392
392
  "first": "First",
393
393
  "last": "Last",
394
394
  "next": "Next",
@@ -478,7 +478,7 @@
478
478
  "label": "Template sets",
479
479
  "helper_text": "",
480
480
  "pagination": {
481
- "search_button_text": "Search",
481
+ "search_button_text": "Filters",
482
482
  "first": "First",
483
483
  "last": "Last",
484
484
  "next": "Next",
@@ -36,6 +36,7 @@
36
36
  "end-date": {
37
37
  "label": "Expires on",
38
38
  "placeholder": "Optional",
39
+ "display_value": "{{ value, date }}",
39
40
  "helper_text": ""
40
41
  }
41
42
  },
@@ -52,7 +53,7 @@
52
53
  "search": "Search",
53
54
  "clear": "Clear",
54
55
  "pagination": {
55
- "search_button_text": "Search",
56
+ "search_button_text": "Filters",
56
57
  "first": "First",
57
58
  "last": "Last",
58
59
  "next": "Next",
@@ -128,6 +129,7 @@
128
129
  "cart-item": {
129
130
  "label": "Cart item",
130
131
  "helper_text": "",
132
+ "view": "View transaction",
131
133
  "card": {
132
134
  "daily": "Daily",
133
135
  "daily_plural": "Every {{count}} days",
@@ -403,6 +403,7 @@
403
403
  "end-date": {
404
404
  "label": "Expires on",
405
405
  "placeholder": "Optional",
406
+ "display_value": "{{ value, date }}",
406
407
  "helper_text": ""
407
408
  }
408
409
  },
@@ -419,7 +420,7 @@
419
420
  "search": "Search",
420
421
  "clear": "Clear",
421
422
  "pagination": {
422
- "search_button_text": "Search",
423
+ "search_button_text": "Filters",
423
424
  "first": "First",
424
425
  "last": "Last",
425
426
  "next": "Next",
@@ -495,6 +496,7 @@
495
496
  "cart-item": {
496
497
  "label": "Cart item",
497
498
  "helper_text": "",
499
+ "view": "View transaction",
498
500
  "card": {
499
501
  "daily": "Daily",
500
502
  "daily_plural": "Every {{count}} days",
@@ -568,7 +570,7 @@
568
570
  },
569
571
  "pagination": {
570
572
  "create_button_text": "Add code +",
571
- "search_button_text": "Search codes",
573
+ "search_button_text": "Filters",
572
574
  "card": {
573
575
  "delete_button_text": "Delete",
574
576
  "copy_button_text": "Copy code",
@@ -97,7 +97,7 @@
97
97
  "label": "Flat rate applies",
98
98
  "placeholder": "Select...",
99
99
  "option_per_order": "Per order",
100
- "option_per_shipment": "Per shipment",
100
+ "option_per_item": "Per item",
101
101
  "helper_text": "",
102
102
  "v8n_required": "Please select a value"
103
103
  },
@@ -205,7 +205,7 @@
205
205
  "label": "Email templates",
206
206
  "helper_text": "",
207
207
  "pagination": {
208
- "search_button_text": "Search",
208
+ "search_button_text": "Filters",
209
209
  "first": "First",
210
210
  "last": "Last",
211
211
  "next": "Next",
@@ -55,7 +55,7 @@
55
55
  "search": "Search",
56
56
  "clear": "Clear",
57
57
  "pagination": {
58
- "search_button_text": "Search",
58
+ "search_button_text": "Filters",
59
59
  "first": "First",
60
60
  "last": "Last",
61
61
  "next": "Next",
@@ -31,7 +31,7 @@
31
31
  "search": "Search",
32
32
  "clear": "Clear",
33
33
  "pagination": {
34
- "search_button_text": "Search",
34
+ "search_button_text": "Filters",
35
35
  "first": "First",
36
36
  "last": "Last",
37
37
  "next": "Next",
@@ -157,4 +157,4 @@
157
157
  "loading_empty": "No payment method",
158
158
  "loading_error": "Unknown error"
159
159
  }
160
- }
160
+ }
@@ -151,7 +151,7 @@
151
151
  "search": "Search",
152
152
  "clear": "Clear",
153
153
  "pagination": {
154
- "search_button_text": "Search",
154
+ "search_button_text": "Filters",
155
155
  "first": "First",
156
156
  "last": "Last",
157
157
  "next": "Next",
@@ -1710,6 +1710,9 @@
1710
1710
  },
1711
1711
  "subscription": {
1712
1712
  "caption": "Go to subscription"
1713
+ },
1714
+ "receipt": {
1715
+ "caption": "View receipt"
1713
1716
  }
1714
1717
  },
1715
1718
  "spinner": {
@@ -22,7 +22,7 @@
22
22
  "search": "Search",
23
23
  "clear": "Clear",
24
24
  "pagination": {
25
- "search_button_text": "Search",
25
+ "search_button_text": "Filters",
26
26
  "first": "First",
27
27
  "last": "Last",
28
28
  "next": "Next",
@@ -45,20 +45,20 @@
45
45
  "event_resource_subscription": "Subscription",
46
46
  "event_resource_transaction": "Transaction",
47
47
  "event_resource_customer": "Customer"
48
+ },
49
+ "url": {
50
+ "label": "Endpoint",
51
+ "placeholder": "Example: https://example.com/webhook",
52
+ "helper_text": "",
53
+ "v8n_too_long": "URL cannot exceed 1000 characters"
54
+ },
55
+ "query": {
56
+ "label": "Query",
57
+ "placeholder": "Example: zoom=items,items:options,customer",
58
+ "helper_text": "",
59
+ "v8n_too_long": "Query cannot exceed 1000 characters"
48
60
  }
49
61
  },
50
- "url": {
51
- "label": "Endpoint",
52
- "placeholder": "Example: https://example.com/webhook",
53
- "helper_text": "",
54
- "v8n_too_long": "URL cannot exceed 1000 characters"
55
- },
56
- "query": {
57
- "label": "Query",
58
- "placeholder": "Example: zoom=items,items:options,customer",
59
- "helper_text": "",
60
- "v8n_too_long": "Query cannot exceed 1000 characters"
61
- },
62
62
  "statuses": {
63
63
  "label": "Runs",
64
64
  "pagination": {
@@ -49,6 +49,7 @@ export declare class InternalAsyncListControl extends InternalEditableControl {
49
49
  hideCreateButton: boolean;
50
50
  /** If set, renders list items as <a> tags. */
51
51
  getPageHref: ((itemHref: string, item: unknown) => string | null) | null;
52
+ filter: string | null;
52
53
  private __deletionConfimationCallback;
53
54
  private __cachedCardRenderer;
54
55
  private __activeBulkAction;
@@ -58,7 +59,6 @@ export declare class InternalAsyncListControl extends InternalEditableControl {
58
59
  private __totalItems;
59
60
  private __selection;
60
61
  private __itemRenderer;
61
- private __filter;
62
62
  render(): TemplateResult;
63
63
  renderControl(): TemplateResult;
64
64
  private get __cardRenderer();
@@ -48,6 +48,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
48
48
  this.hideCreateButton = false;
49
49
  /** If set, renders list items as <a> tags. */
50
50
  this.getPageHref = null;
51
+ this.filter = null;
51
52
  this.__deletionConfimationCallback = null;
52
53
  this.__cachedCardRenderer = null;
53
54
  this.__activeBulkAction = null;
@@ -186,7 +187,6 @@ export class InternalAsyncListControl extends InternalEditableControl {
186
187
  </foxy-swipe-actions>
187
188
  `;
188
189
  };
189
- this.__filter = '';
190
190
  }
191
191
  static get properties() {
192
192
  return {
@@ -212,7 +212,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
212
212
  actions: { attribute: false },
213
213
  bulkActions: { attribute: false },
214
214
  filters: { type: Array },
215
- __filter: { attribute: false },
215
+ filter: {},
216
216
  __selection: { attribute: false },
217
217
  __totalItems: { attribute: false },
218
218
  __isSelecting: { attribute: false },
@@ -376,6 +376,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
376
376
  return this.renderRoot.querySelector('#form');
377
377
  }
378
378
  __renderActions() {
379
+ var _a;
379
380
  return [
380
381
  this.filters.length > 0 && !this.__isSelecting
381
382
  ? html `
@@ -384,7 +385,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
384
385
  .positionTarget=${this.renderRoot.querySelector('#filters')}
385
386
  .model=${{
386
387
  options: this.filters,
387
- value: this.__filter,
388
+ value: (_a = this.filter) !== null && _a !== void 0 ? _a : '',
388
389
  lang: this.lang,
389
390
  ns: this.ns,
390
391
  }}
@@ -392,7 +393,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
392
393
  @vaadin-overlay-close=${() => (this.__isFilterVisible = false)}
393
394
  @search=${(evt) => {
394
395
  var _a;
395
- this.__filter = (_a = evt.detail) !== null && _a !== void 0 ? _a : '';
396
+ this.filter = (_a = evt.detail) !== null && _a !== void 0 ? _a : '';
396
397
  }}
397
398
  >
398
399
  </foxy-internal-async-list-control-filter-overlay>
@@ -404,6 +405,7 @@ export class InternalAsyncListControl extends InternalEditableControl {
404
405
  @click=${() => (this.__isFilterVisible = !this.__isFilterVisible)}
405
406
  >
406
407
  <foxy-i18n infer="pagination" key="search_button_text"></foxy-i18n>
408
+ ${this.filter ? html `<span>(${this.filter.split('&').length})</span>` : ''}
407
409
  </vaadin-button>
408
410
  `
409
411
  : '',
@@ -503,19 +505,19 @@ export class InternalAsyncListControl extends InternalEditableControl {
503
505
  ].filter(v => !!v);
504
506
  }
505
507
  __renderContent() {
506
- var _a;
508
+ var _a, _b;
507
509
  const helperText = this.helperText;
508
510
  const isDetails = this.layout === 'details';
509
511
  const label = this.label;
510
512
  let first;
511
513
  try {
512
514
  const url = new URL((_a = this.first) !== null && _a !== void 0 ? _a : '');
513
- const filter = new URLSearchParams(this.__filter);
515
+ const filter = new URLSearchParams((_b = this.filter) !== null && _b !== void 0 ? _b : '');
514
516
  url.searchParams.set('limit', String(this.limit));
515
517
  filter.forEach((value, key) => url.searchParams.set(key, value));
516
518
  first = url.toString();
517
519
  }
518
- catch (_b) {
520
+ catch (_c) {
519
521
  first = undefined;
520
522
  }
521
523
  return html `
@@ -1 +1 @@
1
- {"version":3,"file":"InternalAsyncListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/InternalAsyncListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { CollectionPage, NucleonElement } from '../../public/index';\nimport type { BulkAction, SwipeAction } from './types';\nimport type { InternalSummaryControl } from '../InternalSummaryControl/InternalSummaryControl';\nimport type { InternalConfirmDialog } from '../InternalConfirmDialog';\nimport type { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { CheckboxElement } from '@vaadin/vaadin-checkbox';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { UpdateEvent } from '../../public/NucleonElement/UpdateEvent';\nimport type { FormDialog } from '../../index';\nimport type { Option } from '../../public/QueryBuilder/types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { render } from 'lit-html';\nimport { html } from 'lit-element';\n\nexport class InternalAsyncListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n keepDialogOpenOnDelete: { type: Boolean, attribute: 'keep-dialog-open-on-delete' },\n keepDialogOpenOnPost: { type: Boolean, attribute: 'keep-dialog-open-on-post' },\n hideDeleteButton: { type: Boolean, attribute: 'hide-delete-button' },\n hideCreateButton: { type: Boolean, attribute: 'hide-create-button' },\n createPageHref: { attribute: 'create-page-href' },\n getPageHref: { attribute: false },\n related: { type: Array },\n layout: {},\n first: {},\n limit: { type: Number },\n form: {},\n formProps: { type: Object, attribute: 'form-props' },\n item: {},\n itemProps: { type: Object, attribute: 'item-props' },\n wide: { type: Boolean },\n open: { type: Boolean },\n hideWhenEmpty: { type: Boolean, attribute: 'hide-when-empty' },\n alert: { type: Boolean },\n actions: { attribute: false },\n bulkActions: { attribute: false },\n filters: { type: Array },\n __filter: { attribute: false },\n __selection: { attribute: false },\n __totalItems: { attribute: false },\n __isSelecting: { attribute: false },\n __notification: { attribute: false },\n __isFilterVisible: { attribute: false },\n __activeBulkAction: { attribute: false },\n };\n }\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepDialogOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepDialogOpenOnPost = false;\n\n /** If provided, renders Create button as a link to this page. */\n createPageHref: string | null = null;\n\n /** Bulk actions that appear when one or more items are selected. */\n bulkActions = [] as BulkAction[];\n\n /** Same as the `related` property of `NucleonElement`. */\n related = [] as string[];\n\n /** When set to `details`, makes the entire control collapsible. */\n layout: 'details' | null = null;\n\n /** Swipe actions. */\n actions = [] as SwipeAction[];\n\n /** Query parameters to apply to the `first` URL. */\n filters = [] as Option[];\n\n /** Limit query parameter to apply to the `first` URL. */\n limit = 20;\n\n /** URI of the first page of the hAPI collection to display. */\n first: string | null = null;\n\n /** Same as the `form` property of `FormDialog`. If set, will open a dialog on item click. */\n form: FormDialog['form'] = null;\n\n /** Props to pass through to the form rendered by `FormDialog`. */\n formProps: Record<string, unknown> = {};\n\n /** Same as the `item` property of `CollectionPage`. */\n item: CollectionPage<any>['item'] = null;\n\n /** Props to pass through to the `CollectionPage` rendering items. */\n itemProps: Record<string, unknown> = {};\n\n /** Same as the `wide` property of `FormDialog`. */\n wide = false;\n\n /** Visually hides the control when the collection is empty or loading. */\n hideWhenEmpty = false;\n\n /** Same as the `open` property of `InternalSummaryControl`. */\n open = false;\n\n /** Same as the `alert` property of `FormDialog`. */\n alert = false;\n\n /** Hides Delete Swipe Action if true. */\n hideDeleteButton = false;\n\n /** Hides Create button if true. */\n hideCreateButton = false;\n\n /** If set, renders list items as <a> tags. */\n getPageHref: ((itemHref: string, item: unknown) => string | null) | null = null;\n\n private __deletionConfimationCallback: (() => void) | null = null;\n\n private __cachedCardRenderer: {\n item: InternalAsyncListControl['item'];\n render: ItemRenderer;\n } | null = null;\n\n private __activeBulkAction: BulkAction | null = null;\n\n private __isFilterVisible = false;\n\n private __notification: { key: string; theme?: string } | null = null;\n\n private __isSelecting = false;\n\n private __totalItems = 0;\n\n private __selection: HALJSONResource[] = [];\n\n private __itemRenderer: ItemRenderer = ctx => {\n const item = this.__cardRenderer(ctx);\n const readonlyItem = html`<div class=\"bg-contrast-5\">${item}</div>`;\n\n if (!ctx.data) return readonlyItem;\n\n if (this.__isSelecting) {\n return html`\n <vaadin-checkbox\n class=${classMap({ 'block w-full': true, 'bg-contrast-5': this.layout === 'details' })}\n style=\"padding-left: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n data-async-list-control\n ?disabled=${this.disabled || !!this.__activeBulkAction}\n ?checked=${this.__selection.find(v => v._links.self.href === ctx.data!._links.self.href)}\n @change=${(evt: CustomEvent) => {\n if ((evt.currentTarget as CheckboxElement).checked) {\n this.__selection = [...this.__selection, ctx.data!];\n } else {\n this.__selection = this.__selection.filter(\n v => v._links.self.href !== ctx.data!._links.self.href\n );\n }\n }}\n >\n ${this.__cardRenderer(ctx)}\n </vaadin-checkbox>\n `;\n }\n\n const href = this.getPageHref?.(ctx.href, ctx.data);\n if (typeof href !== 'string' && !this.form) return readonlyItem;\n\n const isDisabled = this.disabledSelector.matches('card', true);\n const card = this.__cardRenderer(ctx);\n let clickableItem: TemplateResult;\n\n const wrapperClass = classMap({\n 'rounded-t': this.layout !== 'details' && !ctx.previous,\n 'rounded-b': !ctx.next,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n 'text-left w-full block bg-contrast-5 transition-colors': true,\n 'hover-bg-contrast-10': !isDisabled,\n });\n\n if (this.getPageHref) {\n if (isDisabled) {\n clickableItem = html`<div class=${wrapperClass}>${card}</div>`;\n } else {\n const href = this.getPageHref(ctx.href, ctx.data);\n clickableItem = html`<a class=${wrapperClass} href=${href}>${card}</a>`;\n }\n } else {\n const handleClick = (evt: Event) => {\n const clickEvent = new CustomEvent<string>('itemclick', {\n cancelable: true,\n composed: true,\n bubbles: true,\n detail: ctx.href,\n });\n\n if (this.dispatchEvent(clickEvent)) {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.__dialog;\n\n dialog.header = 'header_update';\n dialog.href = ctx.href;\n dialog.show(button);\n }\n };\n\n clickableItem = html`\n <button ?disabled=${isDisabled} class=${wrapperClass} @click=${handleClick}>${card}</button>\n `;\n }\n\n if ((this.hideDeleteButton && !this.actions.length) || this.readonly) return clickableItem;\n\n return html`\n <foxy-swipe-actions class=\"block\">\n ${clickableItem}\n ${this.actions.map(action => {\n return html`\n <vaadin-button\n data-testclass=\"action\"\n theme=${action.theme}\n class=\"h-full rounded-none relative\"\n slot=\"action\"\n ?disabled=${this.disabled}\n @click=${() => action.onClick(ctx.data!)}\n >\n <foxy-i18n\n class=${classMap({\n 'transition-opacity': true,\n 'opacity-0': action.state !== 'idle',\n })}\n infer=\"\"\n key=${action.text}\n >\n </foxy-i18n>\n <div\n class=${classMap({\n 'absolute inset-0 flex items-center justify-center transition-opacity': true,\n 'opacity-0': action.state === 'idle',\n })}\n >\n <foxy-spinner layout=\"no-label\" infer=\"spinner\" state=${action.state}>\n </foxy-spinner>\n </div>\n </vaadin-button>\n `;\n })}\n ${this.hideDeleteButton\n ? ''\n : html`\n <vaadin-button\n theme=\"primary error\"\n class=\"h-full rounded-none\"\n slot=\"action\"\n @click=${(evt: CustomEvent) => {\n const button = evt.currentTarget as HTMLElement;\n const confirm = this.renderRoot.querySelector(\n '#confirm'\n ) as InternalConfirmDialog;\n\n confirm.show(button);\n\n this.__deletionConfimationCallback = () => {\n const cardButton = button.parentElement!.firstElementChild!;\n const card = cardButton.querySelector<NucleonElement<any>>('[href]');\n\n card?.delete();\n this.__deletionConfimationCallback = null;\n };\n }}\n >\n <foxy-i18n infer=\"\" key=\"delete_button_text\"></foxy-i18n>\n </vaadin-button>\n `}\n </foxy-swipe-actions>\n `;\n };\n\n private __filter = '';\n\n render(): TemplateResult {\n const hidden = this.hideWhenEmpty && !this.__totalItems;\n return html`<div class=${classMap({ hidden })}>${super.render()}</div>`;\n }\n\n renderControl(): TemplateResult {\n const actions = this.__renderActions();\n const content = this.__renderContent();\n\n return html`\n ${this.form && !this.__isSelecting\n ? html`\n <foxy-form-dialog\n parent=${ifDefined(this.first ?? void 0)}\n infer=\"dialog\"\n id=\"form\"\n ?wide=${this.wide}\n ?alert=${this.alert}\n ?keep-open-on-post=${this.keepDialogOpenOnPost}\n ?keep-open-on-delete=${this.keepDialogOpenOnDelete}\n .related=${this.related}\n .props=${this.formProps}\n .form=${this.form as any}\n >\n </foxy-form-dialog>\n `\n : ''}\n ${this.hideDeleteButton || this.readonly || this.__isSelecting\n ? ''\n : html`\n <foxy-internal-confirm-dialog\n message=\"delete_message\"\n confirm=\"delete_confirm\"\n cancel=\"delete_cancel\"\n header=\"delete_header\"\n theme=\"error\"\n infer=\"\"\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => {\n if (!evt.detail.cancelled) this.__deletionConfimationCallback?.();\n }}\n >\n </foxy-internal-confirm-dialog>\n `}\n ${this.layout === 'details'\n ? html`\n <foxy-internal-summary-control\n layout=\"details\"\n count=${ifDefined(this.open ? void 0 : `${this.__totalItems}`)}\n infer=\"\"\n ?open=${this.open}\n @toggle=${(evt: CustomEvent) => {\n const summary = evt.currentTarget as InternalSummaryControl;\n this.open = summary.open;\n if (!evt.composed && !evt.bubbles) this.dispatchEvent(new CustomEvent('toggle'));\n }}\n >\n ${actions.length\n ? html`\n <div class=\"flex gap-s\">\n <foxy-i18n\n infer=\"\"\n class=\"mr-auto text-tertiary\"\n key=\"total_items\"\n .options=${{ count: this.__totalItems }}\n >\n </foxy-i18n>\n ${actions}\n </div>\n `\n : ''}\n <div class=\"p-0 bg-transparent\">${content}</div>\n </foxy-internal-summary-control>\n `\n : html`\n <div class=\"flex gap-s items-center justify-between font-medium\">\n <span class=\"text-body mr-auto text-l\">\n ${this.label && this.label !== 'label' ? this.label : ''}\n </span>\n ${actions}\n </div>\n\n <div\n class=\"text-secondary text-s\"\n ?hidden=${!this.helperText || this.helperText === 'helper_text'}\n >\n ${this.helperText}\n </div>\n\n ${content}\n `}\n\n <div\n class=\"mt-s text-s leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly || this.__isSelecting}\n >\n ${this._errorMessage}\n </div>\n\n <vaadin-notification\n position=\"bottom-end\"\n duration=\"3000\"\n theme=${ifDefined(this.__notification?.theme)}\n .renderer=${(root: HTMLElement) => {\n if (!root.firstElementChild) root.innerHTML = '<span></span>';\n\n const theme = this.__notification?.theme;\n const layout = html`\n <foxy-i18n\n style=\"color: var(--lumo-${theme ? `${theme}-contrast` : 'body-text'}-color)\"\n lang=${this.lang}\n key=${this.__notification?.key}\n ns=\"${this.ns} pagination\"\n >\n </foxy-i18n>\n `;\n\n render(layout, root.firstElementChild!);\n }}\n >\n </vaadin-notification>\n `;\n }\n\n private get __cardRenderer() {\n const item = this.item;\n\n if (this.__cachedCardRenderer?.item !== item) {\n this.__cachedCardRenderer = {\n item: item,\n render:\n typeof item === 'string'\n ? (new Function(\n 'ctx',\n `return ctx.html\\`\n <${item}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n infer=\"\"\n href=\\${ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item}>\\``\n ) as ItemRenderer)\n : ctx => html`\n <div style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\">\n ${item?.(ctx)}\n </div>\n `,\n };\n }\n\n return this.__cachedCardRenderer.render;\n }\n\n private get __dialog() {\n return this.renderRoot.querySelector('#form') as FormDialog;\n }\n\n private __renderActions() {\n return [\n this.filters.length > 0 && !this.__isSelecting\n ? html`\n <foxy-internal-async-list-control-filter-overlay\n .noVerticalOverlap=${true}\n .positionTarget=${this.renderRoot.querySelector('#filters')}\n .model=${{\n options: this.filters,\n value: this.__filter,\n lang: this.lang,\n ns: this.ns,\n }}\n ?opened=${this.__isFilterVisible}\n @vaadin-overlay-close=${() => (this.__isFilterVisible = false)}\n @search=${(evt: CustomEvent<string | undefined>) => {\n this.__filter = evt.detail ?? '';\n }}\n >\n </foxy-internal-async-list-control-filter-overlay>\n\n <vaadin-button\n theme=\"tertiary-inline contrast\"\n id=\"filters\"\n ?disabled=${this.disabled}\n @click=${() => (this.__isFilterVisible = !this.__isFilterVisible)}\n >\n <foxy-i18n infer=\"pagination\" key=\"search_button_text\"></foxy-i18n>\n </vaadin-button>\n `\n : '',\n\n this.bulkActions.length > 0 && this.first\n ? html`\n ${this.__selection.length > 0\n ? this.bulkActions.map(action => {\n const nPrefix = `${action.name}_bulk_action_notification`;\n const cPrefix = `${action.name}_bulk_action_caption`;\n const isActive = this.__activeBulkAction?.name === action.name;\n\n return html`\n <vaadin-button\n data-testclass=\"bulk-action\"\n theme=\"tertiary-inline\"\n ?disabled=${this.disabled || !!this.__activeBulkAction}\n @click=${async () => {\n this.__activeBulkAction = action;\n\n try {\n await action.onClick(this.__selection);\n this.__selection = [];\n this.__isSelecting = false;\n this.__notification = { key: `${nPrefix}_done`, theme: 'success' };\n } catch {\n this.__notification = { key: `${nPrefix}_fail`, theme: 'error' };\n } finally {\n this.__activeBulkAction = null;\n this.renderRoot.querySelector('vaadin-notification')?.open();\n }\n }}\n >\n <foxy-i18n\n infer=\"pagination\"\n key=\"${cPrefix}_${isActive ? 'busy' : 'idle'}\"\n .options=${{ count: this.__selection.length }}\n >\n </foxy-i18n>\n </vaadin-button>\n `;\n })\n : ''}\n <vaadin-button\n theme=\"tertiary-inline contrast\"\n ?disabled=${this.disabled || !!this.__activeBulkAction}\n @click=${() => {\n this.__isSelecting = !this.__isSelecting;\n this.__selection = [];\n }}\n >\n <foxy-i18n\n infer=\"pagination\"\n key=${this.__isSelecting ? 'cancel_button_text' : 'select_button_text'}\n >\n </foxy-i18n>\n </vaadin-button>\n `\n : '',\n\n (!this.form && !this.createPageHref) ||\n this.readonly ||\n this.hideCreateButton ||\n this.__isSelecting\n ? ''\n : this.createPageHref && !this.disabled\n ? html`\n <a\n class=\"rounded-s text-primary group focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.createPageHref}\n >\n <foxy-i18n\n class=\"transition-opacity group-hover-opacity-80\"\n infer=\"\"\n key=\"create_button_text\"\n >\n </foxy-i18n>\n </a>\n `\n : html`\n <vaadin-button\n theme=\"tertiary-inline\"\n ?disabled=${this.disabled}\n @click=${(evt: Event) => {\n evt.preventDefault();\n evt.stopPropagation();\n\n const dialog = this.__dialog;\n const button = evt.currentTarget as HTMLButtonElement;\n\n dialog.header = 'header_create';\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <foxy-i18n infer=\"pagination\" key=\"create_button_text\"></foxy-i18n>\n </vaadin-button>\n `,\n ].filter(v => !!v);\n }\n\n private __renderContent() {\n const helperText = this.helperText;\n const isDetails = this.layout === 'details';\n const label = this.label;\n\n let first: string | undefined;\n\n try {\n const url = new URL(this.first ?? '');\n const filter = new URLSearchParams(this.__filter);\n\n url.searchParams.set('limit', String(this.limit));\n filter.forEach((value, key) => url.searchParams.set(key, value));\n first = url.toString();\n } catch {\n first = undefined;\n }\n\n return html`\n <foxy-pagination\n first=${ifDefined(first)}\n infer=\"pagination\"\n class=${classMap({ hidden: isDetails && this.__totalItems === 0 })}\n >\n <foxy-collection-page\n class=${classMap({\n 'grid grid-cols-1 overflow-hidden': true,\n 'rounded': !isDetails,\n 'mt-s':\n !isDetails &&\n ((!!label && label !== 'label') || (!!helperText && helperText !== 'helper_text')),\n })}\n style=\"gap: 1px\"\n infer=\"card\"\n .related=${this.related}\n .props=${this.itemProps}\n .item=${this.__itemRenderer}\n @update=${(evt: UpdateEvent) => {\n const page = evt.currentTarget as CollectionPage<any>;\n this.__totalItems = parseInt(page.data?.total_items ?? 0);\n }}\n >\n </foxy-collection-page>\n </foxy-pagination>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalAsyncListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncListControl/InternalAsyncListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { CollectionPage, NucleonElement } from '../../public/index';\nimport type { BulkAction, SwipeAction } from './types';\nimport type { InternalSummaryControl } from '../InternalSummaryControl/InternalSummaryControl';\nimport type { InternalConfirmDialog } from '../InternalConfirmDialog';\nimport type { DialogHideEvent } from '../../private/Dialog/DialogHideEvent';\nimport type { HALJSONResource } from '../../public/NucleonElement/types';\nimport type { CheckboxElement } from '@vaadin/vaadin-checkbox';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { UpdateEvent } from '../../public/NucleonElement/UpdateEvent';\nimport type { FormDialog } from '../../index';\nimport type { Option } from '../../public/QueryBuilder/types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { render } from 'lit-html';\nimport { html } from 'lit-element';\n\nexport class InternalAsyncListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n keepDialogOpenOnDelete: { type: Boolean, attribute: 'keep-dialog-open-on-delete' },\n keepDialogOpenOnPost: { type: Boolean, attribute: 'keep-dialog-open-on-post' },\n hideDeleteButton: { type: Boolean, attribute: 'hide-delete-button' },\n hideCreateButton: { type: Boolean, attribute: 'hide-create-button' },\n createPageHref: { attribute: 'create-page-href' },\n getPageHref: { attribute: false },\n related: { type: Array },\n layout: {},\n first: {},\n limit: { type: Number },\n form: {},\n formProps: { type: Object, attribute: 'form-props' },\n item: {},\n itemProps: { type: Object, attribute: 'item-props' },\n wide: { type: Boolean },\n open: { type: Boolean },\n hideWhenEmpty: { type: Boolean, attribute: 'hide-when-empty' },\n alert: { type: Boolean },\n actions: { attribute: false },\n bulkActions: { attribute: false },\n filters: { type: Array },\n filter: {},\n __selection: { attribute: false },\n __totalItems: { attribute: false },\n __isSelecting: { attribute: false },\n __notification: { attribute: false },\n __isFilterVisible: { attribute: false },\n __activeBulkAction: { attribute: false },\n };\n }\n\n /** If true, FormDialog won't automatically close after the associated form deletes the resource. */\n keepDialogOpenOnDelete = false;\n\n /** If true, FormDialog won't automatically close after the associated form creates a resource. */\n keepDialogOpenOnPost = false;\n\n /** If provided, renders Create button as a link to this page. */\n createPageHref: string | null = null;\n\n /** Bulk actions that appear when one or more items are selected. */\n bulkActions = [] as BulkAction[];\n\n /** Same as the `related` property of `NucleonElement`. */\n related = [] as string[];\n\n /** When set to `details`, makes the entire control collapsible. */\n layout: 'details' | null = null;\n\n /** Swipe actions. */\n actions = [] as SwipeAction[];\n\n /** Query parameters to apply to the `first` URL. */\n filters = [] as Option[];\n\n /** Limit query parameter to apply to the `first` URL. */\n limit = 20;\n\n /** URI of the first page of the hAPI collection to display. */\n first: string | null = null;\n\n /** Same as the `form` property of `FormDialog`. If set, will open a dialog on item click. */\n form: FormDialog['form'] = null;\n\n /** Props to pass through to the form rendered by `FormDialog`. */\n formProps: Record<string, unknown> = {};\n\n /** Same as the `item` property of `CollectionPage`. */\n item: CollectionPage<any>['item'] = null;\n\n /** Props to pass through to the `CollectionPage` rendering items. */\n itemProps: Record<string, unknown> = {};\n\n /** Same as the `wide` property of `FormDialog`. */\n wide = false;\n\n /** Visually hides the control when the collection is empty or loading. */\n hideWhenEmpty = false;\n\n /** Same as the `open` property of `InternalSummaryControl`. */\n open = false;\n\n /** Same as the `alert` property of `FormDialog`. */\n alert = false;\n\n /** Hides Delete Swipe Action if true. */\n hideDeleteButton = false;\n\n /** Hides Create button if true. */\n hideCreateButton = false;\n\n /** If set, renders list items as <a> tags. */\n getPageHref: ((itemHref: string, item: unknown) => string | null) | null = null;\n\n filter: string | null = null;\n\n private __deletionConfimationCallback: (() => void) | null = null;\n\n private __cachedCardRenderer: {\n item: InternalAsyncListControl['item'];\n render: ItemRenderer;\n } | null = null;\n\n private __activeBulkAction: BulkAction | null = null;\n\n private __isFilterVisible = false;\n\n private __notification: { key: string; theme?: string } | null = null;\n\n private __isSelecting = false;\n\n private __totalItems = 0;\n\n private __selection: HALJSONResource[] = [];\n\n private __itemRenderer: ItemRenderer = ctx => {\n const item = this.__cardRenderer(ctx);\n const readonlyItem = html`<div class=\"bg-contrast-5\">${item}</div>`;\n\n if (!ctx.data) return readonlyItem;\n\n if (this.__isSelecting) {\n return html`\n <vaadin-checkbox\n class=${classMap({ 'block w-full': true, 'bg-contrast-5': this.layout === 'details' })}\n style=\"padding-left: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n data-async-list-control\n ?disabled=${this.disabled || !!this.__activeBulkAction}\n ?checked=${this.__selection.find(v => v._links.self.href === ctx.data!._links.self.href)}\n @change=${(evt: CustomEvent) => {\n if ((evt.currentTarget as CheckboxElement).checked) {\n this.__selection = [...this.__selection, ctx.data!];\n } else {\n this.__selection = this.__selection.filter(\n v => v._links.self.href !== ctx.data!._links.self.href\n );\n }\n }}\n >\n ${this.__cardRenderer(ctx)}\n </vaadin-checkbox>\n `;\n }\n\n const href = this.getPageHref?.(ctx.href, ctx.data);\n if (typeof href !== 'string' && !this.form) return readonlyItem;\n\n const isDisabled = this.disabledSelector.matches('card', true);\n const card = this.__cardRenderer(ctx);\n let clickableItem: TemplateResult;\n\n const wrapperClass = classMap({\n 'rounded-t': this.layout !== 'details' && !ctx.previous,\n 'rounded-b': !ctx.next,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n 'text-left w-full block bg-contrast-5 transition-colors': true,\n 'hover-bg-contrast-10': !isDisabled,\n });\n\n if (this.getPageHref) {\n if (isDisabled) {\n clickableItem = html`<div class=${wrapperClass}>${card}</div>`;\n } else {\n const href = this.getPageHref(ctx.href, ctx.data);\n clickableItem = html`<a class=${wrapperClass} href=${href}>${card}</a>`;\n }\n } else {\n const handleClick = (evt: Event) => {\n const clickEvent = new CustomEvent<string>('itemclick', {\n cancelable: true,\n composed: true,\n bubbles: true,\n detail: ctx.href,\n });\n\n if (this.dispatchEvent(clickEvent)) {\n const button = evt.currentTarget as HTMLButtonElement;\n const dialog = this.__dialog;\n\n dialog.header = 'header_update';\n dialog.href = ctx.href;\n dialog.show(button);\n }\n };\n\n clickableItem = html`\n <button ?disabled=${isDisabled} class=${wrapperClass} @click=${handleClick}>${card}</button>\n `;\n }\n\n if ((this.hideDeleteButton && !this.actions.length) || this.readonly) return clickableItem;\n\n return html`\n <foxy-swipe-actions class=\"block\">\n ${clickableItem}\n ${this.actions.map(action => {\n return html`\n <vaadin-button\n data-testclass=\"action\"\n theme=${action.theme}\n class=\"h-full rounded-none relative\"\n slot=\"action\"\n ?disabled=${this.disabled}\n @click=${() => action.onClick(ctx.data!)}\n >\n <foxy-i18n\n class=${classMap({\n 'transition-opacity': true,\n 'opacity-0': action.state !== 'idle',\n })}\n infer=\"\"\n key=${action.text}\n >\n </foxy-i18n>\n <div\n class=${classMap({\n 'absolute inset-0 flex items-center justify-center transition-opacity': true,\n 'opacity-0': action.state === 'idle',\n })}\n >\n <foxy-spinner layout=\"no-label\" infer=\"spinner\" state=${action.state}>\n </foxy-spinner>\n </div>\n </vaadin-button>\n `;\n })}\n ${this.hideDeleteButton\n ? ''\n : html`\n <vaadin-button\n theme=\"primary error\"\n class=\"h-full rounded-none\"\n slot=\"action\"\n @click=${(evt: CustomEvent) => {\n const button = evt.currentTarget as HTMLElement;\n const confirm = this.renderRoot.querySelector(\n '#confirm'\n ) as InternalConfirmDialog;\n\n confirm.show(button);\n\n this.__deletionConfimationCallback = () => {\n const cardButton = button.parentElement!.firstElementChild!;\n const card = cardButton.querySelector<NucleonElement<any>>('[href]');\n\n card?.delete();\n this.__deletionConfimationCallback = null;\n };\n }}\n >\n <foxy-i18n infer=\"\" key=\"delete_button_text\"></foxy-i18n>\n </vaadin-button>\n `}\n </foxy-swipe-actions>\n `;\n };\n\n render(): TemplateResult {\n const hidden = this.hideWhenEmpty && !this.__totalItems;\n return html`<div class=${classMap({ hidden })}>${super.render()}</div>`;\n }\n\n renderControl(): TemplateResult {\n const actions = this.__renderActions();\n const content = this.__renderContent();\n\n return html`\n ${this.form && !this.__isSelecting\n ? html`\n <foxy-form-dialog\n parent=${ifDefined(this.first ?? void 0)}\n infer=\"dialog\"\n id=\"form\"\n ?wide=${this.wide}\n ?alert=${this.alert}\n ?keep-open-on-post=${this.keepDialogOpenOnPost}\n ?keep-open-on-delete=${this.keepDialogOpenOnDelete}\n .related=${this.related}\n .props=${this.formProps}\n .form=${this.form as any}\n >\n </foxy-form-dialog>\n `\n : ''}\n ${this.hideDeleteButton || this.readonly || this.__isSelecting\n ? ''\n : html`\n <foxy-internal-confirm-dialog\n message=\"delete_message\"\n confirm=\"delete_confirm\"\n cancel=\"delete_cancel\"\n header=\"delete_header\"\n theme=\"error\"\n infer=\"\"\n id=\"confirm\"\n @hide=${(evt: DialogHideEvent) => {\n if (!evt.detail.cancelled) this.__deletionConfimationCallback?.();\n }}\n >\n </foxy-internal-confirm-dialog>\n `}\n ${this.layout === 'details'\n ? html`\n <foxy-internal-summary-control\n layout=\"details\"\n count=${ifDefined(this.open ? void 0 : `${this.__totalItems}`)}\n infer=\"\"\n ?open=${this.open}\n @toggle=${(evt: CustomEvent) => {\n const summary = evt.currentTarget as InternalSummaryControl;\n this.open = summary.open;\n if (!evt.composed && !evt.bubbles) this.dispatchEvent(new CustomEvent('toggle'));\n }}\n >\n ${actions.length\n ? html`\n <div class=\"flex gap-s\">\n <foxy-i18n\n infer=\"\"\n class=\"mr-auto text-tertiary\"\n key=\"total_items\"\n .options=${{ count: this.__totalItems }}\n >\n </foxy-i18n>\n ${actions}\n </div>\n `\n : ''}\n <div class=\"p-0 bg-transparent\">${content}</div>\n </foxy-internal-summary-control>\n `\n : html`\n <div class=\"flex gap-s items-center justify-between font-medium\">\n <span class=\"text-body mr-auto text-l\">\n ${this.label && this.label !== 'label' ? this.label : ''}\n </span>\n ${actions}\n </div>\n\n <div\n class=\"text-secondary text-s\"\n ?hidden=${!this.helperText || this.helperText === 'helper_text'}\n >\n ${this.helperText}\n </div>\n\n ${content}\n `}\n\n <div\n class=\"mt-s text-s leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly || this.__isSelecting}\n >\n ${this._errorMessage}\n </div>\n\n <vaadin-notification\n position=\"bottom-end\"\n duration=\"3000\"\n theme=${ifDefined(this.__notification?.theme)}\n .renderer=${(root: HTMLElement) => {\n if (!root.firstElementChild) root.innerHTML = '<span></span>';\n\n const theme = this.__notification?.theme;\n const layout = html`\n <foxy-i18n\n style=\"color: var(--lumo-${theme ? `${theme}-contrast` : 'body-text'}-color)\"\n lang=${this.lang}\n key=${this.__notification?.key}\n ns=\"${this.ns} pagination\"\n >\n </foxy-i18n>\n `;\n\n render(layout, root.firstElementChild!);\n }}\n >\n </vaadin-notification>\n `;\n }\n\n private get __cardRenderer() {\n const item = this.item;\n\n if (this.__cachedCardRenderer?.item !== item) {\n this.__cachedCardRenderer = {\n item: item,\n render:\n typeof item === 'string'\n ? (new Function(\n 'ctx',\n `return ctx.html\\`\n <${item}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n infer=\"\"\n href=\\${ctx.href}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item}>\\``\n ) as ItemRenderer)\n : ctx => html`\n <div style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\">\n ${item?.(ctx)}\n </div>\n `,\n };\n }\n\n return this.__cachedCardRenderer.render;\n }\n\n private get __dialog() {\n return this.renderRoot.querySelector('#form') as FormDialog;\n }\n\n private __renderActions() {\n return [\n this.filters.length > 0 && !this.__isSelecting\n ? html`\n <foxy-internal-async-list-control-filter-overlay\n .noVerticalOverlap=${true}\n .positionTarget=${this.renderRoot.querySelector('#filters')}\n .model=${{\n options: this.filters,\n value: this.filter ?? '',\n lang: this.lang,\n ns: this.ns,\n }}\n ?opened=${this.__isFilterVisible}\n @vaadin-overlay-close=${() => (this.__isFilterVisible = false)}\n @search=${(evt: CustomEvent<string | undefined>) => {\n this.filter = evt.detail ?? '';\n }}\n >\n </foxy-internal-async-list-control-filter-overlay>\n\n <vaadin-button\n theme=\"tertiary-inline contrast\"\n id=\"filters\"\n ?disabled=${this.disabled}\n @click=${() => (this.__isFilterVisible = !this.__isFilterVisible)}\n >\n <foxy-i18n infer=\"pagination\" key=\"search_button_text\"></foxy-i18n>\n ${this.filter ? html`<span>(${this.filter.split('&').length})</span>` : ''}\n </vaadin-button>\n `\n : '',\n\n this.bulkActions.length > 0 && this.first\n ? html`\n ${this.__selection.length > 0\n ? this.bulkActions.map(action => {\n const nPrefix = `${action.name}_bulk_action_notification`;\n const cPrefix = `${action.name}_bulk_action_caption`;\n const isActive = this.__activeBulkAction?.name === action.name;\n\n return html`\n <vaadin-button\n data-testclass=\"bulk-action\"\n theme=\"tertiary-inline\"\n ?disabled=${this.disabled || !!this.__activeBulkAction}\n @click=${async () => {\n this.__activeBulkAction = action;\n\n try {\n await action.onClick(this.__selection);\n this.__selection = [];\n this.__isSelecting = false;\n this.__notification = { key: `${nPrefix}_done`, theme: 'success' };\n } catch {\n this.__notification = { key: `${nPrefix}_fail`, theme: 'error' };\n } finally {\n this.__activeBulkAction = null;\n this.renderRoot.querySelector('vaadin-notification')?.open();\n }\n }}\n >\n <foxy-i18n\n infer=\"pagination\"\n key=\"${cPrefix}_${isActive ? 'busy' : 'idle'}\"\n .options=${{ count: this.__selection.length }}\n >\n </foxy-i18n>\n </vaadin-button>\n `;\n })\n : ''}\n <vaadin-button\n theme=\"tertiary-inline contrast\"\n ?disabled=${this.disabled || !!this.__activeBulkAction}\n @click=${() => {\n this.__isSelecting = !this.__isSelecting;\n this.__selection = [];\n }}\n >\n <foxy-i18n\n infer=\"pagination\"\n key=${this.__isSelecting ? 'cancel_button_text' : 'select_button_text'}\n >\n </foxy-i18n>\n </vaadin-button>\n `\n : '',\n\n (!this.form && !this.createPageHref) ||\n this.readonly ||\n this.hideCreateButton ||\n this.__isSelecting\n ? ''\n : this.createPageHref && !this.disabled\n ? html`\n <a\n class=\"rounded-s text-primary group focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${this.createPageHref}\n >\n <foxy-i18n\n class=\"transition-opacity group-hover-opacity-80\"\n infer=\"\"\n key=\"create_button_text\"\n >\n </foxy-i18n>\n </a>\n `\n : html`\n <vaadin-button\n theme=\"tertiary-inline\"\n ?disabled=${this.disabled}\n @click=${(evt: Event) => {\n evt.preventDefault();\n evt.stopPropagation();\n\n const dialog = this.__dialog;\n const button = evt.currentTarget as HTMLButtonElement;\n\n dialog.header = 'header_create';\n dialog.href = '';\n dialog.show(button);\n }}\n >\n <foxy-i18n infer=\"pagination\" key=\"create_button_text\"></foxy-i18n>\n </vaadin-button>\n `,\n ].filter(v => !!v);\n }\n\n private __renderContent() {\n const helperText = this.helperText;\n const isDetails = this.layout === 'details';\n const label = this.label;\n\n let first: string | undefined;\n\n try {\n const url = new URL(this.first ?? '');\n const filter = new URLSearchParams(this.filter ?? '');\n\n url.searchParams.set('limit', String(this.limit));\n filter.forEach((value, key) => url.searchParams.set(key, value));\n first = url.toString();\n } catch {\n first = undefined;\n }\n\n return html`\n <foxy-pagination\n first=${ifDefined(first)}\n infer=\"pagination\"\n class=${classMap({ hidden: isDetails && this.__totalItems === 0 })}\n >\n <foxy-collection-page\n class=${classMap({\n 'grid grid-cols-1 overflow-hidden': true,\n 'rounded': !isDetails,\n 'mt-s':\n !isDetails &&\n ((!!label && label !== 'label') || (!!helperText && helperText !== 'helper_text')),\n })}\n style=\"gap: 1px\"\n infer=\"card\"\n .related=${this.related}\n .props=${this.itemProps}\n .item=${this.__itemRenderer}\n @update=${(evt: UpdateEvent) => {\n const page = evt.currentTarget as CollectionPage<any>;\n this.__totalItems = parseInt(page.data?.total_items ?? 0);\n }}\n >\n </foxy-collection-page>\n </foxy-pagination>\n `;\n }\n}\n"]}
@@ -14,4 +14,5 @@ export declare class InternalDateControl extends InternalEditableControl {
14
14
  layout: 'summary-item' | 'standalone' | null;
15
15
  renderControl(): TemplateResult;
16
16
  private get __pickerI18n();
17
+ private __toApiDate;
17
18
  }
@@ -60,13 +60,14 @@ export class InternalDateControl extends InternalEditableControl {
60
60
  clear-button-visible
61
61
  @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
62
62
  @change=${(evt) => {
63
- var _a, _b, _c, _d;
63
+ var _a, _b;
64
64
  const field = evt.currentTarget;
65
65
  if (this.format === 'unix') {
66
66
  this._value = Math.floor(((_b = (_a = parseDate(field.value)) === null || _a === void 0 ? void 0 : _a.getTime()) !== null && _b !== void 0 ? _b : 0) / 1000);
67
67
  }
68
68
  else if (this.format === 'iso-long') {
69
- this._value = (_d = (_c = parseDate(field.value)) === null || _c === void 0 ? void 0 : _c.toISOString()) !== null && _d !== void 0 ? _d : null;
69
+ const parsedDate = parseDate(field.value);
70
+ this._value = parsedDate ? this.__toApiDate(parsedDate) : null;
70
71
  }
71
72
  else {
72
73
  this._value = field.value;
@@ -95,5 +96,20 @@ export class InternalDateControl extends InternalEditableControl {
95
96
  },
96
97
  };
97
98
  }
99
+ __toApiDate(date) {
100
+ return date
101
+ .toLocaleString('en-US', {
102
+ timeZone: 'America/Los_Angeles',
103
+ timeZoneName: 'longOffset',
104
+ year: 'numeric',
105
+ month: '2-digit',
106
+ day: '2-digit',
107
+ hour: '2-digit',
108
+ minute: '2-digit',
109
+ second: '2-digit',
110
+ hour12: false,
111
+ })
112
+ .replace(/(\d+)\/(\d+)\/(\d+),\s(\d+):(\d+):(\d+) GMT([+-])(\d+):(\d+)/, '$3-$1-$2T$4:$5:$6$7$8$9');
113
+ }
98
114
  }
99
115
  //# sourceMappingURL=InternalDateControl.js.map