@foxy.io/elements 1.18.0-beta.13 → 1.18.0-beta.14

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 (203) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +2 -2
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-api-browser.js +1 -1
  5. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  6. package/dist/cdn/foxy-attribute-card.js +1 -1
  7. package/dist/cdn/foxy-attribute-form.js +1 -1
  8. package/dist/cdn/foxy-cancellation-form.js +1 -1
  9. package/dist/cdn/foxy-collection-page.js +1 -1
  10. package/dist/cdn/foxy-collection-pages.js +1 -1
  11. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  12. package/dist/cdn/foxy-coupon-card.js +1 -1
  13. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  14. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  15. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  16. package/dist/cdn/foxy-coupon-form.js +1 -1
  17. package/dist/cdn/foxy-custom-field-card.js +1 -1
  18. package/dist/cdn/foxy-custom-field-form.js +1 -1
  19. package/dist/cdn/foxy-customer-api.js +1 -1
  20. package/dist/cdn/foxy-customer-card.js +1 -1
  21. package/dist/cdn/foxy-customer-form.js +1 -1
  22. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  23. package/dist/cdn/foxy-customer-portal.js +2 -2
  24. package/dist/cdn/foxy-customer.js +2 -2
  25. package/dist/cdn/foxy-customers-table.js +1 -1
  26. package/dist/cdn/foxy-discount-builder.js +1 -1
  27. package/dist/cdn/foxy-discount-card.js +1 -1
  28. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  29. package/dist/cdn/foxy-donation.js +1 -1
  30. package/dist/cdn/foxy-email-template-card.js +1 -1
  31. package/dist/cdn/foxy-email-template-form.js +1 -1
  32. package/dist/cdn/foxy-error-entry-card.js +1 -1
  33. package/dist/cdn/foxy-form-dialog.js +1 -1
  34. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  35. package/dist/cdn/foxy-gift-card-card.js +1 -1
  36. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  37. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  38. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  39. package/dist/cdn/foxy-gift-card-form.js +1 -1
  40. package/dist/cdn/foxy-i18n.js +1 -1
  41. package/dist/cdn/foxy-item-card.js +1 -1
  42. package/dist/cdn/foxy-item-category-card.js +1 -1
  43. package/dist/cdn/foxy-item-category-form.js +1 -1
  44. package/dist/cdn/foxy-item-form.js +1 -1
  45. package/dist/cdn/foxy-item-option-card.js +1 -1
  46. package/dist/cdn/foxy-item-option-form.js +1 -1
  47. package/dist/cdn/foxy-items-form.js +1 -1
  48. package/dist/cdn/foxy-nucleon-element.js +1 -1
  49. package/dist/cdn/foxy-pagination.js +1 -1
  50. package/dist/cdn/foxy-payment-card.js +1 -1
  51. package/dist/cdn/foxy-payment-method-card.js +1 -1
  52. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  53. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  54. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  55. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  56. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  57. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  58. package/dist/cdn/foxy-payments-api.js +1 -1
  59. package/dist/cdn/foxy-query-builder.js +1 -1
  60. package/dist/cdn/foxy-report-form.js +12 -12
  61. package/dist/cdn/foxy-reports-table.js +5 -5
  62. package/dist/cdn/foxy-shipment-card.js +2 -2
  63. package/dist/cdn/foxy-sign-in-form.js +1 -1
  64. package/dist/cdn/foxy-spinner.js +2 -2
  65. package/dist/cdn/foxy-store-form.js +1 -0
  66. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  67. package/dist/cdn/foxy-subscription-card.js +1 -1
  68. package/dist/cdn/foxy-subscription-form.js +4 -4
  69. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  70. package/dist/cdn/foxy-table.js +1 -1
  71. package/dist/cdn/foxy-tax-card.js +1 -1
  72. package/dist/cdn/foxy-tax-form.js +1 -1
  73. package/dist/cdn/foxy-template-card.js +1 -1
  74. package/dist/cdn/foxy-template-config-form.js +1 -1
  75. package/dist/cdn/foxy-template-form.js +1 -1
  76. package/dist/cdn/foxy-template-set-form.js +1 -1
  77. package/dist/cdn/foxy-transaction-card.js +1 -1
  78. package/dist/cdn/foxy-transaction.js +1 -1
  79. package/dist/cdn/foxy-transactions-table.js +1 -1
  80. package/dist/cdn/foxy-user-form.js +1 -1
  81. package/dist/cdn/foxy-users-table.js +1 -1
  82. package/dist/cdn/foxy-webhook-card.js +1 -1
  83. package/dist/cdn/foxy-webhook-form.js +1 -1
  84. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  85. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  86. package/dist/cdn/{shared-68600caf.js → shared-04046e0e.js} +1 -1
  87. package/dist/cdn/{shared-45cc4f44.js → shared-0bbbc87f.js} +1 -1
  88. package/dist/cdn/{shared-0093ee59.js → shared-0cc4beec.js} +1 -1
  89. package/dist/cdn/{shared-57412bac.js → shared-0ecc7d2c.js} +1 -1
  90. package/dist/cdn/{shared-0f137ff8.js → shared-119efeaa.js} +1 -1
  91. package/dist/cdn/{shared-26adbd9b.js → shared-11be3c89.js} +1 -1
  92. package/dist/cdn/{shared-d863e06b.js → shared-14dc506c.js} +1 -1
  93. package/dist/cdn/{shared-9f0606f2.js → shared-15278fe0.js} +1 -1
  94. package/dist/cdn/{shared-6a2cf3b9.js → shared-19044260.js} +2 -2
  95. package/dist/cdn/{shared-fce199fa.js → shared-19440ca2.js} +1 -1
  96. package/dist/cdn/shared-1eb24528.js +1 -0
  97. package/dist/cdn/shared-214c34b5.js +1 -0
  98. package/dist/cdn/{shared-10e7ddf5.js → shared-23e0d67e.js} +1 -1
  99. package/dist/cdn/{shared-20b2223a.js → shared-290769ea.js} +1 -1
  100. package/dist/cdn/{shared-7c8b3ce0.js → shared-2af327d0.js} +1 -1
  101. package/dist/cdn/{shared-34db34b2.js → shared-35a7a4d6.js} +1 -1
  102. package/dist/cdn/{shared-7e690245.js → shared-36aaf815.js} +5 -5
  103. package/dist/cdn/{shared-2e33702b.js → shared-3a84611d.js} +1 -1
  104. package/dist/cdn/{shared-aecb20d0.js → shared-3e781cc9.js} +1 -1
  105. package/dist/cdn/{shared-27aeabd9.js → shared-418e88da.js} +1 -1
  106. package/dist/cdn/{shared-35e929aa.js → shared-435ab348.js} +1 -1
  107. package/dist/cdn/{shared-f49ee631.js → shared-4a519a4a.js} +1 -1
  108. package/dist/cdn/{shared-b0ba62ff.js → shared-4a796610.js} +1 -1
  109. package/dist/cdn/{shared-cbff5e58.js → shared-4c61787a.js} +1 -1
  110. package/dist/cdn/{shared-0b67dae4.js → shared-4ebfd7ef.js} +1 -1
  111. package/dist/cdn/{shared-ef792142.js → shared-4fa44231.js} +1 -1
  112. package/dist/cdn/{shared-58445db9.js → shared-553e6472.js} +1 -1
  113. package/dist/cdn/{shared-5bf3f8f1.js → shared-5cb39f03.js} +1 -1
  114. package/dist/cdn/{shared-da126678.js → shared-67f1821b.js} +1 -1
  115. package/dist/cdn/shared-682dbe0a.js +1 -0
  116. package/dist/cdn/{shared-f38a79cc.js → shared-73a8b603.js} +1 -1
  117. package/dist/cdn/{shared-53cdff0b.js → shared-7415fa7e.js} +1 -1
  118. package/dist/cdn/shared-779795c5.js +1 -0
  119. package/dist/cdn/{shared-008ffb33.js → shared-81d3ff30.js} +1 -1
  120. package/dist/cdn/{shared-cd1bc9f5.js → shared-8d9c0007.js} +1 -1
  121. package/dist/cdn/{shared-09a14740.js → shared-915fb0e4.js} +1 -1
  122. package/dist/cdn/{shared-d8faafc7.js → shared-9195959e.js} +1 -1
  123. package/dist/cdn/{shared-015e5cb9.js → shared-93548d58.js} +1 -1
  124. package/dist/cdn/{shared-4382f0cd.js → shared-93a1be98.js} +1 -1
  125. package/dist/cdn/{shared-ba78987f.js → shared-96ebc59f.js} +1 -1
  126. package/dist/cdn/shared-9a0f97e5.js +1 -0
  127. package/dist/cdn/{shared-8a34457d.js → shared-9afb80a6.js} +1 -1
  128. package/dist/cdn/{shared-c7fad58c.js → shared-a0e71609.js} +1 -1
  129. package/dist/cdn/shared-a420358e.js +1 -0
  130. package/dist/cdn/{shared-415c86b6.js → shared-a42a63aa.js} +1 -1
  131. package/dist/cdn/{shared-2ec256d5.js → shared-a8966936.js} +1 -1
  132. package/dist/cdn/{shared-68fad60e.js → shared-aa4bf9ab.js} +1 -1
  133. package/dist/cdn/shared-b1201c2e.js +1 -0
  134. package/dist/cdn/{shared-a0f6e39c.js → shared-b20753b8.js} +1 -1
  135. package/dist/cdn/shared-b2850d64.js +1 -0
  136. package/dist/cdn/{shared-465cdd03.js → shared-c3a3d9f6.js} +2 -2
  137. package/dist/cdn/{shared-be043b54.js → shared-c7ab6598.js} +1 -1
  138. package/dist/cdn/{shared-e46eb641.js → shared-c7cae9e6.js} +1 -1
  139. package/dist/cdn/{shared-8911c2e0.js → shared-d24c3729.js} +1 -1
  140. package/dist/cdn/{shared-fff1815b.js → shared-d75c6072.js} +1 -1
  141. package/dist/cdn/shared-d82f3ba0.js +1 -0
  142. package/dist/cdn/{shared-c6f5602e.js → shared-d8bf2eac.js} +1 -1
  143. package/dist/cdn/{shared-5382ccfa.js → shared-d9a3104e.js} +1 -1
  144. package/dist/cdn/shared-da285807.js +169 -0
  145. package/dist/cdn/shared-e1069291.js +1 -0
  146. package/dist/cdn/{shared-b54eb879.js → shared-e32be255.js} +4 -4
  147. package/dist/cdn/{shared-8c8853ab.js → shared-e4383064.js} +1 -1
  148. package/dist/cdn/shared-e4e93604.js +1 -0
  149. package/dist/cdn/shared-eab81bf4.js +1 -0
  150. package/dist/cdn/{shared-3fb5f380.js → shared-effdf59d.js} +1 -1
  151. package/dist/cdn/translations/store-form/en.json +311 -0
  152. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.d.ts +11 -0
  153. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +143 -0
  154. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -0
  155. package/dist/elements/internal/InternalEditableListControl/index.d.ts +3 -0
  156. package/dist/elements/internal/InternalEditableListControl/index.js +5 -0
  157. package/dist/elements/internal/InternalEditableListControl/index.js.map +1 -0
  158. package/dist/elements/internal/InternalEditableListControl/types.d.ts +9 -0
  159. package/dist/elements/internal/InternalEditableListControl/types.js +2 -0
  160. package/dist/elements/internal/InternalEditableListControl/types.js.map +1 -0
  161. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.d.ts +6 -1
  162. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js +25 -12
  163. package/dist/elements/internal/InternalFrequencyControl/InternalFrequencyControl.js.map +1 -1
  164. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.d.ts +4 -1
  165. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js +15 -0
  166. package/dist/elements/internal/InternalIntegerControl/InternalIntegerControl.js.map +1 -1
  167. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.d.ts +13 -0
  168. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js +40 -0
  169. package/dist/elements/internal/InternalPasswordControl/InternalPasswordControl.js.map +1 -0
  170. package/dist/elements/internal/InternalPasswordControl/index.d.ts +4 -0
  171. package/dist/elements/internal/InternalPasswordControl/index.js +6 -0
  172. package/dist/elements/internal/InternalPasswordControl/index.js.map +1 -0
  173. package/dist/elements/internal/InternalTextControl/InternalTextControl.d.ts +4 -1
  174. package/dist/elements/internal/InternalTextControl/InternalTextControl.js +15 -1
  175. package/dist/elements/internal/InternalTextControl/InternalTextControl.js.map +1 -1
  176. package/dist/elements/public/StoreForm/StoreForm.d.ts +55 -0
  177. package/dist/elements/public/StoreForm/StoreForm.js +1023 -0
  178. package/dist/elements/public/StoreForm/StoreForm.js.map +1 -0
  179. package/dist/elements/public/StoreForm/index.d.ts +15 -0
  180. package/dist/elements/public/StoreForm/index.js +17 -0
  181. package/dist/elements/public/StoreForm/index.js.map +1 -0
  182. package/dist/elements/public/StoreForm/types.d.ts +3 -0
  183. package/dist/elements/public/StoreForm/types.js +2 -0
  184. package/dist/elements/public/StoreForm/types.js.map +1 -0
  185. package/dist/elements/public/index.d.ts +1 -0
  186. package/dist/elements/public/index.defined.d.ts +1 -0
  187. package/dist/elements/public/index.defined.js +1 -0
  188. package/dist/elements/public/index.defined.js.map +1 -1
  189. package/dist/elements/public/index.js +1 -0
  190. package/dist/elements/public/index.js.map +1 -1
  191. package/dist/mixins/themeable.js +248 -0
  192. package/dist/mixins/themeable.js.map +1 -1
  193. package/package.json +1 -1
  194. package/dist/cdn/shared-156144ab.js +0 -1
  195. package/dist/cdn/shared-2a20ac6b.js +0 -1
  196. package/dist/cdn/shared-3909c1e5.js +0 -1
  197. package/dist/cdn/shared-4cd53ea2.js +0 -1
  198. package/dist/cdn/shared-8c91f512.js +0 -169
  199. package/dist/cdn/shared-9eff0743.js +0 -1
  200. package/dist/cdn/shared-a03d948d.js +0 -1
  201. package/dist/cdn/shared-c00bff9d.js +0 -1
  202. package/dist/cdn/shared-c47571a6.js +0 -1
  203. package/dist/cdn/shared-c60b6e1a.js +0 -1
