@foxy.io/elements 1.29.0 → 1.30.0-beta.1

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 (137) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-form.js +1 -1
  3. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  4. package/dist/cdn/foxy-api-browser.js +1 -1
  5. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  6. package/dist/cdn/foxy-attribute-form.js +1 -1
  7. package/dist/cdn/foxy-cancellation-form.js +1 -1
  8. package/dist/cdn/foxy-cart-form.js +2 -2
  9. package/dist/cdn/foxy-client-form.js +1 -1
  10. package/dist/cdn/foxy-collection-pages.js +1 -1
  11. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  12. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  13. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  14. package/dist/cdn/foxy-coupon-form.js +1 -1
  15. package/dist/cdn/foxy-custom-field-form.js +1 -1
  16. package/dist/cdn/foxy-customer-form.js +1 -1
  17. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  18. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  19. package/dist/cdn/foxy-customer-portal.js +1 -1
  20. package/dist/cdn/foxy-customer.js +1 -1
  21. package/dist/cdn/foxy-donation.js +1 -1
  22. package/dist/cdn/foxy-downloadable-form.js +1 -1
  23. package/dist/cdn/foxy-email-template-form.js +1 -1
  24. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  25. package/dist/cdn/foxy-form-dialog.js +1 -1
  26. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  27. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  28. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  29. package/dist/cdn/foxy-gift-card-form.js +1 -1
  30. package/dist/cdn/foxy-i18n-editor.js +1 -1
  31. package/dist/cdn/foxy-integration-form.js +1 -1
  32. package/dist/cdn/foxy-item-category-form.js +1 -1
  33. package/dist/cdn/foxy-item-form.js +3 -3
  34. package/dist/cdn/foxy-item-option-form.js +1 -1
  35. package/dist/cdn/foxy-items-form.js +1 -1
  36. package/dist/cdn/foxy-native-integration-form.js +1 -1
  37. package/dist/cdn/foxy-pagination.js +1 -1
  38. package/dist/cdn/foxy-passkey-form.js +1 -1
  39. package/dist/cdn/foxy-payment-method-card.js +1 -1
  40. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  41. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  42. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  43. package/dist/cdn/foxy-report-form.js +1 -1
  44. package/dist/cdn/foxy-sign-in-form.js +1 -1
  45. package/dist/cdn/foxy-store-form.js +1 -1
  46. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  47. package/dist/cdn/foxy-subscription-card.js +1 -1
  48. package/dist/cdn/foxy-subscription-form.js +1 -1
  49. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  50. package/dist/cdn/foxy-tax-form.js +1 -1
  51. package/dist/cdn/foxy-template-config-form.js +1 -1
  52. package/dist/cdn/foxy-template-form.js +1 -1
  53. package/dist/cdn/foxy-template-set-form.js +1 -1
  54. package/dist/cdn/foxy-transaction-card.js +1 -1
  55. package/dist/cdn/foxy-transaction.js +1 -1
  56. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  57. package/dist/cdn/foxy-user-form.js +1 -1
  58. package/dist/cdn/foxy-users-table.js +1 -1
  59. package/dist/cdn/foxy-webhook-card.js +1 -1
  60. package/dist/cdn/foxy-webhook-form.js +1 -1
  61. package/dist/cdn/{shared-cfb33387.js → shared-01f18104.js} +1 -1
  62. package/dist/cdn/{shared-3483c729.js → shared-09fc6fa0.js} +1 -1
  63. package/dist/cdn/{shared-8bb3eb45.js → shared-1729e19a.js} +1 -1
  64. package/dist/cdn/{shared-fe4a2e3d.js → shared-19f46691.js} +1 -1
  65. package/dist/cdn/{shared-38f0bda5.js → shared-2bd96ec7.js} +2 -2
  66. package/dist/cdn/{shared-a97c3129.js → shared-2d75f154.js} +1 -1
  67. package/dist/cdn/{shared-8526ed32.js → shared-3b975a29.js} +1 -1
  68. package/dist/cdn/{shared-ae00ce7c.js → shared-3cf043a7.js} +1 -1
  69. package/dist/cdn/{shared-0ad0fb9f.js → shared-41e7554e.js} +1 -1
  70. package/dist/cdn/{shared-ee2cda29.js → shared-471e77dd.js} +1 -1
  71. package/dist/cdn/{shared-1467a889.js → shared-476827c7.js} +1 -1
  72. package/dist/cdn/{shared-75331d5e.js → shared-4a652d60.js} +1 -1
  73. package/dist/cdn/{shared-22ba950a.js → shared-4d172731.js} +1 -1
  74. package/dist/cdn/{shared-70747a5c.js → shared-5721fb53.js} +1 -1
  75. package/dist/cdn/{shared-376784f0.js → shared-5bc86d84.js} +1 -1
  76. package/dist/cdn/shared-6d11abd7.js +280 -0
  77. package/dist/cdn/{shared-13203be0.js → shared-6f4fa343.js} +1 -1
  78. package/dist/cdn/{shared-f21254a3.js → shared-6f877b15.js} +1 -1
  79. package/dist/cdn/{shared-d0e4d7b1.js → shared-73045804.js} +1 -1
  80. package/dist/cdn/{shared-f4abc29a.js → shared-787e8da4.js} +1 -1
  81. package/dist/cdn/{shared-9a22d597.js → shared-7dd710e4.js} +1 -1
  82. package/dist/cdn/{shared-970d98db.js → shared-8fbebf38.js} +1 -1
  83. package/dist/cdn/{shared-cc808e01.js → shared-9637a2de.js} +1 -1
  84. package/dist/cdn/{shared-dfc47fd9.js → shared-96a392d9.js} +1 -1
  85. package/dist/cdn/{shared-4f183419.js → shared-97514fcb.js} +1 -1
  86. package/dist/cdn/{shared-c9845b4a.js → shared-9bf7d9a7.js} +1 -1
  87. package/dist/cdn/{shared-421a3ced.js → shared-a0efdc94.js} +1 -1
  88. package/dist/cdn/{shared-32e92c3b.js → shared-a8233033.js} +1 -1
  89. package/dist/cdn/{shared-edae6816.js → shared-ad76e640.js} +1 -1
  90. package/dist/cdn/{shared-6a8a40cc.js → shared-b38762ef.js} +1 -1
  91. package/dist/cdn/{shared-ce0465c6.js → shared-b980ba1d.js} +1 -1
  92. package/dist/cdn/{shared-afd7214a.js → shared-cb3b9d8b.js} +1 -1
  93. package/dist/cdn/{shared-ecf479f2.js → shared-d5ff9121.js} +1 -1
  94. package/dist/cdn/{shared-1ecfa77b.js → shared-deff3eda.js} +1 -1
  95. package/dist/cdn/{shared-301a779e.js → shared-e47bd38e.js} +1 -1
  96. package/dist/cdn/{shared-dbda59a0.js → shared-e5098b19.js} +1 -1
  97. package/dist/cdn/{shared-19768452.js → shared-e7bff5de.js} +1 -1
  98. package/dist/cdn/{shared-e4870c47.js → shared-ea5ff8bc.js} +1 -1
  99. package/dist/cdn/translations/admin-subscription-form/en.json +108 -0
  100. package/dist/cdn/translations/coupon-form/en.json +103 -50
  101. package/dist/cdn/translations/transaction/en.json +108 -0
  102. package/dist/cdn/translations/webhook-card/en.json +5 -1
  103. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +9 -2
  104. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +150 -32
  105. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  106. package/dist/elements/internal/InternalAsyncListControl/index.d.ts +3 -0
  107. package/dist/elements/internal/InternalAsyncListControl/index.js +3 -0
  108. package/dist/elements/internal/InternalAsyncListControl/index.js.map +1 -1
  109. package/dist/elements/internal/InternalAsyncListControl/styles.d.ts +1 -0
  110. package/dist/elements/internal/InternalAsyncListControl/styles.js +12 -0
  111. package/dist/elements/internal/InternalAsyncListControl/styles.js.map +1 -0
  112. package/dist/elements/internal/InternalAsyncListControl/types.d.ts +5 -1
  113. package/dist/elements/internal/InternalAsyncListControl/types.js.map +1 -1
  114. package/dist/elements/public/CouponForm/CouponForm.d.ts +0 -3
  115. package/dist/elements/public/CouponForm/CouponForm.js +56 -76
  116. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  117. package/dist/elements/public/CouponForm/index.d.ts +2 -2
  118. package/dist/elements/public/CouponForm/index.js +2 -2
  119. package/dist/elements/public/CouponForm/index.js.map +1 -1
  120. package/dist/elements/public/GiftCardForm/GiftCardForm.js.map +1 -1
  121. package/dist/elements/public/Transaction/Transaction.d.ts +2 -0
  122. package/dist/elements/public/Transaction/Transaction.js +114 -19
  123. package/dist/elements/public/Transaction/Transaction.js.map +1 -1
  124. package/dist/elements/public/Transaction/index.d.ts +6 -0
  125. package/dist/elements/public/Transaction/index.js +6 -0
  126. package/dist/elements/public/Transaction/index.js.map +1 -1
  127. package/dist/elements/public/WebhookCard/WebhookCard.d.ts +8 -0
  128. package/dist/elements/public/WebhookCard/WebhookCard.js +73 -6
  129. package/dist/elements/public/WebhookCard/WebhookCard.js.map +1 -1
  130. package/dist/elements/public/WebhookCard/index.d.ts +2 -0
  131. package/dist/elements/public/WebhookCard/index.js +2 -0
  132. package/dist/elements/public/WebhookCard/index.js.map +1 -1
  133. package/dist/elements/public/WebhookForm/WebhookForm.d.ts +7 -0
  134. package/dist/elements/public/WebhookForm/WebhookForm.js +40 -4
  135. package/dist/elements/public/WebhookForm/WebhookForm.js.map +1 -1
  136. package/package.json +1 -1
  137. package/dist/cdn/shared-ba7354fa.js +0 -6
