@foxy.io/elements 1.32.0-beta.3 → 1.32.0-beta.4

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 (213) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  6. package/dist/cdn/foxy-api-browser.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  8. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  9. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-card.js +1 -1
  11. package/dist/cdn/foxy-attribute-form.js +1 -1
  12. package/dist/cdn/foxy-billing-address-card.js +1 -1
  13. package/dist/cdn/foxy-cancellation-form.js +1 -1
  14. package/dist/cdn/foxy-cart-card.js +1 -1
  15. package/dist/cdn/foxy-cart-form.js +1 -1
  16. package/dist/cdn/foxy-client-card.js +1 -1
  17. package/dist/cdn/foxy-client-form.js +1 -1
  18. package/dist/cdn/foxy-collection-page.js +1 -1
  19. package/dist/cdn/foxy-collection-pages.js +1 -1
  20. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  21. package/dist/cdn/foxy-coupon-card.js +1 -1
  22. package/dist/cdn/foxy-coupon-code-card.js +1 -1
  23. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  24. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  25. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  26. package/dist/cdn/foxy-coupon-form.js +1 -1
  27. package/dist/cdn/foxy-custom-field-card.js +1 -1
  28. package/dist/cdn/foxy-custom-field-form.js +1 -1
  29. package/dist/cdn/foxy-customer-card.js +1 -1
  30. package/dist/cdn/foxy-customer-form.js +1 -1
  31. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  32. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  33. package/dist/cdn/foxy-customer-portal.js +1 -1
  34. package/dist/cdn/foxy-customer.js +1 -1
  35. package/dist/cdn/foxy-customers-table.js +1 -1
  36. package/dist/cdn/foxy-discount-builder.js +1 -1
  37. package/dist/cdn/foxy-discount-card.js +1 -1
  38. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  39. package/dist/cdn/foxy-donation.js +1 -1
  40. package/dist/cdn/foxy-downloadable-card.js +1 -1
  41. package/dist/cdn/foxy-downloadable-form.js +1 -1
  42. package/dist/cdn/foxy-email-template-card.js +1 -1
  43. package/dist/cdn/foxy-email-template-form.js +1 -1
  44. package/dist/cdn/foxy-error-entry-card.js +1 -1
  45. package/dist/cdn/foxy-filter-attribute-card.js +1 -1
  46. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  47. package/dist/cdn/foxy-form-dialog.js +1 -1
  48. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  49. package/dist/cdn/foxy-gift-card-card.js +1 -1
  50. package/dist/cdn/foxy-gift-card-code-card.js +1 -1
  51. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  52. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  53. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  54. package/dist/cdn/foxy-gift-card-form.js +1 -1
  55. package/dist/cdn/foxy-i18n-editor.js +1 -1
  56. package/dist/cdn/foxy-i18n.js +1 -1
  57. package/dist/cdn/foxy-integration-card.js +1 -1
  58. package/dist/cdn/foxy-integration-form.js +1 -1
  59. package/dist/cdn/foxy-item-card.js +1 -1
  60. package/dist/cdn/foxy-item-category-card.js +1 -1
  61. package/dist/cdn/foxy-item-category-form.js +1 -1
  62. package/dist/cdn/foxy-item-form.js +1 -1
  63. package/dist/cdn/foxy-item-option-card.js +1 -1
  64. package/dist/cdn/foxy-item-option-form.js +1 -1
  65. package/dist/cdn/foxy-items-form.js +1 -1
  66. package/dist/cdn/foxy-native-integration-card.js +1 -1
  67. package/dist/cdn/foxy-native-integration-form.js +1 -1
  68. package/dist/cdn/foxy-pagination.js +1 -1
  69. package/dist/cdn/foxy-passkey-card.js +1 -1
  70. package/dist/cdn/foxy-passkey-form.js +1 -1
  71. package/dist/cdn/foxy-payment-card-embed.js +1 -1
  72. package/dist/cdn/foxy-payment-card.js +1 -1
  73. package/dist/cdn/foxy-payment-method-card.js +1 -1
  74. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  75. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  76. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  77. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  78. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  79. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  80. package/dist/cdn/foxy-query-builder.js +1 -1
  81. package/dist/cdn/foxy-report-form.js +1 -1
  82. package/dist/cdn/foxy-reports-table.js +1 -1
  83. package/dist/cdn/foxy-shipment-card.js +1 -1
  84. package/dist/cdn/foxy-shipping-container-card.js +1 -1
  85. package/dist/cdn/foxy-shipping-drop-type-card.js +1 -1
  86. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  87. package/dist/cdn/foxy-shipping-service-card.js +1 -1
  88. package/dist/cdn/foxy-sign-in-form.js +1 -1
  89. package/dist/cdn/foxy-spinner.js +2 -2
  90. package/dist/cdn/foxy-store-card.js +1 -1
  91. package/dist/cdn/foxy-store-form.js +1 -1
  92. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  93. package/dist/cdn/foxy-subscription-card.js +1 -1
  94. package/dist/cdn/foxy-subscription-form.js +1 -1
  95. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  96. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  97. package/dist/cdn/foxy-table.js +1 -1
  98. package/dist/cdn/foxy-tax-card.js +1 -1
  99. package/dist/cdn/foxy-tax-form.js +1 -1
  100. package/dist/cdn/foxy-template-config-form.js +1 -1
  101. package/dist/cdn/foxy-template-form.js +1 -1
  102. package/dist/cdn/foxy-template-set-card.js +1 -1
  103. package/dist/cdn/foxy-template-set-form.js +1 -1
  104. package/dist/cdn/foxy-transaction-card.js +1 -1
  105. package/dist/cdn/foxy-transaction.js +1 -1
  106. package/dist/cdn/foxy-transactions-table.js +7 -7
  107. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  108. package/dist/cdn/foxy-user-card.js +1 -1
  109. package/dist/cdn/foxy-user-form.js +1 -1
  110. package/dist/cdn/foxy-user-invitation-card.js +1 -1
  111. package/dist/cdn/foxy-user-invitation-form.js +1 -1
  112. package/dist/cdn/foxy-users-table.js +1 -1
  113. package/dist/cdn/foxy-webhook-card.js +1 -1
  114. package/dist/cdn/foxy-webhook-form.js +1 -1
  115. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  116. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  117. package/dist/cdn/{shared-4efc6bb8.js → shared-001dfdb6.js} +1 -1
  118. package/dist/cdn/{shared-b6ab5711.js → shared-02d4f592.js} +1 -1
  119. package/dist/cdn/shared-03427c91.js +1 -0
  120. package/dist/cdn/{shared-24c7c37f.js → shared-08e7b7e5.js} +1 -1
  121. package/dist/cdn/{shared-9de0a899.js → shared-09350008.js} +1 -1
  122. package/dist/cdn/{shared-838cc86b.js → shared-0e58c95c.js} +1 -1
  123. package/dist/cdn/{shared-9e94c56d.js → shared-0e80f20c.js} +1 -1
  124. package/dist/cdn/{shared-a4b0ccf4.js → shared-0ec6badf.js} +1 -1
  125. package/dist/cdn/{shared-f97ed2ff.js → shared-10674b72.js} +1 -1
  126. package/dist/cdn/{shared-9ef03974.js → shared-1183a365.js} +1 -1
  127. package/dist/cdn/{shared-64d9ac2a.js → shared-11902e83.js} +1 -1
  128. package/dist/cdn/{shared-c9f3f8d3.js → shared-12c2e2c7.js} +1 -1
  129. package/dist/cdn/{shared-55bc51c8.js → shared-1e827d8b.js} +1 -1
  130. package/dist/cdn/{shared-4e1b5fa3.js → shared-20b733ff.js} +1 -1
  131. package/dist/cdn/{shared-978aaaf2.js → shared-297ee58c.js} +1 -1
  132. package/dist/cdn/{shared-1c169878.js → shared-2ae2767e.js} +1 -1
  133. package/dist/cdn/{shared-91560256.js → shared-2d2e210c.js} +1 -1
  134. package/dist/cdn/{shared-1cd2db2d.js → shared-32af1656.js} +1 -1
  135. package/dist/cdn/{shared-45bef1ac.js → shared-33c54c6e.js} +1 -1
  136. package/dist/cdn/{shared-f1b29592.js → shared-35093aea.js} +7 -7
  137. package/dist/cdn/{shared-f0d70be1.js → shared-394d6660.js} +1 -1
  138. package/dist/cdn/{shared-537d2efe.js → shared-395b2f4c.js} +1 -1
  139. package/dist/cdn/{shared-ed9c9bab.js → shared-3e302c9e.js} +1 -1
  140. package/dist/cdn/{shared-ac6e1790.js → shared-513e54c9.js} +1 -1
  141. package/dist/cdn/{shared-783f6e58.js → shared-51415f88.js} +1 -1
  142. package/dist/cdn/{shared-30b4c05b.js → shared-532dd9aa.js} +1 -1
  143. package/dist/cdn/{shared-1cfea4b6.js → shared-555c2785.js} +1 -1
  144. package/dist/cdn/{shared-eff5dcb0.js → shared-58e2c070.js} +1 -1
  145. package/dist/cdn/{shared-3a066450.js → shared-5f00bc80.js} +1 -1
  146. package/dist/cdn/{shared-c6b69d4e.js → shared-65c53765.js} +1 -1
  147. package/dist/cdn/{shared-d713c00f.js → shared-6745d2ec.js} +1 -1
  148. package/dist/cdn/{shared-906fe068.js → shared-676a6445.js} +1 -1
  149. package/dist/cdn/{shared-de45ad84.js → shared-68470d06.js} +1 -1
  150. package/dist/cdn/{shared-be093279.js → shared-68ae5d92.js} +1 -1
  151. package/dist/cdn/{shared-08c637a9.js → shared-772745f5.js} +1 -1
  152. package/dist/cdn/shared-7c1d9bf8.js +1 -0
  153. package/dist/cdn/{shared-4a86d1ca.js → shared-8405bdfa.js} +1 -1
  154. package/dist/cdn/{shared-25324930.js → shared-89db9c39.js} +1 -1
  155. package/dist/cdn/{shared-d8cd61ed.js → shared-8f8c3902.js} +1 -1
  156. package/dist/cdn/{shared-85989cf3.js → shared-94965d32.js} +1 -1
  157. package/dist/cdn/{shared-8a8bfd72.js → shared-960eac62.js} +1 -1
  158. package/dist/cdn/{shared-787e52c4.js → shared-a62af87b.js} +1 -1
  159. package/dist/cdn/{shared-5ff1affd.js → shared-a811962b.js} +1 -1
  160. package/dist/cdn/{shared-26425c01.js → shared-abc64854.js} +1 -1
  161. package/dist/cdn/{shared-08e42e78.js → shared-acba6fbd.js} +1 -1
  162. package/dist/cdn/{shared-0f261023.js → shared-ad9eae20.js} +1 -1
  163. package/dist/cdn/{shared-51bb937b.js → shared-af70646d.js} +1 -1
  164. package/dist/cdn/{shared-011d6240.js → shared-b4b7767a.js} +1 -1
  165. package/dist/cdn/{shared-45ecb912.js → shared-b6c5ab3b.js} +1 -1
  166. package/dist/cdn/shared-b79fd251.js +1 -0
  167. package/dist/cdn/{shared-0a24f318.js → shared-b7ee8271.js} +1 -1
  168. package/dist/cdn/{shared-c7ffb9f2.js → shared-b8bdf3ae.js} +2 -2
  169. package/dist/cdn/{shared-620dccaa.js → shared-b9af1789.js} +1 -1
  170. package/dist/cdn/{shared-4d543043.js → shared-bd59ddc4.js} +1 -1
  171. package/dist/cdn/{shared-0e44bfff.js → shared-c1c20484.js} +1 -1
  172. package/dist/cdn/{shared-37cf92bd.js → shared-c1c481c3.js} +1 -1
  173. package/dist/cdn/{shared-c89f7ad5.js → shared-ca0700a7.js} +1 -1
  174. package/dist/cdn/{shared-b74187e9.js → shared-d6bf2433.js} +1 -1
  175. package/dist/cdn/{shared-8f3fdf8b.js → shared-de2dfe65.js} +5 -5
  176. package/dist/cdn/{shared-34c84b9f.js → shared-e24f4d30.js} +1 -1
  177. package/dist/cdn/{shared-c40a4b0c.js → shared-e86b8958.js} +1 -1
  178. package/dist/cdn/{shared-9411a937.js → shared-e95ac70b.js} +1 -1
  179. package/dist/cdn/{shared-e3647540.js → shared-ea378d0a.js} +1 -1
  180. package/dist/cdn/{shared-3491d10e.js → shared-f0c7a963.js} +1 -1
  181. package/dist/cdn/{shared-e1850e5f.js → shared-f23cde6c.js} +1 -1
  182. package/dist/cdn/{shared-045bd59c.js → shared-f7474be7.js} +1 -1
  183. package/dist/cdn/{shared-57cc81b4.js → shared-fa5e0813.js} +1 -1
  184. package/dist/cdn/{shared-8b9ae780.js → shared-fc176bc4.js} +1 -1
  185. package/dist/cdn/translations/coupon-form/en.json +39 -39
  186. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js +13 -27
  187. package/dist/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.js.map +1 -1
  188. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +123 -139
  189. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -1
  190. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.d.ts +2 -2
  191. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js +28 -47
  192. package/dist/elements/internal/InternalQueryBuilderControl/InternalQueryBuilderControl.js.map +1 -1
  193. package/dist/elements/public/CouponForm/CouponForm.d.ts +1 -0
  194. package/dist/elements/public/CouponForm/CouponForm.js +27 -24
  195. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  196. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js +9 -27
  197. package/dist/elements/public/CouponForm/internal/InternalCouponFormRulesControl/InternalCouponFormRulesControl.js.map +1 -1
  198. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js +1 -5
  199. package/dist/elements/public/DiscountBuilder/DiscountBuilder.js.map +1 -1
  200. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +4 -2
  201. package/dist/elements/public/QueryBuilder/QueryBuilder.js +6 -3
  202. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  203. package/dist/elements/public/QueryBuilder/components/Rule.js +4 -3
  204. package/dist/elements/public/QueryBuilder/components/Rule.js.map +1 -1
  205. package/dist/elements/public/QueryBuilder/utils/stringify.d.ts +1 -1
  206. package/dist/elements/public/QueryBuilder/utils/stringify.js +7 -5
  207. package/dist/elements/public/QueryBuilder/utils/stringify.js.map +1 -1
  208. package/dist/mixins/themeable.js +0 -5
  209. package/dist/mixins/themeable.js.map +1 -1
  210. package/package.json +1 -1
  211. package/dist/cdn/shared-56d1eae5.js +0 -1
  212. package/dist/cdn/shared-73c1d31e.js +0 -1
  213. package/dist/cdn/shared-97e1f413.js +0 -1