@@ -0,0 +1,11 @@
1
+ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
+ import type { Item, Option } from './types';
3
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
4
+ export declare class InternalEditableListControl extends InternalEditableControl {
5
+ static get properties(): PropertyDeclarations;
6
+ options: Option[];
7
+ private __newItem;
8
+ render(): TemplateResult;
9
+ protected get _value(): Item[];
10
+ protected set _value(newValue: Item[]);
11
+ }
@@ -0,0 +1,143 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { classMap } from "../../../utils/class-map.js";
3
+ import { repeat } from 'lit-html/directives/repeat';
4
+ import { live } from 'lit-html/directives/live';
5
+ import { html } from 'lit-element';
6
+ export class InternalEditableListControl extends InternalEditableControl {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.options = [];
10
+ this.__newItem = '';
11
+ }
12
+ static get properties() {
13
+ return {
14
+ ...super.properties,
15
+ options: { type: Array },
16
+ __newItem: { attribute: false },
17
+ };
18
+ }
19
+ render() {
20
+ const deleteButtonClass = classMap({
21
+ 'w-xs h-xs mr-xs rounded-full transition-colors flex-shrink-0': true,
22
+ 'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,
23
+ 'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,
24
+ 'cursor-default text-disabled': this.disabled,
25
+ 'flex items-center justify-center': !this.readonly,
26
+ 'hidden': this.readonly,
27
+ });
28
+ const itemClass = classMap({
29
+ 'transition-colors h-m ml-s flex items-center': true,
30
+ 'text-secondary': this.readonly,
31
+ 'text-disabled': this.disabled,
32
+ });
33
+ const isAddButtonDisabled = this.disabled || !this.__newItem;
34
+ const addItem = () => {
35
+ if (!this.__newItem)
36
+ return;
37
+ this._value = [...this._value, { value: this.__newItem }];
38
+ this.__newItem = '';
39
+ };
40
+ return html `
41
+ <div class="group">
42
+ <div
43
+ class="transition-colors mb-xs font-medium text-s text-secondary group-hover-text-body"
44
+ >
45
+ ${this.label}
46
+ </div>
47
+
48
+ <div
49
+ class="border border-contrast-10 rounded transition-colors group-hover-border-contrast-20"
50
+ >
51
+ <ol
52
+ class="transition-colors divide-y divide-contrast-10 font-medium group-hover-divide-contrast-20"
53
+ >
54
+ ${repeat(this._value, item => item.value, (item, index) => {
55
+ var _a;
56
+ return html `
57
+ <li class=${itemClass}>
58
+ <div class="flex-1 mr-s">${(_a = item.label) !== null && _a !== void 0 ? _a : item.value}</div>
59
+
60
+ <button
61
+ aria-label=${this.t('delete')}
62
+ class=${deleteButtonClass}
63
+ ?disabled=${this.disabled}
64
+ @click=${() => {
65
+ this._value = this._value.filter((_, i) => i !== index);
66
+ }}
67
+ >
68
+ <iron-icon icon="lumo:cross" class="icon-inline text-xl"></iron-icon>
69
+ </button>
70
+ </li>
71
+ `;
72
+ })}
73
+ </ol>
74
+
75
+ <div
76
+ style=${this._value.length === 0
77
+ ? 'border-radius: calc(var(--lumo-border-radius-m) - 1px)'
78
+ : 'border-radius: 0 0 calc(var(--lumo-border-radius-m) - 1px) calc(var(--lumo-border-radius-m) - 1px)'}
79
+ class=${classMap({
80
+ 'transition-colors bg-contrast-10 pl-s h-m flex items-center': true,
81
+ 'focus-within-ring-2 focus-within-ring-primary-50': true,
82
+ 'group-hover-bg-contrast-20': true,
83
+ 'flex': !this.readonly,
84
+ 'hidden': this.readonly,
85
+ })}
86
+ >
87
+ <input
88
+ placeholder=${this.placeholder}
89
+ class="w-full bg-transparent appearance-none h-m font-medium focus-outline-none"
90
+ list="list"
91
+ .value=${live(this.__newItem)}
92
+ ?disabled=${this.disabled}
93
+ ?readonly=${this.readonly}
94
+ @keydown=${(evt) => evt.key === 'Enter' && addItem()}
95
+ @change=${(evt) => evt.stopPropagation()}
96
+ @input=${(evt) => {
97
+ this.__newItem = evt.currentTarget.value.trim();
98
+ }}
99
+ />
100
+
101
+ <datalist id="list">
102
+ ${this.options.map(({ label, value }) => {
103
+ if (this._value.some(item => item.value === value))
104
+ return;
105
+ return html `<option value=${value}>${label !== null && label !== void 0 ? label : value}</option>`;
106
+ })}
107
+ </datalist>
108
+
109
+ <div class="transition-opacity ${this.__newItem ? 'opacity-100' : 'opacity-0'}">
110
+ <button
111
+ aria-label=${this.t('submit')}
112
+ class=${classMap({
113
+ 'w-xs h-xs mr-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none': true,
114
+ 'flex items-center justify-center rounded-full transition-colors': true,
115
+ 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,
116
+ 'bg-success-10 text-success cursor-pointer': !isAddButtonDisabled,
117
+ 'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,
118
+ 'focus-ring-2': !isAddButtonDisabled,
119
+ })}
120
+ ?disabled=${isAddButtonDisabled}
121
+ @click=${addItem}
122
+ >
123
+ <iron-icon icon="lumo:plus" class="icon-inline text-l"></iron-icon>
124
+ </button>
125
+ </div>
126
+ </div>
127
+ </div>
128
+
129
+ <div class="transition-colors mt-xs text-xs text-secondary group-hover-text-body">
130
+ ${this.helperText}
131
+ </div>
132
+ </div>
133
+ `;
134
+ }
135
+ get _value() {
136
+ var _a;
137
+ return ((_a = super._value) !== null && _a !== void 0 ? _a : []);
138
+ }
139
+ set _value(newValue) {
140
+ super._value = newValue;
141
+ }
142
+ }
143
+ //# sourceMappingURL=InternalEditableListControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalEditableListControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/InternalEditableListControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { Item, Option } from './types';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { classMap } from '../../../utils/class-map';\nimport { repeat } from 'lit-html/directives/repeat';\nimport { live } from 'lit-html/directives/live';\nimport { html } from 'lit-element';\n\nexport class InternalEditableListControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { type: Array },\n __newItem: { attribute: false },\n };\n }\n\n options: Option[] = [];\n\n private __newItem = '';\n\n render(): TemplateResult {\n const deleteButtonClass = classMap({\n 'w-xs h-xs mr-xs rounded-full transition-colors flex-shrink-0': true,\n 'focus-outline-none focus-ring-2 ring-inset ring-error-50': true,\n 'text-tertiary hover-bg-error-10 hover-text-error': !this.disabled,\n 'cursor-default text-disabled': this.disabled,\n 'flex items-center justify-center': !this.readonly,\n 'hidden': this.readonly,\n });\n\n const itemClass = classMap({\n 'transition-colors h-m ml-s flex items-center': true,\n 'text-secondary': this.readonly,\n 'text-disabled': this.disabled,\n });\n\n const isAddButtonDisabled = this.disabled || !this.__newItem;\n\n const addItem = () => {\n if (!this.__newItem) return;\n this._value = [...this._value, { value: this.__newItem }];\n this.__newItem = '';\n };\n\n return html`\n <div class=\"group\">\n <div\n class=\"transition-colors mb-xs font-medium text-s text-secondary group-hover-text-body\"\n >\n ${this.label}\n </div>\n\n <div\n class=\"border border-contrast-10 rounded transition-colors group-hover-border-contrast-20\"\n >\n <ol\n class=\"transition-colors divide-y divide-contrast-10 font-medium group-hover-divide-contrast-20\"\n >\n ${repeat(\n this._value,\n item => item.value,\n (item, index) => {\n return html`\n <li class=${itemClass}>\n <div class=\"flex-1 mr-s\">${item.label ?? item.value}</div>\n\n <button\n aria-label=${this.t('delete')}\n class=${deleteButtonClass}\n ?disabled=${this.disabled}\n @click=${() => {\n this._value = this._value.filter((_, i) => i !== index);\n }}\n >\n <iron-icon icon=\"lumo:cross\" class=\"icon-inline text-xl\"></iron-icon>\n </button>\n </li>\n `;\n }\n )}\n </ol>\n\n <div\n style=${this._value.length === 0\n ? 'border-radius: calc(var(--lumo-border-radius-m) - 1px)'\n : 'border-radius: 0 0 calc(var(--lumo-border-radius-m) - 1px) calc(var(--lumo-border-radius-m) - 1px)'}\n class=${classMap({\n 'transition-colors bg-contrast-10 pl-s h-m flex items-center': true,\n 'focus-within-ring-2 focus-within-ring-primary-50': true,\n 'group-hover-bg-contrast-20': true,\n 'flex': !this.readonly,\n 'hidden': this.readonly,\n })}\n >\n <input\n placeholder=${this.placeholder}\n class=\"w-full bg-transparent appearance-none h-m font-medium focus-outline-none\"\n list=\"list\"\n .value=${live(this.__newItem)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && addItem()}\n @change=${(evt: Event) => evt.stopPropagation()}\n @input=${(evt: InputEvent) => {\n this.__newItem = (evt.currentTarget as HTMLInputElement).value.trim();\n }}\n />\n\n <datalist id=\"list\">\n ${this.options.map(({ label, value }) => {\n if (this._value.some(item => item.value === value)) return;\n return html`<option value=${value}>${label ?? value}</option>`;\n })}\n </datalist>\n\n <div class=\"transition-opacity ${this.__newItem ? 'opacity-100' : 'opacity-0'}\">\n <button\n aria-label=${this.t('submit')}\n class=${classMap({\n 'w-xs h-xs mr-xs flex-shrink-0 ring-inset ring-success-50 focus-outline-none':\n true,\n 'flex items-center justify-center rounded-full transition-colors': true,\n 'bg-contrast-5 text-disabled cursor-default': isAddButtonDisabled,\n 'bg-success-10 text-success cursor-pointer': !isAddButtonDisabled,\n 'hover-bg-success hover-text-success-contrast': !isAddButtonDisabled,\n 'focus-ring-2': !isAddButtonDisabled,\n })}\n ?disabled=${isAddButtonDisabled}\n @click=${addItem}\n >\n <iron-icon icon=\"lumo:plus\" class=\"icon-inline text-l\"></iron-icon>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"transition-colors mt-xs text-xs text-secondary group-hover-text-body\">\n ${this.helperText}\n </div>\n </div>\n `;\n }\n\n protected get _value(): Item[] {\n return (super._value ?? []) as Item[];\n }\n\n protected set _value(newValue: Item[]) {\n super._value = newValue;\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import '../InternalEditableControl/index';
2
+ import { InternalEditableListControl } from './InternalEditableListControl';
3
+ export { InternalEditableListControl };
@@ -0,0 +1,5 @@
1
+ import "../InternalEditableControl/index.js";
2
+ import { InternalEditableListControl } from "./InternalEditableListControl.js";
3
+ customElements.define('foxy-internal-editable-list-control', InternalEditableListControl);
4
+ export { InternalEditableListControl };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/index.ts"],"names":[],"mappings":"AAAA,6CAA0C;AAE1C,OAAO,EAAE,2BAA2B,EAAE,yCAAsC;AAE5E,cAAc,CAAC,MAAM,CAAC,qCAAqC,EAAE,2BAA2B,CAAC,CAAC;AAE1F,OAAO,EAAE,2BAA2B,EAAE,CAAC","sourcesContent":["import '../InternalEditableControl/index';\n\nimport { InternalEditableListControl } from './InternalEditableListControl';\n\ncustomElements.define('foxy-internal-editable-list-control', InternalEditableListControl);\n\nexport { InternalEditableListControl };\n"]}
@@ -0,0 +1,9 @@
1
+ import type { TemplateResult } from 'lit-html';
2
+ export declare type Item = {
3
+ label?: string | TemplateResult;
4
+ value: string;
5
+ };
6
+ export declare type Option = {
7
+ label?: string;
8
+ value: string;
9
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalEditableListControl/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TemplateResult } from 'lit-html';\n\nexport type Item = { label?: string | TemplateResult; value: string };\nexport type Option = { label?: string; value: string };\n"]}
@@ -1,4 +1,4 @@
1
- import type { CSSResultArray, TemplateResult } from 'lit-element';
1
+ import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
3
  /**
4
4
  * Internal control displaying a custom field for frequency input.
@@ -7,7 +7,12 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
7
7
  * @element foxy-internal-frequency-control
8
8
  */