@@ -1,4 +1,6 @@
1
1
  import "../../internal/InternalCard/index.js";
2
+ import "../NucleonElement/index.js";
3
+ import "../I18n/index.js";
2
4
  import { WebhookCard } from "./WebhookCard.js";
3
5
  customElements.define('foxy-webhook-card', WebhookCard);
4
6
  export { WebhookCard };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/WebhookCard/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAE3C,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAE5C,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,CAAC","sourcesContent":["import '../../internal/InternalCard/index';\n\nimport { WebhookCard } from './WebhookCard';\n\ncustomElements.define('foxy-webhook-card', WebhookCard);\n\nexport { WebhookCard };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/WebhookCard/index.ts"],"names":[],"mappings":"AAAA,8CAA2C;AAE3C,oCAAiC;AACjC,0BAAuB;AAEvB,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAE5C,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,WAAW,CAAC,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,CAAC","sourcesContent":["import '../../internal/InternalCard/index';\n\nimport '../NucleonElement/index';\nimport '../I18n/index';\n\nimport { WebhookCard } from './WebhookCard';\n\ncustomElements.define('foxy-webhook-card', WebhookCard);\n\nexport { WebhookCard };\n"]}
@@ -1,3 +1,4 @@
1
+ import type { PropertyDeclarations } from 'lit-element';
1
2
  import type { TemplateResult } from 'lit-html';
