@foxy.io/elements 1.24.0-beta.2 → 1.24.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 (32) hide show
  1. package/dist/cdn/foxy-error-entry-card.js +1 -1
  2. package/dist/cdn/foxy-item-category-form.js +1 -1
  3. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  4. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  5. package/dist/cdn/foxy-store-form.js +1 -1
  6. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  7. package/dist/cdn/foxy-transaction-card.js +1 -1
  8. package/dist/cdn/foxy-webhook-form.js +1 -1
  9. package/dist/cdn/{shared-7995407d.js → shared-30bebd39.js} +1 -1
  10. package/dist/cdn/translations/error-entry-card/en.json +4 -0
  11. package/dist/cdn/translations/item-category-form/en.json +3 -3
  12. package/dist/cdn/translations/transaction-card/en.json +6 -6
  13. package/dist/cdn/translations/webhook-form/en.json +1 -1
  14. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js +2 -1
  15. package/dist/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.js.map +1 -1
  16. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.d.ts +0 -1
  17. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js +34 -30
  18. package/dist/elements/public/ErrorEntryCard/ErrorEntryCard.js.map +1 -1
  19. package/dist/elements/public/ErrorEntryCard/ResourceViewer.js +9 -0
  20. package/dist/elements/public/ErrorEntryCard/ResourceViewer.js.map +1 -1
  21. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.d.ts +6 -0
  22. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js +48 -3
  23. package/dist/elements/public/ItemCategoryForm/ItemCategoryForm.js.map +1 -1
  24. package/dist/elements/public/ItemCategoryForm/index.d.ts +1 -0
  25. package/dist/elements/public/ItemCategoryForm/index.js +1 -0
  26. package/dist/elements/public/ItemCategoryForm/index.js.map +1 -1
  27. package/dist/elements/public/TransactionCard/TransactionCard.js +13 -19
  28. package/dist/elements/public/TransactionCard/TransactionCard.js.map +1 -1
  29. package/dist/elements/public/WebhookForm/WebhookForm.d.ts +2 -0
  30. package/dist/elements/public/WebhookForm/WebhookForm.js +7 -0
  31. package/dist/elements/public/WebhookForm/WebhookForm.js.map +1 -1
  32. package/package.json +1 -1
@@ -156,7 +156,7 @@
156
156
  "increase": "increase"
157
157
  },
158
158
  "admin-email-template-uri": {
159
- "label": "Email to admin",
159
+ "label": "Message to admin",
160
160
  "placeholder": "None (don't send)",
161
161
  "helper_text": ""
162
162
  },
@@ -167,12 +167,12 @@
167
167
  "v8n_required": "Please enter an email"
168
168
  },
169
169
  "customer-email-template-uri": {
170
- "label": "Email to customer",
170
+ "label": "Message to customer",
171
171
  "placeholder": "None (don't send)",
172
172
  "helper_text": ""
173
173
  },
174
174
  "gift-recipient-email-template-uri": {
175
- "label": "Email to gift recipient",
175
+ "label": "Message to gift recipient",
176
176
  "placeholder": "None (don't send)",
177
177
  "helper_text": ""
178
178
  },
@@ -17,12 +17,12 @@
17
17
  "transaction_summary_plural": "{{most_expensive_item.name}} and {{count_minus_one}} more",
18
18
  "transaction_verified": "Verified",
19
19
  "transaction_voided": "Voided",
20
- "type_subscription_cancellation": "Subscription cancellation",
21
- "type_subscription_modification": "Subscription change",
22
- "type_subscription_renewal": "Subscription renewal",
23
- "type_updateinfo": "Profile update",
24
- "type_new_order": "New order",
25
- "type_new_subscription": "New subscription",
20
+ "type_subscription_cancellation": "Cancellation",
21
+ "type_subscription_modification": "Modification",
22
+ "type_subscription_renewal": "Renewal",
23
+ "type_updateinfo": "Update",
24
+ "type_new_order": "Order",
25
+ "type_new_subscription": "Subscription",
26
26
  "source_MIT": "This transaction was initiated by merchant",
27
27
  "source_CIT": "This transaction was initiated by customer",
28
28
  "spinner": {
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "event-resource": {
39
39
  "label": "Resource",
40
- "helper_text": "Changes in selected resource type will trigger this webhook.",
40
+ "helper_text": "Changes in selected resource type will trigger this webhook. Resource type cannot be changed after the webhook has been created.",
41
41
  "event_resource_subscription": "Subscription",
42
42
  "event_resource_transaction": "Transaction",
43
43
  "event_resource_customer": "Customer"
@@ -53,7 +53,8 @@ export class InternalRadioGroupControl extends InternalEditableControl {
53
53
  'group divide-y divide-contrast-10': isList,
54
54
  })}
55
55
  theme=${ifDefined((_b = this.theme) !== null && _b !== void 0 ? _b : undefined)}
56
- ?disabled=${this.disabled || this.readonly}
56
+ ?disabled=${this.disabled}
57
+ ?readonly=${this.readonly}
57
58
  .checkValidity=${this._checkValidity}
58
59
  .value=${this._value}