@@ -0,0 +1 @@
1
+ import"./shared-b7ee8271.js";import"./foxy-collection-page.js";import"./foxy-nucleon-element.js";import"./foxy-pagination.js";import"./shared-af70646d.js";import{I as e}from"./shared-1e827d8b.js";import{m as i,_ as t}from"./shared-d1195c27.js";import{N as r}from"./shared-2ad18636.js";import{i as s}from"./shared-9803aa7c.js";import{c as n}from"./shared-4e709717.js";import{h as o,c as a}from"./shared-dc73b9a5.js";let l,d,h,c,u,f=e=>e;customElements.define("foxy-internal-async-resource-link-list-control",class extends e{constructor(){super(...arguments),this.foreignKeyForUri=null,this.foreignKeyForId=null,this.ownKeyForUri=null,this.optionsHref=null,this.linksHref=null,this.embedKey=null,this.ownUri=null,this.limit=20,this.item=null,this.__getItemRenderer=i(((e,i)=>new Function("ctx",`return ctx.html\`\n <${null!=e?e:"foxy-null"}\n related=\${JSON.stringify(ctx.related)}\n parent=\${ctx.parent}\n infer=""\n ${i?".data=${ctx.data}":"href=${ctx.href}"}\n ...=\${ctx.spread(ctx.props)}\n >\n </${null!=e?e:"foxy-null"}>\``)),((...e)=>e.join())),this.__renderItem=e=>{var i;const t=this.__getItemRenderer(this.item,!!e.data),r=e=>o(l||(l=f` <div style="padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)">${0}</div> `),e);if(!e.href||e.href.startsWith("foxy://"))return r(t(e));if(this.readonly)return r(t(e));const s=this.foreignKeyForUri,n=s?null===(i=this.__allLinks)||void 0===i?void 0:i.find((i=>i[s]===e.href)):void 0,a=this.disabled||!this.__allLinks||this.__isFetching;return r(o(d||(d=f` <vaadin-checkbox class="block" ?disabled="${0}" ?checked="${0}" @change="${0}"> <div class="transition-opacity ${0}"> ${0} </div> </vaadin-checkbox> `),a,!!n,(i=>{var t,r,s;i.currentTarget.checked?this.__insertLink(null!==(r=null===(t=e.data)||void 0===t?void 0:t._links.self.href)&&void 0!==r?r:""):this.__deleteLink(null!==(s=null==n?void 0:n._links.self.href)&&void 0!==s?s:"")}),a?"opacity-50":"opacity-100",t(e)))},this.__isFetching=!1}static get properties(){return t(t({},super.properties),{},{foreignKeyForUri:{attribute:"foreign-key-for-uri"},foreignKeyForId:{attribute:"foreign-key-for-id"},ownKeyForUri:{attribute:"own-key-for-uri"},optionsHref:{attribute:"options-href"},linksHref:{attribute:"links-href"},embedKey:{attribute:"embed-key"},ownUri:{attribute:"own-uri"},limit:{type:Number},item:{},__isFetching:{attribute:!1}})}static get styles(){return[super.styles,a(h||(h=f`vaadin-checkbox::part(label){margin:0 0 0 calc(.625em + (var(--lumo-border-radius)/ 4) - 1px);align-self:center}`))]}renderControl(){var e;let i;try{const t=new URL(null!==(e=this.optionsHref)&&void 0!==e?e:"");t.searchParams.set("limit",this.limit.toString()),i=t.toString()}catch(e){i=void 0}const t=this.__isFetching||!this.__allLinks;return o(c||(c=f` <div class="group"> <div class="mb-s" ?hidden="${0}"> <div class="flex justify-between font-medium text-l" ?hidden="${0}"> <span>${0}</span> <foxy-i18n class="transition-opacity ${0}" infer="" key="${0}"> </foxy-i18n> </div> <div class="text-secondary text-s" ?hidden="${0}">${0}</div> </div> <foxy-pagination first="${0}" infer="pagination"> <foxy-collection-page infer="card" class="${0}" .item="${0}"> </foxy-collection-page> </foxy-pagination> <div class="mt-s text-s leading-xs text-error" ?hidden="${0}"> ${0} </div> ${0} </div> `),!this.label&&!this.helperText,!this.label,this.label,t?"opacity-100":"opacity-0",this.__isFetching?"status_saving":"status_loading",!this.helperText,this.helperText,s(i),n({"block transition-colors divide-y rounded overflow-hidden":!0,"bg-contrast-5 divide-contrast-10":!0}),this.__renderItem,!this._errorMessage||this.disabled||this.readonly,this._errorMessage,this.__renderLinkResourceLoaders())}updated(e){var i,t;super.updated(e),e.has("item")&&(null===(t=(i=this.__getItemRenderer.cache).clear)||void 0===t||t.call(i))}async __insertLink(e){var i,t,s,n,o,a;this.__isFetching=!0;const l=new r.API(this),d=await l.fetch(null!==(i=this.linksHref)&&void 0!==i?i:"",{method:"POST",body:JSON.stringify({[null!==(t=this.foreignKeyForUri)&&void 0!==t?t:""]:e,[null!==(s=this.ownKeyForUri)&&void 0!==s?s:""]:this.ownUri})});if(d.ok){const e=await d.json(),i=await l.fetch(e._links.self.href);if(i.ok){const t=r.Rumour(null!==(o=null===(n=this.nucleon)||void 0===n?void 0:n.group)&&void 0!==o?o:""),s=await i.json();t.share({related:[null!==(a=this.linksHref)&&void 0!==a?a:""],source:e._links.self.href,data:s})}}this.__isFetching=!1}async __deleteLink(e){var i,t,s;this.__isFetching=!0;const n=new r.API(this);if((await n.fetch(e,{method:"DELETE"})).ok){r.Rumour(null!==(t=null===(i=this.nucleon)||void 0===i?void 0:i.group)&&void 0!==t?t:"").share({related:[null!==(s=this.linksHref)&&void 0!==s?s:""],source:e,data:null})}this.__isFetching=!1}__renderLinkResourceLoaders(){var e,i,t;const r=200,s=this.renderRoot.querySelector("[data-link-page]"),n=Number(null!==(i=null===(e=null==s?void 0:s.data)||void 0===e?void 0:e.total_items)&&void 0!==i?i:r),a=[];try{for(let e=0;e<Math.max(1,Math.ceil(n/r));e++){const i=new URL(null!==(t=this.linksHref)&&void 0!==t?t:"");i.searchParams.set("offset",String(e*r)),i.searchParams.set("limit",String(r)),a.push(i.toString())}}catch(e){}return a.map((e=>o(u||(u=f` <foxy-nucleon class="hidden" data-link-page infer="" href="${0}" @update="${0}"> </foxy-nucleon> `),e,(()=>this.requestUpdate()))))}get __allLinks(){var e,i;const t=this.embedKey;if(!t)return null;const r=this.renderRoot.querySelectorAll("[data-link-page]"),s=[];for(const n of r){const r=null===(i=null===(e=n.data)||void 0===e?void 0:e._embedded)||void 0===i?void 0:i[t];if(!r)return null;s.push(...r)}return s}});
@@ -1,4 +1,4 @@
1
- import"./shared-1cfea4b6.js";import{h as e,G as t,P as o}from"./shared-4d543043.js";import{E as i,T as r}from"./shared-8a8bfd72.js";import{C as a}from"./shared-61ade33e.js";const s=e`<dom-module id="lumo-checkbox" theme-for="vaadin-checkbox">
1
+ import"./shared-555c2785.js";import{h as e,G as t,P as o}from"./shared-bd59ddc4.js";import{E as i,T as r}from"./shared-960eac62.js";import{C as a}from"./shared-61ade33e.js";const s=e`<dom-module id="lumo-checkbox" theme-for="vaadin-checkbox">
2
2
  <template>
3
3
  <style include="lumo-checkbox-style lumo-checkbox-effects">
4
4
  /* IE11 only */
