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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/cdn/foxy-address-form.js +1 -1
  2. package/dist/cdn/foxy-admin-subscription-form.js +1 -1
  3. package/dist/cdn/foxy-api-browser.js +1 -1
  4. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  5. package/dist/cdn/foxy-attribute-form.js +1 -1
  6. package/dist/cdn/foxy-cart-form.js +1 -1
  7. package/dist/cdn/foxy-client-form.js +1 -1
  8. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  9. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  10. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  11. package/dist/cdn/foxy-coupon-form.js +1 -1
  12. package/dist/cdn/foxy-custom-field-form.js +1 -1
  13. package/dist/cdn/foxy-customer-form.js +1 -1
  14. package/dist/cdn/foxy-customer-portal-settings-form.js +1 -1
  15. package/dist/cdn/foxy-customer-portal.js +1 -1
  16. package/dist/cdn/foxy-customer.js +1 -1
  17. package/dist/cdn/foxy-downloadable-form.js +1 -1
  18. package/dist/cdn/foxy-email-template-form.js +1 -1
  19. package/dist/cdn/foxy-experimental-add-to-cart-builder.js +1 -1
  20. package/dist/cdn/foxy-filter-attribute-form.js +1 -1
  21. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  22. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  23. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  24. package/dist/cdn/foxy-gift-card-form.js +1 -1
  25. package/dist/cdn/foxy-integration-form.js +1 -1
  26. package/dist/cdn/foxy-item-category-form.js +1 -1
  27. package/dist/cdn/foxy-item-form.js +1 -1
  28. package/dist/cdn/foxy-item-option-form.js +1 -1
  29. package/dist/cdn/foxy-native-integration-form.js +1 -1
  30. package/dist/cdn/foxy-passkey-form.js +1 -1
  31. package/dist/cdn/foxy-payment-method-card.js +1 -1
  32. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  33. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  34. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  35. package/dist/cdn/foxy-query-builder.js +1 -1
  36. package/dist/cdn/foxy-store-form.js +1 -1
  37. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  38. package/dist/cdn/foxy-store-transaction-folder-form.js +1 -1
  39. package/dist/cdn/foxy-subscription-form.js +1 -1
  40. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  41. package/dist/cdn/foxy-tax-form.js +1 -1
  42. package/dist/cdn/foxy-template-config-form.js +1 -1
  43. package/dist/cdn/foxy-template-form.js +1 -1
  44. package/dist/cdn/foxy-template-set-form.js +1 -1
  45. package/dist/cdn/foxy-transaction.js +1 -1
  46. package/dist/cdn/foxy-transactions-table.js +1 -1
  47. package/dist/cdn/foxy-update-payment-method-form.js +1 -1
  48. package/dist/cdn/foxy-user-form.js +1 -1
  49. package/dist/cdn/foxy-user-invitation-form.js +1 -1
  50. package/dist/cdn/foxy-users-table.js +1 -1
  51. package/dist/cdn/foxy-webhook-form.js +1 -1
  52. package/dist/cdn/{shared-d9457718.js → shared-1fa1abbd.js} +2 -2
  53. package/dist/cdn/shared-462566b0.js +1 -0
  54. package/dist/cdn/shared-4dc0bd88.js +1 -0
  55. package/dist/cdn/{shared-ec1daff0.js → shared-4ffaa9b7.js} +7 -7
  56. package/dist/cdn/{shared-07268049.js → shared-7c5881c1.js} +1 -1
  57. package/dist/cdn/translations/native-integration-form/en.json +1 -1
  58. package/dist/cdn/translations/store-form/en.json +5 -1
  59. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.d.ts +3 -0
  60. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js +7 -2
  61. package/dist/elements/internal/InternalAsyncListControl/InternalAsyncListControl.js.map +1 -1
  62. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.d.ts +3 -0
  63. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js +11 -0
  64. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js.map +1 -1
  65. package/dist/elements/internal/InternalPasswordControl/index.d.ts +1 -0
  66. package/dist/elements/internal/InternalPasswordControl/index.js +1 -0
  67. package/dist/elements/internal/InternalPasswordControl/index.js.map +1 -1
  68. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.d.ts +2 -0
  69. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js +9 -1
  70. package/dist/elements/internal/InternalResourcePickerControl/InternalResourcePickerControl.js.map +1 -1
  71. package/dist/elements/public/CopyToClipboard/CopyToClipboard.d.ts +1 -1
  72. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js +19 -5
  73. package/dist/elements/public/CopyToClipboard/CopyToClipboard.js.map +1 -1
  74. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.d.ts +1 -0
  75. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +6 -0
  76. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  77. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js +1 -1
  78. package/dist/elements/public/NativeIntegrationForm/NativeIntegrationForm.js.map +1 -1
  79. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +4 -2
  80. package/dist/elements/public/QueryBuilder/QueryBuilder.js +27 -7
  81. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  82. package/dist/elements/public/QueryBuilder/components/SimpleDateRule.js +3 -1
  83. package/dist/elements/public/QueryBuilder/components/SimpleDateRule.js.map +1 -1
  84. package/dist/elements/public/QueryBuilder/components/SimpleNumberRule.js +15 -11
  85. package/dist/elements/public/QueryBuilder/components/SimpleNumberRule.js.map +1 -1
  86. package/dist/elements/public/QueryBuilder/types.d.ts +1 -0
  87. package/dist/elements/public/QueryBuilder/types.js.map +1 -1
  88. package/dist/elements/public/StoreForm/StoreForm.js +1 -0
  89. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -1
  90. package/dist/elements/public/TransactionsTable/TransactionsTable.js +1 -1
  91. package/dist/elements/public/TransactionsTable/TransactionsTable.js.map +1 -1
  92. package/package.json +1 -1
  93. package/dist/cdn/shared-6e0eccb8.js +0 -1
  94. package/dist/cdn/shared-759f65d8.js +0 -1
  95. /package/dist/cdn/{shared-eadf0d23.js → shared-084e1772.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"GiftCardCodeForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeForm/GiftCardCodeForm.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,YAAY,EAAE,oDAAiD;AACxE,OAAO,EAAU,IAAI,EAAE,iCAA8B;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,EAAE,GAAG,qBAAqB,CAAC;AACjC,MAAM,IAAI,GAAG,iBAAiB,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,IAAU;IAAhD;;QAkBE,0EAA0E;QAC1E,2BAAsB,GAAqC,IAAI,CAAC;QAEhE,8DAA8D;QAC9D,oBAAe,GAAoC,EAAE,CAAC,EAAE;YACtD,OAAO,sCAAsC,EAAE,EAAE,CAAC;QACpD,CAAC,CAAC;QAEe,yBAAoB,GAAG,CAAC,CAAS,EAAE,IAAgC,EAAE,EAAE;;YACtF,IAAI,OAAO,GAA8B,IAAI,CAAC;YAE9C,IAAI;gBACF,MAAM,cAAc,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC;gBAC3D,IAAI,cAAc;oBAAE,OAAO,SAAG,IAAI,CAAC,sBAAsB,+CAA3B,IAAI,EAA0B,cAAc,CAAC,CAAC;aAC7E;YAAC,OAAO,GAAG,EAAE;gBACZ,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAClB;YAED,OAAO,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,CAAC;QACzB,CAAC,CAAC;QAEe,uBAAkB,GAAG,GAAG,EAAE;;YACzC,MAAM,IAAI,qBAAG,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAG,aAAa,2CAAG,IAAI,CAAC;YACtD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACjC,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEe,uBAAkB,GAAG,CAAC,CAAS,EAAE,EAAE;YAClD,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC;QAEe,sBAAiB,GAAa;YAC7C,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE;YACtD,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAE;YAC9D,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE;YAC5D,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,EAAE;YACtE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAE;YACpE;gBACE,IAAI,EAAE,IAAI,CAAC,OAAO;gBAClB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,sBAAsB;gBAC7B,IAAI,EAAE;oBACJ,EAAE,KAAK,EAAE,2BAA2B,EAAE,KAAK,EAAE,MAAM,EAAE;oBACrD,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,OAAO,EAAE;iBACxD;aACF;YACD,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,yBAAyB,EAAE;YAC9E,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,EAAE;YACxE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,uBAAuB,EAAE;SAC3E,CAAC;QAEe,oBAAe,GAAG,aAAa,CAAC;IA+EnD,CAAC;IApJC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,sBAAsB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;YAC5C,eAAe,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;SACtC,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,mBAAmB;YAC3C,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,EAAE,IAAI,mBAAmB;YAC5D,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,CAAC,GAAG,EAAC,IAAI,qBAAqB;YAC3D,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,8BAA8B;SACpF,CAAC;IACJ,CAAC;IAwDD,IAAI,gBAAgB;QAClB,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;QACrE,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,cAAc;QAChB,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QAClE,OAAO,IAAI,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,UAAU;;QACR,IAAI,IAAwB,CAAC;QAE7B,IAAI;YACF,MAAM,GAAG,GAAG,IAAI,GAAG,mBACjB,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAG,yCAAyC,EAAE,IAAI,mCAAI,EAAE,CAC1E,CAAC;YACF,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC7C,IAAI,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;SACvB;QAAC,WAAM;YACN,IAAI,GAAG,SAAS,CAAC;SAClB;QAED,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,YAAY,EAAE;;;;;;;;;;;;gBAYX,SAAS,aAAC,IAAI,CAAC,aAAa,0CAAE,IAAI,0CAAE,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC;;oBAE5D,IAAI,CAAC,kBAAkB;oBACvB,IAAI,CAAC,kBAAkB;mBACxB,IAAI,CAAC,iBAAiB;;;;;;;sBAOnB,IAAI,CAAC,oBAAoB;oBAC3B,GAAG,EAAE,CAAC,IAAI;;;;;;gBAMd,SAAS,aAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,0CAAG,wBAAwB,EAAE,IAAI,CAAC;;;;;;QAMrE,KAAK,CAAC,UAAU,EAAE;;;;eAIX,SAAS,OAAC,IAAI,CAAC,IAAI,0CAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC;aAC/C,IAAI,CAAC,eAAe;kBACf,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE;;;KAGvC,CAAC;IACJ,CAAC;IAED,IAAY,aAAa;QAEvB,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAS,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC3E,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { Option, Type } from '../QueryBuilder/types';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'gift-card-code-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for creating or editing gift card codes (`fx:gift_card_code`).\n *\n * @element foxy-gift-card-code-form\n * @since 1.15.0\n */\nexport class GiftCardCodeForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n getCustomerHref: { attribute: false },\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 ({ code: v }) => !v?.includes(' ') || 'code:v8n_has_spaces',\n ({ current_balance: v }) => typeof v === 'number' || 'current-balance:v8n_required',\n ];\n }\n\n /** When set, the Cart Item section will display a link to transaction. */\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n /** Returns a `fx:customer` Resource URL for a Customer ID. */\n getCustomerHref: (id: number | string) => string = id => {\n return `https://api.foxycart.com/customers/${id}`;\n };\n\n private readonly __cartItemGetItemUrl = (_: string, data: Resource<Rels.Item> | null) => {\n let itemUrl: string | undefined | null = null;\n\n try {\n const transactionUrl = data?._links['fx:transaction'].href;\n if (transactionUrl) itemUrl = this.getTransactionPageHref?.(transactionUrl);\n } catch (err) {\n console.log(err);\n }\n\n return itemUrl ?? null;\n };\n\n private readonly __customerGetValue = () => {\n const link = this.data?._links?.['fx:customer']?.href;\n const id = this.form.customer_id;\n return id === undefined ? link : this.getCustomerHref(id);\n };\n\n private readonly __customerSetValue = (v: string) => {\n const id = getResourceId(v);\n this.edit({ customer_id: typeof id === 'number' ? id : '' });\n };\n\n private readonly __customerFilters: Option[] = [\n { type: Type.String, path: 'id', label: 'filters.id' },\n { type: Type.String, path: 'tax_id', label: 'filters.tax_id' },\n { type: Type.String, path: 'email', label: 'filters.email' },\n { type: Type.String, path: 'first_name', label: 'filters.first_name' },\n { type: Type.String, path: 'last_name', label: 'filters.last_name' },\n {\n type: Type.Boolean,\n path: 'is_anonymous',\n label: 'filters.is_anonymous',\n list: [\n { label: 'filters.is_anonymous_true', value: 'true' },\n { label: 'filters.is_anonymous_false', value: 'false' },\n ],\n },\n { type: Type.Date, path: 'last_login_date', label: 'filters.last_login_date' },\n { type: Type.Date, path: 'date_created', label: 'filters.date_created' },\n { type: Type.Date, path: 'date_modified', label: 'filters.date_modified' },\n ];\n\n private readonly __storeLoaderId = 'storeLoader';\n\n get readonlySelector(): BooleanSelector {\n const alwaysMatch = [super.readonlySelector.toString(), 'cart-item'];\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n if (!this.href) alwaysMatch.push('customer', 'cart-item', 'logs');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n let href: string | undefined;\n\n try {\n const url = new URL(\n this.data?._links?.['fx:provisioned_by_transaction_detail_id'].href ?? ''\n );\n url.searchParams.set('zoom', 'item_options');\n href = url.toString();\n } catch {\n href = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"settings\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"code\"></foxy-internal-text-control>\n <foxy-internal-number-control layout=\"summary-item\" infer=\"current-balance\">\n </foxy-internal-number-control>\n <foxy-internal-date-control layout=\"summary-item\" format=\"iso-long\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-resource-picker-control\n infer=\"customer\"\n first=${ifDefined(this.__storeLoader?.data?._links['fx:customers'].href)}\n item=\"foxy-customer-card\"\n .getValue=${this.__customerGetValue}\n .setValue=${this.__customerSetValue}\n .filters=${this.__customerFilters}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n infer=\"cart-item\"\n item=\"foxy-item-card\"\n .getItemUrl=${this.__cartItemGetItemUrl}\n .getValue=${() => href}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-async-list-control\n infer=\"logs\"\n first=${ifDefined(this.data?._links?.['fx:gift_card_code_logs'].href)}\n limit=\"5\"\n item=\"foxy-gift-card-code-log-card\"\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
1
+ {"version":3,"file":"GiftCardCodeForm.js","sourceRoot":"","sources":["../../../../src/elements/public/GiftCardCodeForm/GiftCardCodeForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations } from 'lit-element';\nimport type { Data, TransactionPageHrefGetter } from './types';\nimport type { TemplateResult } from 'lit-html';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { BooleanSelector, getResourceId } from '@foxy.io/sdk/core';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { Option, Type } from '../QueryBuilder/types';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-html';\n\nconst NS = 'gift-card-code-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for creating or editing gift card codes (`fx:gift_card_code`).\n *\n * @element foxy-gift-card-code-form\n * @since 1.15.0\n */\nexport class GiftCardCodeForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n getTransactionPageHref: { attribute: false },\n getCustomerHref: { attribute: false },\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 ({ code: v }) => !v?.includes(' ') || 'code:v8n_has_spaces',\n ({ current_balance: v }) => typeof v === 'number' || 'current-balance:v8n_required',\n ];\n }\n\n /** When set, the Cart Item section will display a link to transaction. */\n getTransactionPageHref: TransactionPageHrefGetter | null = null;\n\n /** Returns a `fx:customer` Resource URL for a Customer ID. */\n getCustomerHref: (id: number | string) => string = id => {\n return `https://api.foxycart.com/customers/${id}`;\n };\n\n private readonly __cartItemGetItemUrl = (_: string, data: Resource<Rels.Item> | null) => {\n let itemUrl: string | undefined | null = null;\n\n try {\n const transactionUrl = data?._links['fx:transaction'].href;\n if (transactionUrl) itemUrl = this.getTransactionPageHref?.(transactionUrl);\n } catch (err) {\n console.log(err);\n }\n\n return itemUrl ?? null;\n };\n\n private readonly __customerExtendFilter = (params: URLSearchParams) => {\n if (!params.has('is_anonymous')) {\n params.set('is_anonymous', 'false|is_anonymous=true');\n }\n };\n\n private readonly __customerGetValue = () => {\n const link = this.data?._links?.['fx:customer']?.href;\n const id = this.form.customer_id;\n return id === undefined ? link : this.getCustomerHref(id);\n };\n\n private readonly __customerSetValue = (v: string) => {\n const id = getResourceId(v);\n this.edit({ customer_id: typeof id === 'number' ? id : '' });\n };\n\n private readonly __customerFilters: Option[] = [\n { type: Type.String, path: 'id', label: 'filters.id' },\n { type: Type.String, path: 'tax_id', label: 'filters.tax_id' },\n { type: Type.String, path: 'email', label: 'filters.email' },\n { type: Type.String, path: 'first_name', label: 'filters.first_name' },\n { type: Type.String, path: 'last_name', label: 'filters.last_name' },\n {\n type: Type.Boolean,\n path: 'is_anonymous',\n label: 'filters.is_anonymous',\n list: [\n { label: 'filters.is_anonymous_true', value: 'true' },\n { label: 'filters.is_anonymous_false', value: 'false' },\n ],\n },\n { type: Type.Date, path: 'last_login_date', label: 'filters.last_login_date' },\n { type: Type.Date, path: 'date_created', label: 'filters.date_created' },\n { type: Type.Date, path: 'date_modified', label: 'filters.date_modified' },\n ];\n\n private readonly __storeLoaderId = 'storeLoader';\n\n get readonlySelector(): BooleanSelector {\n const alwaysMatch = [super.readonlySelector.toString(), 'cart-item'];\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n get hiddenSelector(): BooleanSelector {\n const alwaysMatch = [super.hiddenSelector.toString()];\n if (!this.href) alwaysMatch.push('customer', 'cart-item', 'logs');\n return new BooleanSelector(alwaysMatch.join(' ').trim());\n }\n\n renderBody(): TemplateResult {\n let href: string | undefined;\n\n try {\n const url = new URL(\n this.data?._links?.['fx:provisioned_by_transaction_detail_id'].href ?? ''\n );\n url.searchParams.set('zoom', 'item_options');\n href = url.toString();\n } catch {\n href = undefined;\n }\n\n return html`\n ${this.renderHeader()}\n\n <foxy-internal-summary-control infer=\"settings\">\n <foxy-internal-text-control layout=\"summary-item\" infer=\"code\"></foxy-internal-text-control>\n <foxy-internal-number-control layout=\"summary-item\" infer=\"current-balance\">\n </foxy-internal-number-control>\n <foxy-internal-date-control layout=\"summary-item\" format=\"iso-long\" infer=\"end-date\">\n </foxy-internal-date-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-resource-picker-control\n infer=\"customer\"\n first=${ifDefined(this.__storeLoader?.data?._links['fx:customers'].href)}\n item=\"foxy-customer-card\"\n .extendFilter=${this.__customerExtendFilter}\n .getValue=${this.__customerGetValue}\n .setValue=${this.__customerSetValue}\n .filters=${this.__customerFilters}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-resource-picker-control\n infer=\"cart-item\"\n item=\"foxy-item-card\"\n .getItemUrl=${this.__cartItemGetItemUrl}\n .getValue=${() => href}\n >\n </foxy-internal-resource-picker-control>\n\n <foxy-internal-async-list-control\n infer=\"logs\"\n first=${ifDefined(this.data?._links?.['fx:gift_card_code_logs'].href)}\n limit=\"5\"\n item=\"foxy-gift-card-code-log-card\"\n >\n </foxy-internal-async-list-control>\n\n ${super.renderBody()}\n\n <foxy-nucleon\n infer=\"\"\n href=${ifDefined(this.data?._links['fx:store'].href)}\n id=${this.__storeLoaderId}\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>(`#${this.__storeLoaderId}`);\n }\n}\n"]}
@@ -534,7 +534,7 @@ export class NativeIntegrationForm extends Base {
534
534
  <a
535
535
  target="_blank"
536
536
  class="mt-xs inline-block rounded font-medium text-error transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50"
537
- href="https://admin.foxycart.com"
537
+ href="https://wiki.foxycart.com/v/2.0/webhooks"
538
538
  >
539
539
  <foxy-i18n infer="webhook-warning" key="link_text"></foxy-i18n>
540
540
  </a>
@@ -1 +1 @@
1
- {"version":3,"file":"NativeIntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/NativeIntegrationForm/NativeIntegrationForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Option } from '../../internal/InternalRadioGroupControl/types';\nimport type { Data } from './types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { isHttpUrl } from '../../../utils/is-http-url';\nimport { html, svg } from 'lit-html';\n\nimport * as defaults from './defaults';\nimport memoize from 'lodash-es/memoize';\n\nconst NS = 'native-integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for configuring native integrations (`fx:native_integration`).\n *\n * @element foxy-native-integration-form\n * @since 1.25.0\n */\nexport class NativeIntegrationForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n itemCategoryBase: { attribute: 'item-category-base' },\n store: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n const parse = memoize(JSON.parse);\n\n return [\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isHttpUrl(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'avalara' && err ? `avalara-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).id || 'avalara-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).key || 'avalara-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).company_code || 'avalara-company-code:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'taxjar' || !!parse(c).api_token || 'taxjar-api-token:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isHttpUrl(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'onesource' && err ? `onesource-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-external-company-id';\n return p !== 'onesource' || !!parse(c).external_company_id || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-calling-system-number';\n return p !== 'onesource' || !!parse(c).calling_system_number || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-from-city';\n return p !== 'onesource' || !!parse(c).from_city || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-host-system';\n return p !== 'onesource' || !!parse(c).host_system || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!t || 'webhook-json-title:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, encryption_key: e } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!e || 'webhook-json-encryption-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isHttpUrl(u) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'webhook' && s === 'json' && err ? `webhook-json-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n const err = 'webhook-legacy-xml-title:v8n_required';\n return p !== 'webhook' || s !== 'legacy_xml' || !!t || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isHttpUrl(u) ? null : 'v8n_invalid') : 'v8n_required';\n const prefix = 'webhook-legacy-xml-url';\n return p === 'webhook' && s === 'legacy_xml' && err ? `${prefix}:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).site_id || 'webflow-site-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).site_name || 'webflow-site-name:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).collection_id || 'webflow-collection-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-collection-name:v8n_required';\n return p !== 'webflow' || !!parse(c).collection_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).sku_field_id || 'webflow-sku-field-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-sku-field-name:v8n_required';\n return p !== 'webflow' || !!parse(c).sku_field_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-inventory-field-id:v8n_required';\n return p !== 'webflow' || !!parse(c).inventory_field_id || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-inventory-field-name:v8n_required';\n return p !== 'webflow' || !!parse(c).inventory_field_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).auth || 'webflow-auth:v8n_required';\n },\n ];\n }\n\n itemCategoryBase: string | null = null;\n\n store: string | null = null;\n\n private readonly __createConfigGetterFor = memoize((key: string) => {\n return () => this.__config?.[key];\n });\n\n private readonly __createConfigSetterFor = memoize((key: string) => {\n return (value: unknown) => (this.__config = { [key]: value });\n });\n\n private readonly __providerGetValue = () => this.form.provider;\n\n private readonly __providerSetValue = (value: string) => {\n this.edit({ provider: value, config: '{}' });\n this.__config = {};\n };\n\n private readonly __templateProviderOptions: Option[] = [\n { value: 'avalara', label: 'option_avalara' },\n { value: 'onesource', label: 'option_onesource' },\n { value: 'taxjar', label: 'option_taxjar' },\n { value: 'custom_tax', label: 'option_custom_tax' },\n ];\n\n private readonly __avalaraAddressValidationCountriesOptions = [{ value: 'US' }, { value: 'CA' }];\n\n private readonly __onesourceCompanyRoleOptions = [\n { value: 'B', label: 'option_buyer' },\n { value: 'M', label: 'option_middleman' },\n { value: 'S', label: 'option_seller' },\n ];\n\n private readonly __onesourceProductOrderPriorityGetValue = () => {\n const value = this.__config?.product_order_priority.split(',') ?? [];\n return value.filter((v: string) => !!v).map((v: string) => ({ value: v }));\n };\n\n private readonly __onesourceProductOrderPrioritySetValue = (value: Item[]) => {\n this.__config = { product_order_priority: value.map(i => i.value).join(',') };\n };\n\n private readonly __onesourceAuditSettingsOptions = [\n { value: 'capture_only', label: 'option_capture_only' },\n { value: 'auth_and_capture', label: 'option_auth_and_capture' },\n { value: 'never', label: 'option_never' },\n ];\n\n private readonly __webhookServiceOptions = [\n { value: 'json', label: 'option_json' },\n { value: 'legacy_xml', label: 'option_legacy_xml' },\n ];\n\n private readonly __webhookJsonEventsOptions = [\n { value: 'transaction/created', label: 'option_transaction_created' },\n { value: 'subscription/cancelled', label: 'option_subscription_cancelled' },\n ];\n\n get readonlySelector(): BooleanSelector {\n const match = [super.readonlySelector.toString()];\n\n if (this.href) {\n match.push('apple-pay-group-one', 'zapier-group-one', 'provider-group-one');\n }\n\n return new BooleanSelector(match.join(' ').trim());\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.data ? `existing_${this.data.provider}` : 'new',\n id: this.headerCopyIdValue,\n };\n }\n\n renderBody(): TemplateResult {\n const provider = this.form.provider;\n\n return html`\n ${this.renderHeader()}\n ${this.href\n ? ''\n : html`\n <foxy-internal-summary-control infer=\"provider-group-one\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"provider\"\n .getValue=${this.__providerGetValue}\n .setValue=${this.__providerSetValue}\n .options=${this.__templateProviderOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n `}\n ${provider === 'avalara'\n ? this.__renderAvalaraConfig()\n : provider === 'taxjar'\n ? this.__renderTaxJarConfig()\n : provider === 'onesource'\n ? this.__renderOneSourceConfig()\n : provider === 'webflow'\n ? this.__renderWebflowConfig()\n : provider === 'zapier'\n ? this.__renderZapierConfig()\n : provider === 'webhook'\n ? this.__renderWebhookConfig()\n : provider === 'apple_pay'\n ? this.__renderApplePayConfig()\n : provider === 'custom_tax'\n ? this.__renderCustomTaxConfig()\n : ''}\n ${super.renderBody()}\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store ?? void 0)}\n id=\"storeLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n let message;\n\n try {\n message = (await (err as Response).json())._embedded['fx:errors'][0].message;\n } catch {\n throw err;\n }\n\n if (message.includes('has already been configured')) {\n throw ['error:already_configured'];\n } else {\n throw err;\n }\n }\n }\n\n private get __config() {\n try {\n return JSON.parse(this.form.config as string);\n } catch {\n return null;\n }\n }\n\n private set __config(value: any) {\n const config = this.__config;\n const provider = this.form.provider ?? 'avalara';\n const serializedDefaultConfig = (() => {\n if (provider === 'avalara') return defaults.avalara;\n if (provider === 'taxjar') return defaults.taxjar;\n if (provider === 'onesource') return defaults.onesource;\n if (provider === 'webflow') return defaults.webflow;\n if (provider === 'zapier') return defaults.zapier;\n if (provider === 'webhook') {\n if (config?.service === 'legacy_xml') return defaults.webhookLegacyXml;\n return defaults.webhookJson;\n }\n })();\n\n const defaultConfig = serializedDefaultConfig ? JSON.parse(serializedDefaultConfig) : {};\n const newConfig = JSON.stringify({ ...defaultConfig, ...config, ...value });\n this.edit({ provider, config: newConfig });\n }\n\n private __renderAvalaraConfig() {\n const isActive = this.__storeLoader?.data?.is_active;\n const itemCategories = this.__storeLoader?.data?._links['fx:item_categories'].href;\n const serviceUrlPlaceholder =\n typeof isActive === 'boolean'\n ? this.t(\n `avalara-group-one.avalara-service-url.placeholder_${isActive ? 'active' : 'inactive'}`\n )\n : void 0;\n\n return html`\n <foxy-internal-summary-control infer=\"avalara-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.avalara}\n placeholder=${ifDefined(serviceUrlPlaceholder)}\n json-path=\"service_url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-service-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.avalara}\n json-path=\"id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n json-template=${defaults.avalara}\n json-path=\"key\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-key\"\n >\n </foxy-internal-password-control>\n\n <foxy-internal-text-control\n json-template=${defaults.avalara}\n json-path=\"company_code\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-company-code\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"avalara-group-two\">\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"use_ava_tax\"\n property=\"config\"\n infer=\"avalara-use-ava-tax\"\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"use_address_validation\"\n property=\"config\"\n infer=\"avalara-use-address-validation\"\n >\n </foxy-internal-switch-control>\n\n ${this.__config?.use_address_validation\n ? html`\n <foxy-internal-editable-list-control\n json-template=${defaults.avalara}\n json-path=\"address_validation_countries\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-address-validation-countries\"\n .options=${this.__avalaraAddressValidationCountriesOptions}\n >\n </foxy-internal-editable-list-control>\n `\n : ''}\n\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"create_invoice\"\n property=\"config\"\n infer=\"avalara-create-invoice\"\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"enable_colorado_delivery_fee\"\n property=\"config\"\n infer=\"avalara-enable-colorado-delivery-fee\"\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-native-integration-form-code-map-control\n item-category-base=${ifDefined(this.itemCategoryBase ?? void 0)}\n item-categories=${ifDefined(itemCategories)}\n json-template=${defaults.avalara}\n json-path=\"category_to_product_tax_code_mappings\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-category-to-product-tax-code-mappings\"\n >\n </foxy-internal-native-integration-form-code-map-control>\n `;\n }\n\n private __renderTaxJarConfig() {\n const itemCategories = this.__storeLoader?.data?._links['fx:item_categories'].href;\n\n return html`\n <foxy-internal-summary-control infer=\"taxjar-group-one\">\n <foxy-internal-password-control\n json-template=${defaults.taxjar}\n json-path=\"api_token\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"taxjar-api-token\"\n >\n </foxy-internal-password-control>\n\n <foxy-internal-switch-control\n json-template=${defaults.taxjar}\n json-path=\"create_invoice\"\n property=\"config\"\n infer=\"taxjar-create-invoice\"\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-native-integration-form-code-map-control\n item-category-base=${ifDefined(this.itemCategoryBase ?? void 0)}\n item-categories=${ifDefined(itemCategories)}\n json-template=${defaults.taxjar}\n json-path=\"category_to_product_tax_code_mappings\"\n property=\"config\"\n infer=\"taxjar-category-to-product-tax-code-mappings\"\n >\n </foxy-internal-native-integration-form-code-map-control>\n `;\n }\n\n private __renderOneSourceConfig() {\n return html`\n <foxy-internal-summary-control infer=\"onesource-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"service_url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-service-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"external_company_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-external-company-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"from_city\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-from-city\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-two\">\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"calling_system_number\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-calling-system-number\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"host_system\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-host-system\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-three\">\n <foxy-internal-select-control\n json-template=${defaults.onesource}\n json-path=\"audit_settings\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-audit-settings\"\n .options=${this.__onesourceAuditSettingsOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n json-template=${defaults.onesource}\n json-path=\"company_role\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-company-role\"\n .options=${this.__onesourceCompanyRoleOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-four\">\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"part_number_product_option\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-part-number-product-option\"\n .getValue=${this.__createConfigGetterFor('part_number_product_option')}\n .setValue=${this.__createConfigSetterFor('part_number_product_option')}\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-five\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"onesource-product-order-priority\"\n .getValue=${this.__onesourceProductOrderPriorityGetValue}\n .setValue=${this.__onesourceProductOrderPrioritySetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderWebhookConfig() {\n return html`\n <div\n class=\"flex items-start border border-error rounded\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-error\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"webhook-warning\" key=\"warning_text\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-error transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://admin.foxycart.com\"\n >\n <foxy-i18n infer=\"webhook-warning\" key=\"link_text\"></foxy-i18n>\n </a>\n </p>\n </div>\n\n ${this.__config?.service === 'json'\n ? this.__renderWebhookJsonConfig()\n : this.__config?.service === 'legacy_xml'\n ? this.__renderWebhookLegacyXmlConfig()\n : ''}\n `;\n }\n\n private __renderWebhookJsonConfig() {\n return html`\n <foxy-internal-summary-control infer=\"webhook-json-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.webhookJson}\n json-path=\"title\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-json-title\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webhookJson}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-json-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n json-template=${defaults.webhookJson}\n json-path=\"service\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-service\"\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-password-control\n json-template=${defaults.webhookJson}\n json-path=\"encryption_key\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-json-encryption-key\"\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webhook-json-group-two\">\n ${this.__webhookJsonEventsOptions.map(option => {\n return html`\n <foxy-internal-switch-control\n infer=${`webhook-json-events-${option.value.replace(/\\//g, '-')}`}\n .getValue=${() => this.__config?.events?.includes(option.value)}\n .setValue=${(value: boolean) => {\n const events = this.__config?.events ?? [];\n this.__config = {\n events: value\n ? [...events, option.value]\n : events.filter((v: string) => v !== option.value),\n };\n }}\n >\n </foxy-internal-switch-control>\n `;\n })}\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderWebhookLegacyXmlConfig() {\n return html`\n <foxy-internal-summary-control infer=\"webhook-legacy-xml-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.webhookLegacyXml}\n json-path=\"title\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-legacy-xml-title\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webhookLegacyXml}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-legacy-xml-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n json-template=${defaults.webhookLegacyXml}\n json-path=\"service\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-service\"\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderWebflowConfig() {\n return html`\n <foxy-internal-summary-control infer=\"webflow-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"site_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-site-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"site_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-site-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webflow-group-two\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"collection_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-collection-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"collection_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-collection-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webflow-group-three\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"sku_field_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-sku-field-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"sku_field_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-sku-field-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webflow-group-four\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"inventory_field_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-inventory-field-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"inventory_field_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-inventory-field-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderZapierConfig() {\n return html`\n <foxy-internal-summary-control infer=\"zapier-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.zapier}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"zapier-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n json-template=${defaults.zapier}\n json-path=\"events\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"zapier-events\"\n simple-value\n >\n </foxy-internal-editable-list-control>\n\n <p class=\"text-secondary leading-xs\">\n <foxy-i18n infer=\"zapier-warning\" key=\"warning_text\"></foxy-i18n>\n </p>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderApplePayConfig() {\n return html`\n <foxy-internal-summary-control infer=\"apple-pay-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.applePay}\n json-path=\"merchantID\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"apple-pay-merchant-id\"\n >\n </foxy-internal-text-control>\n\n <p class=\"text-secondary leading-xs\">\n <foxy-i18n infer=\"apple-pay-warning\" key=\"warning_text\"></foxy-i18n>\n </p>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderCustomTaxConfig() {\n return html`\n <foxy-internal-summary-control infer=\"custom-tax-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.customTax}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"custom-tax-url\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>('#storeLoader');\n }\n}\n"]}
1
+ {"version":3,"file":"NativeIntegrationForm.js","sourceRoot":"","sources":["../../../../src/elements/public/NativeIntegrationForm/NativeIntegrationForm.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { NucleonElement } from '../NucleonElement/NucleonElement';\nimport type { NucleonV8N } from '../NucleonElement/types';\nimport type { Resource } from '@foxy.io/sdk/core';\nimport type { Option } from '../../internal/InternalRadioGroupControl/types';\nimport type { Data } from './types';\nimport type { Item } from '../../internal/InternalEditableListControl/types';\nimport type { Rels } from '@foxy.io/sdk/backend';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { BooleanSelector } from '@foxy.io/sdk/core';\nimport { InternalForm } from '../../internal/InternalForm/InternalForm';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { isHttpUrl } from '../../../utils/is-http-url';\nimport { html, svg } from 'lit-html';\n\nimport * as defaults from './defaults';\nimport memoize from 'lodash-es/memoize';\n\nconst NS = 'native-integration-form';\nconst Base = TranslatableMixin(InternalForm, NS);\n\n/**\n * Form element for configuring native integrations (`fx:native_integration`).\n *\n * @element foxy-native-integration-form\n * @since 1.25.0\n */\nexport class NativeIntegrationForm extends Base<Data> {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n itemCategoryBase: { attribute: 'item-category-base' },\n store: {},\n };\n }\n\n static get v8n(): NucleonV8N<Data> {\n const parse = memoize(JSON.parse);\n\n return [\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isHttpUrl(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'avalara' && err ? `avalara-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).id || 'avalara-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).key || 'avalara-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'avalara' || !!parse(c).company_code || 'avalara-company-code:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'taxjar' || !!parse(c).api_token || 'taxjar-api-token:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const url = parse(c).service_url;\n const err = url ? (isHttpUrl(url) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'onesource' && err ? `onesource-service-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-external-company-id';\n return p !== 'onesource' || !!parse(c).external_company_id || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-calling-system-number';\n return p !== 'onesource' || !!parse(c).calling_system_number || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-from-city';\n return p !== 'onesource' || !!parse(c).from_city || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const prefix = 'onesource-host-system';\n return p !== 'onesource' || !!parse(c).host_system || `${prefix}:v8n_required`;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!t || 'webhook-json-title:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, encryption_key: e } = parse(c);\n return p !== 'webhook' || s !== 'json' || !!e || 'webhook-json-encryption-key:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isHttpUrl(u) ? null : 'v8n_invalid') : 'v8n_required';\n return p === 'webhook' && s === 'json' && err ? `webhook-json-url:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, title: t } = parse(c);\n const err = 'webhook-legacy-xml-title:v8n_required';\n return p !== 'webhook' || s !== 'legacy_xml' || !!t || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const { service: s, url: u } = parse(c);\n const err = u ? (isHttpUrl(u) ? null : 'v8n_invalid') : 'v8n_required';\n const prefix = 'webhook-legacy-xml-url';\n return p === 'webhook' && s === 'legacy_xml' && err ? `${prefix}:${err}` : true;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).site_id || 'webflow-site-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).site_name || 'webflow-site-name:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).collection_id || 'webflow-collection-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-collection-name:v8n_required';\n return p !== 'webflow' || !!parse(c).collection_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).sku_field_id || 'webflow-sku-field-id:v8n_required';\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-sku-field-name:v8n_required';\n return p !== 'webflow' || !!parse(c).sku_field_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-inventory-field-id:v8n_required';\n return p !== 'webflow' || !!parse(c).inventory_field_id || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n const err = 'webflow-inventory-field-name:v8n_required';\n return p !== 'webflow' || !!parse(c).inventory_field_name || err;\n },\n ({ provider: p = 'avalara', config: c = '{}' }) => {\n return p !== 'webflow' || !!parse(c).auth || 'webflow-auth:v8n_required';\n },\n ];\n }\n\n itemCategoryBase: string | null = null;\n\n store: string | null = null;\n\n private readonly __createConfigGetterFor = memoize((key: string) => {\n return () => this.__config?.[key];\n });\n\n private readonly __createConfigSetterFor = memoize((key: string) => {\n return (value: unknown) => (this.__config = { [key]: value });\n });\n\n private readonly __providerGetValue = () => this.form.provider;\n\n private readonly __providerSetValue = (value: string) => {\n this.edit({ provider: value, config: '{}' });\n this.__config = {};\n };\n\n private readonly __templateProviderOptions: Option[] = [\n { value: 'avalara', label: 'option_avalara' },\n { value: 'onesource', label: 'option_onesource' },\n { value: 'taxjar', label: 'option_taxjar' },\n { value: 'custom_tax', label: 'option_custom_tax' },\n ];\n\n private readonly __avalaraAddressValidationCountriesOptions = [{ value: 'US' }, { value: 'CA' }];\n\n private readonly __onesourceCompanyRoleOptions = [\n { value: 'B', label: 'option_buyer' },\n { value: 'M', label: 'option_middleman' },\n { value: 'S', label: 'option_seller' },\n ];\n\n private readonly __onesourceProductOrderPriorityGetValue = () => {\n const value = this.__config?.product_order_priority.split(',') ?? [];\n return value.filter((v: string) => !!v).map((v: string) => ({ value: v }));\n };\n\n private readonly __onesourceProductOrderPrioritySetValue = (value: Item[]) => {\n this.__config = { product_order_priority: value.map(i => i.value).join(',') };\n };\n\n private readonly __onesourceAuditSettingsOptions = [\n { value: 'capture_only', label: 'option_capture_only' },\n { value: 'auth_and_capture', label: 'option_auth_and_capture' },\n { value: 'never', label: 'option_never' },\n ];\n\n private readonly __webhookServiceOptions = [\n { value: 'json', label: 'option_json' },\n { value: 'legacy_xml', label: 'option_legacy_xml' },\n ];\n\n private readonly __webhookJsonEventsOptions = [\n { value: 'transaction/created', label: 'option_transaction_created' },\n { value: 'subscription/cancelled', label: 'option_subscription_cancelled' },\n ];\n\n get readonlySelector(): BooleanSelector {\n const match = [super.readonlySelector.toString()];\n\n if (this.href) {\n match.push('apple-pay-group-one', 'zapier-group-one', 'provider-group-one');\n }\n\n return new BooleanSelector(match.join(' ').trim());\n }\n\n get headerTitleOptions(): Record<string, unknown> {\n return {\n context: this.data ? `existing_${this.data.provider}` : 'new',\n id: this.headerCopyIdValue,\n };\n }\n\n renderBody(): TemplateResult {\n const provider = this.form.provider;\n\n return html`\n ${this.renderHeader()}\n ${this.href\n ? ''\n : html`\n <foxy-internal-summary-control infer=\"provider-group-one\">\n <foxy-internal-select-control\n layout=\"summary-item\"\n infer=\"provider\"\n .getValue=${this.__providerGetValue}\n .setValue=${this.__providerSetValue}\n .options=${this.__templateProviderOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n `}\n ${provider === 'avalara'\n ? this.__renderAvalaraConfig()\n : provider === 'taxjar'\n ? this.__renderTaxJarConfig()\n : provider === 'onesource'\n ? this.__renderOneSourceConfig()\n : provider === 'webflow'\n ? this.__renderWebflowConfig()\n : provider === 'zapier'\n ? this.__renderZapierConfig()\n : provider === 'webhook'\n ? this.__renderWebhookConfig()\n : provider === 'apple_pay'\n ? this.__renderApplePayConfig()\n : provider === 'custom_tax'\n ? this.__renderCustomTaxConfig()\n : ''}\n ${super.renderBody()}\n\n <foxy-nucleon\n class=\"hidden\"\n infer=\"\"\n href=${ifDefined(this.store ?? void 0)}\n id=\"storeLoader\"\n @update=${() => this.requestUpdate()}\n >\n </foxy-nucleon>\n `;\n }\n\n protected async _fetch<TResult = Data>(...args: Parameters<Window['fetch']>): Promise<TResult> {\n try {\n return await super._fetch(...args);\n } catch (err) {\n let message;\n\n try {\n message = (await (err as Response).json())._embedded['fx:errors'][0].message;\n } catch {\n throw err;\n }\n\n if (message.includes('has already been configured')) {\n throw ['error:already_configured'];\n } else {\n throw err;\n }\n }\n }\n\n private get __config() {\n try {\n return JSON.parse(this.form.config as string);\n } catch {\n return null;\n }\n }\n\n private set __config(value: any) {\n const config = this.__config;\n const provider = this.form.provider ?? 'avalara';\n const serializedDefaultConfig = (() => {\n if (provider === 'avalara') return defaults.avalara;\n if (provider === 'taxjar') return defaults.taxjar;\n if (provider === 'onesource') return defaults.onesource;\n if (provider === 'webflow') return defaults.webflow;\n if (provider === 'zapier') return defaults.zapier;\n if (provider === 'webhook') {\n if (config?.service === 'legacy_xml') return defaults.webhookLegacyXml;\n return defaults.webhookJson;\n }\n })();\n\n const defaultConfig = serializedDefaultConfig ? JSON.parse(serializedDefaultConfig) : {};\n const newConfig = JSON.stringify({ ...defaultConfig, ...config, ...value });\n this.edit({ provider, config: newConfig });\n }\n\n private __renderAvalaraConfig() {\n const isActive = this.__storeLoader?.data?.is_active;\n const itemCategories = this.__storeLoader?.data?._links['fx:item_categories'].href;\n const serviceUrlPlaceholder =\n typeof isActive === 'boolean'\n ? this.t(\n `avalara-group-one.avalara-service-url.placeholder_${isActive ? 'active' : 'inactive'}`\n )\n : void 0;\n\n return html`\n <foxy-internal-summary-control infer=\"avalara-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.avalara}\n placeholder=${ifDefined(serviceUrlPlaceholder)}\n json-path=\"service_url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-service-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.avalara}\n json-path=\"id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-password-control\n json-template=${defaults.avalara}\n json-path=\"key\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-key\"\n >\n </foxy-internal-password-control>\n\n <foxy-internal-text-control\n json-template=${defaults.avalara}\n json-path=\"company_code\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-company-code\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"avalara-group-two\">\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"use_ava_tax\"\n property=\"config\"\n infer=\"avalara-use-ava-tax\"\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"use_address_validation\"\n property=\"config\"\n infer=\"avalara-use-address-validation\"\n >\n </foxy-internal-switch-control>\n\n ${this.__config?.use_address_validation\n ? html`\n <foxy-internal-editable-list-control\n json-template=${defaults.avalara}\n json-path=\"address_validation_countries\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-address-validation-countries\"\n .options=${this.__avalaraAddressValidationCountriesOptions}\n >\n </foxy-internal-editable-list-control>\n `\n : ''}\n\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"create_invoice\"\n property=\"config\"\n infer=\"avalara-create-invoice\"\n >\n </foxy-internal-switch-control>\n\n <foxy-internal-switch-control\n json-template=${defaults.avalara}\n json-path=\"enable_colorado_delivery_fee\"\n property=\"config\"\n infer=\"avalara-enable-colorado-delivery-fee\"\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-native-integration-form-code-map-control\n item-category-base=${ifDefined(this.itemCategoryBase ?? void 0)}\n item-categories=${ifDefined(itemCategories)}\n json-template=${defaults.avalara}\n json-path=\"category_to_product_tax_code_mappings\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"avalara-category-to-product-tax-code-mappings\"\n >\n </foxy-internal-native-integration-form-code-map-control>\n `;\n }\n\n private __renderTaxJarConfig() {\n const itemCategories = this.__storeLoader?.data?._links['fx:item_categories'].href;\n\n return html`\n <foxy-internal-summary-control infer=\"taxjar-group-one\">\n <foxy-internal-password-control\n json-template=${defaults.taxjar}\n json-path=\"api_token\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"taxjar-api-token\"\n >\n </foxy-internal-password-control>\n\n <foxy-internal-switch-control\n json-template=${defaults.taxjar}\n json-path=\"create_invoice\"\n property=\"config\"\n infer=\"taxjar-create-invoice\"\n >\n </foxy-internal-switch-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-native-integration-form-code-map-control\n item-category-base=${ifDefined(this.itemCategoryBase ?? void 0)}\n item-categories=${ifDefined(itemCategories)}\n json-template=${defaults.taxjar}\n json-path=\"category_to_product_tax_code_mappings\"\n property=\"config\"\n infer=\"taxjar-category-to-product-tax-code-mappings\"\n >\n </foxy-internal-native-integration-form-code-map-control>\n `;\n }\n\n private __renderOneSourceConfig() {\n return html`\n <foxy-internal-summary-control infer=\"onesource-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"service_url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-service-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"external_company_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-external-company-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"from_city\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-from-city\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-two\">\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"calling_system_number\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-calling-system-number\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"host_system\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-host-system\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-three\">\n <foxy-internal-select-control\n json-template=${defaults.onesource}\n json-path=\"audit_settings\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-audit-settings\"\n .options=${this.__onesourceAuditSettingsOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-select-control\n json-template=${defaults.onesource}\n json-path=\"company_role\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-company-role\"\n .options=${this.__onesourceCompanyRoleOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-four\">\n <foxy-internal-text-control\n json-template=${defaults.onesource}\n json-path=\"part_number_product_option\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"onesource-part-number-product-option\"\n .getValue=${this.__createConfigGetterFor('part_number_product_option')}\n .setValue=${this.__createConfigSetterFor('part_number_product_option')}\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"onesource-group-five\">\n <foxy-internal-editable-list-control\n layout=\"summary-item\"\n infer=\"onesource-product-order-priority\"\n .getValue=${this.__onesourceProductOrderPriorityGetValue}\n .setValue=${this.__onesourceProductOrderPrioritySetValue}\n >\n </foxy-internal-editable-list-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderWebhookConfig() {\n return html`\n <div\n class=\"flex items-start border border-error rounded\"\n style=\"padding: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px); gap: calc(0.625em + (var(--lumo-border-radius) / 4) - 1px)\"\n >\n ${svg`<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\" class=\"flex-shrink-0 text-error\" style=\"width: 1.25em\"><path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z\" clip-rule=\"evenodd\"></path></svg>`}\n <p>\n <foxy-i18n infer=\"webhook-warning\" key=\"warning_text\"></foxy-i18n>\n <br />\n <a\n target=\"_blank\"\n class=\"mt-xs inline-block rounded font-medium text-error transition-colors cursor-pointer hover-opacity-80 focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=\"https://wiki.foxycart.com/v/2.0/webhooks\"\n >\n <foxy-i18n infer=\"webhook-warning\" key=\"link_text\"></foxy-i18n>\n </a>\n </p>\n </div>\n\n ${this.__config?.service === 'json'\n ? this.__renderWebhookJsonConfig()\n : this.__config?.service === 'legacy_xml'\n ? this.__renderWebhookLegacyXmlConfig()\n : ''}\n `;\n }\n\n private __renderWebhookJsonConfig() {\n return html`\n <foxy-internal-summary-control infer=\"webhook-json-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.webhookJson}\n json-path=\"title\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-json-title\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webhookJson}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-json-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n json-template=${defaults.webhookJson}\n json-path=\"service\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-service\"\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-select-control>\n\n <foxy-internal-password-control\n json-template=${defaults.webhookJson}\n json-path=\"encryption_key\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-json-encryption-key\"\n >\n </foxy-internal-password-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webhook-json-group-two\">\n ${this.__webhookJsonEventsOptions.map(option => {\n return html`\n <foxy-internal-switch-control\n infer=${`webhook-json-events-${option.value.replace(/\\//g, '-')}`}\n .getValue=${() => this.__config?.events?.includes(option.value)}\n .setValue=${(value: boolean) => {\n const events = this.__config?.events ?? [];\n this.__config = {\n events: value\n ? [...events, option.value]\n : events.filter((v: string) => v !== option.value),\n };\n }}\n >\n </foxy-internal-switch-control>\n `;\n })}\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderWebhookLegacyXmlConfig() {\n return html`\n <foxy-internal-summary-control infer=\"webhook-legacy-xml-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.webhookLegacyXml}\n json-path=\"title\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-legacy-xml-title\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webhookLegacyXml}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-legacy-xml-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-select-control\n json-template=${defaults.webhookLegacyXml}\n json-path=\"service\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webhook-service\"\n .options=${this.__webhookServiceOptions}\n >\n </foxy-internal-select-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderWebflowConfig() {\n return html`\n <foxy-internal-summary-control infer=\"webflow-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"site_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-site-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"site_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-site-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webflow-group-two\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"collection_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-collection-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"collection_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-collection-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webflow-group-three\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"sku_field_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-sku-field-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"sku_field_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-sku-field-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n\n <foxy-internal-summary-control infer=\"webflow-group-four\">\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"inventory_field_id\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-inventory-field-id\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-text-control\n json-template=${defaults.webflow}\n json-path=\"inventory_field_name\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"webflow-inventory-field-name\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderZapierConfig() {\n return html`\n <foxy-internal-summary-control infer=\"zapier-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.zapier}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"zapier-url\"\n >\n </foxy-internal-text-control>\n\n <foxy-internal-editable-list-control\n json-template=${defaults.zapier}\n json-path=\"events\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"zapier-events\"\n simple-value\n >\n </foxy-internal-editable-list-control>\n\n <p class=\"text-secondary leading-xs\">\n <foxy-i18n infer=\"zapier-warning\" key=\"warning_text\"></foxy-i18n>\n </p>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderApplePayConfig() {\n return html`\n <foxy-internal-summary-control infer=\"apple-pay-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.applePay}\n json-path=\"merchantID\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"apple-pay-merchant-id\"\n >\n </foxy-internal-text-control>\n\n <p class=\"text-secondary leading-xs\">\n <foxy-i18n infer=\"apple-pay-warning\" key=\"warning_text\"></foxy-i18n>\n </p>\n </foxy-internal-summary-control>\n `;\n }\n\n private __renderCustomTaxConfig() {\n return html`\n <foxy-internal-summary-control infer=\"custom-tax-group-one\">\n <foxy-internal-text-control\n json-template=${defaults.customTax}\n json-path=\"url\"\n property=\"config\"\n layout=\"summary-item\"\n infer=\"custom-tax-url\"\n >\n </foxy-internal-text-control>\n </foxy-internal-summary-control>\n `;\n }\n\n private get __storeLoader() {\n type Loader = NucleonElement<Resource<Rels.Store>>;\n return this.renderRoot.querySelector<Loader>('#storeLoader');\n }\n}\n"]}
@@ -67,9 +67,11 @@ export declare class QueryBuilder extends Base {
67
67
  docsHref: string | null;
68
68
  /** Filter options in Simple Mode and autocomplete suggestions in Advanced Mode. */
69
69
  options: Option[] | null;
70
- /** Current value as hAPI filter string. */
71
- value: string | null;
72
70
  private __isAdvancedMode;
71
+ private __reportedValue;
72
+ private __displayedValue;
73
+ get value(): string | null;
74
+ set value(newValue: string | null);
73
75
  render(): TemplateResult;
74
76
  private get __isSimpleModeSupported();
75
77
  private get __simpleModeOptions();
@@ -38,9 +38,9 @@ export class QueryBuilder extends Base {
38
38
  this.docsHref = null;
39
39
  /** Filter options in Simple Mode and autocomplete suggestions in Advanced Mode. */
40
40
  this.options = null;
41
- /** Current value as hAPI filter string. */
42
- this.value = null;
43
41
  this.__isAdvancedMode = false;
42
+ this.__reportedValue = null;
43
+ this.__displayedValue = null;
44
44
  }
45
45
  /** Returns zoom value for a filter query. */
46
46
  static zoom(value) {
@@ -55,23 +55,43 @@ export class QueryBuilder extends Base {
55
55
  operators: { type: Array },
56
56
  docsHref: { attribute: 'docs-href' },
57
57
  options: { type: Array },
58
- value: {},
58
+ value: { noAccessor: true },
59
+ __reportedValue: { attribute: false },
60
+ __displayedValue: { attribute: false },
59
61
  __isAdvancedMode: { attribute: false },
60
62
  };
61
63
  }
62
64
  static get styles() {
63
65
  return [super.styles, styles];
64
66
  }
67
+ get value() {
68
+ return this.__reportedValue;
69
+ }
70
+ set value(newValue) {
71
+ this.__reportedValue = newValue;
72
+ this.__displayedValue = newValue;
73
+ }
65
74
  render() {
66
75
  var _a, _b, _c, _d, _e, _f;
67
76
  const isSimpleModeSupported = this.__isSimpleModeSupported;
68
- const parsedValue = parse((_a = this.value) !== null && _a !== void 0 ? _a : '');
77
+ const parsedValue = parse((_a = this.__displayedValue) !== null && _a !== void 0 ? _a : '');
69
78
  const operators = (_b = this.operators) !== null && _b !== void 0 ? _b : [];
70
79
  const options = (_c = this.options) !== null && _c !== void 0 ? _c : [];
71
80
  const t = this.t.bind(this);
72
81
  const onChange = (newParsedValue) => {
73
- this.value = stringify(newParsedValue, this.disableZoom);
74
- this.dispatchEvent(new QueryBuilder.ChangeEvent('change'));
82
+ this.__displayedValue = stringify(newParsedValue, this.disableZoom);
83
+ const isValid = newParsedValue.every(ruleOrGroup => {
84
+ if (Array.isArray(ruleOrGroup)) {
85
+ return ruleOrGroup.every(rule => !rule.invalid);
86
+ }
87
+ else {
88
+ return !ruleOrGroup.invalid;
89
+ }
90
+ });
91
+ if (isValid) {
92
+ this.__reportedValue = this.__displayedValue;
93
+ this.dispatchEvent(new QueryBuilder.ChangeEvent('change'));
94
+ }
75
95
  };
76
96
  // This will trigger a re-render but is necessary to stay in the advanced mode once the support
77
97
  // for simple mode is available again.
@@ -168,7 +188,7 @@ export class QueryBuilder extends Base {
168
188
  return false;
169
189
  if (this.options.length === 0)
170
190
  return false;
171
- const parsedValue = parse((_a = this.value) !== null && _a !== void 0 ? _a : '');
191
+ const parsedValue = parse((_a = this.__displayedValue) !== null && _a !== void 0 ? _a : '');
172
192
  if (parsedValue.length === 0)
173
193
  return true;
174
194
  return parsedValue.every(entry => {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../src/elements/public/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Rule, Option } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { html, LitElement } from 'lit-element';\nimport { InferrableMixin } from '../../../mixins/inferrable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { Operator, Type } from './types';\nimport { AdvancedGroup } from './components/AdvancedGroup';\nimport { SimpleGroup } from './components/SimpleGroup';\nimport { stringify } from './utils/stringify';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { styles } from './styles';\nimport { parse } from './utils/parse';\nimport { zoom } from './utils/zoom';\n\nconst NS = 'query-builder';\nconst Base = ConfigurableMixin(\n ResponsiveMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)))\n);\n\n/**\n * UI component for creating Foxy hAPI filters visually. Compatible with\n * Backend API, Customer API or any other API using the same format as described\n * in our [docs](https://api.foxy.io/docs/cheat-sheet).\n *\n * @element foxy-query-builder\n * @since 1.12.0\n */\nexport class QueryBuilder extends Base {\n /** QueryBuilder dispatches this event on itself when value changes. */\n static readonly ChangeEvent = class extends CustomEvent<void> {};\n\n /** Operator dictionary for use in autocomplete options. */\n static readonly Operator = Operator;\n\n /** Field type dictionary for use in autocomplete options. */\n static readonly Type = Type;\n\n /** Returns zoom value for a filter query. */\n static zoom(value: string): string {\n return zoom(parse(value));\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n reservedPaths: { type: Array, attribute: 'reserved-paths' },\n disableZoom: { type: Boolean, attribute: 'disable-zoom' },\n disableOr: { type: Boolean, attribute: 'disable-or' },\n operators: { type: Array },\n docsHref: { attribute: 'docs-href' },\n options: { type: Array },\n value: {},\n __isAdvancedMode: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n /** Simple Mode will not show controls for these paths unless explicitly specified in options. */\n reservedPaths: string[] = ['zoom', 'limit', 'offset', 'order', 'fields'];\n\n /** If true, doesn't add `zoom` query parameter for complex paths. */\n disableZoom = false;\n\n /** If true, hides the UI for the \"OR\" operator in queries in the Advanced Mode. */\n disableOr = false;\n\n /** List of operators available in the builder UI. */\n operators: Operator[] = Object.values(Operator);\n\n /** When provided, will display a documentation link in the Advanced Mode. */\n docsHref: string | null = null;\n\n /** Filter options in Simple Mode and autocomplete suggestions in Advanced Mode. */\n options: Option[] | null = null;\n\n /** Current value as hAPI filter string. */\n value: string | null = null;\n\n private __isAdvancedMode = false;\n\n render(): TemplateResult {\n const isSimpleModeSupported = this.__isSimpleModeSupported;\n const parsedValue = parse(this.value ?? '');\n const operators = this.operators ?? [];\n const options = this.options ?? [];\n const t = this.t.bind(this);\n\n const onChange = (newParsedValue: (Rule | Rule[])[]) => {\n this.value = stringify(newParsedValue, this.disableZoom);\n this.dispatchEvent(new QueryBuilder.ChangeEvent('change'));\n };\n\n // This will trigger a re-render but is necessary to stay in the advanced mode once the support\n // for simple mode is available again.\n if (!isSimpleModeSupported && !this.__isAdvancedMode) this.__isAdvancedMode = true;\n\n return html`\n <div class=\"space-y-m\">\n <div\n class=\"grid grid-cols-2 gap-xs p-xs bg-contrast-5 rounded\"\n ?hidden=${!this.options?.length}\n >\n <label\n class=${classMap({\n 'p-xs rounded-s text-center font-medium transition-colors': true,\n 'bg-base ring-1 ring-contrast-5': !this.__isAdvancedMode && isSimpleModeSupported,\n 'hover-bg-contrast-5': this.__isAdvancedMode && isSimpleModeSupported,\n 'focus-within-ring-2 focus-within-ring-inset focus-within-ring-primary-50': true,\n 'cursor-pointer': isSimpleModeSupported,\n 'text-disabled': !isSimpleModeSupported,\n })}\n >\n <foxy-i18n infer=\"\" key=\"mode_simple${isSimpleModeSupported ? '' : '_unsupported'}\">\n </foxy-i18n>\n <input\n class=\"sr-only\"\n type=\"radio\"\n name=\"mode\"\n ?disabled=${!isSimpleModeSupported}\n ?checked=${!this.__isAdvancedMode}\n @change=${() => (this.__isAdvancedMode = false)}\n />\n </label>\n\n <label\n class=${classMap({\n 'p-xs rounded-s text-center font-medium cursor-pointer transition-colors': true,\n 'bg-base ring-1 ring-contrast-5': this.__isAdvancedMode,\n 'hover-bg-contrast-5': !this.__isAdvancedMode,\n 'focus-within-ring-2 focus-within-ring-inset focus-within-ring-primary-50': true,\n })}\n >\n <foxy-i18n infer=\"\" key=\"mode_advanced\"></foxy-i18n>\n <input\n class=\"sr-only\"\n type=\"radio\"\n name=\"mode\"\n ?checked=${this.__isAdvancedMode}\n @change=${() => (this.__isAdvancedMode = true)}\n />\n </label>\n </div>\n\n ${this.__isAdvancedMode || !isSimpleModeSupported\n ? html`\n <p class=\"leading-s text-tertiary\" ?hidden=${this.docsHref === null}>\n <foxy-i18n infer=\"\" key=\"advanced_mode_notice\"></foxy-i18n>\n <a\n target=\"_blank\"\n class=\"cursor-pointer rounded-s text-secondary font-medium hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${ifDefined(this.docsHref ?? void 0)}\n rel=\"nofollow noreferrer noopener\"\n >\n <foxy-i18n infer=\"\" key=\"api_reference_link\"></foxy-i18n>\n </a>\n </p>\n\n ${AdvancedGroup({\n disableOr: this.disableOr,\n disabled: this.disabled,\n readonly: this.readonly,\n rules: parsedValue,\n operators,\n onChange,\n options,\n t,\n })}\n `\n : this.__simpleModeOptions?.map(group => {\n return SimpleGroup({\n ...group,\n disabled: this.disabled,\n readonly: this.readonly,\n rules: parsedValue as Rule[],\n onChange,\n t,\n });\n })}\n </div>\n `;\n }\n\n private get __isSimpleModeSupported() {\n if (this.options === null) return false;\n if (this.options.length === 0) return false;\n\n const parsedValue = parse(this.value ?? '');\n if (parsedValue.length === 0) return true;\n\n return parsedValue.every(entry => {\n if (Array.isArray(entry)) return false;\n if (entry.operator === Operator.In) return false;\n if (entry.operator === Operator.IsDefined && entry.value !== 'true') return false;\n return !!(\n this.reservedPaths.includes(entry.path) ||\n this.options?.find(option => option.path === entry.path)\n );\n });\n }\n\n private get __simpleModeOptions() {\n return this.options?.reduce((result, option) => {\n const group = result.find(group => group.name === option.group?.name);\n\n if (group) {\n group.options.push(option);\n } else {\n result.push({ ...option.group, options: [option] });\n }\n\n return result;\n }, [] as { name?: string; layout?: string; options: Option[] }[]);\n }\n}\n"]}
1
+ {"version":3,"file":"QueryBuilder.js","sourceRoot":"","sources":["../../../../src/elements/public/QueryBuilder/QueryBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Rule, Option } from './types';\n\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { html, LitElement } from 'lit-element';\nimport { InferrableMixin } from '../../../mixins/inferrable';\nimport { ResponsiveMixin } from '../../../mixins/responsive';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { Operator, Type } from './types';\nimport { AdvancedGroup } from './components/AdvancedGroup';\nimport { SimpleGroup } from './components/SimpleGroup';\nimport { stringify } from './utils/stringify';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { classMap } from '../../../utils/class-map';\nimport { styles } from './styles';\nimport { parse } from './utils/parse';\nimport { zoom } from './utils/zoom';\n\nconst NS = 'query-builder';\nconst Base = ConfigurableMixin(\n ResponsiveMixin(ThemeableMixin(TranslatableMixin(InferrableMixin(LitElement), NS)))\n);\n\n/**\n * UI component for creating Foxy hAPI filters visually. Compatible with\n * Backend API, Customer API or any other API using the same format as described\n * in our [docs](https://api.foxy.io/docs/cheat-sheet).\n *\n * @element foxy-query-builder\n * @since 1.12.0\n */\nexport class QueryBuilder extends Base {\n /** QueryBuilder dispatches this event on itself when value changes. */\n static readonly ChangeEvent = class extends CustomEvent<void> {};\n\n /** Operator dictionary for use in autocomplete options. */\n static readonly Operator = Operator;\n\n /** Field type dictionary for use in autocomplete options. */\n static readonly Type = Type;\n\n /** Returns zoom value for a filter query. */\n static zoom(value: string): string {\n return zoom(parse(value));\n }\n\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n reservedPaths: { type: Array, attribute: 'reserved-paths' },\n disableZoom: { type: Boolean, attribute: 'disable-zoom' },\n disableOr: { type: Boolean, attribute: 'disable-or' },\n operators: { type: Array },\n docsHref: { attribute: 'docs-href' },\n options: { type: Array },\n value: { noAccessor: true },\n __reportedValue: { attribute: false },\n __displayedValue: { attribute: false },\n __isAdvancedMode: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [super.styles, styles];\n }\n\n /** Simple Mode will not show controls for these paths unless explicitly specified in options. */\n reservedPaths: string[] = ['zoom', 'limit', 'offset', 'order', 'fields'];\n\n /** If true, doesn't add `zoom` query parameter for complex paths. */\n disableZoom = false;\n\n /** If true, hides the UI for the \"OR\" operator in queries in the Advanced Mode. */\n disableOr = false;\n\n /** List of operators available in the builder UI. */\n operators: Operator[] = Object.values(Operator);\n\n /** When provided, will display a documentation link in the Advanced Mode. */\n docsHref: string | null = null;\n\n /** Filter options in Simple Mode and autocomplete suggestions in Advanced Mode. */\n options: Option[] | null = null;\n\n private __isAdvancedMode = false;\n\n private __reportedValue: string | null = null;\n\n private __displayedValue: string | null = null;\n\n get value(): string | null {\n return this.__reportedValue;\n }\n\n set value(newValue: string | null) {\n this.__reportedValue = newValue;\n this.__displayedValue = newValue;\n }\n\n render(): TemplateResult {\n const isSimpleModeSupported = this.__isSimpleModeSupported;\n const parsedValue = parse(this.__displayedValue ?? '');\n const operators = this.operators ?? [];\n const options = this.options ?? [];\n const t = this.t.bind(this);\n\n const onChange = (newParsedValue: (Rule | Rule[])[]) => {\n this.__displayedValue = stringify(newParsedValue, this.disableZoom);\n\n const isValid = newParsedValue.every(ruleOrGroup => {\n if (Array.isArray(ruleOrGroup)) {\n return ruleOrGroup.every(rule => !rule.invalid);\n } else {\n return !ruleOrGroup.invalid;\n }\n });\n\n if (isValid) {\n this.__reportedValue = this.__displayedValue;\n this.dispatchEvent(new QueryBuilder.ChangeEvent('change'));\n }\n };\n\n // This will trigger a re-render but is necessary to stay in the advanced mode once the support\n // for simple mode is available again.\n if (!isSimpleModeSupported && !this.__isAdvancedMode) this.__isAdvancedMode = true;\n\n return html`\n <div class=\"space-y-m\">\n <div\n class=\"grid grid-cols-2 gap-xs p-xs bg-contrast-5 rounded\"\n ?hidden=${!this.options?.length}\n >\n <label\n class=${classMap({\n 'p-xs rounded-s text-center font-medium transition-colors': true,\n 'bg-base ring-1 ring-contrast-5': !this.__isAdvancedMode && isSimpleModeSupported,\n 'hover-bg-contrast-5': this.__isAdvancedMode && isSimpleModeSupported,\n 'focus-within-ring-2 focus-within-ring-inset focus-within-ring-primary-50': true,\n 'cursor-pointer': isSimpleModeSupported,\n 'text-disabled': !isSimpleModeSupported,\n })}\n >\n <foxy-i18n infer=\"\" key=\"mode_simple${isSimpleModeSupported ? '' : '_unsupported'}\">\n </foxy-i18n>\n <input\n class=\"sr-only\"\n type=\"radio\"\n name=\"mode\"\n ?disabled=${!isSimpleModeSupported}\n ?checked=${!this.__isAdvancedMode}\n @change=${() => (this.__isAdvancedMode = false)}\n />\n </label>\n\n <label\n class=${classMap({\n 'p-xs rounded-s text-center font-medium cursor-pointer transition-colors': true,\n 'bg-base ring-1 ring-contrast-5': this.__isAdvancedMode,\n 'hover-bg-contrast-5': !this.__isAdvancedMode,\n 'focus-within-ring-2 focus-within-ring-inset focus-within-ring-primary-50': true,\n })}\n >\n <foxy-i18n infer=\"\" key=\"mode_advanced\"></foxy-i18n>\n <input\n class=\"sr-only\"\n type=\"radio\"\n name=\"mode\"\n ?checked=${this.__isAdvancedMode}\n @change=${() => (this.__isAdvancedMode = true)}\n />\n </label>\n </div>\n\n ${this.__isAdvancedMode || !isSimpleModeSupported\n ? html`\n <p class=\"leading-s text-tertiary\" ?hidden=${this.docsHref === null}>\n <foxy-i18n infer=\"\" key=\"advanced_mode_notice\"></foxy-i18n>\n <a\n target=\"_blank\"\n class=\"cursor-pointer rounded-s text-secondary font-medium hover-underline focus-outline-none focus-ring-2 focus-ring-primary-50\"\n href=${ifDefined(this.docsHref ?? void 0)}\n rel=\"nofollow noreferrer noopener\"\n >\n <foxy-i18n infer=\"\" key=\"api_reference_link\"></foxy-i18n>\n </a>\n </p>\n\n ${AdvancedGroup({\n disableOr: this.disableOr,\n disabled: this.disabled,\n readonly: this.readonly,\n rules: parsedValue,\n operators,\n onChange,\n options,\n t,\n })}\n `\n : this.__simpleModeOptions?.map(group => {\n return SimpleGroup({\n ...group,\n disabled: this.disabled,\n readonly: this.readonly,\n rules: parsedValue as Rule[],\n onChange,\n t,\n });\n })}\n </div>\n `;\n }\n\n private get __isSimpleModeSupported() {\n if (this.options === null) return false;\n if (this.options.length === 0) return false;\n\n const parsedValue = parse(this.__displayedValue ?? '');\n if (parsedValue.length === 0) return true;\n\n return parsedValue.every(entry => {\n if (Array.isArray(entry)) return false;\n if (entry.operator === Operator.In) return false;\n if (entry.operator === Operator.IsDefined && entry.value !== 'true') return false;\n return !!(\n this.reservedPaths.includes(entry.path) ||\n this.options?.find(option => option.path === entry.path)\n );\n });\n }\n\n private get __simpleModeOptions() {\n return this.options?.reduce((result, option) => {\n const group = result.find(group => group.name === option.group?.name);\n\n if (group) {\n group.options.push(option);\n } else {\n result.push({ ...option.group, options: [option] });\n }\n\n return result;\n }, [] as { name?: string; layout?: string; options: Option[] }[]);\n }\n}\n"]}
@@ -46,9 +46,11 @@ export const SimpleDateRule = params => {
46
46
  const to = toDate.toISOString();
47
47
  return onChange({ operator: null, value: `${from}..${to}` });
48
48
  }
49
+ const newValue = value !== null && value !== void 0 ? value : new Date().toISOString();
50
+ const removeRange = newValue.includes('..') && newSelection !== 'range';
49
51
  return onChange({
50
52
  operator: newSelection === 'equal' ? null : newSelection,
51
- value: value !== null && value !== void 0 ? value : new Date().toISOString(),
53
+ value: removeRange ? newValue.split('..')[0] : newValue,
52
54
  });
53
55
  },
54
56
  })}
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleDateRule.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/SimpleDateRule.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SimpleRuleComponent } from '../types';\n\nimport { serializeDate } from '../../../../utils/serialize-date';\nimport { SimpleSelect } from './SimpleSelect';\nimport { SimpleInput } from './SimpleInput';\nimport { parseDate } from '../../../../utils/parse-date';\nimport { Operator } from '../types';\nimport { html } from 'lit-html';\n\nexport const SimpleDateRule: SimpleRuleComponent = params => {\n const { operator, value } = params.rule ?? {};\n const { min, label } = params.option;\n const { disabled, readonly, t, onChange } = params;\n\n const isRange = value?.includes('..');\n const nullOperator = isRange ? 'range' : 'equal';\n const resolvedOperator = operator ?? nullOperator;\n const currentLabel =\n operator === void 0\n ? 'value_any'\n : resolvedOperator === 'range'\n ? 'range'\n : `operator_${resolvedOperator}`;\n\n return html`\n ${SimpleSelect({\n disabled,\n readonly,\n t,\n current: { label: currentLabel, value: operator === void 0 ? 'any' : resolvedOperator },\n options: [\n { label: 'value_any', value: 'any' },\n { label: 'operator_equal', value: 'equal' },\n { label: 'operator_not', value: Operator.Not },\n { label: 'operator_lessthanorequal', value: Operator.LessThanOrEqual },\n { label: 'operator_lessthan', value: Operator.LessThan },\n { label: 'operator_greaterthanorequal', value: Operator.GreaterThanOrEqual },\n { label: 'operator_greaterthan', value: Operator.GreaterThan },\n { label: 'range', value: 'range' },\n ],\n onChange: newSelection => {\n if (newSelection === 'any') return onChange(null);\n\n if (newSelection === 'range') {\n const fromDate = new Date(value ?? new Date().toISOString());\n const toDate = new Date(fromDate);\n\n fromDate.setMonth(fromDate.getMonth() - 1);\n fromDate.setHours(0, 0, 0, 0);\n toDate.setHours(23, 59, 59, 999);\n\n const from = fromDate.toISOString();\n const to = toDate.toISOString();\n\n return onChange({ operator: null, value: `${from}..${to}` });\n }\n\n return onChange({\n operator: newSelection === 'equal' ? null : (newSelection as Operator),\n value: value ?? new Date().toISOString(),\n });\n },\n })}\n ${value === undefined\n ? ''\n : isRange\n ? html`\n ${SimpleInput({\n disabled,\n readonly,\n layout: 'fixed',\n label: 'range_from',\n value: serializeDate(new Date(value.split('..')[0])),\n type: 'date',\n min,\n t,\n onChange: newValue => {\n const fromDate = parseDate(newValue) ?? new Date();\n const toDate = new Date(value.split('..')[1] ?? Date.now());\n\n fromDate.setHours(0, 0, 0, 0);\n toDate.setHours(23, 59, 59, 999);\n\n onChange({ value: `${fromDate.toISOString()}..${toDate.toISOString()}` });\n },\n })}\n ${SimpleInput({\n disabled,\n readonly,\n layout: 'fixed',\n label: 'range_to',\n value: serializeDate(new Date(value.split('..')[1])),\n type: 'date',\n min,\n t,\n onChange: newValue => {\n const fromDate = new Date(value.split('..')[0] ?? Date.now());\n const toDate = parseDate(newValue) ?? new Date();\n\n fromDate.setHours(0, 0, 0, 0);\n toDate.setHours(23, 59, 59, 999);\n\n onChange({ value: `${fromDate.toISOString()}..${toDate.toISOString()}` });\n },\n })}\n `\n : SimpleInput({\n disabled,\n readonly,\n label,\n value: serializeDate(new Date(value ?? Date.now())),\n type: 'date',\n min,\n t,\n onChange: newValue => {\n onChange({ value: (parseDate(newValue) ?? new Date()).toISOString() });\n },\n })}\n `;\n};\n"]}
1
+ {"version":3,"file":"SimpleDateRule.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/SimpleDateRule.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SimpleRuleComponent } from '../types';\n\nimport { serializeDate } from '../../../../utils/serialize-date';\nimport { SimpleSelect } from './SimpleSelect';\nimport { SimpleInput } from './SimpleInput';\nimport { parseDate } from '../../../../utils/parse-date';\nimport { Operator } from '../types';\nimport { html } from 'lit-html';\n\nexport const SimpleDateRule: SimpleRuleComponent = params => {\n const { operator, value } = params.rule ?? {};\n const { min, label } = params.option;\n const { disabled, readonly, t, onChange } = params;\n\n const isRange = value?.includes('..');\n const nullOperator = isRange ? 'range' : 'equal';\n const resolvedOperator = operator ?? nullOperator;\n const currentLabel =\n operator === void 0\n ? 'value_any'\n : resolvedOperator === 'range'\n ? 'range'\n : `operator_${resolvedOperator}`;\n\n return html`\n ${SimpleSelect({\n disabled,\n readonly,\n t,\n current: { label: currentLabel, value: operator === void 0 ? 'any' : resolvedOperator },\n options: [\n { label: 'value_any', value: 'any' },\n { label: 'operator_equal', value: 'equal' },\n { label: 'operator_not', value: Operator.Not },\n { label: 'operator_lessthanorequal', value: Operator.LessThanOrEqual },\n { label: 'operator_lessthan', value: Operator.LessThan },\n { label: 'operator_greaterthanorequal', value: Operator.GreaterThanOrEqual },\n { label: 'operator_greaterthan', value: Operator.GreaterThan },\n { label: 'range', value: 'range' },\n ],\n onChange: newSelection => {\n if (newSelection === 'any') return onChange(null);\n\n if (newSelection === 'range') {\n const fromDate = new Date(value ?? new Date().toISOString());\n const toDate = new Date(fromDate);\n\n fromDate.setMonth(fromDate.getMonth() - 1);\n fromDate.setHours(0, 0, 0, 0);\n toDate.setHours(23, 59, 59, 999);\n\n const from = fromDate.toISOString();\n const to = toDate.toISOString();\n\n return onChange({ operator: null, value: `${from}..${to}` });\n }\n\n const newValue = value ?? new Date().toISOString();\n const removeRange = newValue.includes('..') && newSelection !== 'range';\n\n return onChange({\n operator: newSelection === 'equal' ? null : (newSelection as Operator),\n value: removeRange ? newValue.split('..')[0] : newValue,\n });\n },\n })}\n ${value === undefined\n ? ''\n : isRange\n ? html`\n ${SimpleInput({\n disabled,\n readonly,\n layout: 'fixed',\n label: 'range_from',\n value: serializeDate(new Date(value.split('..')[0])),\n type: 'date',\n min,\n t,\n onChange: newValue => {\n const fromDate = parseDate(newValue) ?? new Date();\n const toDate = new Date(value.split('..')[1] ?? Date.now());\n\n fromDate.setHours(0, 0, 0, 0);\n toDate.setHours(23, 59, 59, 999);\n\n onChange({ value: `${fromDate.toISOString()}..${toDate.toISOString()}` });\n },\n })}\n ${SimpleInput({\n disabled,\n readonly,\n layout: 'fixed',\n label: 'range_to',\n value: serializeDate(new Date(value.split('..')[1])),\n type: 'date',\n min,\n t,\n onChange: newValue => {\n const fromDate = new Date(value.split('..')[0] ?? Date.now());\n const toDate = parseDate(newValue) ?? new Date();\n\n fromDate.setHours(0, 0, 0, 0);\n toDate.setHours(23, 59, 59, 999);\n\n onChange({ value: `${fromDate.toISOString()}..${toDate.toISOString()}` });\n },\n })}\n `\n : SimpleInput({\n disabled,\n readonly,\n label,\n value: serializeDate(new Date(value ?? Date.now())),\n type: 'date',\n min,\n t,\n onChange: newValue => {\n onChange({ value: (parseDate(newValue) ?? new Date()).toISOString() });\n },\n })}\n `;\n};\n"]}
@@ -30,19 +30,22 @@ export const SimpleNumberRule = params => {
30
30
  { label: 'range', value: 'range' },
31
31
  ],
32
32
  t,
33
- onChange: newValue => {
33
+ onChange: newSelection => {
34
34
  var _a, _b, _c, _d;
35
- if (newValue === 'any')
35
+ if (newSelection === 'any')
36
36
  return onChange(null);
37
- if (newValue === 'range') {
38
- let parsedFrom = parseFloat((_a = rule === null || rule === void 0 ? void 0 : rule.value) !== null && _a !== void 0 ? _a : '');
37
+ if (newSelection === 'range') {
38
+ const parsedFrom = parseFloat((_a = rule === null || rule === void 0 ? void 0 : rule.value) !== null && _a !== void 0 ? _a : '');
39
39
  if (isNaN(parsedFrom))
40
- parsedFrom = 0;
40
+ return onChange({ operator: null, value: '..', invalid: true });
41
41
  return onChange({ operator: null, value: `${parsedFrom}..${parsedFrom + 10}` });
42
42
  }
43
+ const newValue = (_d = (_b = rule === null || rule === void 0 ? void 0 : rule.value) !== null && _b !== void 0 ? _b : (_c = option.min) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '';
44
+ const removeRange = newValue.includes('..') && newSelection !== 'range';
43
45
  return onChange({
44
- operator: newValue === 'equal' ? null : newValue,
45
- value: (_d = (_b = rule === null || rule === void 0 ? void 0 : rule.value) !== null && _b !== void 0 ? _b : (_c = option.min) === null || _c === void 0 ? void 0 : _c.toString()) !== null && _d !== void 0 ? _d : '0',
46
+ operator: newSelection === 'equal' ? null : newSelection,
47
+ invalid: !newValue,
48
+ value: removeRange ? newValue.split('..')[0] : newValue,
46
49
  });
47
50
  },
48
51
  })}
@@ -62,8 +65,9 @@ export const SimpleNumberRule = params => {
62
65
  min,
63
66
  t,
64
67
  onChange: newValue => {
65
- const to = rule === null || rule === void 0 ? void 0 : rule.value.split('..')[1];
66
- onChange({ value: `${newValue || '0'}..${to}` });
68
+ var _a;
69
+ const to = (_a = rule === null || rule === void 0 ? void 0 : rule.value.split('..')[1]) !== null && _a !== void 0 ? _a : '';
70
+ onChange({ value: `${newValue}..${to}`, invalid: !newValue || !to });
67
71
  },
68
72
  })}
69
73
 
@@ -80,7 +84,7 @@ export const SimpleNumberRule = params => {
80
84
  t,
81
85
  onChange: newValue => {
82
86
  const from = rule === null || rule === void 0 ? void 0 : rule.value.split('..')[0];
83
- onChange({ value: `${from}..${newValue || '0'}` });
87
+ onChange({ value: `${from}..${newValue}`, invalid: !from || !newValue });
84
88
  },
85
89
  })}
86
90
  `
@@ -93,7 +97,7 @@ export const SimpleNumberRule = params => {
93
97
  type: 'number',
94
98
  min,
95
99
  t,
96
- onChange: newValue => onChange({ value: newValue }),
100
+ onChange: newValue => onChange({ value: newValue, invalid: !newValue }),
97
101
  })}
98
102
  `;
99
103
  };