9
9
  export declare class InternalFrequencyControl extends InternalEditableControl {
10
+ static get properties(): PropertyDeclarations;
10
11
  static get styles(): CSSResultArray;
12
+ options: {
13
+ value: string;
14
+ label: string;
15
+ }[];
11
16
  private __i18n;
12
17
  renderControl(): TemplateResult;
13
18
  updated(changes: Map<keyof this, unknown>): void;
@@ -1,5 +1,4 @@
1
1
  import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
- import { parseDuration } from "../../../utils/parse-duration.js";
3
2
  import { css, html } from 'lit-element';
4
3
  /**
5
4
  * Internal control displaying a custom field for frequency input.
@@ -10,14 +9,29 @@ import { css, html } from 'lit-element';
10
9
  export class InternalFrequencyControl extends InternalEditableControl {
11
10
  constructor() {
12
11
  super(...arguments);
12
+ this.options = [
13
+ { value: 'd', label: 'day' },
14
+ { value: 'w', label: 'week' },
15
+ { value: 'm', label: 'month' },
16
+ { value: 'y', label: 'year' },
17
+ ];
13
18
  this.__i18n = {
14
19
  formatValue: inputValues => inputValues.join(''),
15
20
  parseValue: value => {
16
- const { count, units } = parseDuration(value);
17
- return [count.toString(), units];
21
+ var _a;
22
+ const normalizedValue = value.startsWith('.') ? `0${value}` : value;
23
+ const count = parseFloat(value.substring(0, Math.max(normalizedValue.length - 1, 0)));
24
+ const units = (_a = normalizedValue[normalizedValue.length - 1]) !== null && _a !== void 0 ? _a : '';
25
+ return isNaN(count) ? ['0', ''] : [count.toString(), units];
18
26
  },
19
27
  };
20
28
  }
29
+ static get properties() {
30
+ return {
31
+ ...super.properties,
32
+ options: { attribute: false },
33
+ };
34
+ }
21
35
  static get styles() {
22
36
  return [
23
37
  super.styles,
@@ -59,7 +73,11 @@ vaadin-combo-box::part(text-field){
59
73
  renderControl() {
60
74
  var _a, _b;
61
75
  const value = ((_a = this._value) !== null && _a !== void 0 ? _a : '');
62
- const count = parseDuration(value).count;
76
+ const count = parseFloat(this.__i18n.parseValue(value)[0]);
77
+ const items = this.options.map(({ value, label }) => ({
78
+ label: this.t(label, { count }),
79
+ value,
80
+ }));
63
81
  return html `
64
82
  <vaadin-custom-field
65
83
  ?disabled=${this.disabled}
@@ -93,12 +111,7 @@ vaadin-combo-box::part(text-field){
93
111
  ?disabled=${this.disabled}
94
112
  ?readonly=${this.readonly}
95
113
  ?invalid=${!this._checkValidity()}
96
- .items=${[
97
- { value: 'd', label: this.t('day', { count }) },
98
- { value: 'w', label: this.t('week', { count }) },
99
- { value: 'm', label: this.t('month', { count }) },
100
- { value: 'y', label: this.t('year', { count }) },
101
- ]}
114
+ .items=${items}
102
115
  @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
103
116
  >
104
117
  </vaadin-combo-box>
@@ -107,8 +120,8 @@ vaadin-combo-box::part(text-field){
107
120
  }
108
121
  updated(changes) {
109
122
  super.updated(changes);
110
- const field = this.renderRoot.firstElementChild;
111
- if (field.value !== this._value)
123
+ const field = this.renderRoot.querySelector('vaadin-custom-field');
124
+ if (field && field.value !== this._value)
112
125
  field.value = this._value;
113
126
  }
114
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalFrequencyControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/InternalFrequencyControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CustomFieldElement, CustomFieldI18n } from '@vaadin/vaadin-custom-field';\nimport type { CSSResultArray, TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { parseDuration } from '../../../utils/parse-duration';\nimport { css, html } from 'lit-element';\n\n/**\n * Internal control displaying a custom field for frequency input.\n *\n * @since 1.17.0\n * @element foxy-internal-frequency-control\n */\nexport class InternalFrequencyControl extends InternalEditableControl {\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n display: block;\n }\n\n vaadin-custom-field {\n width: 100%;\n font-size: 0;\n line-height: 0;\n padding-top: 0 !important;\n }\n\n vaadin-custom-field::part(label) {\n padding-bottom: var(--lumo-space-s);\n }\n\n vaadin-custom-field::part(error-message)[aria-hidden='false'] {\n padding-top: var(--lumo-space-xs);\n }\n\n vaadin-integer-field,\n vaadin-combo-box {\n width: calc(50% - (var(--lumo-space-s) / 2));\n }\n\n vaadin-integer-field {\n margin-right: var(--lumo-space-s);\n padding: 0;\n }\n\n vaadin-combo-box::part(text-field) {\n padding: 0;\n }\n `,\n ];\n }\n\n private __i18n: CustomFieldI18n = {\n formatValue: inputValues => inputValues.join(''),\n parseValue: value => {\n const { count, units } = parseDuration(value);\n return [count.toString(), units];\n },\n };\n\n renderControl(): TemplateResult {\n const value = (this._value ?? '') as string;\n const count = parseDuration(value).count;\n\n return html`\n <vaadin-custom-field\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .errorMessage=${this._errorMessage ?? ''}\n .helperText=${this.helperText}\n .label=${this.label}\n .value=${value}\n .i18n=${this.__i18n}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as CustomFieldElement;\n this._value = field.value as string;\n }}\n >\n <vaadin-integer-field\n max=\"999\"\n min=\"1\"\n prevent-invalid-input\n has-controls\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-integer-field>\n\n <vaadin-combo-box\n item-value-path=\"value\"\n item-label-path=\"label\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n .items=${[\n { value: 'd', label: this.t('day', { count }) },\n { value: 'w', label: this.t('week', { count }) },\n { value: 'm', label: this.t('month', { count }) },\n { value: 'y', label: this.t('year', { count }) },\n ]}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-combo-box>\n </vaadin-custom-field>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const field = this.renderRoot.firstElementChild as CustomFieldElement;\n if (field.value !== this._value) field.value = this._value as string;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalFrequencyControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalFrequencyControl/InternalFrequencyControl.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { CustomFieldElement, CustomFieldI18n } from '@vaadin/vaadin-custom-field';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { css, html } from 'lit-element';\n\n/**\n * Internal control displaying a custom field for frequency input.\n *\n * @since 1.17.0\n * @element foxy-internal-frequency-control\n */\nexport class InternalFrequencyControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n options: { attribute: false },\n };\n }\n\n static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n display: block;\n }\n\n vaadin-custom-field {\n width: 100%;\n font-size: 0;\n line-height: 0;\n padding-top: 0 !important;\n }\n\n vaadin-custom-field::part(label) {\n padding-bottom: var(--lumo-space-s);\n }\n\n vaadin-custom-field::part(error-message)[aria-hidden='false'] {\n padding-top: var(--lumo-space-xs);\n }\n\n vaadin-integer-field,\n vaadin-combo-box {\n width: calc(50% - (var(--lumo-space-s) / 2));\n }\n\n vaadin-integer-field {\n margin-right: var(--lumo-space-s);\n padding: 0;\n }\n\n vaadin-combo-box::part(text-field) {\n padding: 0;\n }\n `,\n ];\n }\n\n options = [\n { value: 'd', label: 'day' },\n { value: 'w', label: 'week' },\n { value: 'm', label: 'month' },\n { value: 'y', label: 'year' },\n ];\n\n private __i18n: CustomFieldI18n = {\n formatValue: inputValues => inputValues.join(''),\n parseValue: value => {\n const normalizedValue = value.startsWith('.') ? `0${value}` : value;\n const count = parseFloat(value.substring(0, Math.max(normalizedValue.length - 1, 0)));\n const units = normalizedValue[normalizedValue.length - 1] ?? '';\n\n return isNaN(count) ? ['0', ''] : [count.toString(), units];\n },\n };\n\n renderControl(): TemplateResult {\n const value = (this._value ?? '') as string;\n const count = parseFloat(this.__i18n.parseValue(value)[0] as string);\n const items = this.options.map(({ value, label }) => ({\n label: this.t(label, { count }),\n value,\n }));\n\n return html`\n <vaadin-custom-field\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .errorMessage=${this._errorMessage ?? ''}\n .helperText=${this.helperText}\n .label=${this.label}\n .value=${value}\n .i18n=${this.__i18n}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as CustomFieldElement;\n this._value = field.value as string;\n }}\n >\n <vaadin-integer-field\n max=\"999\"\n min=\"1\"\n prevent-invalid-input\n has-controls\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-integer-field>\n\n <vaadin-combo-box\n item-value-path=\"value\"\n item-label-path=\"label\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n ?invalid=${!this._checkValidity()}\n .items=${items}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n >\n </vaadin-combo-box>\n </vaadin-custom-field>\n `;\n }\n\n updated(changes: Map<keyof this, unknown>): void {\n super.updated(changes);\n const field = this.renderRoot.querySelector('vaadin-custom-field');\n if (field && field.value !== this._value) field.value = this._value as string;\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { TemplateResult } from 'lit-element';
1
+ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
3
  /**
4
4
  * Internal control displaying a basic integer box.
@@ -7,6 +7,9 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
7
7
  * @element foxy-internal-integer-control
8
8
  */