59
60
  @change=${(evt) => {
@@ -1 +1 @@
1
- {"version":3,"file":"InternalRadioGroupControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,cAAc,CACZ,oBAAoB,EACpB,GAAG;;;;;;;;;;;;;;GAeF,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,uBAAuB;IAAtE;;QASE,uCAAuC;QACvC,YAAO,GAAa,EAAE,CAAC;QAEvB,sEAAsE;QACtE,UAAK,GAAkB,IAAI,CAAC;IAuC9B,CAAC;IAnDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAQD,aAAa;;QACX,MAAM,MAAM,GAAG,CAAC,QAAC,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,MAAM,EAAC,CAAC;QAE9C,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;gBACV,QAAQ,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,mCAAmC,EAAE,MAAM;SAC5C,CAAC;gBACM,SAAS,OAAC,IAAI,CAAC,KAAK,mCAAI,SAAS,CAAC;oBAC9B,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;yBACzB,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAuB;kBAC3B,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAkC,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAA;;sBAEF,MAAM,CAAC,KAAK;sBACZ,QAAQ,CAAC;YACf,6BAA6B,EAAE,MAAM;YACrC,gCAAgC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;SAC7E,CAAC;;wCAEwB,MAAM,CAAC,KAAK;;WAEzC,CACF;;KAEJ,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { RadioGroupElement } from '@vaadin/vaadin-radio-button/vaadin-radio-group';\nimport type { Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';\nimport { css } from 'lit-element';\n\nregisterStyles(\n 'vaadin-radio-group',\n css`\n :host([theme~='list']) label {\n padding-bottom: var(--lumo-space-xs);\n }\n\n :host([theme~='list']) [part='group-field'] {\n display: flex;\n border: thin solid var(--lumo-contrast-10pct);\n border-radius: var(--lumo-border-radius);\n transition: border-color 0.15s ease;\n }\n\n :host([theme~='list']:not([disabled]):not([readonly]):hover) [part='group-field'] {\n border-color: var(--lumo-contrast-20pct);\n }\n `\n);\n\n/**\n * Internal control wrapper for `vaadin-radio-group` element.\n *\n * @since 1.17.0\n * @element foxy-internal-radio-group-control\n */\nexport class InternalRadioGroupControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n theme: { type: String },\n };\n }\n\n /** List of radio buttons to render. */\n options: Option[] = [];\n\n /** Same as the \"theme\" attribute/property of `vaadin-radio-group`. */\n theme: string | null = null;\n\n renderControl(): TemplateResult {\n const isList = !!this.theme?.includes('list');\n\n return html`\n <vaadin-radio-group\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n label=${this.label}\n class=${classMap({\n 'w-full': true,\n 'group divide-y divide-contrast-10': isList,\n })}\n theme=${ifDefined(this.theme ?? undefined)}\n ?disabled=${this.disabled || this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value as string | null}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as RadioGroupElement;\n this._value = field.value;\n }}\n >\n ${this.options.map(\n option => html`\n <vaadin-radio-button\n value=${option.value}\n class=${classMap({\n 'block p-s transition-colors': isList,\n 'group-hover-divide-contrast-20': isList && !this.disabled && !this.readonly,\n })}\n >\n <foxy-i18n infer=\"\" key=${option.label}></foxy-i18n>\n </vaadin-radio-button>\n `\n )}\n </vaadin-radio-group>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalRadioGroupControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalRadioGroupControl/InternalRadioGroupControl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,cAAc,CACZ,oBAAoB,EACpB,GAAG;;;;;;;;;;;;;;GAeF,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,yBAA0B,SAAQ,uBAAuB;IAAtE;;QASE,uCAAuC;QACvC,YAAO,GAAa,EAAE,CAAC;QAEvB,sEAAsE;QACtE,UAAK,GAAkB,IAAI,CAAC;IAwC9B,CAAC;IApDC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;YACxB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACxB,CAAC;IACJ,CAAC;IAQD,aAAa;;QACX,MAAM,MAAM,GAAG,CAAC,QAAC,IAAI,CAAC,KAAK,0CAAE,QAAQ,CAAC,MAAM,EAAC,CAAC;QAE9C,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;gBACV,QAAQ,CAAC;YACf,QAAQ,EAAE,IAAI;YACd,mCAAmC,EAAE,MAAM;SAC5C,CAAC;gBACM,SAAS,OAAC,IAAI,CAAC,KAAK,mCAAI,SAAS,CAAC;oBAC9B,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAuB;kBAC3B,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAkC,CAAC;YACrD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAA;;sBAEF,MAAM,CAAC,KAAK;sBACZ,QAAQ,CAAC;YACf,6BAA6B,EAAE,MAAM;YACrC,gCAAgC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;SAC7E,CAAC;;wCAEwB,MAAM,CAAC,KAAK;;WAEzC,CACF;;KAEJ,CAAC;IACJ,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { RadioGroupElement } from '@vaadin/vaadin-radio-button/vaadin-radio-group';\nimport type { Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\nimport { classMap } from '../../../utils/class-map';\n\nimport { registerStyles } from '@vaadin/vaadin-themable-mixin/register-styles';\nimport { css } from 'lit-element';\n\nregisterStyles(\n 'vaadin-radio-group',\n css`\n :host([theme~='list']) label {\n padding-bottom: var(--lumo-space-xs);\n }\n\n :host([theme~='list']) [part='group-field'] {\n display: flex;\n border: thin solid var(--lumo-contrast-10pct);\n border-radius: var(--lumo-border-radius);\n transition: border-color 0.15s ease;\n }\n\n :host([theme~='list']:not([disabled]):not([readonly]):hover) [part='group-field'] {\n border-color: var(--lumo-contrast-20pct);\n }\n `\n);\n\n/**\n * Internal control wrapper for `vaadin-radio-group` element.\n *\n * @since 1.17.0\n * @element foxy-internal-radio-group-control\n */\nexport class InternalRadioGroupControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n theme: { type: String },\n };\n }\n\n /** List of radio buttons to render. */\n options: Option[] = [];\n\n /** Same as the \"theme\" attribute/property of `vaadin-radio-group`. */\n theme: string | null = null;\n\n renderControl(): TemplateResult {\n const isList = !!this.theme?.includes('list');\n\n return html`\n <vaadin-radio-group\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n label=${this.label}\n class=${classMap({\n 'w-full': true,\n 'group divide-y divide-contrast-10': isList,\n })}\n theme=${ifDefined(this.theme ?? undefined)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value as string | null}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as RadioGroupElement;\n this._value = field.value;\n }}\n >\n ${this.options.map(\n option => html`\n <vaadin-radio-button\n value=${option.value}\n class=${classMap({\n 'block p-s transition-colors': isList,\n 'group-hover-divide-contrast-20': isList && !this.disabled && !this.readonly,\n })}\n >\n <foxy-i18n infer=\"\" key=${option.label}></foxy-i18n>\n </vaadin-radio-button>\n `\n )}\n </vaadin-radio-group>\n `;\n }\n}\n"]}
@@ -26,6 +26,5 @@ export declare class ErrorEntryCard extends Base<Data> {
26
26
  private __renderSummary;
27
27
  private __renderDetails;
28
28
  private __handleToggle;
29
- private __decodeHtml;
30
29
  }
31
30
  export {};
@@ -7,6 +7,7 @@ import { ThemeableMixin } from "../../../mixins/themeable.js";
7
7
  import { TranslatableMixin } from "../../../mixins/translatable.js";
8
8
  import { classMap } from "../../../utils/class-map.js";
9
9
  import { html } from 'lit-html';
10
+ import { decode } from 'html-entities';
10
11
  const NS = 'error-entry-card';
11
12
  const Base = TranslatableMixin(ThemeableMixin(ScopedElementsMixin(NucleonElement)), NS);
12
13
  /**
@@ -97,7 +98,7 @@ export class ErrorEntryCard extends Base {
97
98
  }
98
99
  __renderGetOrPostValues(getValues, postValues) {
99
100
  const values = getValues || postValues;
100
- const params = new URLSearchParams(this.__decodeHtml(values));
101
+ const params = new URLSearchParams(decode(values));
101
102
  const method = getValues ? 'GET' : 'POST';
102
103
  return html `
103
104
  <div class="relative leading-xs pt-s">
@@ -151,36 +152,44 @@ export class ErrorEntryCard extends Base {
151
152
  __renderDetails(data) {
152
153
  return html `
153
154
  <div class="space-y-m pt-m">
154
- <x-group frame>
155
- <foxy-i18n slot="header" lang=${this.lang} key="request" ns=${this.ns}></foxy-i18n>
155
+ ${data.referrer || data.get_values || data.post_values
156
+ ? html `
157
+ <x-group frame>
158
+ <foxy-i18n slot="header" lang=${this.lang} key="request" ns=${this.ns}></foxy-i18n>
156
159
 
157
- <div class="mx-xs p-s text-s divide-y divide-contrast-10 space-y-s">
158
- <p>
159
- <span class="block font-medium">${data.url}</span>
160
- ${data.referrer ? this.__renderReferrer(data.referrer) : ''}
161
- </p>
160
+ <div class="mx-xs p-s text-s divide-y divide-contrast-10 space-y-s">
161
+ <p>
162
+ <span class="block font-medium">${data.url}</span>
163
+ ${data.referrer ? this.__renderReferrer(data.referrer) : ''}
164
+ </p>
162
165
 
163
- ${data.get_values || data.post_values
164
- ? this.__renderGetOrPostValues(data.get_values, data.post_values)
166
+ ${data.get_values || data.post_values
167
+ ? this.__renderGetOrPostValues(data.get_values, data.post_values)
168
+ : ''}
169
+ </div>
170
+ </x-group>
171
+ `
165
172
  : ''}
166
- </div>
167
- </x-group>
173
+ ${data.ip_address || data.ip_country || data.user_agent
174
+ ? html `
175
+ <x-group frame>
176
+ <foxy-i18n slot="header" lang=${this.lang} key="client" ns=${this.ns}></foxy-i18n>
168
177
 
169
- <x-group frame>
170
- <foxy-i18n slot="header" lang=${this.lang} key="client" ns=${this.ns}></foxy-i18n>
178
+ <div class="text-s flex flex-col mx-xs p-s">
179
+ <span class="font-medium">
180
+ ${data.ip_address}
181
+ ${data.ip_country
182
+ ? html `<span class="text-tertiary"> • </span>${data.ip_country}`
183
+ : ''}
184
+ </span>
171
185
 
172
- <div class="text-s flex flex-col mx-xs p-s">
173
- <span class="font-medium">
174
- ${data.ip_address}
175
- ${data.ip_country
176
- ? html `<span class="text-tertiary"> • </span>${data.ip_country}`
186
+ ${data.user_agent
187
+ ? html `<span class="text-secondary">${data.user_agent}</span>`
188
+ : ''}
189
+ </div>
190
+ </x-group>
191
+ `
177
192
  : ''}
178
- </span>
179
-
180
- ${data.user_agent ? html `<span class="text-secondary">${data.user_agent}</span>` : ''}
181
- </div>
182
- </x-group>
183
-
184
193
  ${Object.entries(data._links).map(([curie, link]) => {
185
194
  if (['self', 'fx:store', 'curies'].includes(curie))
186
195
  return '';
@@ -211,10 +220,5 @@ export class ErrorEntryCard extends Base {
211
220
  }
212
221
  this.open = details.open;
213
222
  }
214
- __decodeHtml(html) {
215
- const areaElement = document.createElement('textarea');
216
- areaElement.innerHTML = html;
217
- return areaElement.value;
218
- }
219
223
  }
220
224
  //# sourceMappingURL=ErrorEntryCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorEntryCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ErrorEntryCard/ErrorEntryCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data } from './types';\nimport { DataList } from './DataList';\nimport { Group } from '../../private/Group/Group';\nimport { NucleonElement } from '../NucleonElement/index';\nimport { ResourceViewer } from './ResourceViewer';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\n\nconst NS = 'error-entry-card';\nconst Base = TranslatableMixin(ThemeableMixin(ScopedElementsMixin(NucleonElement)), NS);\n\n/**\n * Displays an ErrorEntry from the Log of FoxyAPI.\n *\n * @element foxy-error-entry-card\n */\nexport class ErrorEntryCard extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'x-resource-viewer': ResourceViewer,\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-data-list': DataList,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n open: { type: Boolean, reflect: true },\n };\n }\n\n /**\n * If true, displays the error details.\n * Additionally, sets `form.hide_error` to `true` and submits changes on first view.\n */\n open = false;\n\n render(): TemplateResult {\n const data = this.data;\n const isBusy = this.in('busy');\n\n if (data) {\n const { hide_error } = data;\n const { open } = this;\n\n return html`\n <details\n aria-busy=${isBusy}\n aria-live=\"polite\"\n class=\"text-body w-full\"\n ?open=${open}\n @toggle=${this.__handleToggle}\n >\n <summary\n class=\"rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2\"\n >\n <div\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=${classMap({\n 'border-l-2 leading-s relative cursor-pointer': true,\n 'border-contrast': hide_error && !open,\n 'border-primary': !hide_error,\n 'border-error': hide_error && open,\n 'h-l': !open,\n })}\n >\n ${this.__renderSummary(data)}\n </div>\n </summary>\n\n ${open ? this.__renderDetails(data) : ''}\n </details>\n `;\n } else {\n return html`\n <div\n aria-busy=${isBusy}\n aria-live=\"polite\"\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=\"flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l\"\n >\n <foxy-spinner\n data-testid=\"spinner\"\n layout=\"horizontal\"\n state=${isBusy ? 'busy' : this.in('fail') ? 'error' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n `;\n }\n }\n\n private __renderGetOrPostValues(getValues: string, postValues: string) {\n const values = getValues || postValues;\n const params = new URLSearchParams(this.__decodeHtml(values));\n const method = getValues ? 'GET' : 'POST';\n\n return html`\n <div class=\"relative leading-xs pt-s\">\n <div class=\"absolute font-medium right-0 text-tertiary text-xs top-0 mt-s\">${method}</div>\n <x-data-list data=${JSON.stringify(Array.from(params.entries()))}></x-data-list>\n </div>\n `;\n }\n\n private __renderReferrer(referrer: string) {\n return html`\n <span class=\"text-secondary\">Navigated from</span>\n <a\n target=\"_blank\"\n class=\"font-medium text-primary hover-underline\"\n href=${referrer}\n rel=\"nofollow noopener noreferrer\"\n >\n ${referrer}\n </a>\n `;\n }\n\n private __renderSummary(data: Data) {\n return html`\n <div class=\"text-s absolute right-0 top-0 text-tertiary\">\n <iron-icon icon=\"icons:expand-${this.open ? 'less' : 'more'}\"></iron-icon>\n </div>\n\n <div class=\"text-s mb-xs ${data.hide_error ? 'text-error' : 'text-primary'}\">\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"date\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"time\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n <p class=\"${this.open ? '' : 'truncate'} overflow-hidden font-medium\">\n ${data.error_message}\n </p>\n `;\n }\n\n private __renderDetails(data: Data) {\n return html`\n <div class=\"space-y-m pt-m\">\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"request\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"mx-xs p-s text-s divide-y divide-contrast-10 space-y-s\">\n <p>\n <span class=\"block font-medium\">${data.url}</span>\n ${data.referrer ? this.__renderReferrer(data.referrer) : ''}\n </p>\n\n ${data.get_values || data.post_values\n ? this.__renderGetOrPostValues(data.get_values, data.post_values)\n : ''}\n </div>\n </x-group>\n\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"client\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"text-s flex flex-col mx-xs p-s\">\n <span class=\"font-medium\">\n ${data.ip_address}\n ${data.ip_country\n ? html`<span class=\"text-tertiary\"> • </span>${data.ip_country}`\n : ''}\n </span>\n\n ${data.user_agent ? html`<span class=\"text-secondary\">${data.user_agent}</span>` : ''}\n </div>\n </x-group>\n\n ${Object.entries(data._links).map(([curie, link]) => {\n if (['self', 'fx:store', 'curies'].includes(curie)) return '';\n\n return html`\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=${curie.substr(3)} ns=${this.ns}>\n </foxy-i18n>\n\n <x-resource-viewer\n class=\"p-s mx-xs\"\n href=${link.href}\n lang=${this.lang}\n ns=${this.ns}\n >\n </x-resource-viewer>\n </x-group>\n `;\n })}\n </div>\n `;\n }\n\n private __handleToggle(event: Event) {\n const details = event.target as HTMLDetailsElement;\n\n if (details.open && this.data?.hide_error === false) {\n this.edit({ hide_error: true });\n this.submit();\n }\n\n this.open = details.open;\n }\n\n private __decodeHtml(html: string) {\n const areaElement = document.createElement('textarea');\n areaElement.innerHTML = html;\n return areaElement.value;\n }\n}\n"]}
1
+ {"version":3,"file":"ErrorEntryCard.js","sourceRoot":"","sources":["../../../../src/elements/public/ErrorEntryCard/ErrorEntryCard.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { Data } from './types';\nimport { DataList } from './DataList';\nimport { Group } from '../../private/Group/Group';\nimport { NucleonElement } from '../NucleonElement/index';\nimport { ResourceViewer } from './ResourceViewer';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { html } from 'lit-html';\nimport { decode } from 'html-entities';\n\nconst NS = 'error-entry-card';\nconst Base = TranslatableMixin(ThemeableMixin(ScopedElementsMixin(NucleonElement)), NS);\n\n/**\n * Displays an ErrorEntry from the Log of FoxyAPI.\n *\n * @element foxy-error-entry-card\n */\nexport class ErrorEntryCard extends Base<Data> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'x-resource-viewer': ResourceViewer,\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-data-list': DataList,\n 'iron-icon': customElements.get('iron-icon'),\n 'foxy-i18n': customElements.get('foxy-i18n'),\n 'x-group': Group,\n };\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n open: { type: Boolean, reflect: true },\n };\n }\n\n /**\n * If true, displays the error details.\n * Additionally, sets `form.hide_error` to `true` and submits changes on first view.\n */\n open = false;\n\n render(): TemplateResult {\n const data = this.data;\n const isBusy = this.in('busy');\n\n if (data) {\n const { hide_error } = data;\n const { open } = this;\n\n return html`\n <details\n aria-busy=${isBusy}\n aria-live=\"polite\"\n class=\"text-body w-full\"\n ?open=${open}\n @toggle=${this.__handleToggle}\n >\n <summary\n class=\"rounded-s ring-offset-4 ring-offset-base ring-primary-50 focus-outline-none focus-ring-2\"\n >\n <div\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=${classMap({\n 'border-l-2 leading-s relative cursor-pointer': true,\n 'border-contrast': hide_error && !open,\n 'border-primary': !hide_error,\n 'border-error': hide_error && open,\n 'h-l': !open,\n })}\n >\n ${this.__renderSummary(data)}\n </div>\n </summary>\n\n ${open ? this.__renderDetails(data) : ''}\n </details>\n `;\n } else {\n return html`\n <div\n aria-busy=${isBusy}\n aria-live=\"polite\"\n style=\"padding-left: calc(var(--lumo-space-xs) + var(--lumo-space-s) - 1px)\"\n class=\"flex items-center justify-center border-l-2 leading-s relative border-contrast-10 h-l\"\n >\n <foxy-spinner\n data-testid=\"spinner\"\n layout=\"horizontal\"\n state=${isBusy ? 'busy' : this.in('fail') ? 'error' : 'empty'}\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n `;\n }\n }\n\n private __renderGetOrPostValues(getValues: string, postValues: string) {\n const values = getValues || postValues;\n const params = new URLSearchParams(decode(values));\n const method = getValues ? 'GET' : 'POST';\n\n return html`\n <div class=\"relative leading-xs pt-s\">\n <div class=\"absolute font-medium right-0 text-tertiary text-xs top-0 mt-s\">${method}</div>\n <x-data-list data=${JSON.stringify(Array.from(params.entries()))}></x-data-list>\n </div>\n `;\n }\n\n private __renderReferrer(referrer: string) {\n return html`\n <span class=\"text-secondary\">Navigated from</span>\n <a\n target=\"_blank\"\n class=\"font-medium text-primary hover-underline\"\n href=${referrer}\n rel=\"nofollow noopener noreferrer\"\n >\n ${referrer}\n </a>\n `;\n }\n\n private __renderSummary(data: Data) {\n return html`\n <div class=\"text-s absolute right-0 top-0 text-tertiary\">\n <iron-icon icon=\"icons:expand-${this.open ? 'less' : 'more'}\"></iron-icon>\n </div>\n\n <div class=\"text-s mb-xs ${data.hide_error ? 'text-error' : 'text-primary'}\">\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"date\"\n ns=${this.ns}\n >\n </foxy-i18n>\n\n <foxy-i18n\n options=${JSON.stringify({ value: data.date_created })}\n lang=${this.lang}\n key=\"time\"\n ns=${this.ns}\n >\n </foxy-i18n>\n </div>\n\n <p class=\"${this.open ? '' : 'truncate'} overflow-hidden font-medium\">\n ${data.error_message}\n </p>\n `;\n }\n\n private __renderDetails(data: Data) {\n return html`\n <div class=\"space-y-m pt-m\">\n ${data.referrer || data.get_values || data.post_values\n ? html`\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"request\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"mx-xs p-s text-s divide-y divide-contrast-10 space-y-s\">\n <p>\n <span class=\"block font-medium\">${data.url}</span>\n ${data.referrer ? this.__renderReferrer(data.referrer) : ''}\n </p>\n\n ${data.get_values || data.post_values\n ? this.__renderGetOrPostValues(data.get_values, data.post_values)\n : ''}\n </div>\n </x-group>\n `\n : ''}\n ${data.ip_address || data.ip_country || data.user_agent\n ? html`\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=\"client\" ns=${this.ns}></foxy-i18n>\n\n <div class=\"text-s flex flex-col mx-xs p-s\">\n <span class=\"font-medium\">\n ${data.ip_address}\n ${data.ip_country\n ? html`<span class=\"text-tertiary\"> • </span>${data.ip_country}`\n : ''}\n </span>\n\n ${data.user_agent\n ? html`<span class=\"text-secondary\">${data.user_agent}</span>`\n : ''}\n </div>\n </x-group>\n `\n : ''}\n ${Object.entries(data._links).map(([curie, link]) => {\n if (['self', 'fx:store', 'curies'].includes(curie)) return '';\n\n return html`\n <x-group frame>\n <foxy-i18n slot=\"header\" lang=${this.lang} key=${curie.substr(3)} ns=${this.ns}>\n </foxy-i18n>\n\n <x-resource-viewer\n class=\"p-s mx-xs\"\n href=${link.href}\n lang=${this.lang}\n ns=${this.ns}\n >\n </x-resource-viewer>\n </x-group>\n `;\n })}\n </div>\n `;\n }\n\n private __handleToggle(event: Event) {\n const details = event.target as HTMLDetailsElement;\n\n if (details.open && this.data?.hide_error === false) {\n this.edit({ hide_error: true });\n this.submit();\n }\n\n this.open = details.open;\n }\n}\n"]}
@@ -1,6 +1,7 @@
1
1
  import { ScopedElementsMixin } from '@open-wc/scoped-elements';
2
2
  import { DataList } from "./DataList.js";
3
3
  import { NucleonElement } from "../NucleonElement/index.js";
4
+ import { getResourceId } from '@foxy.io/sdk/core';
4
5
  import { ThemeableMixin } from "../../../mixins/themeable.js";
5
6
  import { TranslatableMixin } from "../../../mixins/translatable.js";
6
7
  import { html } from 'lit-html';
@@ -16,6 +17,14 @@ export class ResourceViewer extends Base {
16
17
  if (this.in({ idle: 'snapshot' })) {
17
18
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
19
  const { _links, _embedded, ...data } = this.data;
20
+ try {
21
+ const id = getResourceId(_links.self.href);
22
+ if (id !== null)
23
+ data.id = id;
24
+ }
25
+ catch (_a) {
26
+ // ignore
27
+ }
19
28
  return html `
20
29
  <x-data-list
21
30
  aria-live="polite"
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceViewer.js","sourceRoot":"","sources":["../../../../src/elements/public/ErrorEntryCard/ResourceViewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,sBAAmB;AACtC,OAAO,EAAE,cAAc,EAAE,mCAAgC;AAGzD,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAQhC,MAAM,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,OAAO,cAAe,SAAQ,IAAmB;IACrD,MAAM,KAAK,cAAc;QACvB,OAAO;YACL,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,aAAa,EAAE,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;YACjC,6DAA6D;YAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;YAEjD,OAAO,IAAI,CAAA;;;;;iBAKA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;;OAG1D,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAA;0CAC2B,MAAM;;;;kBAI9B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;iBACtD,IAAI,CAAC,IAAI;eACX,IAAI,CAAC,EAAE;;;;KAIjB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { DataList } from './DataList';\nimport { NucleonElement } from '../NucleonElement/index';\nimport { Resource } from '@foxy.io/sdk/core';\nimport { TemplateResult } from 'lit-element';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { html } from 'lit-html';\n\ntype Rel = {\n links: { self: Rel };\n zooms: Record<string, any>;\n props: Record<string, unknown>;\n};\n\nconst Base = TranslatableMixin(ThemeableMixin(ScopedElementsMixin(NucleonElement)));\n\nexport class ResourceViewer extends Base<Resource<Rel>> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-data-list': DataList,\n };\n }\n\n render(): TemplateResult {\n if (this.in({ idle: 'snapshot' })) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _links, _embedded, ...data } = this.data;\n\n return html`\n <x-data-list\n aria-live=\"polite\"\n aria-busy=\"false\"\n class=\"leading-s text-s\"\n data=${JSON.stringify(Array.from(Object.entries(data)))}\n >\n </x-data-list>\n `;\n }\n\n const isBusy = this.in('busy');\n\n return html`\n <div aria-live=\"polite\" aria-busy=${isBusy} data-testid=\"wrapper\" class=\"flex justify-center\">\n <foxy-spinner\n data-testid=\"spinner\"\n layout=\"horizontal\"\n state=${this.in('fail') ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${this.lang}\n ns=${this.ns}\n >\n </foxy-spinner>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"ResourceViewer.js","sourceRoot":"","sources":["../../../../src/elements/public/ErrorEntryCard/ResourceViewer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAElF,OAAO,EAAE,QAAQ,EAAE,sBAAmB;AACtC,OAAO,EAAE,cAAc,EAAE,mCAAgC;AACzD,OAAO,EAAE,aAAa,EAAY,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAQhC,MAAM,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,OAAO,cAAe,SAAQ,IAAmB;IACrD,MAAM,KAAK,cAAc;QACvB,OAAO;YACL,cAAc,EAAE,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;YAClD,aAAa,EAAE,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE;YACjC,6DAA6D;YAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;YAEjD,IAAI;gBACF,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,EAAE,KAAK,IAAI;oBAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;aAC/B;YAAC,WAAM;gBACN,SAAS;aACV;YAED,OAAO,IAAI,CAAA;;;;;iBAKA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;;OAG1D,CAAC;SACH;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAA;0CAC2B,MAAM;;;;kBAI9B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;iBACtD,IAAI,CAAC,IAAI;eACX,IAAI,CAAC,EAAE;;;;KAIjB,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { ScopedElementsMap, ScopedElementsMixin } from '@open-wc/scoped-elements';\n\nimport { DataList } from './DataList';\nimport { NucleonElement } from '../NucleonElement/index';\nimport { getResourceId, Resource } from '@foxy.io/sdk/core';\nimport { TemplateResult } from 'lit-element';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { html } from 'lit-html';\n\ntype Rel = {\n links: { self: Rel };\n zooms: Record<string, any>;\n props: Record<string, unknown>;\n};\n\nconst Base = TranslatableMixin(ThemeableMixin(ScopedElementsMixin(NucleonElement)));\n\nexport class ResourceViewer extends Base<Resource<Rel>> {\n static get scopedElements(): ScopedElementsMap {\n return {\n 'foxy-spinner': customElements.get('foxy-spinner'),\n 'x-data-list': DataList,\n };\n }\n\n render(): TemplateResult {\n if (this.in({ idle: 'snapshot' })) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _links, _embedded, ...data } = this.data;\n\n try {\n const id = getResourceId(_links.self.href);\n if (id !== null) data.id = id;\n } catch {\n // ignore\n }\n\n return html`\n <x-data-list\n aria-live=\"polite\"\n aria-busy=\"false\"\n class=\"leading-s text-s\"\n data=${JSON.stringify(Array.from(Object.entries(data)))}\n >\n </x-data-list>\n `;\n }\n\n const isBusy = this.in('busy');\n\n return html`\n <div aria-live=\"polite\" aria-busy=${isBusy} data-testid=\"wrapper\" class=\"flex justify-center\">\n <foxy-spinner\n data-testid=\"spinner\"\n layout=\"horizontal\"\n state=${this.in('fail') ? 'error' : isBusy ? 'busy' : 'empty'}\n lang=${this.lang}\n ns=${this.ns}\n >\n </foxy-spinner>\n </div>\n `;\n }\n}\n"]}
@@ -99,7 +99,13 @@ export declare class ItemCategoryForm extends ItemCategoryForm_base<Data> {
99
99
  private static __defaultLengthUnitOptions;
100
100
  private static __itemDeliveryTypeOptions;
101
101
  private static __handlingFeeTypeOptions;
102
+ private readonly __giftRecipientEmailTemplateLoaderId;
103
+ private readonly __customerEmailTemplateLoaderId;
104
+ private readonly __adminEmailTemplateLoaderId;
102
105
  renderBody(): TemplateResult;
106
+ private get __giftRecipientEmailTemplateLoader();
107
+ private get __customerEmailTemplateLoader();
108
+ private get __adminEmailTemplateLoader();
103
109
  private __renderHandlingFee;
104
110
  private __renderHandlingFeePercentage;
105
111
  private __renderHandlingFeeMinimum;
@@ -90,6 +90,9 @@ export class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-cate
90
90
  this.templates = {};
91
91
  /** URL of the `fx:taxes` collection for a store. */
92
92
  this.taxes = null;
93
+ this.__giftRecipientEmailTemplateLoaderId = 'gift-recipient-email-template-loader';
94
+ this.__customerEmailTemplateLoaderId = 'customer-email-template-loader';
95
+ this.__adminEmailTemplateLoaderId = 'admin-email-template-loader';
93
96
  }
94
97
  static get properties() {
95
98
  return {
@@ -164,10 +167,37 @@ export class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-cate
164
167
  ];
165
168
  }
166
169
  renderBody() {
167
- var _a, _b, _c, _d;
170
+ var _a, _b, _c, _d, _e, _f, _g;
168
171
  const itemDeliveryType = this.form.item_delivery_type;
169
172
  const handlingFeeType = (_a = this.form.handling_fee_type) !== null && _a !== void 0 ? _a : 'none';
170
173
  return html `
174
+ <foxy-nucleon
175
+ class="hidden"
176
+ infer=""
177
+ href=${ifDefined(this.form.customer_email_template_uri || undefined)}
178
+ id=${this.__customerEmailTemplateLoaderId}
179
+ @update=${() => this.requestUpdate()}
180
+ >
181
+ </foxy-nucleon>
182
+
183
+ <foxy-nucleon
184
+ class="hidden"
185
+ infer=""
186
+ href=${ifDefined(this.form.gift_recipient_email_template_uri || undefined)}
187
+ id=${this.__giftRecipientEmailTemplateLoaderId}
188
+ @update=${() => this.requestUpdate()}
189
+ >
190
+ </foxy-nucleon>
191
+
192
+ <foxy-nucleon
193
+ class="hidden"
194
+ infer=""
195
+ href=${ifDefined(this.form.admin_email_template_uri || undefined)}
196
+ id=${this.__adminEmailTemplateLoaderId}
197
+ @update=${() => this.requestUpdate()}
198
+ >
199
+ </foxy-nucleon>
200
+
171
201
  <div class="grid grid-cols-2 gap-m">
172
202
  <foxy-internal-text-control infer="name" class="col-span-2"></foxy-internal-text-control>
173
203
  <foxy-internal-text-control infer="code" class="col-span-2"></foxy-internal-text-control>
@@ -215,6 +245,7 @@ export class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-cate
215
245
  first=${ifDefined((_b = this.emailTemplates) !== null && _b !== void 0 ? _b : undefined)}
216
246
  infer="admin-email-template-uri"
217
247
  class=${this.form.send_admin_email ? '' : 'col-span-2'}
248
+ .selectedItem=${(_c = this.__adminEmailTemplateLoader) === null || _c === void 0 ? void 0 : _c.data}
218
249
  @change=${(evt) => {
219
250
  this.edit({
220
251
  send_admin_email: !!evt.detail,
@@ -229,9 +260,10 @@ export class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-cate
229
260
  <foxy-internal-async-combo-box-control
230
261
  item-label-path="description"
231
262
  item-value-path="_links.self.href"
232
- first=${ifDefined((_c = this.emailTemplates) !== null && _c !== void 0 ? _c : undefined)}
263
+ first=${ifDefined((_d = this.emailTemplates) !== null && _d !== void 0 ? _d : undefined)}
233
264
  infer="customer-email-template-uri"
234
265
  class="col-span-2"
266
+ .selectedItem=${(_e = this.__customerEmailTemplateLoader) === null || _e === void 0 ? void 0 : _e.data}
235
267
  @change=${(evt) => this.edit({ send_customer_email: !!evt.detail })}
236
268
  >
237
269
  </foxy-internal-async-combo-box-control>
@@ -239,9 +271,10 @@ export class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-cate
239
271
  <foxy-internal-async-combo-box-control
240
272
  item-label-path="description"
241
273
  item-value-path="_links.self.href"
242
- first=${ifDefined((_d = this.emailTemplates) !== null && _d !== void 0 ? _d : undefined)}
274
+ first=${ifDefined((_f = this.emailTemplates) !== null && _f !== void 0 ? _f : undefined)}
243
275
  infer="gift-recipient-email-template-uri"
244
276
  class="col-span-2"
277
+ .selectedItem=${(_g = this.__giftRecipientEmailTemplateLoader) === null || _g === void 0 ? void 0 : _g.data}
245
278
  >
246
279
  </foxy-internal-async-combo-box-control>
247
280
 
@@ -251,6 +284,18 @@ export class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-cate
251
284
  ${super.renderBody()}
252
285
  `;
253
286
  }
287
+ get __giftRecipientEmailTemplateLoader() {
288
+ const id = this.__giftRecipientEmailTemplateLoaderId;
289
+ return this.renderRoot.querySelector(`#${id}`);
290
+ }
291
+ get __customerEmailTemplateLoader() {
292
+ const id = this.__customerEmailTemplateLoaderId;
293
+ return this.renderRoot.querySelector(`#${id}`);
294
+ }
295
+ get __adminEmailTemplateLoader() {
296
+ const id = this.__adminEmailTemplateLoaderId;
297
+ return this.renderRoot.querySelector(`#${id}`);
298
+ }
254
299
  __renderHandlingFee() {
255
300
  return html `
256
301
  <foxy-internal-number-control
@@ -1 +1 @@
1
- {"version":3,"file":"ItemCategoryForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemCategoryForm/ItemCategoryForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { DiscountBuilder } from '../DiscountBuilder/DiscountBuilder';\nimport type { Templates, Data } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { ParsedValue } from '../DiscountBuilder/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\n\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 item categories (`fx:item_category`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot code:before\n * @slot code:after\n *\n * @slot handling-fee-type:before\n * @slot handling-fee-type:after\n *\n * @slot handling-fee:before\n * @slot handling-fee:after\n *\n * @slot handling-fee-percentage:before\n * @slot handling-fee-percentage:after\n *\n * @slot handling-fee-minimum:before\n * @slot handling-fee-minimum:after\n *\n * @slot item-delivery-type:before\n * @slot item-delivery-type:after\n *\n * @slot max-downloads-per-customer:before\n * @slot max-downloads-per-customer:after\n *\n * @slot max-downloads-time-period:before\n * @slot max-downloads-time-period:after\n *\n * @slot shipping-flat-rate:before\n * @slot shipping-flat-rate:after\n *\n * @slot shipping-flat-rate-type:before\n * @slot shipping-flat-rate-type:after\n *\n * @slot default-weight:before\n * @slot default-weight:after\n *\n * @slot default-weight-unit:before\n * @slot default-weight-unit:after\n *\n * @slot default-length-unit:before\n * @slot default-length-unit:after\n *\n * @slot customs-value:before\n * @slot customs-value:after\n *\n * @slot discount-name:before\n * @slot discount-name:after\n *\n * @slot discount-builder:before\n * @slot discount-builder:after\n *\n * @slot admin-email-template-uri:before\n * @slot admin-email-template-uri:after\n *\n * @slot customer-email-template-uri:before\n * @slot customer-email-template-uri:after\n *\n * @slot gift-recipient-email-template-uri:before\n * @slot gift-recipient-email-template-uri:after\n *\n * @slot taxes:before\n * @slot taxes:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n *\n * @since 1.21.0\n * @element foxy-item-category-form\n */\nexport class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-category-form')<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n emailTemplates: { attribute: 'email-templates' },\n taxes: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ code: v }) => !!v || 'code:v8n_required',\n ({ code: v }) => (v && v.length <= 50) || 'code:v8n_too_long',\n\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (v && v.length <= 50) || 'name:v8n_too_long',\n\n ({ item_delivery_type: v }) => !!v || 'item-delivery-type:v8n_required',\n\n ({ item_delivery_type: t, max_downloads_per_customer: v }) => {\n return (\n (t === 'downloaded' ? typeof v === 'number' : true) ||\n 'max-downloads-per-customer:v8n_required'\n );\n },\n\n ({ max_downloads_per_customer: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'max-downloads-per-customer:v8n_negative';\n },\n\n ({ item_delivery_type: t, max_downloads_time_period: v }) => {\n return (\n (t === 'downloaded' ? typeof v === 'number' : true) ||\n 'max-downloads-time-period:v8n_required'\n );\n },\n\n ({ max_downloads_time_period: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'max-downloads-time-period:v8n_negative';\n },\n\n ({ customs_value: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'customs-value:v8n_negative';\n },\n\n ({ item_delivery_type: t, default_weight: v }) => {\n return (t === 'shipped' ? typeof v === 'number' : true) || 'default-weight:v8n_required';\n },\n\n ({ default_weight: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'default-weight:v8n_negative';\n },\n\n ({ item_delivery_type: t, default_weight_unit: v }) => {\n return (\n (t === 'shipped' ? typeof v === 'string' : true) || 'default-weight-unit:v8n_required'\n );\n },\n\n ({ item_delivery_type: t, default_length_unit: v }) => {\n return (\n (t === 'shipped' ? typeof v === 'string' : true) || 'default-length-unit:v8n_required'\n );\n },\n\n ({ item_delivery_type: t, shipping_flat_rate: v }) => {\n return (\n (t === 'flat_rate' ? typeof v === 'number' : true) || 'shipping-flat-rate:v8n_required'\n );\n },\n\n ({ shipping_flat_rate: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'shipping-flat-rate:v8n_negative';\n },\n\n ({ item_delivery_type: t, shipping_flat_rate_type: v }) => {\n return (\n (t === 'flat_rate' ? typeof v === 'string' : true) ||\n 'shipping-flat-rate-type:v8n_required'\n );\n },\n\n ({ handling_fee_type: v }) => !!v || 'handling-fee-type:v8n_required',\n\n ({ handling_fee_type: t, handling_fee_minimum: v }) => {\n return (\n (t === 'flat_percent_with_minimum' ? typeof v === 'number' : true) ||\n 'handling-fee-minimum:v8n_required'\n );\n },\n\n ({ handling_fee_minimum: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'handling-fee-minimum:v8n_negative';\n },\n\n ({ handling_fee_type: t, handling_fee_percentage: v }) => {\n return (\n (t === 'flat_percent_with_minimum' || t === 'flat_percent'\n ? typeof v === 'number'\n : true) || 'handling-fee-percentage:v8n_required'\n );\n },\n\n ({ handling_fee_percentage: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'handling-fee-percentage:v8n_negative';\n },\n\n ({ send_admin_email: s, admin_email: v }) => (s ? !!v : true) || 'admin-email:v8n_required',\n ];\n }\n\n /** URL of the `fx:email_templates` collection for a store. */\n emailTemplates: string | null = null;\n\n /** Template render functions mapped to their name. */\n templates: Templates = {};\n\n /** URL of the `fx:taxes` collection for a store. */\n taxes: string | null = null;\n\n private static __shippingFlatRateTypeOptions = [\n { label: 'option_per_order', value: 'per_order' },\n { label: 'option_per_shipment', value: 'per_shipment' },\n ];\n\n private static __defaultWeightUnitOptions = [\n { label: 'option_lbs', value: 'LBS' },\n { label: 'option_kgs', value: 'KGS' },\n ];\n\n private static __defaultLengthUnitOptions = [\n { label: 'option_in', value: 'IN' },\n { label: 'option_cm', value: 'CM' },\n ];\n\n private static __itemDeliveryTypeOptions = [\n { label: 'option_notshipped', value: 'notshipped' },\n { label: 'option_downloaded', value: 'downloaded' },\n { label: 'option_flat_rate', value: 'flat_rate' },\n { label: 'option_shipped', value: 'shipped' },\n { label: 'option_pickup', value: 'pickup' },\n ];\n\n private static __handlingFeeTypeOptions = [\n { label: 'option_none', value: 'none' },\n { label: 'option_flat_per_order', value: 'flat_per_order' },\n { label: 'option_flat_per_item', value: 'flat_per_item' },\n { label: 'option_flat_percent', value: 'flat_percent' },\n { label: 'option_flat_percent_with_minimum', value: 'flat_percent_with_minimum' },\n ];\n\n renderBody(): TemplateResult {\n const itemDeliveryType = this.form.item_delivery_type;\n const handlingFeeType = this.form.handling_fee_type ?? 'none';\n\n return html`\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control infer=\"name\" class=\"col-span-2\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"code\" class=\"col-span-2\"></foxy-internal-text-control>\n\n <foxy-internal-select-control\n infer=\"handling-fee-type\"\n class=\"col-span-2\"\n .options=${ItemCategoryForm.__handlingFeeTypeOptions}\n >\n </foxy-internal-select-control>\n\n ${handlingFeeType === 'none'\n ? ''\n : html`\n ${this.__renderHandlingFee()}\n ${handlingFeeType.includes('percent') ? this.__renderHandlingFeePercentage() : ''}\n ${handlingFeeType === 'flat_percent_with_minimum'\n ? this.__renderHandlingFeeMinimum()\n : ''}\n `}\n\n <foxy-internal-select-control\n infer=\"item-delivery-type\"\n class=\"col-span-2\"\n .options=${ItemCategoryForm.__itemDeliveryTypeOptions}\n >\n </foxy-internal-select-control>\n\n ${itemDeliveryType === 'downloaded'\n ? this.__renderDownloadDeliveryControls()\n : itemDeliveryType === 'flat_rate'\n ? [this.__renderFlatRateControls(), this.__renderCustomsValue()]\n : itemDeliveryType === 'shipped'\n ? [this.__renderShippingControls(), this.__renderCustomsValue()]\n : ''}\n\n <foxy-internal-text-control infer=\"discount-name\" class=\"col-span-2\">\n </foxy-internal-text-control>\n\n ${this.form.discount_name ? this.__renderDiscountBuilder() : ''}\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"description\"\n item-value-path=\"_links.self.href\"\n first=${ifDefined(this.emailTemplates ?? undefined)}\n infer=\"admin-email-template-uri\"\n class=${this.form.send_admin_email ? '' : 'col-span-2'}\n @change=${(evt: CustomEvent) => {\n this.edit({\n send_admin_email: !!evt.detail,\n admin_email: evt.detail ? this.form.admin_email : '',\n });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n ${this.form.send_admin_email ? this.__renderAdminEmail() : ''}\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"description\"\n item-value-path=\"_links.self.href\"\n first=${ifDefined(this.emailTemplates ?? undefined)}\n infer=\"customer-email-template-uri\"\n class=\"col-span-2\"\n @change=${(evt: CustomEvent) => this.edit({ send_customer_email: !!evt.detail })}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"description\"\n item-value-path=\"_links.self.href\"\n first=${ifDefined(this.emailTemplates ?? undefined)}\n infer=\"gift-recipient-email-template-uri\"\n class=\"col-span-2\"\n >\n </foxy-internal-async-combo-box-control>\n\n ${this.data ? this.__renderTaxes() : ''}\n </div>\n\n ${super.renderBody()}\n `;\n }\n\n private __renderHandlingFee() {\n return html`\n <foxy-internal-number-control\n infer=\"handling-fee\"\n class=${this.form.handling_fee_type === 'flat_percent' ? '' : 'col-span-2'}\n >\n </foxy-internal-number-control>\n `;\n }\n\n private __renderHandlingFeePercentage() {\n return html`\n <foxy-internal-number-control infer=\"handling-fee-percentage\"> </foxy-internal-number-control>\n `;\n }\n\n private __renderHandlingFeeMinimum() {\n return html`\n <foxy-internal-number-control infer=\"handling-fee-minimum\"> </foxy-internal-number-control>\n `;\n }\n\n private __renderDownloadDeliveryControls() {\n return html`\n <foxy-internal-integer-control infer=\"max-downloads-per-customer\">\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control infer=\"max-downloads-time-period\">\n </foxy-internal-integer-control>\n `;\n }\n\n private __renderFlatRateControls() {\n return html`\n <foxy-internal-number-control infer=\"shipping-flat-rate\"> </foxy-internal-number-control>\n\n <foxy-internal-select-control\n infer=\"shipping-flat-rate-type\"\n .options=${ItemCategoryForm.__shippingFlatRateTypeOptions}\n >\n </foxy-internal-select-control>\n `;\n }\n\n private __renderShippingControls() {\n return html`\n <foxy-internal-integer-control infer=\"default-weight\" class=\"col-span-2\">\n </foxy-internal-integer-control>\n\n <foxy-internal-select-control\n infer=\"default-weight-unit\"\n .options=${ItemCategoryForm.__defaultWeightUnitOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n infer=\"default-length-unit\"\n .options=${ItemCategoryForm.__defaultLengthUnitOptions}\n >\n </foxy-internal-select-control>\n `;\n }\n\n private __renderCustomsValue() {\n return html`\n <foxy-internal-number-control infer=\"customs-value\" class=\"col-span-2\">\n </foxy-internal-number-control>\n `;\n }\n\n private __renderDiscountBuilder() {\n const parsedValue: ParsedValue = {\n name: this.form.discount_name ?? '',\n type: this.form.discount_type || 'quantity_amount',\n details: this.form.discount_details ?? '',\n };\n\n return html`\n <foxy-discount-builder\n infer=\"discount-builder\"\n class=\"col-span-2\"\n .parsedValue=${parsedValue}\n @change=${(evt: CustomEvent) => {\n const builder = evt.currentTarget as DiscountBuilder;\n\n this.edit({\n discount_name: builder.parsedValue.name,\n discount_type: builder.parsedValue.type,\n discount_details: builder.parsedValue.details,\n });\n }}\n >\n </foxy-discount-builder>\n `;\n }\n\n private __renderAdminEmail() {\n return html`<foxy-internal-text-control infer=\"admin-email\"> </foxy-internal-text-control>`;\n }\n\n private __renderTaxes() {\n return html`\n <foxy-internal-item-category-form-taxes-control\n taxes=${ifDefined(this.taxes ?? undefined)}\n class=\"col-span-2\"\n infer=\"taxes\"\n >\n </foxy-internal-item-category-form-taxes-control>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"ItemCategoryForm.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemCategoryForm/ItemCategoryForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { DiscountBuilder } from '../DiscountBuilder/DiscountBuilder';\nimport type { Templates, Data } from './types';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { TemplateResult } from 'lit-html';\nimport type { ParsedValue } from '../DiscountBuilder/types';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\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 item categories (`fx:item_category`).\n *\n * @slot name:before\n * @slot name:after\n *\n * @slot code:before\n * @slot code:after\n *\n * @slot handling-fee-type:before\n * @slot handling-fee-type:after\n *\n * @slot handling-fee:before\n * @slot handling-fee:after\n *\n * @slot handling-fee-percentage:before\n * @slot handling-fee-percentage:after\n *\n * @slot handling-fee-minimum:before\n * @slot handling-fee-minimum:after\n *\n * @slot item-delivery-type:before\n * @slot item-delivery-type:after\n *\n * @slot max-downloads-per-customer:before\n * @slot max-downloads-per-customer:after\n *\n * @slot max-downloads-time-period:before\n * @slot max-downloads-time-period:after\n *\n * @slot shipping-flat-rate:before\n * @slot shipping-flat-rate:after\n *\n * @slot shipping-flat-rate-type:before\n * @slot shipping-flat-rate-type:after\n *\n * @slot default-weight:before\n * @slot default-weight:after\n *\n * @slot default-weight-unit:before\n * @slot default-weight-unit:after\n *\n * @slot default-length-unit:before\n * @slot default-length-unit:after\n *\n * @slot customs-value:before\n * @slot customs-value:after\n *\n * @slot discount-name:before\n * @slot discount-name:after\n *\n * @slot discount-builder:before\n * @slot discount-builder:after\n *\n * @slot admin-email-template-uri:before\n * @slot admin-email-template-uri:after\n *\n * @slot customer-email-template-uri:before\n * @slot customer-email-template-uri:after\n *\n * @slot gift-recipient-email-template-uri:before\n * @slot gift-recipient-email-template-uri:after\n *\n * @slot taxes:before\n * @slot taxes:after\n *\n * @slot timestamps:before\n * @slot timestamps:after\n *\n * @slot create:before\n * @slot create:after\n *\n * @slot delete:before\n * @slot delete:after\n *\n *\n * @since 1.21.0\n * @element foxy-item-category-form\n */\nexport class ItemCategoryForm extends TranslatableMixin(InternalForm, 'item-category-form')<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n emailTemplates: { attribute: 'email-templates' },\n taxes: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ code: v }) => !!v || 'code:v8n_required',\n ({ code: v }) => (v && v.length <= 50) || 'code:v8n_too_long',\n\n ({ name: v }) => !!v || 'name:v8n_required',\n ({ name: v }) => (v && v.length <= 50) || 'name:v8n_too_long',\n\n ({ item_delivery_type: v }) => !!v || 'item-delivery-type:v8n_required',\n\n ({ item_delivery_type: t, max_downloads_per_customer: v }) => {\n return (\n (t === 'downloaded' ? typeof v === 'number' : true) ||\n 'max-downloads-per-customer:v8n_required'\n );\n },\n\n ({ max_downloads_per_customer: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'max-downloads-per-customer:v8n_negative';\n },\n\n ({ item_delivery_type: t, max_downloads_time_period: v }) => {\n return (\n (t === 'downloaded' ? typeof v === 'number' : true) ||\n 'max-downloads-time-period:v8n_required'\n );\n },\n\n ({ max_downloads_time_period: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'max-downloads-time-period:v8n_negative';\n },\n\n ({ customs_value: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'customs-value:v8n_negative';\n },\n\n ({ item_delivery_type: t, default_weight: v }) => {\n return (t === 'shipped' ? typeof v === 'number' : true) || 'default-weight:v8n_required';\n },\n\n ({ default_weight: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'default-weight:v8n_negative';\n },\n\n ({ item_delivery_type: t, default_weight_unit: v }) => {\n return (\n (t === 'shipped' ? typeof v === 'string' : true) || 'default-weight-unit:v8n_required'\n );\n },\n\n ({ item_delivery_type: t, default_length_unit: v }) => {\n return (\n (t === 'shipped' ? typeof v === 'string' : true) || 'default-length-unit:v8n_required'\n );\n },\n\n ({ item_delivery_type: t, shipping_flat_rate: v }) => {\n return (\n (t === 'flat_rate' ? typeof v === 'number' : true) || 'shipping-flat-rate:v8n_required'\n );\n },\n\n ({ shipping_flat_rate: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'shipping-flat-rate:v8n_negative';\n },\n\n ({ item_delivery_type: t, shipping_flat_rate_type: v }) => {\n return (\n (t === 'flat_rate' ? typeof v === 'string' : true) ||\n 'shipping-flat-rate-type:v8n_required'\n );\n },\n\n ({ handling_fee_type: v }) => !!v || 'handling-fee-type:v8n_required',\n\n ({ handling_fee_type: t, handling_fee_minimum: v }) => {\n return (\n (t === 'flat_percent_with_minimum' ? typeof v === 'number' : true) ||\n 'handling-fee-minimum:v8n_required'\n );\n },\n\n ({ handling_fee_minimum: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'handling-fee-minimum:v8n_negative';\n },\n\n ({ handling_fee_type: t, handling_fee_percentage: v }) => {\n return (\n (t === 'flat_percent_with_minimum' || t === 'flat_percent'\n ? typeof v === 'number'\n : true) || 'handling-fee-percentage:v8n_required'\n );\n },\n\n ({ handling_fee_percentage: v }) => {\n return (typeof v === 'number' ? v >= 0 : true) || 'handling-fee-percentage:v8n_negative';\n },\n\n ({ send_admin_email: s, admin_email: v }) => (s ? !!v : true) || 'admin-email:v8n_required',\n ];\n }\n\n /** URL of the `fx:email_templates` collection for a store. */\n emailTemplates: string | null = null;\n\n /** Template render functions mapped to their name. */\n templates: Templates = {};\n\n /** URL of the `fx:taxes` collection for a store. */\n taxes: string | null = null;\n\n private static __shippingFlatRateTypeOptions = [\n { label: 'option_per_order', value: 'per_order' },\n { label: 'option_per_shipment', value: 'per_shipment' },\n ];\n\n private static __defaultWeightUnitOptions = [\n { label: 'option_lbs', value: 'LBS' },\n { label: 'option_kgs', value: 'KGS' },\n ];\n\n private static __defaultLengthUnitOptions = [\n { label: 'option_in', value: 'IN' },\n { label: 'option_cm', value: 'CM' },\n ];\n\n private static __itemDeliveryTypeOptions = [\n { label: 'option_notshipped', value: 'notshipped' },\n { label: 'option_downloaded', value: 'downloaded' },\n { label: 'option_flat_rate', value: 'flat_rate' },\n { label: 'option_shipped', value: 'shipped' },\n { label: 'option_pickup', value: 'pickup' },\n ];\n\n private static __handlingFeeTypeOptions = [\n { label: 'option_none', value: 'none' },\n { label: 'option_flat_per_order', value: 'flat_per_order' },\n { label: 'option_flat_per_item', value: 'flat_per_item' },\n { label: 'option_flat_percent', value: 'flat_percent' },\n { label: 'option_flat_percent_with_minimum', value: 'flat_percent_with_minimum' },\n ];\n\n private readonly __giftRecipientEmailTemplateLoaderId = 'gift-recipient-email-template-loader';\n\n private readonly __customerEmailTemplateLoaderId = 'customer-email-template-loader';\n\n private readonly __adminEmailTemplateLoaderId = 'admin-email-template-loader';\n\n renderBody(): TemplateResult {\n const itemDeliveryType = this.form.item_delivery_type;\n const handlingFeeType = this.form.handling_fee_type ?? 'none';\n\n return html`\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.form.customer_email_template_uri || undefined)}\n id=${this.__customerEmailTemplateLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.form.gift_recipient_email_template_uri || undefined)}\n id=${this.__giftRecipientEmailTemplateLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.form.admin_email_template_uri || undefined)}\n id=${this.__adminEmailTemplateLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n\n <div class=\"grid grid-cols-2 gap-m\">\n <foxy-internal-text-control infer=\"name\" class=\"col-span-2\"></foxy-internal-text-control>\n <foxy-internal-text-control infer=\"code\" class=\"col-span-2\"></foxy-internal-text-control>\n\n <foxy-internal-select-control\n infer=\"handling-fee-type\"\n class=\"col-span-2\"\n .options=${ItemCategoryForm.__handlingFeeTypeOptions}\n >\n </foxy-internal-select-control>\n\n ${handlingFeeType === 'none'\n ? ''\n : html`\n ${this.__renderHandlingFee()}\n ${handlingFeeType.includes('percent') ? this.__renderHandlingFeePercentage() : ''}\n ${handlingFeeType === 'flat_percent_with_minimum'\n ? this.__renderHandlingFeeMinimum()\n : ''}\n `}\n\n <foxy-internal-select-control\n infer=\"item-delivery-type\"\n class=\"col-span-2\"\n .options=${ItemCategoryForm.__itemDeliveryTypeOptions}\n >\n </foxy-internal-select-control>\n\n ${itemDeliveryType === 'downloaded'\n ? this.__renderDownloadDeliveryControls()\n : itemDeliveryType === 'flat_rate'\n ? [this.__renderFlatRateControls(), this.__renderCustomsValue()]\n : itemDeliveryType === 'shipped'\n ? [this.__renderShippingControls(), this.__renderCustomsValue()]\n : ''}\n\n <foxy-internal-text-control infer=\"discount-name\" class=\"col-span-2\">\n </foxy-internal-text-control>\n\n ${this.form.discount_name ? this.__renderDiscountBuilder() : ''}\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"description\"\n item-value-path=\"_links.self.href\"\n first=${ifDefined(this.emailTemplates ?? undefined)}\n infer=\"admin-email-template-uri\"\n class=${this.form.send_admin_email ? '' : 'col-span-2'}\n .selectedItem=${this.__adminEmailTemplateLoader?.data}\n @change=${(evt: CustomEvent) => {\n this.edit({\n send_admin_email: !!evt.detail,\n admin_email: evt.detail ? this.form.admin_email : '',\n });\n }}\n >\n </foxy-internal-async-combo-box-control>\n\n ${this.form.send_admin_email ? this.__renderAdminEmail() : ''}\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"description\"\n item-value-path=\"_links.self.href\"\n first=${ifDefined(this.emailTemplates ?? undefined)}\n infer=\"customer-email-template-uri\"\n class=\"col-span-2\"\n .selectedItem=${this.__customerEmailTemplateLoader?.data}\n @change=${(evt: CustomEvent) => this.edit({ send_customer_email: !!evt.detail })}\n >\n </foxy-internal-async-combo-box-control>\n\n <foxy-internal-async-combo-box-control\n item-label-path=\"description\"\n item-value-path=\"_links.self.href\"\n first=${ifDefined(this.emailTemplates ?? undefined)}\n infer=\"gift-recipient-email-template-uri\"\n class=\"col-span-2\"\n .selectedItem=${this.__giftRecipientEmailTemplateLoader?.data}\n >\n </foxy-internal-async-combo-box-control>\n\n ${this.data ? this.__renderTaxes() : ''}\n </div>\n\n ${super.renderBody()}\n `;\n }\n\n private get __giftRecipientEmailTemplateLoader() {\n const id = this.__giftRecipientEmailTemplateLoaderId;\n type Loader = NucleonElement<Resource<Rels.EmailTemplate>>;\n return this.renderRoot.querySelector<Loader>(`#${id}`);\n }\n\n private get __customerEmailTemplateLoader() {\n const id = this.__customerEmailTemplateLoaderId;\n type Loader = NucleonElement<Resource<Rels.EmailTemplate>>;\n return this.renderRoot.querySelector<Loader>(`#${id}`);\n }\n\n private get __adminEmailTemplateLoader() {\n const id = this.__adminEmailTemplateLoaderId;\n type Loader = NucleonElement<Resource<Rels.EmailTemplate>>;\n return this.renderRoot.querySelector<Loader>(`#${id}`);\n }\n\n private __renderHandlingFee() {\n return html`\n <foxy-internal-number-control\n infer=\"handling-fee\"\n class=${this.form.handling_fee_type === 'flat_percent' ? '' : 'col-span-2'}\n >\n </foxy-internal-number-control>\n `;\n }\n\n private __renderHandlingFeePercentage() {\n return html`\n <foxy-internal-number-control infer=\"handling-fee-percentage\"> </foxy-internal-number-control>\n `;\n }\n\n private __renderHandlingFeeMinimum() {\n return html`\n <foxy-internal-number-control infer=\"handling-fee-minimum\"> </foxy-internal-number-control>\n `;\n }\n\n private __renderDownloadDeliveryControls() {\n return html`\n <foxy-internal-integer-control infer=\"max-downloads-per-customer\">\n </foxy-internal-integer-control>\n\n <foxy-internal-integer-control infer=\"max-downloads-time-period\">\n </foxy-internal-integer-control>\n `;\n }\n\n private __renderFlatRateControls() {\n return html`\n <foxy-internal-number-control infer=\"shipping-flat-rate\"> </foxy-internal-number-control>\n\n <foxy-internal-select-control\n infer=\"shipping-flat-rate-type\"\n .options=${ItemCategoryForm.__shippingFlatRateTypeOptions}\n >\n </foxy-internal-select-control>\n `;\n }\n\n private __renderShippingControls() {\n return html`\n <foxy-internal-integer-control infer=\"default-weight\" class=\"col-span-2\">\n </foxy-internal-integer-control>\n\n <foxy-internal-select-control\n infer=\"default-weight-unit\"\n .options=${ItemCategoryForm.__defaultWeightUnitOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n infer=\"default-length-unit\"\n .options=${ItemCategoryForm.__defaultLengthUnitOptions}\n >\n </foxy-internal-select-control>\n `;\n }\n\n private __renderCustomsValue() {\n return html`\n <foxy-internal-number-control infer=\"customs-value\" class=\"col-span-2\">\n </foxy-internal-number-control>\n `;\n }\n\n private __renderDiscountBuilder() {\n const parsedValue: ParsedValue = {\n name: this.form.discount_name ?? '',\n type: this.form.discount_type || 'quantity_amount',\n details: this.form.discount_details ?? '',\n };\n\n return html`\n <foxy-discount-builder\n infer=\"discount-builder\"\n class=\"col-span-2\"\n .parsedValue=${parsedValue}\n @change=${(evt: CustomEvent) => {\n const builder = evt.currentTarget as DiscountBuilder;\n\n this.edit({\n discount_name: builder.parsedValue.name,\n discount_type: builder.parsedValue.type,\n discount_details: builder.parsedValue.details,\n });\n }}\n >\n </foxy-discount-builder>\n `;\n }\n\n private __renderAdminEmail() {\n return html`<foxy-internal-text-control infer=\"admin-email\"> </foxy-internal-text-control>`;\n }\n\n private __renderTaxes() {\n return html`\n <foxy-internal-item-category-form-taxes-control\n taxes=${ifDefined(this.taxes ?? undefined)}\n class=\"col-span-2\"\n infer=\"taxes\"\n >\n </foxy-internal-item-category-form-taxes-control>\n `;\n }\n}\n"]}
@@ -5,6 +5,7 @@ import '../../internal/InternalSelectControl/index';
5
5
  import '../../internal/InternalTextControl/index';
6
6
  import '../../internal/InternalForm/index';
7
7
  import '../DiscountBuilder/index';
8
+ import '../NucleonElement/index';
8
9
  import './internal/InternalItemCategoryFormTaxesControl/index';
9
10
  import { ItemCategoryForm } from './ItemCategoryForm';
10
11
  export { ItemCategoryForm };
@@ -5,6 +5,7 @@ import "../../internal/InternalSelectControl/index.js";
5
5
  import "../../internal/InternalTextControl/index.js";
6
6
  import "../../internal/InternalForm/index.js";
7
7
  import "../DiscountBuilder/index.js";
8
+ import "../NucleonElement/index.js";
8
9
  import "./internal/InternalItemCategoryFormTaxesControl/index.js";
9
10
  import { ItemCategoryForm } from "./ItemCategoryForm.js";
10
11
  customElements.define('foxy-item-category-form', ItemCategoryForm);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemCategoryForm/index.ts"],"names":[],"mappings":"AAAA,8DAA2D;AAC3D,wDAAqD;AACrD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,qCAAkC;AAElC,kEAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AAEtD,cAAc,CAAC,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncComboBoxControl/index';\nimport '../../internal/InternalIntegerControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalSelectControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../DiscountBuilder/index';\n\nimport './internal/InternalItemCategoryFormTaxesControl/index';\n\nimport { ItemCategoryForm } from './ItemCategoryForm';\n\ncustomElements.define('foxy-item-category-form', ItemCategoryForm);\n\nexport { ItemCategoryForm };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/public/ItemCategoryForm/index.ts"],"names":[],"mappings":"AAAA,8DAA2D;AAC3D,wDAAqD;AACrD,uDAAoD;AACpD,uDAAoD;AACpD,qDAAkD;AAClD,8CAA2C;AAE3C,qCAAkC;AAClC,oCAAiC;AAEjC,kEAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,8BAA2B;AAEtD,cAAc,CAAC,MAAM,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["import '../../internal/InternalAsyncComboBoxControl/index';\nimport '../../internal/InternalIntegerControl/index';\nimport '../../internal/InternalNumberControl/index';\nimport '../../internal/InternalSelectControl/index';\nimport '../../internal/InternalTextControl/index';\nimport '../../internal/InternalForm/index';\n\nimport '../DiscountBuilder/index';\nimport '../NucleonElement/index';\n\nimport './internal/InternalItemCategoryFormTaxesControl/index';\n\nimport { ItemCategoryForm } from './ItemCategoryForm';\n\ncustomElements.define('foxy-item-category-form', ItemCategoryForm);\n\nexport { ItemCategoryForm };\n"]}