2
3
  import type { NucleonV8N } from '../NucleonElement/types';
3
4
  import type { Data } from './types';
@@ -13,7 +14,13 @@ declare const WebhookForm_base: typeof InternalForm & import("lit-element").Cons
13
14
  * @since 1.17.0
14
15
  */
15
16
  export declare class WebhookForm extends WebhookForm_base<Data> {
17
+ static get properties(): PropertyDeclarations;
16
18
  static get v8n(): NucleonV8N<Data>;
19
+ /**
20
+ * Optional URI of a transaction, customer or subscription. When provided,
21
+ * the form will display logs and statuses for that particular resource only.
22
+ */
23
+ resourceUri: string | null;
17
24
  private __encryptionKeyGeneratorOptions;
18
25
  private __eventResources;
19
26
  get hiddenSelector(): BooleanSelector;
@@ -1,6 +1,7 @@
1
+ import { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';
1
2
  import { TranslatableMixin } from "../../../mixins/translatable.js";
2
- import { BooleanSelector } from '@foxy.io/sdk/core';
3
3
  import { InternalForm } from "../../internal/InternalForm/InternalForm.js";
4
+ import { ifDefined } from 'lit-html/directives/if-defined';
4
5
  import { html } from 'lit-html';
5
6
  /**
6
7
  * Form element for creating or editing webhooks (`fx:webhook`).
@@ -11,6 +12,11 @@ import { html } from 'lit-html';
11
12
  export class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form') {
12
13
  constructor() {
13
14
  super(...arguments);
15
+ /**
16
+ * Optional URI of a transaction, customer or subscription. When provided,
17
+ * the form will display logs and statuses for that particular resource only.
18
+ */
19
+ this.resourceUri = null;
14
20
  this.__encryptionKeyGeneratorOptions = { separator: '', length: 512 };
15
21
  this.__eventResources = [
16
22
  { value: 'subscription', label: 'event_resource_subscription' },
@@ -18,6 +24,12 @@ export class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form')
18
24
  { value: 'customer', label: 'event_resource_customer' },
19
25
  ];
20
26
  }
27
+ static get properties() {
28
+ return {
29
+ ...super.properties,
30
+ resourceUri: { attribute: 'resource-uri' },
31
+ };
32
+ }
21
33
  static get v8n() {
22
34
  return [
23
35
  ({ name: v }) => !!v || 'name:v8n_required',
@@ -47,6 +59,30 @@ export class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form')
47
59
  super.edit({ version: 2 });
48
60
  }
49
61
  renderBody() {
62
+ var _a, _b, _c, _d;
63
+ const resourceId = this.resourceUri ? getResourceId(this.resourceUri) : null;
64
+ let statusesLink;
65
+ let logsLink;
66
+ try {
67
+ const url = new URL((_b = (_a = this.data) === null || _a === void 0 ? void 0 : _a._links['fx:statuses'].href) !== null && _b !== void 0 ? _b : '');
68
+ if (resourceId !== null)
69
+ url.searchParams.set('resource_id', String(resourceId));
70
+ url.searchParams.set('order', 'date_created desc');
71
+ statusesLink = url.toString();
72
+ }
73
+ catch (_e) {
74
+ statusesLink = undefined;
75
+ }
76
+ try {
77
+ const url = new URL((_d = (_c = this.data) === null || _c === void 0 ? void 0 : _c._links['fx:logs'].href) !== null && _d !== void 0 ? _d : '');
78
+ if (resourceId !== null)
79
+ url.searchParams.set('resource_id', String(resourceId));
80
+ url.searchParams.set('order', 'date_created desc');
81
+ logsLink = url.toString();
82
+ }
83
+ catch (_f) {
84
+ logsLink = undefined;
85
+ }
50
86
  return html `
51
87
  ${this.renderHeader()}
52
88
 
@@ -68,7 +104,7 @@ export class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form')
68
104
  ${this.data
69
105
  ? html `
70
106
  <foxy-internal-async-list-control
71
- first=${this.data._links['fx:statuses'].href}
107
+ first=${ifDefined(statusesLink)}
72
108
  infer="statuses"
73
109
  limit="10"
74
110
  item="foxy-webhook-status-card"
@@ -76,9 +112,9 @@ export class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form')
76
112
  </foxy-internal-async-list-control>
77
113
 
78
114
  <foxy-internal-async-list-control
79
- first=${this.data._links['fx:logs'].href}
115
+ first=${ifDefined(logsLink)}
80
116
  infer="logs"
81
- limit="5"
117
+ limit="10"
82
118
  item="foxy-webhook-log-card"
83
119
  >
84
120
  </foxy-internal-async-list-control>
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookForm.js","sourceRoot":"","sources":["../../../../src/elements/public/WebhookForm/WebhookForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Data } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { html } from 'lit-html';\n\n/**\n * Form element for creating or editing webhooks (`fx:webhook`).\n *\n * @element foxy-webhook-form\n * @since 1.17.0\n */\nexport class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form')<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (!!v && v.length <= 255) || 'name:v8n_too_long',\n ({ url: v }) => !v || v.length <= 1000 || 'url:v8n_too_long',\n ({ query: v }) => !v || v.length <= 1000 || 'query:v8n_too_long',\n ({ encryption_key: v }) => !!v || 'encryption-key:v8n_required',\n ({ encryption_key: v }) => !v || v.length <= 1000 || 'encryption-key:v8n_too_long',\n ];\n }\n\n private __encryptionKeyGeneratorOptions = { separator: '', length: 512 };\n\n private __eventResources = [\n { value: 'subscription', label: 'event_resource_subscription' },\n { value: 'transaction', label: 'event_resource_transaction' },\n { value: 'customer', label: 'event_resource_customer' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch: string[] = [super.hiddenSelector.toString()];\n if (this.data) alwaysMatch.unshift('event-resource');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n const format = this.data?.format;\n return { context: format === 'json' ? this.data?.event_resource : format };\n }\n\n edit(data: Partial<Data>): void {\n super.edit(data);\n if (!this.form.format) super.edit({ format: 'json' });\n if (!this.form.version) super.edit({ version: 2 });\n }\n\n renderBody(): TemplateResult {\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <foxy-internal-radio-group-control infer=\"event-resource\" .options=${this.__eventResources}>\n </foxy-internal-radio-group-control>\n\n <foxy-internal-text-control infer=\"query\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"url\"></foxy-internal-text-control>\n\n <foxy-internal-password-control\n infer=\"encryption-key\"\n show-generator\n .generatorOptions=${this.__encryptionKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n ${this.data\n ? html`\n <foxy-internal-async-list-control\n first=${this.data._links['fx:statuses'].href}\n infer=\"statuses\"\n limit=\"10\"\n item=\"foxy-webhook-status-card\"\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n first=${this.data._links['fx:logs'].href}\n infer=\"logs\"\n limit=\"5\"\n item=\"foxy-webhook-log-card\"\n >\n </foxy-internal-async-list-control>\n `\n : ''}\n ${super.renderBody()}\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"WebhookForm.js","sourceRoot":"","sources":["../../../../src/elements/public/WebhookForm/WebhookForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Data } from './types';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\n/**\n * Form element for creating or editing webhooks (`fx:webhook`).\n *\n * @element foxy-webhook-form\n * @since 1.17.0\n */\nexport class WebhookForm extends TranslatableMixin(InternalForm, 'webhook-form')<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n resourceUri: { attribute: 'resource-uri' },\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (!!v && v.length <= 255) || 'name:v8n_too_long',\n ({ url: v }) => !v || v.length <= 1000 || 'url:v8n_too_long',\n ({ query: v }) => !v || v.length <= 1000 || 'query:v8n_too_long',\n ({ encryption_key: v }) => !!v || 'encryption-key:v8n_required',\n ({ encryption_key: v }) => !v || v.length <= 1000 || 'encryption-key:v8n_too_long',\n ];\n }\n\n /**\n * Optional URI of a transaction, customer or subscription. When provided,\n * the form will display logs and statuses for that particular resource only.\n */\n resourceUri: string | null = null;\n\n private __encryptionKeyGeneratorOptions = { separator: '', length: 512 };\n\n private __eventResources = [\n { value: 'subscription', label: 'event_resource_subscription' },\n { value: 'transaction', label: 'event_resource_transaction' },\n { value: 'customer', label: 'event_resource_customer' },\n ];\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch: string[] = [super.hiddenSelector.toString()];\n if (this.data) alwaysMatch.unshift('event-resource');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get headerSubtitleOptions(): Record<string, unknown> {\n const format = this.data?.format;\n return { context: format === 'json' ? this.data?.event_resource : format };\n }\n\n edit(data: Partial<Data>): void {\n super.edit(data);\n if (!this.form.format) super.edit({ format: 'json' });\n if (!this.form.version) super.edit({ version: 2 });\n }\n\n renderBody(): TemplateResult {\n const resourceId = this.resourceUri ? getResourceId(this.resourceUri) : null;\n\n let statusesLink: string | undefined;\n let logsLink: string | undefined;\n\n try {\n const url = new URL(this.data?._links['fx:statuses'].href ?? '');\n if (resourceId !== null) url.searchParams.set('resource_id', String(resourceId));\n url.searchParams.set('order', 'date_created desc');\n statusesLink = url.toString();\n } catch {\n statusesLink = undefined;\n }\n\n try {\n const url = new URL(this.data?._links['fx:logs'].href ?? '');\n if (resourceId !== null) url.searchParams.set('resource_id', String(resourceId));\n url.searchParams.set('order', 'date_created desc');\n logsLink = url.toString();\n } catch {\n logsLink = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-text-control infer=\"name\"></foxy-internal-text-control>\n\n <foxy-internal-radio-group-control infer=\"event-resource\" .options=${this.__eventResources}>\n </foxy-internal-radio-group-control>\n\n <foxy-internal-text-control infer=\"query\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"url\"></foxy-internal-text-control>\n\n <foxy-internal-password-control\n infer=\"encryption-key\"\n show-generator\n .generatorOptions=${this.__encryptionKeyGeneratorOptions}\n >\n </foxy-internal-password-control>\n\n ${this.data\n ? html`\n <foxy-internal-async-list-control\n first=${ifDefined(statusesLink)}\n infer=\"statuses\"\n limit=\"10\"\n item=\"foxy-webhook-status-card\"\n >\n </foxy-internal-async-list-control>\n\n <foxy-internal-async-list-control\n first=${ifDefined(logsLink)}\n infer=\"logs\"\n limit=\"10\"\n item=\"foxy-webhook-log-card\"\n >\n </foxy-internal-async-list-control>\n `\n : ''}\n ${super.renderBody()}\n `;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@foxy.io/elements",
3
3
  "type": "module",
4
- "version": "1.29.0",
4
+ "version": "1.30.0-beta.1",
5
5
  "description": "E-commerce web components by Foxy.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1,6 +0,0 @@
1
- import{O as t}from"./shared-c9845b4a.js";import"./shared-cc808e01.js";import"./foxy-collection-page.js";import"./foxy-swipe-actions.js";import"./foxy-form-dialog.js";import"./foxy-pagination.js";import"./shared-49ecea83.js";import{I as e}from"./shared-226dd830.js";import"./shared-3483c729.js";import{h as i,r as n}from"./shared-dc73b9a5.js";import{_ as s}from"./shared-0f6e4584.js";import{i as r}from"./shared-9803aa7c.js";import{c as o}from"./shared-4e709717.js";
2
- /**
3
- @license
4
- Copyright (c) 2019 Vaadin Ltd.
5
- This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
6
- */let a,l=t=>t;const d=t=>class e extends t{static get properties(){return{positionTarget:{type:Object,value:null},horizontalAlign:{type:String,value:"start"},verticalAlign:{type:String,value:"top"},noHorizontalOverlap:{type:Boolean,value:!1},noVerticalOverlap:{type:Boolean,value:!1}}}static get observers(){return["__positionSettingsChanged(positionTarget, horizontalAlign, verticalAlign,\n noHorizontalOverlap, noVerticalOverlap)"]}constructor(){super();const t=this._updatePosition.bind(this);this.addEventListener("opened-changed",(e=>{const i=e.detail.value?"addEventListener":"removeEventListener";window[i]("scroll",t),window[i]("resize",t),e.detail.value&&this._updatePosition()}))}ready(){super.ready(),console.warn("PositionMixin is not considered stable and might change any time")}__positionSettingsChanged(){this._updatePosition()}_updatePosition(){if(!this.positionTarget)return;const t=getComputedStyle(this);this.__margins||(this.__margins={},["top","bottom","left","right"].forEach((e=>{this.__margins[e]=parseInt(t[e],10)})));const e="rtl"===t.direction,i=this.positionTarget.getBoundingClientRect(),n=this.__calculateHorizontalPosition(i,e),s=this.__calculateVerticalPosition(i),r=Object.assign({},n,s);this.__doSetPosition(r,e)}__calculateHorizontalPosition(t,i){const n=Math.max(this.__oldContentWidth||0,this.$.overlay.offsetWidth);this.__oldContentWidth=this.$.overlay.offsetWidth;const s=Math.min(window.innerWidth,document.documentElement.clientWidth),r=!i&&"start"===this.horizontalAlign||i&&"end"===this.horizontalAlign,o=!!this.style.left;return e.__calculatePositionInOneDimension(t,n,s,this.__margins,r,o,this.noHorizontalOverlap,{start:"left",end:"right"})}__calculateVerticalPosition(t){const i=Math.max(this.__oldContentHeight||0,this.$.overlay.offsetHeight);this.__oldContentHeight=this.$.overlay.offsetHeight;const n=Math.min(window.innerHeight,document.documentElement.clientHeight),s="top"===this.verticalAlign,r=!!this.style.top;return e.__calculatePositionInOneDimension(t,i,n,this.__margins,s,r,this.noVerticalOverlap,{start:"top",end:"bottom"})}static __calculatePositionInOneDimension(t,e,i,n,s,r,o,a){const l=i-t[o?a.end:a.start]-n[a.end],d=t[o?a.start:a.end]-n[a.start],c=s?l:d,h=s===(c>(s?d:l)||c>e),f=h?a.start:a.end,p=h?a.end:a.start,u=(h?t[o?a.end:a.start]:i-t[o?a.start:a.end])+"px",m={};return m[f]=u,m[p]="",m}__doSetPosition(t,e){Object.assign(this.style,t);const i=!e&&t.left||e&&t.right;this.style.alignItems=i?"flex-start":"flex-end",this.style.justifyContent=t.top?"flex-start":"flex-end"}};class c extends(d(t)){constructor(){super(...arguments),this.renderer=(t,e,s)=>{var r;const o=null!==(r=t.firstElementChild)&&void 0!==r?r:document.createElement("div");t.firstElementChild||t.appendChild(o);const d=s,c=i(a||(a=l` <div style="display:grid;gap:var(--lumo-space-m);padding:var(--lumo-space-s);width:22rem"> <foxy-query-builder lang="${0}" ns="${0}" .options="${0}" .value="${0}"> </foxy-query-builder> <div style="display:flex;justify-content:space-between"> <vaadin-button theme="primary" style="margin:0" @click="${0}"> <foxy-i18n lang="${0}" ns="${0}" key="search"></foxy-i18n> </vaadin-button> <vaadin-button theme="secondary contrast" style="margin:0" @click="${0}"> <foxy-i18n lang="${0}" ns="${0}" key="clear"></foxy-i18n> </vaadin-button> </div> </div> `),d.lang,`${d.ns} query-builder`.trim(),d.options,d.value,(()=>{var t;const e=null!==(t=o.querySelector("foxy-query-builder").value)&&void 0!==t?t:"";this.dispatchEvent(new CustomEvent("search",{detail:e}))}),d.lang,d.ns,(()=>this.dispatchEvent(new CustomEvent("search"))),d.lang,d.ns);n(c,o)}}static get is(){return"foxy-internal-async-list-control-filter-overlay"}}let h,f,p,u,m,g,y,_,v,b,x,$,P=t=>t;customElements.define("foxy-internal-async-list-control",class extends e{constructor(){super(...arguments),this.keepDialogOpenOnDelete=!1,this.keepDialogOpenOnPost=!1,this.createPageHref=null,this.related=[],this.actions=[],this.filters=[],this.limit=20,this.first=null,this.form=null,this.formProps={},this.item=null,this.itemProps={},this.wide=!1,this.alert=!1,this.hideDeleteButton=!1,this.hideCreateButton=!1,this.getPageHref=null,this.__deletionConfimationCallback=null,this.__cachedCardRenderer=null,this.__isFilterVisible=!1,this.__itemRenderer=t=>{var e;if(!t.data)return this.__cardRenderer(t);if("string"!=typeof(null===(e=this.getPageHref)||void 0===e?void 0:e.call(this,t.href,t.data))&&!this.form)return this.__cardRenderer(t);const n=this.disabledSelector.matches("card",!0),s=this.__cardRenderer(t);let r;const a=o({"rounded-t":!t.previous,"rounded-b":!t.next,"focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50":!0,"text-left w-full block transition-colors":!0,"hover-bg-contrast-5":!n});if(this.getPageHref)if(n)r=i(h||(h=P`<div class="${0}">${0}</div>`),a,s);else{const e=this.getPageHref(t.href,t.data);r=i(f||(f=P`<a class="${0}" href="${0}">${0}</a>`),a,e,s)}else{r=i(p||(p=P` <button ?disabled="${0}" class="${0}" @click="${0}">${0}</button> `),n,a,(e=>{const i=new CustomEvent("itemclick",{cancelable:!0,composed:!0,bubbles:!0,detail:t.href});if(this.dispatchEvent(i)){const i=e.currentTarget,n=this.__dialog;n.header="header_update",n.href=t.href,n.show(i)}}),s)}return this.hideDeleteButton||this.readonly?r:i(u||(u=P` <foxy-swipe-actions class="block"> ${0} ${0} <vaadin-button theme="primary error" class="h-full rounded-none" slot="action" @click="${0}"> <foxy-i18n infer="" key="delete_button_text"></foxy-i18n> </vaadin-button> </foxy-swipe-actions> `),r,this.actions.map((e=>i(m||(m=P` <vaadin-button data-testclass="action" theme="${0}" class="h-full rounded-none relative" slot="action" ?disabled="${0}" @click="${0}"> <foxy-i18n class="${0}" infer="" key="${0}"> </foxy-i18n> <div class="${0}"> <foxy-spinner layout="no-label" infer="spinner" state="${0}"> </foxy-spinner> </div> </vaadin-button> `),e.theme,this.disabled,(()=>e.onClick(t.data)),o({"transition-opacity":!0,"opacity-0":"idle"!==e.state}),e.text,o({"absolute inset-0 flex items-center justify-center transition-opacity":!0,"opacity-0":"idle"===e.state}),e.state))),(t=>{const e=t.currentTarget;this.renderRoot.querySelector("#confirm").show(e),this.__deletionConfimationCallback=()=>{const t=e.parentElement.firstElementChild.querySelector("[href]");null==t||t.delete(),this.__deletionConfimationCallback=null}}))},this.__filter=""}static get properties(){return s(s({},super.properties),{},{keepDialogOpenOnDelete:{type:Boolean,attribute:"keep-dialog-open-on-delete"},keepDialogOpenOnPost:{type:Boolean,attribute:"keep-dialog-open-on-post"},hideDeleteButton:{type:Boolean,attribute:"hide-delete-button"},hideCreateButton:{type:Boolean,attribute:"hide-create-button"},createPageHref:{attribute:"create-page-href"},getPageHref:{attribute:!1},related:{type:Array},first:{},limit:{type:Number},form:{},formProps:{type:Object,attribute:"form-props"},item:{},itemProps:{type:Object,attribute:"item-props"},wide:{type:Boolean},alert:{type:Boolean},actions:{type:Array},filters:{type:Array},__filter:{attribute:!1},__isFilterVisible:{attribute:!1}})}renderControl(){var t,e;let n;try{const e=new URL(null!==(t=this.first)&&void 0!==t?t:""),i=new URLSearchParams(this.__filter);e.searchParams.set("limit",String(this.limit)),i.forEach(((t,i)=>e.searchParams.set(i,t))),n=e.toString()}catch(t){n=void 0}return i(g||(g=P` ${0} ${0} <div class="flex gap-m items-center justify-between mb-xs text-s font-medium"> <span class="text-secondary"> ${0} </span> ${0} ${0} </div> <foxy-pagination first="${0}" infer="pagination"> <foxy-collection-page class="${0}" infer="card" .related="${0}" .props="${0}" .item="${0}"> </foxy-collection-page> </foxy-pagination> <div class="${0}" ?hidden="${0}"> ${0} </div> <div class="mt-xs text-xs leading-xs text-error" ?hidden="${0}"> ${0} </div> `),this.form?i(y||(y=P` <foxy-form-dialog parent="${0}" infer="dialog" id="form" ?wide="${0}" ?alert="${0}" ?keep-open-on-post="${0}" ?keep-open-on-delete="${0}" .related="${0}" .props="${0}" .form="${0}"> </foxy-form-dialog> `),r(null!==(e=this.first)&&void 0!==e?e:void 0),this.wide,this.alert,this.keepDialogOpenOnPost,this.keepDialogOpenOnDelete,this.related,this.formProps,this.form):"",this.hideDeleteButton||this.readonly?"":i(_||(_=P` <foxy-internal-confirm-dialog message="delete_message" confirm="delete_confirm" cancel="delete_cancel" header="delete_header" theme="error" infer="" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> `),(t=>{var e;t.detail.cancelled||null===(e=this.__deletionConfimationCallback)||void 0===e||e.call(this)})),this.label&&"label"!==this.label?this.label:"",this.filters.length>0?i(v||(v=P` <foxy-internal-async-list-control-filter-overlay .noVerticalOverlap="${0}" .positionTarget="${0}" .model="${0}" ?opened="${0}" @vaadin-overlay-close="${0}" @search="${0}"> </foxy-internal-async-list-control-filter-overlay> <vaadin-button theme="tertiary-inline contrast" class="ml-auto" id="filters" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="pagination" key="search_button_text"></foxy-i18n> </vaadin-button> `),!0,this.renderRoot.querySelector("#filters"),{options:this.filters,value:this.__filter,lang:this.lang,ns:this.ns},this.__isFilterVisible,(()=>this.__isFilterVisible=!1),(t=>{var e;this.__filter=null!==(e=t.detail)&&void 0!==e?e:""}),this.disabled,(()=>this.__isFilterVisible=!this.__isFilterVisible)):"",!this.form&&!this.createPageHref||this.readonly||this.hideCreateButton?"":this.createPageHref&&!this.disabled?i(b||(b=P` <a class="rounded-s text-primary group focus-outline-none focus-ring-2 focus-ring-primary-50" href="${0}"> <foxy-i18n class="transition-opacity group-hover-opacity-80" infer="" key="create_button_text"> </foxy-i18n> </a> `),this.createPageHref):i(x||(x=P` <vaadin-button theme="tertiary-inline" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="pagination" key="create_button_text"></foxy-i18n> </vaadin-button> `),this.disabled,(t=>{t.preventDefault(),t.stopPropagation();const e=this.__dialog,i=t.currentTarget;e.header="header_create",e.href="",e.show(i)})),r(n),o({"block divide-y divide-contrast-5 rounded overflow-hidden":!0,"ring-1 ring-inset ring-contrast-10":!this.form&&!this.getPageHref,"bg-contrast-5":!!this.form||!!this.getPageHref}),this.related,this.itemProps,this.__itemRenderer,o({"transition-colors mt-xs text-xs":!0,"text-secondary group-hover-text-body":!this.disabled&&!this.readonly,"text-disabled":this.disabled}),!this.helperText||"helper_text"===this.helperText,this.helperText,!this._errorMessage||this.disabled||this.readonly,this._errorMessage)}get __dialog(){return this.renderRoot.querySelector("#form")}get __cardRenderer(){var t;const e=this.item;return(null===(t=this.__cachedCardRenderer)||void 0===t?void 0:t.item)!==e&&(this.__cachedCardRenderer={item:e,render:"string"==typeof e?new Function("ctx",`return ctx.html\`\n <${e}\n related=\${JSON.stringify(ctx.related)}\n parent=\${ctx.parent}\n style="padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)"\n infer=""\n href=\${ctx.href}\n ...=\${ctx.spread(ctx.props)}\n >\n </${e}>\``):t=>i($||($=P` <div style="padding:calc(.625em + (var(--lumo-border-radius)/ 4) - 1px)"> ${0} </div> `),null==e?void 0:e(t))}),this.__cachedCardRenderer.render}}),customElements.define(c.is,c);