9
9
  export declare class InternalIntegerControl extends InternalEditableControl {
10
+ static get properties(): PropertyDeclarations;
11
+ min: number | null;
12
+ max: number | null;
10
13
  renderControl(): TemplateResult;
11
14
  protected get _value(): number;
12
15
  protected set _value(newValue: number);
@@ -8,7 +8,20 @@ import { html } from 'lit-element';
8
8
  * @element foxy-internal-integer-control
9
9
  */
10
10
  export class InternalIntegerControl extends InternalEditableControl {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.min = null;
14
+ this.max = null;
15
+ }
16
+ static get properties() {
17
+ return {
18
+ ...super.properties,
19
+ min: { type: Number },
20
+ max: { type: Number },
21
+ };
22
+ }
11
23
  renderControl() {
24
+ var _a, _b;
12
25
  return html `
13
26
  <vaadin-integer-field
14
27
  error-message=${ifDefined(this._errorMessage)}
@@ -16,6 +29,8 @@ export class InternalIntegerControl extends InternalEditableControl {
16
29
  helper-text=${this.helperText}
17
30
  label=${this.label}
18
31
  class="w-full"
32
+ min=${ifDefined((_a = this.min) !== null && _a !== void 0 ? _a : undefined)}
33
+ max=${ifDefined((_b = this.max) !== null && _b !== void 0 ? _b : undefined)}
19
34
  ?disabled=${this.disabled}
20
35
  ?readonly=${this.readonly}
21
36
  .checkValidity=${this._checkValidity}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalIntegerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalIntegerControl/InternalIntegerControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IACjE,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,WAAW;sBAChB,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;mBAEjB,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;kBACtE,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAoC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic integer box.\n *\n * @since 1.17.0\n * @element foxy-internal-integer-control\n */\nexport class InternalIntegerControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-integer-field\n error-message=${ifDefined(this._errorMessage)}\n placeholder=${this.placeholder}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${String(this._value)}\n clear-button-visible\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this._value = parseInt(field.value);\n }}\n >\n </vaadin-integer-field>\n `;\n }\n\n protected get _value(): number {\n return (super._value as number | undefined) ?? 0;\n }\n\n protected set _value(newValue: number) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalIntegerControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalIntegerControl/InternalIntegerControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,sBAAuB,SAAQ,uBAAuB;IAAnE;;QASE,QAAG,GAAkB,IAAI,CAAC;QAE1B,QAAG,GAAkB,IAAI,CAAC;IAkC5B,CAAC;IA5CC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACrB,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;SACtB,CAAC;IACJ,CAAC;IAMD,aAAa;;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,WAAW;sBAChB,IAAI,CAAC,UAAU;gBACrB,IAAI,CAAC,KAAK;;cAEZ,SAAS,OAAC,IAAI,CAAC,GAAG,mCAAI,SAAS,CAAC;cAChC,SAAS,OAAC,IAAI,CAAC,GAAG,mCAAI,SAAS,CAAC;oBAC1B,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;;mBAEjB,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;kBACtE,CAAC,GAAgB,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAoC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { IntegerFieldElement } from '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport type { PropertyDeclarations, TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic integer box.\n *\n * @since 1.17.0\n * @element foxy-internal-integer-control\n */\nexport class InternalIntegerControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n min: { type: Number },\n max: { type: Number },\n };\n }\n\n min: number | null = null;\n\n max: number | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-integer-field\n error-message=${ifDefined(this._errorMessage)}\n placeholder=${this.placeholder}\n helper-text=${this.helperText}\n label=${this.label}\n class=\"w-full\"\n min=${ifDefined(this.min ?? undefined)}\n max=${ifDefined(this.max ?? undefined)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${String(this._value)}\n clear-button-visible\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @change=${(evt: CustomEvent) => {\n const field = evt.currentTarget as IntegerFieldElement;\n this._value = parseInt(field.value);\n }}\n >\n </vaadin-integer-field>\n `;\n }\n\n protected get _value(): number {\n return (super._value as number | undefined) ?? 0;\n }\n\n protected set _value(newValue: number) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import type { TemplateResult } from 'lit-element';
2
+ import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
+ /**
4
+ * Internal control displaying a basic password box.
5
+ *
6
+ * @since 1.17.0
7
+ * @element foxy-internal-password-field-control
8
+ */
9
+ export declare class InternalPasswordControl extends InternalEditableControl {
10
+ renderControl(): TemplateResult;
11
+ protected get _value(): string;
12
+ protected set _value(newValue: string);
13
+ }
@@ -0,0 +1,40 @@
1
+ import { InternalEditableControl } from "../InternalEditableControl/InternalEditableControl.js";
2
+ import { ifDefined } from 'lit-html/directives/if-defined';
3
+ import { html } from 'lit-element';
4
+ /**
5
+ * Internal control displaying a basic password box.
6
+ *
7
+ * @since 1.17.0
8
+ * @element foxy-internal-password-field-control
9
+ */
10
+ export class InternalPasswordControl extends InternalEditableControl {
11
+ renderControl() {
12
+ return html `
13
+ <vaadin-password-field
14
+ error-message=${ifDefined(this._errorMessage)}
15
+ helper-text=${this.helperText}
16
+ placeholder=${this.placeholder}
17
+ label=${this.label}
18
+ class="w-full"
19
+ ?disabled=${this.disabled}
20
+ ?readonly=${this.readonly}
21
+ .checkValidity=${this._checkValidity}
22
+ .value=${this._value}
23
+ @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
24
+ @input=${(evt) => {
25
+ const area = evt.currentTarget;
26
+ this._value = area.value;
27
+ }}
28
+ >
29
+ </vaadin-password-field>
30
+ `;
31
+ }
32
+ get _value() {
33
+ var _a;
34
+ return (_a = super._value) !== null && _a !== void 0 ? _a : '';
35
+ }
36
+ set _value(newValue) {
37
+ super._value = newValue;
38
+ }
39
+ }
40
+ //# sourceMappingURL=InternalPasswordControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalPasswordControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/InternalPasswordControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,uBAAuB;IAClE,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,aAAqC,CAAC;YACvD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { PasswordFieldElement } from '@vaadin/vaadin-text-field/vaadin-password-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic password box.\n *\n * @since 1.17.0\n * @element foxy-internal-password-field-control\n */\nexport class InternalPasswordControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-password-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const area = evt.currentTarget as PasswordFieldElement;\n this._value = area.value;\n }}\n >\n </vaadin-password-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-password-field';
2
+ import '../InternalEditableControl/index';
3
+ import { InternalPasswordControl as Control } from './InternalPasswordControl';
4
+ export { Control as InternalPasswordControl };
@@ -0,0 +1,6 @@
1
+ import '@vaadin/vaadin-text-field/vaadin-password-field';
2
+ import "../InternalEditableControl/index.js";
3
+ import { InternalPasswordControl as Control } from "./InternalPasswordControl.js";
4
+ customElements.define('foxy-internal-password-control', Control);
5
+ export { Control as InternalPasswordControl };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalPasswordControl/index.ts"],"names":[],"mappings":"AAAA,OAAO,iDAAiD,CAAC;AACzD,6CAA0C;AAC1C,OAAO,EAAE,uBAAuB,IAAI,OAAO,EAAE,qCAAkC;AAE/E,cAAc,CAAC,MAAM,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;AAEjE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,CAAC","sourcesContent":["import '@vaadin/vaadin-text-field/vaadin-password-field';\nimport '../InternalEditableControl/index';\nimport { InternalPasswordControl as Control } from './InternalPasswordControl';\n\ncustomElements.define('foxy-internal-password-control', Control);\n\nexport { Control as InternalPasswordControl };\n"]}
@@ -1,4 +1,4 @@
1
- import type { TemplateResult } from 'lit-element';
1
+ import type { PropertyDeclarations, TemplateResult } from 'lit-element';
2
2
  import { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';
3
3
  /**
4
4
  * Internal control displaying a basic text box.
@@ -7,6 +7,9 @@ import { InternalEditableControl } from '../InternalEditableControl/InternalEdit
7
7
  * @element foxy-internal-text-control
8
8
  */
9
9
  export declare class InternalTextControl extends InternalEditableControl {
10
+ static get properties(): PropertyDeclarations;
11
+ prefix: string | null;
12
+ suffix: string | null;
10
13
  renderControl(): TemplateResult;
11
14
  protected get _value(): string;
12
15
  protected set _value(newValue: string);
@@ -8,6 +8,18 @@ import { html } from 'lit-element';
8
8
  * @element foxy-internal-text-control
9
9
  */
10
10
  export class InternalTextControl extends InternalEditableControl {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.prefix = null;
14
+ this.suffix = null;
15
+ }
16
+ static get properties() {
17
+ return {
18
+ ...super.properties,
19
+ prefix: {},
20
+ suffix: {},
21
+ };
22
+ }
11
23
  renderControl() {
12
24
  return html `
13
25
  <vaadin-text-field
@@ -16,9 +28,9 @@ export class InternalTextControl extends InternalEditableControl {
16
28
  placeholder=${this.placeholder}
17
29
  label=${this.label}
18
30
  class="w-full"
31
+ ?clear-button-visible=${!this.suffix}
19
32
  ?disabled=${this.disabled}
20
33
  ?readonly=${this.readonly}
21
- clear-button-visible
22
34
  .checkValidity=${this._checkValidity}
23
35
  .value=${this._value}
24
36
  @keydown=${(evt) => { var _a; return evt.key === 'Enter' && ((_a = this.nucleon) === null || _a === void 0 ? void 0 : _a.submit()); }}
@@ -27,6 +39,8 @@ export class InternalTextControl extends InternalEditableControl {
27
39
  this._value = field.value;
28
40
  }}
29
41
  >
42
+ ${this.prefix ? html `<div slot="prefix">${this.prefix}</div>` : ''}
43
+ ${this.suffix ? html `<div class="pr-s font-medium" slot="suffix">${this.suffix}</div>` : ''}
30
44
  </vaadin-text-field>
31
45
  `;
32
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAC9D,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;oBAEN,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;;yBAER,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;;KAGJ,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { TextFieldElement } from '@vaadin/vaadin-text-field';\nimport type { TemplateResult } from 'lit-element';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic text box.\n *\n * @since 1.17.0\n * @element foxy-internal-text-control\n */\nexport class InternalTextControl extends InternalEditableControl {\n renderControl(): TemplateResult {\n return html`\n <vaadin-text-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n clear-button-visible\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n this._value = field.value;\n }}\n >\n </vaadin-text-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"InternalTextControl.js","sourceRoot":"","sources":["../../../../src/elements/internal/InternalTextControl/InternalTextControl.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,8DAA2D;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,OAAO,mBAAoB,SAAQ,uBAAuB;IAAhE;;QASE,WAAM,GAAkB,IAAI,CAAC;QAE7B,WAAM,GAAkB,IAAI,CAAC;IAkC/B,CAAC;IA5CC,MAAM,KAAK,UAAU;QACnB,OAAO;YACL,GAAG,KAAK,CAAC,UAAU;YACnB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAMD,aAAa;QACX,OAAO,IAAI,CAAA;;wBAES,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;sBAC/B,IAAI,CAAC,UAAU;sBACf,IAAI,CAAC,WAAW;gBACtB,IAAI,CAAC,KAAK;;gCAEM,CAAC,IAAI,CAAC,MAAM;oBACxB,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,QAAQ;yBACR,IAAI,CAAC,cAAc;iBAC3B,IAAI,CAAC,MAAM;mBACT,CAAC,GAAkB,EAAE,EAAE,WAAC,OAAA,GAAG,CAAC,GAAG,KAAK,OAAO,WAAI,IAAI,CAAC,OAAO,0CAAE,MAAM,GAAE,CAAA,EAAA;iBACvE,CAAC,GAAgB,EAAE,EAAE;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,aAAiC,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;QAC5B,CAAC;;UAEC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,sBAAsB,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;UAChE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,+CAA+C,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,EAAE;;KAE9F,CAAC;IACJ,CAAC;IAED,IAAc,MAAM;;QAClB,aAAQ,KAAK,CAAC,MAA6B,mCAAI,EAAE,CAAC;IACpD,CAAC;IAED,IAAc,MAAM,CAAC,QAAgB;QACnC,KAAK,CAAC,MAAM,GAAG,QAA+B,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { PropertyDeclarations, TemplateResult } from 'lit-element';\nimport type { TextFieldElement } from '@vaadin/vaadin-text-field';\n\nimport { InternalEditableControl } from '../InternalEditableControl/InternalEditableControl';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { html } from 'lit-element';\n\n/**\n * Internal control displaying a basic text box.\n *\n * @since 1.17.0\n * @element foxy-internal-text-control\n */\nexport class InternalTextControl extends InternalEditableControl {\n static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n prefix: {},\n suffix: {},\n };\n }\n\n prefix: string | null = null;\n\n suffix: string | null = null;\n\n renderControl(): TemplateResult {\n return html`\n <vaadin-text-field\n error-message=${ifDefined(this._errorMessage)}\n helper-text=${this.helperText}\n placeholder=${this.placeholder}\n label=${this.label}\n class=\"w-full\"\n ?clear-button-visible=${!this.suffix}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n .checkValidity=${this._checkValidity}\n .value=${this._value}\n @keydown=${(evt: KeyboardEvent) => evt.key === 'Enter' && this.nucleon?.submit()}\n @input=${(evt: CustomEvent) => {\n const field = evt.currentTarget as TextFieldElement;\n this._value = field.value;\n }}\n >\n ${this.prefix ? html`<div slot=\"prefix\">${this.prefix}</div>` : ''}\n ${this.suffix ? html`<div class=\"pr-s font-medium\" slot=\"suffix\">${this.suffix}</div>` : ''}\n </vaadin-text-field>\n `;\n }\n\n protected get _value(): string {\n return (super._value as string | undefined) ?? '';\n }\n\n protected set _value(newValue: string) {\n super._value = newValue as unknown | undefined;\n }\n}\n"]}
@@ -0,0 +1,55 @@
1
+ import type { PropertyDeclarations } from 'lit-element';
2
+ import type { TemplateResult } from 'lit-html';
3
+ import type { NucleonV8N } from '../NucleonElement/types';
4
+ import type { Data } from './types';
5
+ import { InternalForm } from '../../internal/InternalForm/InternalForm';
6
+ declare const Base: typeof InternalForm & import("lit-element").Constructor<import("../../../mixins/translatable").TranslatableMixinHost> & {
7
+ defaultNS: string;
8
+ };
9
+ export declare class StoreForm extends Base<Data> {
10
+ static get properties(): PropertyDeclarations;
11
+ static get v8n(): NucleonV8N<Data>;
12
+ customerPasswordHashTypes: string | null;
13
+ shippingAddressTypes: string | null;
14
+ storeVersions: string | null;
15
+ checkoutTypes: string | null;
16
+ localeCodes: string | null;
17
+ languages: string | null;
18
+ timezones: string | null;
19
+ countries: string | null;
20
+ regions: string | null;
21
+ private __singleCheckboxGroupOptions;
22
+ private __appSessionTimeOptions;
23
+ private __getStoreEmailValue;
24
+ private __setStoreEmailValue;
25
+ private __getBccOnReceiptEmailValue;
26
+ private __setBccOnReceiptEmailValue;
27
+ private __getUseEmailDnsValue;
28
+ private __setUseEmailDnsValue;
29
+ private __getUseSmtpConfigValue;
30
+ private __setUseSmtpConfigValue;
31
+ private __getFeaturesMultishipValue;
32
+ private __setFeaturesMultishipValue;
33
+ private __getRequireSignedShippingRatesValue;
34
+ private __setRequireSignedShippingRatesValue;
35
+ private __getAppSessionTimeValue;
36
+ private __setAppSessionTimeValue;
37
+ private __getProductsRequireExpiresPropertyValue;
38
+ private __setProductsRequireExpiresPropertyValue;
39
+ private __getUseCartValidationValue;
40
+ private __setUseCartValidationValue;
41
+ private __getSingleSignOnUrlValue;
42
+ private __setSingleSignOnUrlValue;
43
+ private __getWebhookUrlValue;
44
+ private __setWebhookUrlValue;
45
+ private __setStoreDomainValue;
46
+ renderBody(): TemplateResult;
47
+ private __renderMaintenanceModeSwitch;
48
+ private __renderCurrencyStyleSelector;
49
+ private __renderCustomIDSettings;
50
+ private __renderSmtpConfig;
51
+ private __renderWarning;
52
+ private __renderLoader;
53
+ private __renderTitle;
54
+ }
55
+ export {};