@@ -1,4 +1,4 @@
1
- import"./shared-4efc6bb8.js";
1
+ import"./shared-001dfdb6.js";
2
2
  /**
3
3
  @license
4
4
  Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@@ -7,4 +7,4 @@ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
7
7
  The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
8
8
  Code distributed by Google as part of the polymer project is also
9
9
  subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
10
- */let t=!1,n=[],o=[];function e(){t=!0,requestAnimationFrame((function(){t=!1,function(t){for(;t.length;)i(t.shift())}(n),setTimeout((function(){!function(t){for(let n=0,o=t.length;n<o;n++)i(t.shift())}(o)}))}))}function i(t){const n=t[0],o=t[1],e=t[2];try{o.apply(n,e)}catch(t){setTimeout((()=>{throw t}))}}function f(n,i,f){t||e(),o.push([n,i,f])}export{f as a};
10
+ */let t=!1,n=[],o=[];function i(){t=!0,requestAnimationFrame((function(){t=!1,function(t){for(;t.length;)e(t.shift())}(n),setTimeout((function(){!function(t){for(let n=0,o=t.length;n<o;n++)e(t.shift())}(o)}))}))}function e(t){const n=t[0],o=t[1],i=t[2];try{o.apply(n,i)}catch(t){setTimeout((()=>{throw t}))}}function f(n,e,f){t||i(),o.push([n,e,f])}export{f as a};
@@ -1 +1 @@
1
- import"./shared-c9f3f8d3.js";import"./shared-3a066450.js";import{I as t}from"./shared-55bc51c8.js";import{I as e}from"./shared-a4b0ccf4.js";import"./foxy-copy-to-clipboard.js";import"./foxy-nucleon-element.js";import"./foxy-form-dialog.js";import"./shared-51bb937b.js";import{_ as s,m as i}from"./shared-d1195c27.js";import{h as r,s as o}from"./shared-dc73b9a5.js";import{s as l}from"./shared-99940888.js";import{g as a}from"./shared-bab2ea2c.js";import{F as n}from"./shared-343d1fd7.js";import{i as d}from"./shared-9803aa7c.js";import{c as h}from"./shared-4e709717.js";import{u as c}from"./shared-2ad18636.js";let u,f=t=>t;let p,y,m,x,v,b,g,$,_=t=>t;customElements.define("foxy-internal-resource-picker-control-form",class extends e{constructor(){super(...arguments),this.selectionProps={}}static get properties(){return s(s({},super.properties),{},{selectionProps:{attribute:!1}})}static get v8n(){return[({selection:t})=>void 0!==t||"silent:selection_required"]}renderBody(){return r(u||(u=f` <foxy-internal-async-list-control infer="selection" form="foxy-null" hide-delete-button hide-create-button @itemclick="${0}" ...="${0}"> </foxy-internal-async-list-control> `),(t=>{t.preventDefault(),this.edit({selection:t.detail}),this.submit()}),l(this.selectionProps))}}),customElements.define("foxy-internal-resource-picker-control",class extends t{constructor(){super(...arguments),this.getDisplayValueOptions=t=>({resource:t}),this.showCopyIdButton=!1,this.virtualHost=c("internal-resource-picker-control-"),this.getItemUrl=null,this.formProps={},this.filters=[],this.layout=null,this.first=null,this.item=null,this.form=null,this.__getItemRenderer=i((t=>new Function("ctx",`return ctx.html\`\n <${null!=t?t:"foxy-null"}\n related=\${JSON.stringify(ctx.related)}\n parent=\${ctx.parent}\n infer="card"\n href=\${ctx.href}\n ...=\${ctx.spread(ctx.props)}\n >\n </${null!=t?t:"foxy-null"}>\``)))}static get properties(){return s(s({},super.properties),{},{getDisplayValueOptions:{attribute:!1},showCopyIdButton:{type:Boolean,attribute:"show-copy-id-button"},virtualHost:{},getItemUrl:{attribute:!1},formProps:{type:Object},filters:{type:Array},layout:{},first:{},item:{},form:{}})}renderControl(){var t;const e=s(s({},this.formProps),{},{".selectionProps":{".filters":this.filters,".first":this.first,".item":this.item}});return r(p||(p=_` <foxy-form-dialog parent="foxy://${0}/select" header="header" infer="dialog" alert .props="${0}" .form="${0}" @fetch="${0}"> </foxy-form-dialog> ${0} `),this.virtualHost,e,null!==(t=this.form)&&void 0!==t?t:"foxy-internal-resource-picker-control-form",this.__handleFetchEvent,"summary-item"===this.layout?this.__renderSummaryItemLayout():this.__renderStandaloneLayout())}updated(t){var e,s;super.updated(t),t.has("item")&&(null===(s=(e=this.__getItemRenderer.cache).clear)||void 0===s||s.call(e))}__clear(){this._value="",this.dispatchEvent(new CustomEvent("clear"))}__renderSummaryItemLayout(){const t=this.renderRoot.querySelector("#value");return r(y||(y=_` <div class="flex items-start leading-xs gap-m"> <div class="flex-1"> <div class="text-m text-body whitespace-nowrap">${0}</div> <div class="text-s text-secondary">${0}</div> <div class="text-s text-error" ?hidden="${0}"> ${0} </div> </div> <div class="flex items-center gap-xs"> <button aria-label="${0}" class="${0}" ?disabled="${0}" @click="${0}"> <div class="truncate min-w-0"> ${0} </div> </button> <button aria-label="${0}" class="${0}" style="width:1em;height:1em" ?disabled="${0}" ?hidden="${0}" @click="${0}"> ${0} </button> </div> </div> <foxy-nucleon infer="" href="${0}" id="value" @update="${0}"> </foxy-nucleon> `),this.label,this.helperText,this.disabled||this.readonly,this._errorMessage,this.t("select"),h({"text-right min-w-0 transition-colors transition-opacity":!0,"rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"text-secondary":this.readonly,"text-disabled":this.disabled,"cursor-pointer text-body hover-opacity-80":!this.disabled&&!this.readonly,"font-medium":!this.readonly}),this.disabled||this.readonly,(t=>{if(this.disabled||this.readonly)return;const e=t.currentTarget,s=this.renderRoot.querySelector("foxy-form-dialog");s.href="",s.show(e)}),this._value?r(m||(m=_` <foxy-i18n infer="" key="value" .options="${0}"> </foxy-i18n> `),(null==t?void 0:t.data)?this.getDisplayValueOptions(t.data):{context:(null==t?void 0:t.in("fail"))?"fail":"busy"}):this.placeholder,this.t("clear"),h({"rounded-full transition-colors":!0,"focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"cursor-pointer text-tertiary hover-text-body":!this.disabled,"cursor-default text-disabled":this.disabled}),this.disabled,this.readonly||!this._value,this.__clear,o(x||(x=_`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1em; height: 1em; transform: scale(1.25); margin-right: -0.16em"><path d="M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" /></svg>`)),d(this._value||void 0),(()=>this.requestUpdate()))}__renderStandaloneLayout(){var t,e,s;const i="string"==typeof this._value?null===(t=this.getItemUrl)||void 0===t?void 0:t.call(this,this._value):void 0,o="string"==typeof this._value?a(this._value):void 0;return r(v||(v=_` <div class="block group"> <div class="${0}"> <span class="mr-auto">${0}</span> ${0} ${0} ${0} </div> <button class="${0}" style="padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)" ?disabled="${0}" @click="${0}"> <div class="${0}"> ${0} </div> </button> <div class="${0}" ?hidden="${0}"> ${0} </div> <div class="mt-xs text-xs leading-xs text-error" ?hidden="${0}"> ${0} </div> </div> `),h({"flex items-center gap-m transition-colors mb-s font-medium text-l":!0,"text-disabled":this.disabled}),this.label,i?r(b||(b=_` <a class="text-body rounded transition-opacity hover-opacity-90 focus-outline-none focus-ring-2 focus-ring-primary-50" href="${0}"> <foxy-i18n infer="" key="view"></foxy-i18n> </a> `),i):"",this.showCopyIdButton&&null!==o?r(g||(g=_` <foxy-copy-to-clipboard layout="text" theme="contrast tertiary-inline" infer="copy-id" text="${0}"> </foxy-copy-to-clipboard> `),o):"",this.readonly||!this._value?"":r($||($=_` <vaadin-button theme="error tertiary-inline" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="" key="clear"></foxy-i18n> </vaadin-button> `),this.disabled,this.__clear),h({"block w-full bg-contrast-5 rounded text-left transition-colors":!0,"focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"cursor-pointer hover-bg-contrast-10":!this.disabled&&!this.readonly,"cursor-default":this.disabled||this.readonly}),this.disabled||this.readonly,(t=>{const e=t.currentTarget,s=this.renderRoot.querySelector("foxy-form-dialog");s.href="",s.show(e)}),h({"transition-opacity":!0,"opacity-50":this.disabled}),this.__getItemRenderer(this.item)({html:r,data:null,href:this._value||"",related:[],parent:"",props:{},spread:l,simplifyNsLoading:this.simplifyNsLoading,disabled:this.disabled,disabledControls:this.disabledControls,readonly:this.readonly,readonlyControls:this.readonlyControls,hidden:this.hidden,hiddenControls:this.hiddenControls,templates:this.templates,previous:null,next:null,group:null!==(s=null===(e=this.nucleon)||void 0===e?void 0:e.group)&&void 0!==s?s:"",lang:this.lang,ns:this.ns}),h({"transition-colors mt-xs text-xs":!0,"text-secondary group-hover-text-body":!this.disabled&&!this.readonly,"text-secondary":this.readonly,"text-disabled":this.disabled}),!this.helperText,this.helperText,!this._errorMessage||this.disabled||this.readonly,this._errorMessage)}__handleFetchEvent(t){if(!(t instanceof n))return;if(t.defaultPrevented)return;const{url:e,method:s}=t.request;return e===`foxy://${this.virtualHost}/select`&&"POST"===s?t.respondWith(this.__handleSelect(t.request)):e===`foxy://${this.virtualHost}/empty`&&"GET"===s?t.respondWith(this.__handleEmpty()):void 0}async __handleSelect(t){const e=await t.clone().json();return this._value=e.selection,new Response(JSON.stringify({_links:{self:{href:`foxy://${this.virtualHost}/empty`}},message:"Resource selected."}))}async __handleEmpty(){return new Response(JSON.stringify({_links:{self:{href:`foxy://${this.virtualHost}/empty`}},message:"Resource selected."}))}});
1
+ import"./shared-12c2e2c7.js";import"./shared-5f00bc80.js";import{I as t}from"./shared-1e827d8b.js";import{I as e}from"./shared-0ec6badf.js";import"./foxy-copy-to-clipboard.js";import"./foxy-nucleon-element.js";import"./foxy-form-dialog.js";import"./shared-af70646d.js";import{_ as s,m as i}from"./shared-d1195c27.js";import{h as r,s as o}from"./shared-dc73b9a5.js";import{s as l}from"./shared-99940888.js";import{g as a}from"./shared-bab2ea2c.js";import{F as n}from"./shared-343d1fd7.js";import{i as d}from"./shared-9803aa7c.js";import{c as h}from"./shared-4e709717.js";import{u as c}from"./shared-2ad18636.js";let u,f=t=>t;let p,y,m,x,v,b,g,$,_=t=>t;customElements.define("foxy-internal-resource-picker-control-form",class extends e{constructor(){super(...arguments),this.selectionProps={}}static get properties(){return s(s({},super.properties),{},{selectionProps:{attribute:!1}})}static get v8n(){return[({selection:t})=>void 0!==t||"silent:selection_required"]}renderBody(){return r(u||(u=f` <foxy-internal-async-list-control infer="selection" form="foxy-null" hide-delete-button hide-create-button @itemclick="${0}" ...="${0}"> </foxy-internal-async-list-control> `),(t=>{t.preventDefault(),this.edit({selection:t.detail}),this.submit()}),l(this.selectionProps))}}),customElements.define("foxy-internal-resource-picker-control",class extends t{constructor(){super(...arguments),this.getDisplayValueOptions=t=>({resource:t}),this.showCopyIdButton=!1,this.virtualHost=c("internal-resource-picker-control-"),this.getItemUrl=null,this.formProps={},this.filters=[],this.layout=null,this.first=null,this.item=null,this.form=null,this.__getItemRenderer=i((t=>new Function("ctx",`return ctx.html\`\n <${null!=t?t:"foxy-null"}\n related=\${JSON.stringify(ctx.related)}\n parent=\${ctx.parent}\n infer="card"\n href=\${ctx.href}\n ...=\${ctx.spread(ctx.props)}\n >\n </${null!=t?t:"foxy-null"}>\``)))}static get properties(){return s(s({},super.properties),{},{getDisplayValueOptions:{attribute:!1},showCopyIdButton:{type:Boolean,attribute:"show-copy-id-button"},virtualHost:{},getItemUrl:{attribute:!1},formProps:{type:Object},filters:{type:Array},layout:{},first:{},item:{},form:{}})}renderControl(){var t;const e=s(s({},this.formProps),{},{".selectionProps":{".filters":this.filters,".first":this.first,".item":this.item}});return r(p||(p=_` <foxy-form-dialog parent="foxy://${0}/select" header="header" infer="dialog" alert .props="${0}" .form="${0}" @fetch="${0}"> </foxy-form-dialog> ${0} `),this.virtualHost,e,null!==(t=this.form)&&void 0!==t?t:"foxy-internal-resource-picker-control-form",this.__handleFetchEvent,"summary-item"===this.layout?this.__renderSummaryItemLayout():this.__renderStandaloneLayout())}updated(t){var e,s;super.updated(t),t.has("item")&&(null===(s=(e=this.__getItemRenderer.cache).clear)||void 0===s||s.call(e))}__clear(){this._value="",this.dispatchEvent(new CustomEvent("clear"))}__renderSummaryItemLayout(){const t=this.renderRoot.querySelector("#value");return r(y||(y=_` <div class="flex items-start leading-xs gap-m"> <div class="flex-1"> <div class="text-m text-body whitespace-nowrap">${0}</div> <div class="text-s text-secondary">${0}</div> <div class="text-s text-error" ?hidden="${0}"> ${0} </div> </div> <div class="flex items-center gap-xs"> <button aria-label="${0}" class="${0}" ?disabled="${0}" @click="${0}"> <div class="truncate min-w-0"> ${0} </div> </button> <button aria-label="${0}" class="${0}" style="width:1em;height:1em" ?disabled="${0}" ?hidden="${0}" @click="${0}"> ${0} </button> </div> </div> <foxy-nucleon infer="" href="${0}" id="value" @update="${0}"> </foxy-nucleon> `),this.label,this.helperText,this.disabled||this.readonly,this._errorMessage,this.t("select"),h({"text-right min-w-0 transition-colors transition-opacity":!0,"rounded-s focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"text-secondary":this.readonly,"text-disabled":this.disabled,"cursor-pointer text-body hover-opacity-80":!this.disabled&&!this.readonly,"font-medium":!this.readonly}),this.disabled||this.readonly,(t=>{if(this.disabled||this.readonly)return;const e=t.currentTarget,s=this.renderRoot.querySelector("foxy-form-dialog");s.href="",s.show(e)}),this._value?r(m||(m=_` <foxy-i18n infer="" key="value" .options="${0}"> </foxy-i18n> `),(null==t?void 0:t.data)?this.getDisplayValueOptions(t.data):{context:(null==t?void 0:t.in("fail"))?"fail":"busy"}):this.placeholder,this.t("clear"),h({"rounded-full transition-colors":!0,"focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"cursor-pointer text-tertiary hover-text-body":!this.disabled,"cursor-default text-disabled":this.disabled}),this.disabled,this.readonly||!this._value,this.__clear,o(x||(x=_`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" style="width: 1em; height: 1em; transform: scale(1.25); margin-right: -0.16em"><path d="M6.28 5.22a.75.75 0 0 0-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 1 0 1.06 1.06L10 11.06l3.72 3.72a.75.75 0 1 0 1.06-1.06L11.06 10l3.72-3.72a.75.75 0 0 0-1.06-1.06L10 8.94 6.28 5.22Z" /></svg>`)),d(this._value||void 0),(()=>this.requestUpdate()))}__renderStandaloneLayout(){var t,e,s;const i="string"==typeof this._value?null===(t=this.getItemUrl)||void 0===t?void 0:t.call(this,this._value):void 0,o="string"==typeof this._value?a(this._value):void 0;return r(v||(v=_` <div class="block group"> <div class="${0}"> <span class="mr-auto">${0}</span> ${0} ${0} ${0} </div> <button class="${0}" style="padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)" ?disabled="${0}" @click="${0}"> <div class="${0}"> ${0} </div> </button> <div class="${0}" ?hidden="${0}"> ${0} </div> <div class="mt-xs text-xs leading-xs text-error" ?hidden="${0}"> ${0} </div> </div> `),h({"flex items-center gap-m transition-colors mb-s font-medium text-l":!0,"text-disabled":this.disabled}),this.label,i?r(b||(b=_` <a class="text-body rounded transition-opacity hover-opacity-90 focus-outline-none focus-ring-2 focus-ring-primary-50" href="${0}"> <foxy-i18n infer="" key="view"></foxy-i18n> </a> `),i):"",this.showCopyIdButton&&null!==o?r(g||(g=_` <foxy-copy-to-clipboard layout="text" theme="contrast tertiary-inline" infer="copy-id" text="${0}"> </foxy-copy-to-clipboard> `),o):"",this.readonly||!this._value?"":r($||($=_` <vaadin-button theme="error tertiary-inline" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="" key="clear"></foxy-i18n> </vaadin-button> `),this.disabled,this.__clear),h({"block w-full bg-contrast-5 rounded text-left transition-colors":!0,"focus-outline-none focus-ring-2 focus-ring-primary-50":!0,"cursor-pointer hover-bg-contrast-10":!this.disabled&&!this.readonly,"cursor-default":this.disabled||this.readonly}),this.disabled||this.readonly,(t=>{const e=t.currentTarget,s=this.renderRoot.querySelector("foxy-form-dialog");s.href="",s.show(e)}),h({"transition-opacity":!0,"opacity-50":this.disabled}),this.__getItemRenderer(this.item)({html:r,data:null,href:this._value||"",related:[],parent:"",props:{},spread:l,simplifyNsLoading:this.simplifyNsLoading,disabled:this.disabled,disabledControls:this.disabledControls,readonly:this.readonly,readonlyControls:this.readonlyControls,hidden:this.hidden,hiddenControls:this.hiddenControls,templates:this.templates,previous:null,next:null,group:null!==(s=null===(e=this.nucleon)||void 0===e?void 0:e.group)&&void 0!==s?s:"",lang:this.lang,ns:this.ns}),h({"transition-colors mt-xs text-xs":!0,"text-secondary group-hover-text-body":!this.disabled&&!this.readonly,"text-secondary":this.readonly,"text-disabled":this.disabled}),!this.helperText,this.helperText,!this._errorMessage||this.disabled||this.readonly,this._errorMessage)}__handleFetchEvent(t){if(!(t instanceof n))return;if(t.defaultPrevented)return;const{url:e,method:s}=t.request;return e===`foxy://${this.virtualHost}/select`&&"POST"===s?t.respondWith(this.__handleSelect(t.request)):e===`foxy://${this.virtualHost}/empty`&&"GET"===s?t.respondWith(this.__handleEmpty()):void 0}async __handleSelect(t){const e=await t.clone().json();return this._value=e.selection,new Response(JSON.stringify({_links:{self:{href:`foxy://${this.virtualHost}/empty`}},message:"Resource selected."}))}async __handleEmpty(){return new Response(JSON.stringify({_links:{self:{href:`foxy://${this.virtualHost}/empty`}},message:"Resource selected."}))}});
@@ -1,4 +1,4 @@
1
- import{D as t,r as e,e as n,g as r,f as i,h as s,o,b as a,p as l,j as c,k as d,m as h,c as u,n as p,q as _,s as f,t as m,v as y}from"./shared-4efc6bb8.js";
1
+ import{D as t,r as e,e as n,g as r,f as i,h as s,o,b as a,p as l,j as c,k as d,m as h,c as u,n as p,q as _,s as f,t as m,v as y}from"./shared-001dfdb6.js";
2
2
  /**
3
3
  @license
4
4
  Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@@ -1,4 +1,4 @@
1
- import{C as e}from"./shared-0a24f318.js";import"./shared-1cfea4b6.js";import"./shared-de45ad84.js";import{h as t,P as r}from"./shared-4d543043.js";import{F as o}from"./shared-e1850e5f.js";import{T as a,D as s}from"./shared-8a8bfd72.js";import{I as l}from"./shared-55bc51c8.js";import"./shared-51bb937b.js";import{_ as i}from"./shared-d1195c27.js";import{i as h}from"./shared-9803aa7c.js";import{h as d}from"./shared-dc73b9a5.js";const n=t`<dom-module id="lumo-checkbox-group" theme-for="vaadin-checkbox-group">
1
+ import{C as e}from"./shared-b7ee8271.js";import"./shared-555c2785.js";import"./shared-68470d06.js";import{h as t,P as r}from"./shared-bd59ddc4.js";import{F as o}from"./shared-f23cde6c.js";import{T as a,D as s}from"./shared-960eac62.js";import{I as l}from"./shared-1e827d8b.js";import"./shared-af70646d.js";import{_ as i}from"./shared-d1195c27.js";import{i as h}from"./shared-9803aa7c.js";import{h as d}from"./shared-dc73b9a5.js";const n=t`<dom-module id="lumo-checkbox-group" theme-for="vaadin-checkbox-group">
2
2
  <template>
3
3
  <style include="lumo-required-field">
4
4
  :host {
@@ -1 +1 @@
1
- import{_ as e}from"./shared-d1195c27.js";import"./shared-e1850e5f.js";import"./shared-1cfea4b6.js";import"./shared-4e1b5fa3.js";import{L as s,c as t,h as r}from"./shared-dc73b9a5.js";import{T as a}from"./shared-4efc6bb8.js";import{c as i}from"./shared-4e709717.js";class c extends CustomEvent{constructor(e){super("change",{detail:e})}}let o,l,d=e=>e;class h extends(a(s)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.checked=!1}static get properties(){return e(e({},super.properties),{},{readonly:{type:Boolean},disabled:{type:Boolean},checked:{type:Boolean}})}static get styles(){return[super.styles,t(o||(o=d`:host{--check-size:1.125rem}label{margin:calc(((1rem * var(--lumo-line-height-s)) - var(--check-size))/ -2) 0}label>:first-child{height:calc(1rem * var(--lumo-line-height-s))}.ml-xxl{margin-left:calc(var(--lumo-space-m) + var(--check-size))}.check{height:var(--check-size);width:var(--check-size)}`))]}render(){return r(l||(l=d` <label class="${0}"> <div class="flex items-center"> <div class="${0}"> <iron-icon icon="lumo:checkmark" class="${0}"> </iron-icon> <input type="checkbox" class="sr-only" .checked="${0}" ?disabled="${0}" data-testid="input" @change="${0}"> </div> </div> <div class="flex-1 font-lumo leading-s ml-m"> <slot></slot> </div> </label> <div class="${0}"> <slot name="content"></slot> </div> `),i({"flex items-start group transition-colors":!0,"cursor-default":this.disabled||this.readonly,"text-disabled":this.disabled,"text-secondary":this.readonly,"cursor-pointer":!this.disabled}),i({"flex-shrink-0 check transition-colors rounded-s border":!0,"focus-within-shadow-outline":!0,"bg-primary text-primary-contrast":!this.readonly&&this.checked,"border-dashed border-contrast-30":this.readonly,"border-transparent":!this.readonly,"opacity-50":this.disabled,"text-secondary bg-contrast-20":!this.readonly&&!this.checked,"group-hover-bg-contrast-30":!this.readonly&&!this.checked}),i({"block w-full h-full transition-transform transform":!0,"scale-100":this.checked,"scale-0":!this.checked}),this.checked,this.disabled,(e=>{if(this.readonly)return e.preventDefault();e.stopPropagation(),this.checked=!this.checked,this.dispatchEvent(new c(this.checked))}),i({"font-lumo ml-xxl transition-colors":!0,"text-disabled":this.disabled}))}}export{h as C};
1
+ import{_ as e}from"./shared-d1195c27.js";import"./shared-f23cde6c.js";import"./shared-555c2785.js";import"./shared-20b733ff.js";import{L as s,c as t,h as r}from"./shared-dc73b9a5.js";import{T as i}from"./shared-001dfdb6.js";import{c as a}from"./shared-4e709717.js";class c extends CustomEvent{constructor(e){super("change",{detail:e})}}let o,d,l=e=>e;class h extends(i(s)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.checked=!1}static get properties(){return e(e({},super.properties),{},{readonly:{type:Boolean},disabled:{type:Boolean},checked:{type:Boolean}})}static get styles(){return[super.styles,t(o||(o=l`:host{--check-size:1.125rem}label{margin:calc(((1rem * var(--lumo-line-height-s)) - var(--check-size))/ -2) 0}label>:first-child{height:calc(1rem * var(--lumo-line-height-s))}.ml-xxl{margin-left:calc(var(--lumo-space-m) + var(--check-size))}.check{height:var(--check-size);width:var(--check-size)}`))]}render(){return r(d||(d=l` <label class="${0}"> <div class="flex items-center"> <div class="${0}"> <iron-icon icon="lumo:checkmark" class="${0}"> </iron-icon> <input type="checkbox" class="sr-only" .checked="${0}" ?disabled="${0}" data-testid="input" @change="${0}"> </div> </div> <div class="flex-1 font-lumo leading-s ml-m"> <slot></slot> </div> </label> <div class="${0}"> <slot name="content"></slot> </div> `),a({"flex items-start group transition-colors":!0,"cursor-default":this.disabled||this.readonly,"text-disabled":this.disabled,"text-secondary":this.readonly,"cursor-pointer":!this.disabled}),a({"flex-shrink-0 check transition-colors rounded-s border":!0,"focus-within-shadow-outline":!0,"bg-primary text-primary-contrast":!this.readonly&&this.checked,"border-dashed border-contrast-30":this.readonly,"border-transparent":!this.readonly,"opacity-50":this.disabled,"text-secondary bg-contrast-20":!this.readonly&&!this.checked,"group-hover-bg-contrast-30":!this.readonly&&!this.checked}),a({"block w-full h-full transition-transform transform":!0,"scale-100":this.checked,"scale-0":!this.checked}),this.checked,this.disabled,(e=>{if(this.readonly)return e.preventDefault();e.stopPropagation(),this.checked=!this.checked,this.dispatchEvent(new c(this.checked))}),a({"font-lumo ml-xxl transition-colors":!0,"text-disabled":this.disabled}))}}export{h as C};
@@ -1 +1 @@
1
- import"./shared-c9f3f8d3.js";import"./shared-51bb937b.js";import{_ as t}from"./shared-d1195c27.js";import{h as e}from"./shared-dc73b9a5.js";import{D as s}from"./shared-783f6e58.js";let i,n=t=>t;customElements.define("foxy-internal-confirm-dialog",class extends s{constructor(){super(...arguments),this.closable=!1,this.editable=!1,this.alert=!0,this.confirm="confirm",this.message="message",this.cancel="cancel",this.theme="primary"}static get properties(){return t(t({},super.properties),{},{confirm:{type:String},message:{type:String},cancel:{type:String},theme:{type:String}})}render(){return super.render((()=>e(i||(i=n` <foxy-i18n class="block font-lumo text-m text-body text-center mb-m" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <div class="grid grid-cols-2 gap-m"> <vaadin-button data-testid="cancelButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> <vaadin-button theme="${0}" data-testid="confirmButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> </div> `),this.lang,this.message,this.ns,this.__handleCancel,this.ns,this.lang,this.cancel,this.theme,this.__handleConfirm,this.ns,this.lang,this.confirm)))}async __handleCancel(){await this.hide(!0)}async __handleConfirm(){await this.hide()}});
1
+ import"./shared-12c2e2c7.js";import"./shared-af70646d.js";import{_ as t}from"./shared-d1195c27.js";import{h as e}from"./shared-dc73b9a5.js";import{D as s}from"./shared-51415f88.js";let i,n=t=>t;customElements.define("foxy-internal-confirm-dialog",class extends s{constructor(){super(...arguments),this.closable=!1,this.editable=!1,this.alert=!0,this.confirm="confirm",this.message="message",this.cancel="cancel",this.theme="primary"}static get properties(){return t(t({},super.properties),{},{confirm:{type:String},message:{type:String},cancel:{type:String},theme:{type:String}})}render(){return super.render((()=>e(i||(i=n` <foxy-i18n class="block font-lumo text-m text-body text-center mb-m" lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> <div class="grid grid-cols-2 gap-m"> <vaadin-button data-testid="cancelButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> <vaadin-button theme="${0}" data-testid="confirmButton" @click="${0}"> <foxy-i18n ns="${0}" lang="${0}" key="${0}"></foxy-i18n> </vaadin-button> </div> `),this.lang,this.message,this.ns,this.__handleCancel,this.ns,this.lang,this.cancel,this.theme,this.__handleConfirm,this.ns,this.lang,this.confirm)))}async __handleCancel(){await this.hide(!0)}async __handleConfirm(){await this.hide()}});
@@ -1 +1 @@
1
- import"./shared-24c7c37f.js";import{I as e}from"./shared-55bc51c8.js";import"./shared-51bb937b.js";import{_ as t}from"./shared-d1195c27.js";import{h as s,s as i}from"./shared-dc73b9a5.js";import{c as r}from"./shared-4e709717.js";let l,o,a,h,c,n,d=e=>e;customElements.define("foxy-internal-switch-control",class extends e{constructor(){super(...arguments),this.helperTextAsToolip=!1,this.invert=!1}static get properties(){return t(t({},super.properties),{},{helperTextAsToolip:{type:Boolean,attribute:"helper-text-as-tooltip"},invert:{type:Boolean}})}renderControl(){const e=this.invert?!this._value:!!this._value;return s(l||(l=d` <div class="flex items-start gap-s leading-xs text-m"> <div class="flex-1"> <label class="text-m text-body" for="input">${0}</label> ${0} <p class="text-xs text-error" ?hidden="${0}"> ${0} </p> </div> ${0} ${0} </div> `),this.label,this.helperTextAsToolip?"":s(o||(o=d`<p class="text-xs text-secondary">${0}</p>`),this.helperText),this.disabled||this.readonly,this._errorMessage,this.readonly?s(a||(a=d`<p class="text-secondary">${0}</p>`),e?this.t("checked"):this.t("unchecked")):s(h||(h=d` <div style="height:calc(1em * var(--lumo-line-height-xs))" class="flex items-center"> <div style="border-radius:var(--lumo-size-xl);width:calc((1em * var(--lumo-line-height-xs)) - 3px + var(--lumo-space-m))" class="${0}" @click="${0}"> <div style="margin:1.5px;width:calc((1em * var(--lumo-line-height-xs)) - 6px);height:calc((1em * var(--lumo-line-height-xs)) - 6px)" class="${0}"></div> <input class="opacity-0 absolute inset-0 focus-outline-none" type="checkbox" id="input" switch ?disabled="${0}" ?readonly="${0}" ?checked="${0}" @change="${0}"> </div> </div> `),r({"cursor-pointer group transition-colors relative":!0,"flex flex-shrink-0 items-center":!0,"bg-success":!this.disabled&&e,"bg-contrast-20 hover-bg-contrast-30":!this.disabled&&!e,"bg-contrast-10":this.disabled,"focus-within-ring-2 focus-within-ring-primary-50":!0}),(()=>this._value=!this._value),r({"transition-all transform block rounded-full":!0,"translate-x-m":e,"translate-x-0":!e,"bg-base":this.disabled,"bg-tint":!this.disabled}),this.disabled,this.readonly,e,(e=>{const t=e.currentTarget;this._value=this.invert?!t.checked:t.checked})),this.helperTextAsToolip&&this.helperText?s(c||(c=d` <div class="transition-colors text-tertiary flex-shrink-0 cursor-pointer hover-text-body" id="trigger"> ${0} </div> <vcf-tooltip for="trigger" style="--lumo-base-color:black;max-width:30rem" class="mt-s" theme="light" position="bottom"> <span class="text-s" style="color:#fff">${0}</span> </vcf-tooltip> `),i(n||(n=d`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" style="width: calc(1em * var(--lumo-line-height-xs)); height: calc(1em * var(--lumo-line-height-xs)); margin-right: -0.12em"><path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z" /></svg>`)),this.helperText):"")}});
1
+ import"./shared-08e7b7e5.js";import{I as e}from"./shared-1e827d8b.js";import"./shared-af70646d.js";import{_ as t}from"./shared-d1195c27.js";import{h as s,s as i}from"./shared-dc73b9a5.js";import{c as r}from"./shared-4e709717.js";let l,o,a,h,c,n,d=e=>e;customElements.define("foxy-internal-switch-control",class extends e{constructor(){super(...arguments),this.helperTextAsToolip=!1,this.invert=!1}static get properties(){return t(t({},super.properties),{},{helperTextAsToolip:{type:Boolean,attribute:"helper-text-as-tooltip"},invert:{type:Boolean}})}renderControl(){const e=this.invert?!this._value:!!this._value;return s(l||(l=d` <div class="flex items-start gap-s leading-xs text-m"> <div class="flex-1"> <label class="text-m text-body" for="input">${0}</label> ${0} <p class="text-xs text-error" ?hidden="${0}"> ${0} </p> </div> ${0} ${0} </div> `),this.label,this.helperTextAsToolip?"":s(o||(o=d`<p class="text-xs text-secondary">${0}</p>`),this.helperText),this.disabled||this.readonly,this._errorMessage,this.readonly?s(a||(a=d`<p class="text-secondary">${0}</p>`),e?this.t("checked"):this.t("unchecked")):s(h||(h=d` <div style="height:calc(1em * var(--lumo-line-height-xs))" class="flex items-center"> <div style="border-radius:var(--lumo-size-xl);width:calc((1em * var(--lumo-line-height-xs)) - 3px + var(--lumo-space-m))" class="${0}" @click="${0}"> <div style="margin:1.5px;width:calc((1em * var(--lumo-line-height-xs)) - 6px);height:calc((1em * var(--lumo-line-height-xs)) - 6px)" class="${0}"></div> <input class="opacity-0 absolute inset-0 focus-outline-none" type="checkbox" id="input" switch ?disabled="${0}" ?readonly="${0}" ?checked="${0}" @change="${0}"> </div> </div> `),r({"cursor-pointer group transition-colors relative":!0,"flex flex-shrink-0 items-center":!0,"bg-success":!this.disabled&&e,"bg-contrast-20 hover-bg-contrast-30":!this.disabled&&!e,"bg-contrast-10":this.disabled,"focus-within-ring-2 focus-within-ring-primary-50":!0}),(()=>this._value=!this._value),r({"transition-all transform block rounded-full":!0,"translate-x-m":e,"translate-x-0":!e,"bg-base":this.disabled,"bg-tint":!this.disabled}),this.disabled,this.readonly,e,(e=>{const t=e.currentTarget;this._value=this.invert?!t.checked:t.checked})),this.helperTextAsToolip&&this.helperText?s(c||(c=d` <div class="transition-colors text-tertiary flex-shrink-0 cursor-pointer hover-text-body" id="trigger"> ${0} </div> <vcf-tooltip for="trigger" style="--lumo-base-color:black;max-width:30rem" class="mt-s" theme="light" position="bottom"> <span class="text-s" style="color:#fff">${0}</span> </vcf-tooltip> `),i(n||(n=d`<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" style="width: calc(1em * var(--lumo-line-height-xs)); height: calc(1em * var(--lumo-line-height-xs)); margin-right: -0.12em"><path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z" /></svg>`)),this.helperText):"")}});
@@ -1,4 +1,4 @@
1
- import{_ as e}from"./shared-d1195c27.js";import{T as t}from"./shared-5ff1affd.js";import{a as s}from"./shared-4efc6bb8.js";import{p as n}from"./shared-73c1d31e.js";let a,o,i,r,l=e=>e;class c extends(s(t,"subscriptions-table")){constructor(){super(...arguments),this.columns=[c.priceColumn,c.summaryColumn,c.statusColumn,c.subTokenURLColumn]}}c.priceColumn={cell:t=>{const s=t.data._embedded["fx:transaction_template"],o=`${s.total_order} ${s.currency_code}`;return t.html(a||(a=l`
1
+ import{_ as t}from"./shared-d1195c27.js";import{T as e}from"./shared-a811962b.js";import{a as s}from"./shared-001dfdb6.js";import{p as n}from"./shared-7c1d9bf8.js";let a,o,i,r,l=t=>t;class c extends(s(e,"subscriptions-table")){constructor(){super(...arguments),this.columns=[c.priceColumn,c.summaryColumn,c.statusColumn,c.subTokenURLColumn]}}c.priceColumn={cell:e=>{const s=e.data._embedded["fx:transaction_template"],o=`${s.total_order} ${s.currency_code}`;return e.html(a||(a=l`
2
2
  <foxy-i18n
3
3
  data-testclass="i18n frequencies"
4
4
  class="font-medium text-m font-tnum"
@@ -8,7 +8,7 @@ import{_ as e}from"./shared-d1195c27.js";import{T as t}from"./shared-5ff1affd.js
8
8
  .options=${0}
9
9
  >
10
10
  </foxy-i18n>
11
- `),t.lang,".5m"===t.data.frequency?"twice_a_month":"recurring",t.ns,e(e({},n(t.data.frequency)),{},{amount:o}))}},c.summaryColumn={cell:e=>{const t=e.data._embedded["fx:transaction_template"]._embedded["fx:items"],s={most_expensive_item:[...t].sort(((e,t)=>e.price-t.price))[0],count_minus_one:t.length-1,count:t.length};return e.html(o||(o=l`
11
+ `),e.lang,".5m"===e.data.frequency?"twice_a_month":"recurring",e.ns,t(t({},n(e.data.frequency)),{},{amount:o}))}},c.summaryColumn={cell:t=>{const e=t.data._embedded["fx:transaction_template"]._embedded["fx:items"],s={most_expensive_item:[...e].sort(((t,e)=>t.price-e.price))[0],count_minus_one:e.length-1,count:e.length};return t.html(o||(o=l`
12
12
  <foxy-i18n
13
13
  data-testclass="i18n summaries"
14
14
  class="text-m"
@@ -18,7 +18,7 @@ import{_ as e}from"./shared-d1195c27.js";import{T as t}from"./shared-5ff1affd.js
18
18
  .options=${0}
19
19
  >
20
20
  </foxy-i18n>
21
- `),e.lang,e.ns,s)}},c.statusColumn={hideBelow:"sm",cell:({ns:e,lang:t,data:s,html:n})=>{let a,o,r="bg-contrast-5 text-secondary";if(s.first_failed_transaction_date)r="bg-error-10 text-error",a=s.first_failed_transaction_date,o="subscription_failed";else if(s.end_date){a=s.end_date;o=new Date(s.end_date).getTime()>Date.now()?"subscription_will_be_cancelled":"subscription_cancelled"}else s.is_active?new Date(s.start_date)>new Date?(a=s.start_date,o="subscription_will_be_active"):(r="bg-success-10 text-success",a=s.next_transaction_date,o="subscription_active"):(a="",o="subscription_inactive");return n(i||(i=l`
21
+ `),t.lang,t.ns,s)}},c.statusColumn={hideBelow:"sm",cell:({ns:t,lang:e,data:s,html:n})=>{let a,o,r="bg-contrast-5 text-secondary";if(s.first_failed_transaction_date)r="bg-error-10 text-error",a=s.first_failed_transaction_date,o="subscription_failed";else if(s.end_date){a=s.end_date;o=new Date(s.end_date).getTime()>Date.now()?"subscription_will_be_cancelled":"subscription_cancelled"}else s.is_active?new Date(s.start_date)>new Date?(a=s.start_date,o="subscription_will_be_active"):(r="bg-success-10 text-success",a=s.next_transaction_date,o="subscription_active"):(a="",o="subscription_inactive");return n(i||(i=l`
22
22
  <foxy-i18n
23
23
  data-testclass="i18n statuses"
24
24
  class="px-s py-xs text-m font-medium block whitespace-normal rounded ${0}"
@@ -28,7 +28,7 @@ import{_ as e}from"./shared-d1195c27.js";import{T as t}from"./shared-5ff1affd.js
28
28
  .options=${0}
29
29
  >
30
30
  </foxy-i18n>
31
- `),r,t,o,e,{date:a})}},c.subTokenURLColumn={cell:e=>e.html(r||(r=l`
31
+ `),r,e,o,t,{date:a})}},c.subTokenURLColumn={cell:t=>t.html(r||(r=l`
32
32
  <a
33
33
  data-testclass="links"
34
34
  target="_blank"
@@ -43,4 +43,4 @@ import{_ as e}from"./shared-d1195c27.js";import{T as t}from"./shared-5ff1affd.js
43
43
  >
44
44
  </foxy-i18n>
45
45
  </a>
46
- `),e.data._links["fx:sub_token_url"].href,e.lang,e.ns)};export{c as S};
46
+ `),t.data._links["fx:sub_token_url"].href,t.lang,t.ns)};export{c as S};
@@ -1,4 +1,4 @@
1
- import"./shared-f97ed2ff.js";import{h as e,P as t}from"./shared-4d543043.js";import{F as o,t as n}from"./shared-e1850e5f.js";import{a as s}from"./shared-c7ffb9f2.js";import{T as i,D as r}from"./shared-8a8bfd72.js";const a=e`<dom-module id="lumo-vaadin-overlay" theme-for="vaadin-overlay">
1
+ import"./shared-10674b72.js";import{h as e,P as t}from"./shared-bd59ddc4.js";import{F as o,t as n}from"./shared-f23cde6c.js";import{a as s}from"./shared-b8bdf3ae.js";import{T as i,D as r}from"./shared-960eac62.js";const a=e`<dom-module id="lumo-vaadin-overlay" theme-for="vaadin-overlay">
2
2
  <template>
3
3
  <style include="lumo-overlay">
4
4
  /* stylelint-disable no-empty-source */
@@ -1 +1 @@
1
- import"./shared-c9f3f8d3.js";import{a as r}from"./shared-55bc51c8.js";import"./foxy-form-dialog.js";import"./shared-51bb937b.js";import{_ as e}from"./shared-d1195c27.js";import{i as t}from"./shared-9803aa7c.js";import{h as o}from"./shared-dc73b9a5.js";let a,i=r=>r;customElements.define("foxy-internal-bulk-add-action-control",class extends r{constructor(){super(...arguments),this.related=[],this.parent=null,this.form=null}static get properties(){return e(e({},super.properties),{},{related:{type:Array},parent:{},form:{}})}renderControl(){var r,e;return o(a||(a=i` <foxy-form-dialog header="header" parent="${0}" infer="dialog" form="${0}" alert .related="${0}"> </foxy-form-dialog> <vaadin-button theme="tertiary-inline" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="" key="button_text"></foxy-i18n> </vaadin-button> `),t(null!==(r=this.parent)&&void 0!==r?r:void 0),t(null!==(e=this.form)&&void 0!==e?e:void 0),this.related,this.disabled,(r=>{const e=this.renderRoot.querySelector("foxy-form-dialog"),t=r.target;e&&(e.href="",e.show(t))}))}});
1
+ import"./shared-12c2e2c7.js";import{a as r}from"./shared-1e827d8b.js";import"./foxy-form-dialog.js";import"./shared-af70646d.js";import{_ as e}from"./shared-d1195c27.js";import{i as t}from"./shared-9803aa7c.js";import{h as o}from"./shared-dc73b9a5.js";let a,i=r=>r;customElements.define("foxy-internal-bulk-add-action-control",class extends r{constructor(){super(...arguments),this.related=[],this.parent=null,this.form=null}static get properties(){return e(e({},super.properties),{},{related:{type:Array},parent:{},form:{}})}renderControl(){var r,e;return o(a||(a=i` <foxy-form-dialog header="header" parent="${0}" infer="dialog" form="${0}" alert .related="${0}"> </foxy-form-dialog> <vaadin-button theme="tertiary-inline" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="" key="button_text"></foxy-i18n> </vaadin-button> `),t(null!==(r=this.parent)&&void 0!==r?r:void 0),t(null!==(e=this.form)&&void 0!==e?e:void 0),this.related,this.disabled,(r=>{const e=this.renderRoot.querySelector("foxy-form-dialog"),t=r.target;e&&(e.href="",e.show(t))}))}});
@@ -1,4 +1,4 @@
1
- import{h as e}from"./shared-4d543043.js";import{N as t}from"./shared-045bd59c.js";
1
+ import{h as e}from"./shared-bd59ddc4.js";import{N as t}from"./shared-f7474be7.js";
2
2
  /**
3
3
  @license
4
4
  Copyright (c) 2019 Vaadin Ltd.
@@ -1 +1 @@
1
- import{_ as e}from"./shared-d1195c27.js";import{L as s,h as t}from"./shared-dc73b9a5.js";import{y as r}from"./shared-4efc6bb8.js";let o,a=e=>e;class d extends s{constructor(){super(...arguments),this.frame=!1}static get properties(){return e(e({},super.properties),{},{frame:{type:Boolean}})}static get styles(){return r.styles}render(){return t(o||(o=a` <section class="space-y-s font-lumo antialiased"> <h3 class="${0}"> <slot name="header"></slot> </h3> <div class="rounded ${0}"> <slot></slot> </div> </section> `),"text-s font-medium text-secondary leading-none "+(this.frame?"":"pl-m"),this.frame?"border border-contrast-10 overflow-hidden":"")}}export{d as G};
1
+ import{_ as e}from"./shared-d1195c27.js";import{L as s,h as t}from"./shared-dc73b9a5.js";import{y as r}from"./shared-001dfdb6.js";let o,a=e=>e;class d extends s{constructor(){super(...arguments),this.frame=!1}static get properties(){return e(e({},super.properties),{},{frame:{type:Boolean}})}static get styles(){return r.styles}render(){return t(o||(o=a` <section class="space-y-s font-lumo antialiased"> <h3 class="${0}"> <slot name="header"></slot> </h3> <div class="rounded ${0}"> <slot></slot> </div> </section> `),"text-s font-medium text-secondary leading-none "+(this.frame?"":"pl-m"),this.frame?"border border-contrast-10 overflow-hidden":"")}}export{d as G};
@@ -1,4 +1,4 @@
1
- import"./shared-1cfea4b6.js";import{h as e,G as t,P as r}from"./shared-4d543043.js";import{E as o,T as i,D as s}from"./shared-8a8bfd72.js";import{C as a}from"./shared-61ade33e.js";import"./shared-de45ad84.js";import{F as l}from"./shared-e1850e5f.js";import{I as n}from"./shared-55bc51c8.js";import"./shared-51bb937b.js";import{_ as d}from"./shared-d1195c27.js";import{i as h}from"./shared-9803aa7c.js";import{c,h as u}from"./shared-dc73b9a5.js";import{c as p}from"./shared-4e709717.js";import{w as b}from"./shared-4efc6bb8.js";const m=e`<dom-module id="lumo-radio-button" theme-for="vaadin-radio-button">
1
+ import"./shared-555c2785.js";import{h as e,G as t,P as r}from"./shared-bd59ddc4.js";import{E as o,T as i,D as s}from"./shared-960eac62.js";import{C as a}from"./shared-61ade33e.js";import"./shared-68470d06.js";import{F as l}from"./shared-f23cde6c.js";import{I as n}from"./shared-1e827d8b.js";import"./shared-af70646d.js";import{_ as d}from"./shared-d1195c27.js";import{i as h}from"./shared-9803aa7c.js";import{c,h as u}from"./shared-dc73b9a5.js";import{c as p}from"./shared-4e709717.js";import{w as b}from"./shared-001dfdb6.js";const m=e`<dom-module id="lumo-radio-button" theme-for="vaadin-radio-button">
2
2
  <template>
3
3
  <style>
4
4
  :host {
@@ -1,4 +1,4 @@
1
- import{f as e,M as t,n as s,c as i,d as n,e as r,V as o,g as l,i as a,j as h,u as c,k as d,l as u,w as _,m as p,E as f,G as m,o as y,r as g,s as b,D as C,t as v,p as x,q as w,P as S,v as P,x as E,y as I,z as O,h as A}from"./shared-4d543043.js";import{l as k,b as N,s as T,c as M,u as D,d as R,f as F}from"./shared-4efc6bb8.js";
1
+ import{f as e,M as t,n as s,c as i,d as n,e as r,V as o,g as l,i as a,j as h,u as c,k as d,l as u,w as _,m as p,E as f,G as m,o as y,r as g,s as b,D as C,t as v,p as x,q as w,P as S,v as P,x as E,y as I,z as O,h as A}from"./shared-bd59ddc4.js";import{l as k,b as N,s as T,c as M,u as D,d as R,f as F}from"./shared-001dfdb6.js";
2
2
  /**
3
3
  @license
4
4
  Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
@@ -1,4 +1,4 @@
1
- import"./shared-011d6240.js";import"./shared-1cfea4b6.js";import"./shared-d8cd61ed.js";import{h as e}from"./shared-4d543043.js";import{T as t}from"./shared-9e94c56d.js";import{D as i}from"./shared-4efc6bb8.js";const n=e`<dom-module id="lumo-number-field" theme-for="vaadin-number-field">
1
+ import"./shared-b4b7767a.js";import"./shared-555c2785.js";import"./shared-8f8c3902.js";import{h as e}from"./shared-bd59ddc4.js";import{T as t}from"./shared-0e80f20c.js";import{D as i}from"./shared-001dfdb6.js";const n=e`<dom-module id="lumo-number-field" theme-for="vaadin-number-field">
2
2
  <template>
3
3
  <style include="lumo-field-button">
4
4
  :host {
@@ -1 +1 @@
1
- import"./shared-537d2efe.js";import{I as e}from"./shared-55bc51c8.js";import{w as t}from"./shared-4efc6bb8.js";import{c as a,h as r}from"./shared-dc73b9a5.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-9803aa7c.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-395b2f4c.js";import{I as e}from"./shared-1e827d8b.js";import{w as t}from"./shared-001dfdb6.js";import{c as a,h as r}from"./shared-dc73b9a5.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-9803aa7c.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,4 +1,4 @@
1
- import{_ as e}from"./shared-d1195c27.js";import"./shared-1cfea4b6.js";import"./shared-011d6240.js";import"./shared-906fe068.js";import"./shared-d8cd61ed.js";import{T as t}from"./shared-9e94c56d.js";import"./shared-f0d70be1.js";import{h as s,P as i}from"./shared-4d543043.js";import{E as n,T as l}from"./shared-8a8bfd72.js";import{L as a}from"./shared-4a86d1ca.js";import{C as r}from"./shared-61ade33e.js";import{I as o}from"./shared-9de0a899.js";import"./shared-c6b69d4e.js";import{w as A,y as d,x as h}from"./shared-4efc6bb8.js";import{O as u}from"./shared-34c84b9f.js";import{a as m,F as c}from"./shared-e1850e5f.js";import{c as p,L as v,h as g}from"./shared-dc73b9a5.js";import{D as _}from"./shared-d713c00f.js";class y extends CustomEvent{constructor(e){super("change",{detail:e})}}class f extends y{}const b=s`<dom-module id="lumo-list-box" theme-for="vaadin-list-box">
1
+ import{_ as e}from"./shared-d1195c27.js";import"./shared-555c2785.js";import"./shared-b4b7767a.js";import"./shared-676a6445.js";import"./shared-8f8c3902.js";import{T as t}from"./shared-0e80f20c.js";import"./shared-394d6660.js";import{h as s,P as i}from"./shared-bd59ddc4.js";import{E as n,T as l}from"./shared-960eac62.js";import{L as a}from"./shared-8405bdfa.js";import{C as r}from"./shared-61ade33e.js";import{I as o}from"./shared-09350008.js";import"./shared-65c53765.js";import{w as A,y as d,x as h}from"./shared-001dfdb6.js";import{O as u}from"./shared-e24f4d30.js";import{a as m,F as c}from"./shared-f23cde6c.js";import{c as p,L as v,h as g}from"./shared-dc73b9a5.js";import{D as _}from"./shared-6745d2ec.js";class y extends CustomEvent{constructor(e){super("change",{detail:e})}}class f extends y{}const b=s`<dom-module id="lumo-list-box" theme-for="vaadin-list-box">
2
2
  <template>
3
3
  <style>
4
4
  :host {
@@ -560,46 +560,46 @@
560
560
  },
561
561
  "helper_text": "Limit which categories this coupon applies to. All changes are saved automatically."
562
562
  },
563
- "customer-restrictions": {
564
- "label": "Customer restrictions",
563
+ "customer-attribute-restrictions": {
564
+ "label": "Customer attribute restrictions",
565
+ "helper_text": "This restricts the usage of the coupon based on an attribute name and value. When defined, the coupon will only apply if the customer has the specified attribute name and value. Wildcards are allowed.",
566
+ "v8n_too_long": "Unfortunately we are unable to store that many customer attribute restrictions at the moment. Please reduce the number of rules in this section until this message disappears.",
567
+ "query-builder": {
568
+ "add_or_clause": "Add OR clause",
569
+ "add_value": "Add value",
570
+ "code": "Code",
571
+ "delete": "Delete",
572
+ "field": "Attribute name",
573
+ "is_defined_false": "Not defined",
574
+ "is_defined_true": "Defined",
575
+ "operator_equal": "Equal",
576
+ "operator_greaterthan": "Greater than",
577
+ "operator_greaterthanorequal": "Greater than or equal",
578
+ "operator_in": "One of",
579
+ "operator_isdefined": "Is defined",
580
+ "operator_lessthan": "Less than",
581
+ "operator_lessthanorequal": "Less than or equal",
582
+ "operator_not": "Not equal",
583
+ "or": "Or",
584
+ "query_builder_group": "Group of rules",
585
+ "query_builder_rule": "Rule",
586
+ "type": "Type",
587
+ "type_any": "Field of unknown type",
588
+ "type_here": "Type here...",
589
+ "value": "Attribute value"
590
+ }
591
+ },
592
+ "customer-subscription-restrictions": {
593
+ "label": "Customer subscription restrictions",
594
+ "placeholder": "Enter a product code and hit Enter",
595
+ "helper_text": "This restricts the usage of the coupon based on product codes in the current customer's active subscriptions. When defined, the coupon will only apply if the customer has an active subscription with a matching product code. Wildcards are allowed.",
596
+ "caption": "Add this code",
597
+ "delete": "Delete this code",
598
+ "v8n_too_long": "Unfortunately we are unable to store that many subscription restrictions at the moment. Please reduce the number of rules in this section until this message disappears."
599
+ },
600
+ "auto-apply": {
601
+ "label": "Auto-apply",
565
602
  "helper_text": "",
566
- "customer-attribute-restrictions": {
567
- "label": "Customer attribute restrictions",
568
- "helper_text": "This restricts the usage of the coupon based on an attribute name and value. When defined, the coupon will only apply if the customer has the specified attribute name and value. Wildcards are allowed.",
569
- "v8n_too_long": "Unfortunately we are unable to store that many customer attribute restrictions at the moment. Please reduce the number of rules in this section until this message disappears.",
570
- "query-builder": {
571
- "add_or_clause": "Add OR clause",
572
- "add_value": "Add value",
573
- "code": "Code",
574
- "delete": "Delete",
575
- "field": "Attribute name",
576
- "is_defined_false": "Not defined",
577
- "is_defined_true": "Defined",
578
- "operator_equal": "Equal",
579
- "operator_greaterthan": "Greater than",
580
- "operator_greaterthanorequal": "Greater than or equal",
581
- "operator_in": "One of",
582
- "operator_isdefined": "Is defined",
583
- "operator_lessthan": "Less than",
584
- "operator_lessthanorequal": "Less than or equal",
585
- "operator_not": "Not equal",
586
- "or": "Or",
587
- "query_builder_group": "Group of rules",
588
- "query_builder_rule": "Rule",
589
- "type": "Type",
590
- "type_any": "Field of unknown type",
591
- "type_here": "Type here...",
592
- "value": "Attribute value"
593
- }
594
- },
595
- "customer-subscription-restrictions": {
596
- "label": "Customer subscription restrictions",
597
- "placeholder": "Enter a product code and hit Enter",
598
- "helper_text": "This restricts the usage of the coupon based on product codes in the current customer's active subscriptions. When defined, the coupon will only apply if the customer has an active subscription with a matching product code. Wildcards are allowed.",
599
- "caption": "Add this code",
600
- "delete": "Delete this code",
601
- "v8n_too_long": "Unfortunately we are unable to store that many subscription restrictions at the moment. Please reduce the number of rules in this section until this message disappears."
602
- },
603
603
  "customer-auto-apply": {
604
604
  "label": "Auto apply coupon for matching customers",
605
605
  "helper_text": "If enabled, when a customer authenticates on the checkout, this coupon will automatically apply if the above two customer restrictions are met.",
@@ -105,20 +105,17 @@ export class InternalAsyncResourceLinkListControl extends InternalEditableContro
105
105
  const isStatusVisible = this.__isFetching || !this.__allLinks;
106
106
  return html `
107
107
  <div class="group">
108
- <div
109
- class=${classMap({
110
- 'flex justify-between transition-colors mb-xs font-medium text-s': true,
111
- 'text-secondary': !this.disabled && !this.readonly,
112
- 'text-disabled': this.disabled,
113
- })}
114
- >
115
- <span>${this.label}</span>
116
- <foxy-i18n
117
- class="transition-opacity ${isStatusVisible ? 'opacity-100' : 'opacity-0'}"
118
- infer=""
119
- key=${this.__isFetching ? 'status_saving' : 'status_loading'}
120
- >
121
- </foxy-i18n>
108
+ <div class="mb-s" ?hidden=${!this.label && !this.helperText}>
109
+ <div class="flex justify-between font-medium text-l" ?hidden=${!this.label}>
110
+ <span>${this.label}</span>
111
+ <foxy-i18n
112
+ class="transition-opacity ${isStatusVisible ? 'opacity-100' : 'opacity-0'}"
113
+ infer=""
114
+ key=${this.__isFetching ? 'status_saving' : 'status_loading'}
115
+ >
116
+ </foxy-i18n>
117
+ </div>
118
+ <div class="text-secondary text-s" ?hidden=${!this.helperText}>${this.helperText}</div>
122
119
  </div>
123
120
 
124
121
  <foxy-pagination first=${ifDefined(firstHref)} infer="pagination">
@@ -126,7 +123,7 @@ export class InternalAsyncResourceLinkListControl extends InternalEditableContro
126
123
  infer="card"
127
124
  class=${classMap({
128
125
  'block transition-colors divide-y rounded overflow-hidden': true,
129
- 'divide-contrast-10 ring-1 ring-inset ring-contrast-10': true,
126
+ 'bg-contrast-5 divide-contrast-10': true,
130
127
  })}
131
128
  .item=${this.__renderItem}
132
129
  >
@@ -134,18 +131,7 @@ export class InternalAsyncResourceLinkListControl extends InternalEditableContro
134
131
  </foxy-pagination>
135
132
 
136
133
  <div
137
- class=${classMap({
138
- 'transition-colors mt-xs text-xs': true,
139
- 'text-secondary': !this.disabled && !this.readonly,
140
- 'text-disabled': this.disabled,
141
- })}
142
- ?hidden=${!this.helperText}
143
- >
144
- ${this.helperText}
145
- </div>
146
-
147
- <div
148
- class="mt-xs text-xs leading-xs text-error"
134
+ class="mt-s text-s leading-xs text-error"
149
135
  ?hidden=${!this._errorMessage || this.disabled || this.readonly}
150
136
  >
151
137
  ${this._errorMessage}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalAsyncResourceLinkListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations } from 'lit-element';\nimport type { CheckboxElement } from '@vaadin/vaadin-checkbox';\nimport type { TemplateResult } from 'lit-html';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { Collection } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\nimport { css } from 'lit-element';\n\nimport memoize from 'lodash-es/memoize';\n\nexport class InternalAsyncResourceLinkListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n foreignKeyForUri: { attribute: 'foreign-key-for-uri' },\n foreignKeyForId: { attribute: 'foreign-key-for-id' },\n ownKeyForUri: { attribute: 'own-key-for-uri' },\n optionsHref: { attribute: 'options-href' },\n linksHref: { attribute: 'links-href' },\n embedKey: { attribute: 'embed-key' },\n ownUri: { attribute: 'own-uri' },\n limit: { type: Number },\n item: {},\n __isFetching: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n vaadin-checkbox::part(label) {\n margin: 0 0 0 calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);\n align-self: center;\n }\n `,\n ];\n }\n\n foreignKeyForUri: string | null = null;\n\n foreignKeyForId: string | null = null;\n\n ownKeyForUri: string | null = null;\n\n optionsHref: string | null = null;\n\n linksHref: string | null = null;\n\n embedKey: string | null = null;\n\n ownUri: string | null = null;\n\n limit = 20;\n\n item: string | null = null;\n\n private readonly __getItemRenderer = memoize(\n (item: string | null, hasData: boolean) => {\n return new Function(\n 'ctx',\n `return ctx.html\\`\n <${item ?? 'foxy-null'}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n infer=\"\"\n ${hasData ? '.data=${ctx.data}' : 'href=${ctx.href}'}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item ?? 'foxy-null'}>\\``\n ) as ItemRenderer;\n },\n (...args) => args.join()\n );\n\n private readonly __renderItem: ItemRenderer = ctx => {\n const render = this.__getItemRenderer(this.item, !!ctx.data);\n const wrap = (content: TemplateResult) => html`\n <div style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\">${content}</div>\n `;\n\n if (!ctx.href || ctx.href.startsWith('foxy://')) return wrap(render(ctx));\n if (this.readonly) return wrap(render(ctx));\n\n const foreignKeyForUri = this.foreignKeyForUri;\n const linkResource = foreignKeyForUri\n ? this.__allLinks?.find(link => link[foreignKeyForUri] === ctx.href)\n : undefined;\n\n const isDisabled = this.disabled || !this.__allLinks || this.__isFetching;\n\n return wrap(html`\n <vaadin-checkbox\n class=\"block\"\n ?disabled=${isDisabled}\n ?checked=${!!linkResource}\n @change=${(evt: CustomEvent) => {\n const target = evt.currentTarget as CheckboxElement;\n if (target.checked) {\n this.__insertLink(ctx.data?._links.self.href ?? '');\n } else {\n this.__deleteLink(linkResource?._links.self.href ?? '');\n }\n }}\n >\n <div class=\"transition-opacity ${isDisabled ? 'opacity-50' : 'opacity-100'}\">\n ${render(ctx)}\n </div>\n </vaadin-checkbox>\n `);\n };\n\n private __isFetching = false;\n\n renderControl(): TemplateResult {\n let firstHref: string | undefined;\n\n try {\n const url = new URL(this.optionsHref ?? '');\n url.searchParams.set('limit', this.limit.toString());\n firstHref = url.toString();\n } catch {\n firstHref = undefined;\n }\n\n const isStatusVisible = this.__isFetching || !this.__allLinks;\n\n return html`\n <div class=\"group\">\n <div\n class=${classMap({\n 'flex justify-between transition-colors mb-xs font-medium text-s': true,\n 'text-secondary': !this.disabled && !this.readonly,\n 'text-disabled': this.disabled,\n })}\n >\n <span>${this.label}</span>\n <foxy-i18n\n class=\"transition-opacity ${isStatusVisible ? 'opacity-100' : 'opacity-0'}\"\n infer=\"\"\n key=${this.__isFetching ? 'status_saving' : 'status_loading'}\n >\n </foxy-i18n>\n </div>\n\n <foxy-pagination first=${ifDefined(firstHref)} infer=\"pagination\">\n <foxy-collection-page\n infer=\"card\"\n class=${classMap({\n 'block transition-colors divide-y rounded overflow-hidden': true,\n 'divide-contrast-10 ring-1 ring-inset ring-contrast-10': true,\n })}\n .item=${this.__renderItem}\n >\n </foxy-collection-page>\n </foxy-pagination>\n\n <div\n class=${classMap({\n 'transition-colors mt-xs text-xs': true,\n 'text-secondary': !this.disabled && !this.readonly,\n 'text-disabled': this.disabled,\n })}\n ?hidden=${!this.helperText}\n >\n ${this.helperText}\n </div>\n\n <div\n class=\"mt-xs text-xs leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n\n ${this.__renderLinkResourceLoaders()}\n </div>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('item')) this.__getItemRenderer.cache.clear?.();\n }\n\n private async __insertLink(foreignUri: string) {\n this.__isFetching = true;\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(this.linksHref ?? '', {\n method: 'POST',\n body: JSON.stringify({\n [this.foreignKeyForUri ?? '']: foreignUri,\n [this.ownKeyForUri ?? '']: this.ownUri,\n }),\n });\n\n if (response.ok) {\n const json = await response.json();\n const dataResponse = await api.fetch(json._links.self.href);\n\n if (dataResponse.ok) {\n const rumour = NucleonElement.Rumour(this.nucleon?.group ?? '');\n const data = await dataResponse.json();\n\n rumour.share({\n related: [this.linksHref ?? ''],\n source: json._links.self.href,\n data,\n });\n }\n }\n\n this.__isFetching = false;\n }\n\n private async __deleteLink(linkUri: string) {\n this.__isFetching = true;\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(linkUri, { method: 'DELETE' });\n\n if (response.ok) {\n const rumour = NucleonElement.Rumour(this.nucleon?.group ?? '');\n rumour.share({ related: [this.linksHref ?? ''], source: linkUri, data: null });\n }\n\n this.__isFetching = false;\n }\n\n private __renderLinkResourceLoaders() {\n const maxApiLimit = 200;\n const firstPage = this.renderRoot.querySelector<NucleonElement<Collection>>('[data-link-page]');\n const totalItems = Number(firstPage?.data?.total_items ?? maxApiLimit); // sometimes total_items is a string in hAPI\n const links: string[] = [];\n\n try {\n for (let i = 0; i < Math.max(1, Math.ceil(totalItems / maxApiLimit)); i++) {\n const url = new URL(this.linksHref ?? '');\n url.searchParams.set('offset', String(i * maxApiLimit));\n url.searchParams.set('limit', String(maxApiLimit));\n links.push(url.toString());\n }\n } catch {\n // Do nothing.\n }\n\n return links.map(\n href => html`\n <foxy-nucleon\n class=\"hidden\"\n data-link-page\n infer=\"\"\n href=${href}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `\n );\n }\n\n private get __allLinks() {\n const embedKey = this.embedKey;\n if (!embedKey) return null;\n\n type Loader = NucleonElement<Collection>;\n const loaders = this.renderRoot.querySelectorAll<Loader>('[data-link-page]');\n const allLinks: any[] = [];\n\n for (const loader of loaders) {\n const embedded = loader.data?._embedded?.[embedKey];\n if (!embedded) return null;\n allLinks.push(...embedded);\n }\n\n return allLinks;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalAsyncResourceLinkListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalAsyncResourceLinkListControl/InternalAsyncResourceLinkListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations } from 'lit-element';\nimport type { CheckboxElement } from '@vaadin/vaadin-checkbox';\nimport type { TemplateResult } from 'lit-html';\nimport type { ItemRenderer } from '../../public/CollectionPage/types';\nimport type { Collection } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { NucleonElement } from '../../public/NucleonElement/NucleonElement';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\nimport { css } from 'lit-element';\n\nimport memoize from 'lodash-es/memoize';\n\nexport class InternalAsyncResourceLinkListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n foreignKeyForUri: { attribute: 'foreign-key-for-uri' },\n foreignKeyForId: { attribute: 'foreign-key-for-id' },\n ownKeyForUri: { attribute: 'own-key-for-uri' },\n optionsHref: { attribute: 'options-href' },\n linksHref: { attribute: 'links-href' },\n embedKey: { attribute: 'embed-key' },\n ownUri: { attribute: 'own-uri' },\n limit: { type: Number },\n item: {},\n __isFetching: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n vaadin-checkbox::part(label) {\n margin: 0 0 0 calc(0.625em + (var(--lumo-border-radius) / 4) - 1px);\n align-self: center;\n }\n `,\n ];\n }\n\n foreignKeyForUri: string | null = null;\n\n foreignKeyForId: string | null = null;\n\n ownKeyForUri: string | null = null;\n\n optionsHref: string | null = null;\n\n linksHref: string | null = null;\n\n embedKey: string | null = null;\n\n ownUri: string | null = null;\n\n limit = 20;\n\n item: string | null = null;\n\n private readonly __getItemRenderer = memoize(\n (item: string | null, hasData: boolean) => {\n return new Function(\n 'ctx',\n `return ctx.html\\`\n <${item ?? 'foxy-null'}\n related=\\${JSON.stringify(ctx.related)}\n parent=\\${ctx.parent}\n infer=\"\"\n ${hasData ? '.data=${ctx.data}' : 'href=${ctx.href}'}\n ...=\\${ctx.spread(ctx.props)}\n >\n </${item ?? 'foxy-null'}>\\``\n ) as ItemRenderer;\n },\n (...args) => args.join()\n );\n\n private readonly __renderItem: ItemRenderer = ctx => {\n const render = this.__getItemRenderer(this.item, !!ctx.data);\n const wrap = (content: TemplateResult) => html`\n <div style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\">${content}</div>\n `;\n\n if (!ctx.href || ctx.href.startsWith('foxy://')) return wrap(render(ctx));\n if (this.readonly) return wrap(render(ctx));\n\n const foreignKeyForUri = this.foreignKeyForUri;\n const linkResource = foreignKeyForUri\n ? this.__allLinks?.find(link => link[foreignKeyForUri] === ctx.href)\n : undefined;\n\n const isDisabled = this.disabled || !this.__allLinks || this.__isFetching;\n\n return wrap(html`\n <vaadin-checkbox\n class=\"block\"\n ?disabled=${isDisabled}\n ?checked=${!!linkResource}\n @change=${(evt: CustomEvent) => {\n const target = evt.currentTarget as CheckboxElement;\n if (target.checked) {\n this.__insertLink(ctx.data?._links.self.href ?? '');\n } else {\n this.__deleteLink(linkResource?._links.self.href ?? '');\n }\n }}\n >\n <div class=\"transition-opacity ${isDisabled ? 'opacity-50' : 'opacity-100'}\">\n ${render(ctx)}\n </div>\n </vaadin-checkbox>\n `);\n };\n\n private __isFetching = false;\n\n renderControl(): TemplateResult {\n let firstHref: string | undefined;\n\n try {\n const url = new URL(this.optionsHref ?? '');\n url.searchParams.set('limit', this.limit.toString());\n firstHref = url.toString();\n } catch {\n firstHref = undefined;\n }\n\n const isStatusVisible = this.__isFetching || !this.__allLinks;\n\n return html`\n <div class=\"group\">\n <div class=\"mb-s\" ?hidden=${!this.label && !this.helperText}>\n <div class=\"flex justify-between font-medium text-l\" ?hidden=${!this.label}>\n <span>${this.label}</span>\n <foxy-i18n\n class=\"transition-opacity ${isStatusVisible ? 'opacity-100' : 'opacity-0'}\"\n infer=\"\"\n key=${this.__isFetching ? 'status_saving' : 'status_loading'}\n >\n </foxy-i18n>\n </div>\n <div class=\"text-secondary text-s\" ?hidden=${!this.helperText}>${this.helperText}</div>\n </div>\n\n <foxy-pagination first=${ifDefined(firstHref)} infer=\"pagination\">\n <foxy-collection-page\n infer=\"card\"\n class=${classMap({\n 'block transition-colors divide-y rounded overflow-hidden': true,\n 'bg-contrast-5 divide-contrast-10': true,\n })}\n .item=${this.__renderItem}\n >\n </foxy-collection-page>\n </foxy-pagination>\n\n <div\n class=\"mt-s text-s leading-xs text-error\"\n ?hidden=${!this._errorMessage || this.disabled || this.readonly}\n >\n ${this._errorMessage}\n </div>\n\n ${this.__renderLinkResourceLoaders()}\n </div>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n if (changes.has('item')) this.__getItemRenderer.cache.clear?.();\n }\n\n private async __insertLink(foreignUri: string) {\n this.__isFetching = true;\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(this.linksHref ?? '', {\n method: 'POST',\n body: JSON.stringify({\n [this.foreignKeyForUri ?? '']: foreignUri,\n [this.ownKeyForUri ?? '']: this.ownUri,\n }),\n });\n\n if (response.ok) {\n const json = await response.json();\n const dataResponse = await api.fetch(json._links.self.href);\n\n if (dataResponse.ok) {\n const rumour = NucleonElement.Rumour(this.nucleon?.group ?? '');\n const data = await dataResponse.json();\n\n rumour.share({\n related: [this.linksHref ?? ''],\n source: json._links.self.href,\n data,\n });\n }\n }\n\n this.__isFetching = false;\n }\n\n private async __deleteLink(linkUri: string) {\n this.__isFetching = true;\n\n const api = new NucleonElement.API(this);\n const response = await api.fetch(linkUri, { method: 'DELETE' });\n\n if (response.ok) {\n const rumour = NucleonElement.Rumour(this.nucleon?.group ?? '');\n rumour.share({ related: [this.linksHref ?? ''], source: linkUri, data: null });\n }\n\n this.__isFetching = false;\n }\n\n private __renderLinkResourceLoaders() {\n const maxApiLimit = 200;\n const firstPage = this.renderRoot.querySelector<NucleonElement<Collection>>('[data-link-page]');\n const totalItems = Number(firstPage?.data?.total_items ?? maxApiLimit); // sometimes total_items is a string in hAPI\n const links: string[] = [];\n\n try {\n for (let i = 0; i < Math.max(1, Math.ceil(totalItems / maxApiLimit)); i++) {\n const url = new URL(this.linksHref ?? '');\n url.searchParams.set('offset', String(i * maxApiLimit));\n url.searchParams.set('limit', String(maxApiLimit));\n links.push(url.toString());\n }\n } catch {\n // Do nothing.\n }\n\n return links.map(\n href => html`\n <foxy-nucleon\n class=\"hidden\"\n data-link-page\n infer=\"\"\n href=${href}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `\n );\n }\n\n private get __allLinks() {\n const embedKey = this.embedKey;\n if (!embedKey) return null;\n\n type Loader = NucleonElement<Collection>;\n const loaders = this.renderRoot.querySelectorAll<Loader>('[data-link-page]');\n const allLinks: any[] = [];\n\n for (const loader of loaders) {\n const embedded = loader.data?._embedded?.[embedKey];\n if (!embedded) return null;\n allLinks.push(...embedded);\n }\n\n return allLinks;\n }\n}\n"]}