@foxy.io/elements 1.22.0-beta.2 → 1.22.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 (248) hide show
  1. package/dist/cdn/foxy-access-recovery-form.js +1 -1
  2. package/dist/cdn/foxy-address-card.js +1 -1
  3. package/dist/cdn/foxy-address-form.js +1 -1
  4. package/dist/cdn/foxy-admin-subscription-card.js +1 -1
  5. package/dist/cdn/foxy-api-browser.js +1 -1
  6. package/dist/cdn/foxy-applied-coupon-code-card.js +1 -1
  7. package/dist/cdn/foxy-applied-coupon-code-form.js +1 -1
  8. package/dist/cdn/foxy-applied-tax-card.js +1 -1
  9. package/dist/cdn/foxy-attribute-card.js +1 -1
  10. package/dist/cdn/foxy-attribute-form.js +1 -1
  11. package/dist/cdn/foxy-cancellation-form.js +1 -1
  12. package/dist/cdn/foxy-cart-card.js +1 -1
  13. package/dist/cdn/foxy-cart-form.js +1 -1
  14. package/dist/cdn/foxy-collection-page.js +1 -1
  15. package/dist/cdn/foxy-collection-pages.js +1 -1
  16. package/dist/cdn/foxy-copy-to-clipboard.js +1 -1
  17. package/dist/cdn/foxy-coupon-card.js +1 -1
  18. package/dist/cdn/foxy-coupon-code-form.js +1 -1
  19. package/dist/cdn/foxy-coupon-codes-form.js +1 -1
  20. package/dist/cdn/foxy-coupon-detail-card.js +1 -1
  21. package/dist/cdn/foxy-coupon-form.js +1 -1
  22. package/dist/cdn/foxy-custom-field-card.js +1 -1
  23. package/dist/cdn/foxy-custom-field-form.js +1 -1
  24. package/dist/cdn/foxy-customer-api.js +1 -1
  25. package/dist/cdn/foxy-customer-card.js +1 -1
  26. package/dist/cdn/foxy-customer-form.js +1 -1
  27. package/dist/cdn/foxy-customer-portal-settings.js +1 -1
  28. package/dist/cdn/foxy-customer-portal.js +11 -11
  29. package/dist/cdn/foxy-customer.js +2 -2
  30. package/dist/cdn/foxy-customers-table.js +1 -1
  31. package/dist/cdn/foxy-discount-builder.js +1 -1
  32. package/dist/cdn/foxy-discount-card.js +1 -1
  33. package/dist/cdn/foxy-discount-detail-card.js +1 -1
  34. package/dist/cdn/foxy-donation.js +1 -1
  35. package/dist/cdn/foxy-email-template-card.js +1 -1
  36. package/dist/cdn/foxy-email-template-form.js +1 -1
  37. package/dist/cdn/foxy-error-entry-card.js +1 -1
  38. package/dist/cdn/foxy-form-dialog.js +1 -1
  39. package/dist/cdn/foxy-generate-codes-form.js +1 -1
  40. package/dist/cdn/foxy-gift-card-card.js +1 -1
  41. package/dist/cdn/foxy-gift-card-code-form.js +1 -1
  42. package/dist/cdn/foxy-gift-card-code-log-card.js +1 -1
  43. package/dist/cdn/foxy-gift-card-codes-form.js +1 -1
  44. package/dist/cdn/foxy-gift-card-form.js +1 -1
  45. package/dist/cdn/foxy-i18n-editor.js +2 -2
  46. package/dist/cdn/foxy-i18n.js +1 -1
  47. package/dist/cdn/foxy-integration-card.js +1 -1
  48. package/dist/cdn/foxy-integration-form.js +1 -1
  49. package/dist/cdn/foxy-item-card.js +1 -1
  50. package/dist/cdn/foxy-item-category-card.js +1 -1
  51. package/dist/cdn/foxy-item-category-form.js +1 -1
  52. package/dist/cdn/foxy-item-form.js +1 -1
  53. package/dist/cdn/foxy-item-option-card.js +1 -1
  54. package/dist/cdn/foxy-item-option-form.js +1 -1
  55. package/dist/cdn/foxy-items-form.js +1 -1
  56. package/dist/cdn/foxy-nucleon-element.js +1 -1
  57. package/dist/cdn/foxy-pagination.js +1 -1
  58. package/dist/cdn/foxy-payment-card.js +1 -1
  59. package/dist/cdn/foxy-payment-method-card.js +1 -1
  60. package/dist/cdn/foxy-payments-api-fraud-protection-card.js +1 -1
  61. package/dist/cdn/foxy-payments-api-fraud-protection-form.js +1 -1
  62. package/dist/cdn/foxy-payments-api-payment-method-card.js +1 -1
  63. package/dist/cdn/foxy-payments-api-payment-method-form.js +1 -1
  64. package/dist/cdn/foxy-payments-api-payment-preset-card.js +1 -1
  65. package/dist/cdn/foxy-payments-api-payment-preset-form.js +1 -1
  66. package/dist/cdn/foxy-payments-api.js +1 -1
  67. package/dist/cdn/foxy-query-builder.js +1 -1
  68. package/dist/cdn/foxy-report-form.js +1 -1
  69. package/dist/cdn/foxy-reports-table.js +1 -1
  70. package/dist/cdn/foxy-shipment-card.js +2 -2
  71. package/dist/cdn/foxy-shipping-method-card.js +1 -1
  72. package/dist/cdn/foxy-sign-in-form.js +1 -1
  73. package/dist/cdn/foxy-spinner.js +1 -1
  74. package/dist/cdn/foxy-store-card.js +1 -1
  75. package/dist/cdn/foxy-store-form.js +1 -1
  76. package/dist/cdn/foxy-store-shipping-method-form.js +1 -1
  77. package/dist/cdn/foxy-subscription-card.js +1 -1
  78. package/dist/cdn/foxy-subscription-form.js +3 -3
  79. package/dist/cdn/foxy-subscription-settings-form.js +1 -1
  80. package/dist/cdn/foxy-subscriptions-table.js +1 -1
  81. package/dist/cdn/foxy-table.js +1 -1
  82. package/dist/cdn/foxy-tax-card.js +1 -1
  83. package/dist/cdn/foxy-tax-form.js +1 -1
  84. package/dist/cdn/foxy-template-config-form.js +1 -1
  85. package/dist/cdn/foxy-template-form.js +1 -1
  86. package/dist/cdn/foxy-template-set-card.js +1 -1
  87. package/dist/cdn/foxy-template-set-form.js +1 -1
  88. package/dist/cdn/foxy-transaction-card.js +1 -1
  89. package/dist/cdn/foxy-transaction.js +1 -1
  90. package/dist/cdn/foxy-transactions-table.js +1 -1
  91. package/dist/cdn/foxy-user-card.js +1 -1
  92. package/dist/cdn/foxy-user-form.js +1 -1
  93. package/dist/cdn/foxy-users-table.js +1 -1
  94. package/dist/cdn/foxy-webhook-card.js +1 -1
  95. package/dist/cdn/foxy-webhook-form.js +1 -1
  96. package/dist/cdn/foxy-webhook-log-card.js +1 -1
  97. package/dist/cdn/foxy-webhook-status-card.js +1 -1
  98. package/dist/cdn/{shared-abf20a0e.js → shared-00d2cbe9.js} +1 -1
  99. package/dist/cdn/{shared-63133859.js → shared-01dd0fd6.js} +1 -1
  100. package/dist/cdn/shared-095ad002.js +1 -0
  101. package/dist/cdn/{shared-b4d435fb.js → shared-10f92654.js} +1 -1
  102. package/dist/cdn/{shared-a14b401b.js → shared-14f0cf8e.js} +1 -1
  103. package/dist/cdn/{shared-0327faba.js → shared-1bd28b9c.js} +1 -1
  104. package/dist/cdn/{shared-5dc0d461.js → shared-26390fea.js} +1 -1
  105. package/dist/cdn/{shared-65253f91.js → shared-2a9718a9.js} +1 -1
  106. package/dist/cdn/{shared-083622c5.js → shared-2b1c3f7a.js} +1 -1
  107. package/dist/cdn/{shared-b10c7b82.js → shared-2bae351a.js} +1 -1
  108. package/dist/cdn/{shared-79ed860e.js → shared-308e67f3.js} +1 -1
  109. package/dist/cdn/shared-349bbd7e.js +1 -0
  110. package/dist/cdn/{shared-8955b88b.js → shared-394981eb.js} +1 -1
  111. package/dist/cdn/{shared-a622c91a.js → shared-3a329baf.js} +1 -1
  112. package/dist/cdn/{shared-2d2dd2fa.js → shared-3c20c295.js} +1 -1
  113. package/dist/cdn/{shared-5616c0d2.js → shared-445dda5a.js} +1 -1
  114. package/dist/cdn/{shared-2e34b6f3.js → shared-468eb208.js} +1 -1
  115. package/dist/cdn/{shared-a12723f2.js → shared-46c6d1e6.js} +1 -1
  116. package/dist/cdn/{shared-558a9b8a.js → shared-493b8bc1.js} +1 -1
  117. package/dist/cdn/shared-509a2f52.js +1 -0
  118. package/dist/cdn/{shared-e8eaf692.js → shared-50c6daa1.js} +1 -1
  119. package/dist/cdn/{shared-77530b46.js → shared-53af541e.js} +1 -1
  120. package/dist/cdn/{shared-f9b50bcb.js → shared-5897f089.js} +1 -1
  121. package/dist/cdn/{shared-9cc0b441.js → shared-5a09ad7e.js} +1 -1
  122. package/dist/cdn/{shared-e21b7917.js → shared-5a445ebd.js} +1 -1
  123. package/dist/cdn/{shared-18569685.js → shared-5c5d13bd.js} +1 -1
  124. package/dist/cdn/shared-5cf7e764.js +64 -0
  125. package/dist/cdn/{shared-3f814c12.js → shared-5ec39f11.js} +1 -1
  126. package/dist/cdn/{shared-8b4c0403.js → shared-643791c8.js} +1 -1
  127. package/dist/cdn/shared-64657919.js +1 -0
  128. package/dist/cdn/{shared-118ec530.js → shared-67790b63.js} +1 -1
  129. package/dist/cdn/{shared-d411ad01.js → shared-685ca959.js} +1 -1
  130. package/dist/cdn/{shared-3d9c4ca7.js → shared-6860c8d1.js} +1 -1
  131. package/dist/cdn/{shared-573c1e43.js → shared-698c9002.js} +1 -1
  132. package/dist/cdn/{shared-9fcc093e.js → shared-7163796c.js} +1 -1
  133. package/dist/cdn/shared-7f47c677.js +1 -0
  134. package/dist/cdn/{shared-ee3fd376.js → shared-83a12835.js} +3 -3
  135. package/dist/cdn/{shared-60fae9ab.js → shared-87405fc7.js} +1 -1
  136. package/dist/cdn/{shared-89af5026.js → shared-8db9452f.js} +1 -1
  137. package/dist/cdn/shared-98755831.js +15 -0
  138. package/dist/cdn/{shared-d1aefbeb.js → shared-9e18688d.js} +1 -1
  139. package/dist/cdn/shared-9eeb2bec.js +1 -0
  140. package/dist/cdn/{shared-1e27ecef.js → shared-a19ce620.js} +1 -1
  141. package/dist/cdn/{shared-fbd5a173.js → shared-a306168b.js} +1 -1
  142. package/dist/cdn/{shared-93252c06.js → shared-a6deb2a4.js} +1 -1
  143. package/dist/cdn/{shared-e3ab56d1.js → shared-a89cb472.js} +1 -1
  144. package/dist/cdn/{shared-4f037e43.js → shared-a8cf402a.js} +1 -1
  145. package/dist/cdn/{shared-b3bc4a12.js → shared-aa5785d9.js} +1 -1
  146. package/dist/cdn/{shared-2be4c804.js → shared-aa678ec4.js} +1 -1
  147. package/dist/cdn/{shared-59270327.js → shared-b2d6bbad.js} +1 -1
  148. package/dist/cdn/{shared-75e78c70.js → shared-b5517c1b.js} +1 -1
  149. package/dist/cdn/{shared-a9a49319.js → shared-b590adb2.js} +1 -1
  150. package/dist/cdn/{shared-758859b5.js → shared-bd819b5b.js} +1 -1
  151. package/dist/cdn/shared-bfdbd733.js +1 -0
  152. package/dist/cdn/{shared-522fcb23.js → shared-c5fe5675.js} +1 -1
  153. package/dist/cdn/shared-c7f56c90.js +1 -0
  154. package/dist/cdn/shared-ca5e1c6b.js +1 -0
  155. package/dist/cdn/{shared-7351db30.js → shared-ccfb87fb.js} +1 -1
  156. package/dist/cdn/{shared-d39285f6.js → shared-cf49ce0c.js} +1 -1
  157. package/dist/cdn/{shared-01e0a79c.js → shared-d7b778b7.js} +1 -1
  158. package/dist/cdn/shared-daf52401.js +1 -0
  159. package/dist/cdn/shared-de790de9.js +1 -0
  160. package/dist/cdn/{shared-203b10f4.js → shared-dfe7652e.js} +1 -1
  161. package/dist/cdn/shared-e41e53c0.js +1 -0
  162. package/dist/cdn/{shared-f885ce63.js → shared-e6d3d6f5.js} +1 -1
  163. package/dist/cdn/shared-eb900735.js +1 -0
  164. package/dist/cdn/{shared-c108e672.js → shared-f42077ab.js} +1 -1
  165. package/dist/cdn/{shared-0b1ffad9.js → shared-f628a723.js} +1 -1
  166. package/dist/cdn/{shared-18aec36f.js → shared-f8bcab5c.js} +1 -1
  167. package/dist/cdn/{shared-afc4b9ad.js → shared-fad30ff5.js} +1 -1
  168. package/dist/cdn/shared-ffb6c2d3.js +1 -0
  169. package/dist/cdn/translations/coupon-code-form/en.json +1 -0
  170. package/dist/cdn/translations/coupon-form/en.json +45 -0
  171. package/dist/cdn/translations/generate-codes-form/en.json +1 -0
  172. package/dist/cdn/translations/gift-card-code-form/en.json +1 -0
  173. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js +17 -6
  174. package/dist/elements/internal/InternalEditableListControl/InternalEditableListControl.js.map +1 -1
  175. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js +1 -0
  176. package/dist/elements/public/CouponCodeForm/CouponCodeForm.js.map +1 -1
  177. package/dist/elements/public/CouponCodesForm/CouponCodesForm.js +9 -5
  178. package/dist/elements/public/CouponCodesForm/CouponCodesForm.js.map +1 -1
  179. package/dist/elements/public/CouponForm/CouponForm.d.ts +3 -0
  180. package/dist/elements/public/CouponForm/CouponForm.js +70 -0
  181. package/dist/elements/public/CouponForm/CouponForm.js.map +1 -1
  182. package/dist/elements/public/CouponForm/index.d.ts +1 -0
  183. package/dist/elements/public/CouponForm/index.js +1 -0
  184. package/dist/elements/public/CouponForm/index.js.map +1 -1
  185. package/dist/elements/public/CouponForm/types.d.ts +5 -1
  186. package/dist/elements/public/CouponForm/types.js.map +1 -1
  187. package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.js +1 -0
  188. package/dist/elements/public/GenerateCodesForm/GenerateCodesForm.js.map +1 -1
  189. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js +1 -0
  190. package/dist/elements/public/GiftCardCodeForm/GiftCardCodeForm.js.map +1 -1
  191. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js +9 -5
  192. package/dist/elements/public/GiftCardCodesForm/GiftCardCodesForm.js.map +1 -1
  193. package/dist/elements/public/QueryBuilder/QueryBuilder.d.ts +1 -1
  194. package/dist/elements/public/QueryBuilder/QueryBuilder.js +4 -1
  195. package/dist/elements/public/QueryBuilder/QueryBuilder.js.map +1 -1
  196. package/dist/elements/public/QueryBuilder/components/BooleanValue.d.ts +2 -0
  197. package/dist/elements/public/QueryBuilder/components/BooleanValue.js +3 -1
  198. package/dist/elements/public/QueryBuilder/components/BooleanValue.js.map +1 -1
  199. package/dist/elements/public/QueryBuilder/components/Group.d.ts +2 -0
  200. package/dist/elements/public/QueryBuilder/components/Group.js +6 -0
  201. package/dist/elements/public/QueryBuilder/components/Group.js.map +1 -1
  202. package/dist/elements/public/QueryBuilder/components/Input.d.ts +2 -1
  203. package/dist/elements/public/QueryBuilder/components/Input.js +15 -4
  204. package/dist/elements/public/QueryBuilder/components/Input.js.map +1 -1
  205. package/dist/elements/public/QueryBuilder/components/IsDefinedValue.d.ts +2 -0
  206. package/dist/elements/public/QueryBuilder/components/IsDefinedValue.js +2 -0
  207. package/dist/elements/public/QueryBuilder/components/IsDefinedValue.js.map +1 -1
  208. package/dist/elements/public/QueryBuilder/components/ListValue.d.ts +2 -0
  209. package/dist/elements/public/QueryBuilder/components/ListValue.js +6 -1
  210. package/dist/elements/public/QueryBuilder/components/ListValue.js.map +1 -1
  211. package/dist/elements/public/QueryBuilder/components/Name.d.ts +2 -0
  212. package/dist/elements/public/QueryBuilder/components/Name.js +2 -0
  213. package/dist/elements/public/QueryBuilder/components/Name.js.map +1 -1
  214. package/dist/elements/public/QueryBuilder/components/OperatorToggle.d.ts +2 -0
  215. package/dist/elements/public/QueryBuilder/components/OperatorToggle.js +2 -2
  216. package/dist/elements/public/QueryBuilder/components/OperatorToggle.js.map +1 -1
  217. package/dist/elements/public/QueryBuilder/components/Path.d.ts +3 -1
  218. package/dist/elements/public/QueryBuilder/components/Path.js +3 -1
  219. package/dist/elements/public/QueryBuilder/components/Path.js.map +1 -1
  220. package/dist/elements/public/QueryBuilder/components/RangeValue.d.ts +2 -0
  221. package/dist/elements/public/QueryBuilder/components/RangeValue.js +5 -1
  222. package/dist/elements/public/QueryBuilder/components/RangeValue.js.map +1 -1
  223. package/dist/elements/public/QueryBuilder/components/Rule.d.ts +2 -0
  224. package/dist/elements/public/QueryBuilder/components/Rule.js +31 -11
  225. package/dist/elements/public/QueryBuilder/components/Rule.js.map +1 -1
  226. package/dist/elements/public/QueryBuilder/components/Select.d.ts +2 -0
  227. package/dist/elements/public/QueryBuilder/components/Select.js +27 -7
  228. package/dist/elements/public/QueryBuilder/components/Select.js.map +1 -1
  229. package/dist/elements/public/QueryBuilder/components/SingleValue.d.ts +2 -0
  230. package/dist/elements/public/QueryBuilder/components/SingleValue.js +3 -2
  231. package/dist/elements/public/QueryBuilder/components/SingleValue.js.map +1 -1
  232. package/package.json +1 -1
  233. package/dist/cdn/shared-11438c42.js +0 -1
  234. package/dist/cdn/shared-38b37888.js +0 -1
  235. package/dist/cdn/shared-40ceb4b6.js +0 -1
  236. package/dist/cdn/shared-531bb690.js +0 -1
  237. package/dist/cdn/shared-594848f3.js +0 -1
  238. package/dist/cdn/shared-6192121c.js +0 -1
  239. package/dist/cdn/shared-67546e10.js +0 -1
  240. package/dist/cdn/shared-740ad9e6.js +0 -64
  241. package/dist/cdn/shared-90e96bea.js +0 -1
  242. package/dist/cdn/shared-955db6b4.js +0 -1
  243. package/dist/cdn/shared-a5364194.js +0 -1
  244. package/dist/cdn/shared-a8ced8bf.js +0 -1
  245. package/dist/cdn/shared-dc91f7ae.js +0 -1
  246. package/dist/cdn/shared-dcdb6ea1.js +0 -15
  247. package/dist/cdn/shared-eb29e8ef.js +0 -1
  248. package/dist/cdn/shared-efa137cd.js +0 -1
@@ -3,6 +3,8 @@ import { ParsedValue } from '../types';
3
3
  import { TemplateResult } from 'lit-html';
4
4
  export declare type NameParams = {
5
5
  parsedValue: ParsedValue;
6
+ readonly: boolean;
7
+ disabled: boolean;
6
8
  t: I18n['t'];
7
9
  onChange: (newValue: ParsedValue) => void;
8
10
  };
@@ -2,6 +2,8 @@ import { Input } from "./Input.js";
2
2
  export function Name(params) {
3
3
  var _a;
4
4
  return Input({
5
+ disabled: params.disabled,
6
+ readonly: params.readonly,
5
7
  value: (_a = params.parsedValue.name) !== null && _a !== void 0 ? _a : '',
6
8
  label: 'name',
7
9
  type: 'text',
@@ -1 +1 @@
1
- {"version":3,"file":"Name.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Name.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAUhC,MAAM,UAAU,IAAI,CAAC,MAAkB;;IACrC,OAAO,KAAK,CAAC;QACX,KAAK,QAAE,MAAM,CAAC,WAAW,CAAC,IAAI,mCAAI,EAAE;QACpC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,MAAM;QACZ,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC/E,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { ParsedValue } from '../types';\nimport { TemplateResult } from 'lit-html';\n\nexport type NameParams = {\n parsedValue: ParsedValue;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function Name(params: NameParams): TemplateResult {\n return Input({\n value: params.parsedValue.name ?? '',\n label: 'name',\n type: 'text',\n t: params.t,\n onChange: newName => params.onChange({ ...params.parsedValue, name: newName }),\n });\n}\n"]}
1
+ {"version":3,"file":"Name.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Name.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAYhC,MAAM,UAAU,IAAI,CAAC,MAAkB;;IACrC,OAAO,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,QAAE,MAAM,CAAC,WAAW,CAAC,IAAI,mCAAI,EAAE;QACpC,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,MAAM;QACZ,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC/E,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { ParsedValue } from '../types';\nimport { TemplateResult } from 'lit-html';\n\nexport type NameParams = {\n parsedValue: ParsedValue;\n readonly: boolean;\n disabled: boolean;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function Name(params: NameParams): TemplateResult {\n return Input({\n disabled: params.disabled,\n readonly: params.readonly,\n value: params.parsedValue.name ?? '',\n label: 'name',\n type: 'text',\n t: params.t,\n onChange: newName => params.onChange({ ...params.parsedValue, name: newName }),\n });\n}\n"]}
@@ -3,6 +3,8 @@ import { TemplateResult } from 'lit-html';
3
3
  import { I18n } from '../../I18n/I18n';
4
4
  export declare type OperatorToggleParams = {
5
5
  parsedValue: ParsedValue;
6
+ readonly: boolean;
7
+ disabled: boolean;
6
8
  option: Option | null;
7
9
  t: I18n['t'];
8
10
  onChange: (newValue: ParsedValue) => void;
@@ -33,14 +33,14 @@ export function OperatorToggle(params) {
33
33
  : params.parsedValue.name
34
34
  ? Object.values(Operator)
35
35
  : Object.values(Operator).filter(v => v !== Operator.IsDefined);
36
- const isDisabled = operatorsForType.length === 0 || !params.parsedValue.path;
36
+ const isDisabled = params.disabled || params.readonly || operatorsForType.length === 0 || !params.parsedValue.path;
37
37
  return html `
38
38
  <button
39
39
  title=${params.t(`operator_${operator !== null && operator !== void 0 ? operator : 'equal'}`)}
40
40
  class=${classMap({
41
41
  'flex items-center justify-center w-m h-m transition-colors': true,
42
42
  'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,
43
- 'text-tertiary cursor-default': isDisabled,
43
+ 'text-disabled cursor-default': isDisabled,
44
44
  'hover-bg-contrast-5': !isDisabled,
45
45
  })}
46
46
  ?disabled=${isDisabled}
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorToggle.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/OperatorToggle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,0BAAuB;AAExC,OAAO,EAAE,QAAQ,EAAuB,IAAI,EAAE,oBAAiB;AAC/D,OAAO,EAAqC,IAAI,EAAE,MAAM,UAAU,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,uCAAoC;AASvD,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;IAE7C,MAAM,cAAc,GAAsC;QACxD,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,mBAAmB;QACjD,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,0BAA0B;QAC/D,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU;QAC/B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,iBAAiB;QAC7C,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,gBAAgB;QAC3C,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,uBAAuB;QACzD,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,WAAW;KAClC,CAAC;IAEF,MAAM,eAAe,GAAG;QACtB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,SAAS,CAAC;QACjE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;QAClB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC;QAC1C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACb,QAAQ,CAAC,EAAE;YACX,QAAQ,CAAC,GAAG;YACZ,QAAQ,CAAC,WAAW;YACpB,QAAQ,CAAC,QAAQ;YACjB,QAAQ,CAAC,kBAAkB;YAC3B,QAAQ,CAAC,eAAe;SACzB;QACD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC;QACxC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;KACpC,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM;QACpC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI;YACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;IAElE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAE7E,OAAO,IAAI,CAAA;;cAEC,MAAM,CAAC,CAAC,CAAC,YAAY,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,OAAO,EAAE,CAAC;cAC3C,QAAQ,CAAC;QACf,4DAA4D,EAAE,IAAI;QAClE,wEAAwE,EAAE,IAAI;QAC9E,8BAA8B,EAAE,UAAU;QAC1C,qBAAqB,EAAE,CAAC,UAAU;KACnC,CAAC;kBACU,UAAU;eACb,GAAG,EAAE;;QACZ,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,WAAW,SAAG,gBAAgB,CAAC,gBAAgB,GAAG,CAAC,CAAC,mCAAI,IAAI,CAAC;QAEnE,MAAM,CAAC,QAAQ,CAAC;YACd,GAAG,MAAM,CAAC,WAAW;YACrB,QAAQ,EAAE,WAAW;YACrB,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK;SAChC,CAAC,CAAC;IACL,CAAC;;gCAEyB,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa;;GAEtF,CAAC;AACJ,CAAC","sourcesContent":["import * as icons from '../icons/index';\n\nimport { Operator, Option, ParsedValue, Type } from '../types';\nimport { SVGTemplateResult, TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { classMap } from '../../../../utils/class-map';\n\nexport type OperatorToggleParams = {\n parsedValue: ParsedValue;\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function OperatorToggle(params: OperatorToggleParams): TemplateResult {\n const operator = params.parsedValue.operator;\n\n const operatorToIcon: Record<string, SVGTemplateResult> = {\n [Operator.GreaterThan]: icons.operatorGreaterThan,\n [Operator.GreaterThanOrEqual]: icons.operatorGreaterThanOrEqual,\n [Operator.In]: icons.operatorIn,\n [Operator.IsDefined]: icons.operatorIsDefined,\n [Operator.LessThan]: icons.operatorLessThan,\n [Operator.LessThanOrEqual]: icons.operatorLessThanOrEqual,\n [Operator.Not]: icons.operatorNot,\n };\n\n const operatorsByType = {\n [Type.Attribute]: [Operator.In, Operator.Not, Operator.IsDefined],\n [Type.Boolean]: [],\n [Type.String]: [Operator.In, Operator.Not],\n [Type.Number]: [\n Operator.In,\n Operator.Not,\n Operator.GreaterThan,\n Operator.LessThan,\n Operator.GreaterThanOrEqual,\n Operator.LessThanOrEqual,\n ],\n [Type.Date]: [Operator.In, Operator.Not],\n [Type.Any]: Object.values(Operator),\n };\n\n const operatorsForType = params.option\n ? operatorsByType[params.option.type]\n : params.parsedValue.name\n ? Object.values(Operator)\n : Object.values(Operator).filter(v => v !== Operator.IsDefined);\n\n const isDisabled = operatorsForType.length === 0 || !params.parsedValue.path;\n\n return html`\n <button\n title=${params.t(`operator_${operator ?? 'equal'}`)}\n class=${classMap({\n 'flex items-center justify-center w-m h-m transition-colors': true,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n 'text-tertiary cursor-default': isDisabled,\n 'hover-bg-contrast-5': !isDisabled,\n })}\n ?disabled=${isDisabled}\n @click=${() => {\n const newOperatorIndex = operator ? operatorsForType.indexOf(operator) : -1;\n const newOperator = operatorsForType[newOperatorIndex + 1] ?? null;\n\n params.onChange({\n ...params.parsedValue,\n operator: newOperator,\n value: params.parsedValue.value,\n });\n }}\n >\n <div aria-hidden=\"true\">${operator ? operatorToIcon[operator] : icons.operatorEqual}</div>\n </button>\n `;\n}\n"]}
1
+ {"version":3,"file":"OperatorToggle.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/OperatorToggle.ts"],"names":[],"mappings":"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","sourcesContent":["import * as icons from '../icons/index';\n\nimport { Operator, Option, ParsedValue, Type } from '../types';\nimport { SVGTemplateResult, TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { classMap } from '../../../../utils/class-map';\n\nexport type OperatorToggleParams = {\n parsedValue: ParsedValue;\n readonly: boolean;\n disabled: boolean;\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function OperatorToggle(params: OperatorToggleParams): TemplateResult {\n const operator = params.parsedValue.operator;\n\n const operatorToIcon: Record<string, SVGTemplateResult> = {\n [Operator.GreaterThan]: icons.operatorGreaterThan,\n [Operator.GreaterThanOrEqual]: icons.operatorGreaterThanOrEqual,\n [Operator.In]: icons.operatorIn,\n [Operator.IsDefined]: icons.operatorIsDefined,\n [Operator.LessThan]: icons.operatorLessThan,\n [Operator.LessThanOrEqual]: icons.operatorLessThanOrEqual,\n [Operator.Not]: icons.operatorNot,\n };\n\n const operatorsByType = {\n [Type.Attribute]: [Operator.In, Operator.Not, Operator.IsDefined],\n [Type.Boolean]: [],\n [Type.String]: [Operator.In, Operator.Not],\n [Type.Number]: [\n Operator.In,\n Operator.Not,\n Operator.GreaterThan,\n Operator.LessThan,\n Operator.GreaterThanOrEqual,\n Operator.LessThanOrEqual,\n ],\n [Type.Date]: [Operator.In, Operator.Not],\n [Type.Any]: Object.values(Operator),\n };\n\n const operatorsForType = params.option\n ? operatorsByType[params.option.type]\n : params.parsedValue.name\n ? Object.values(Operator)\n : Object.values(Operator).filter(v => v !== Operator.IsDefined);\n\n const isDisabled =\n params.disabled || params.readonly || operatorsForType.length === 0 || !params.parsedValue.path;\n\n return html`\n <button\n title=${params.t(`operator_${operator ?? 'equal'}`)}\n class=${classMap({\n 'flex items-center justify-center w-m h-m transition-colors': true,\n 'focus-outline-none focus-ring-2 focus-ring-inset focus-ring-primary-50': true,\n 'text-disabled cursor-default': isDisabled,\n 'hover-bg-contrast-5': !isDisabled,\n })}\n ?disabled=${isDisabled}\n @click=${() => {\n const newOperatorIndex = operator ? operatorsForType.indexOf(operator) : -1;\n const newOperator = operatorsForType[newOperatorIndex + 1] ?? null;\n\n params.onChange({\n ...params.parsedValue,\n operator: newOperator,\n value: params.parsedValue.value,\n });\n }}\n >\n <div aria-hidden=\"true\">${operator ? operatorToIcon[operator] : icons.operatorEqual}</div>\n </button>\n `;\n}\n"]}
@@ -3,9 +3,11 @@ import { I18n } from '../../I18n/I18n';
3
3
  import { TemplateResult } from 'lit-html';
4
4
  export declare type PathParams = {
5
5
  parsedValue: ParsedValue;
6
+ readonly: boolean;
7
+ disabled: boolean;
6
8
  options: Option[];
7
9
  option: Option | null;
8
10
  t: I18n['t'];
9
11
  onChange: (newValue: ParsedValue) => void;
10
12
  };
11
- export declare function Path({ parsedValue, option, options, t, onChange }: PathParams): TemplateResult;
13
+ export declare function Path({ parsedValue, disabled, readonly, options, option, t, onChange, }: PathParams): TemplateResult;
@@ -1,7 +1,9 @@
1
1
  import { Input } from "./Input.js";
2
- export function Path({ parsedValue, option, options, t, onChange }) {
2
+ export function Path({ parsedValue, disabled, readonly, options, option, t, onChange, }) {
3
3
  return Input({
4
4
  displayValue: option === null || option === void 0 ? void 0 : option.label,
5
+ disabled,
6
+ readonly,
5
7
  value: parsedValue.path,
6
8
  label: 'field',
7
9
  list: options.map(option => ({ ...option, value: option.path })),
@@ -1 +1 @@
1
- {"version":3,"file":"Path.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Path.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAWhC,MAAM,UAAU,IAAI,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAc;IAC5E,OAAO,KAAK,CAAC;QACX,YAAY,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK;QAC3B,KAAK,EAAE,WAAW,CAAC,IAAI;QACvB,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,MAAM;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5E,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Option, ParsedValue } from '../types';\n\nimport { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { TemplateResult } from 'lit-html';\n\nexport type PathParams = {\n parsedValue: ParsedValue;\n options: Option[];\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function Path({ parsedValue, option, options, t, onChange }: PathParams): TemplateResult {\n return Input({\n displayValue: option?.label,\n value: parsedValue.path,\n label: 'field',\n list: options.map(option => ({ ...option, value: option.path })),\n type: 'text',\n id: 'path',\n t: t,\n onChange: newPath => onChange({ operator: null, value: '', path: newPath }),\n });\n}\n"]}
1
+ {"version":3,"file":"Path.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Path.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAahC,MAAM,UAAU,IAAI,CAAC,EACnB,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,CAAC,EACD,QAAQ,GACG;IACX,OAAO,KAAK,CAAC;QACX,YAAY,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK;QAC3B,QAAQ;QACR,QAAQ;QACR,KAAK,EAAE,WAAW,CAAC,IAAI;QACvB,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,EAAE,MAAM;QACZ,EAAE,EAAE,MAAM;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC5E,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Option, ParsedValue } from '../types';\n\nimport { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { TemplateResult } from 'lit-html';\n\nexport type PathParams = {\n parsedValue: ParsedValue;\n readonly: boolean;\n disabled: boolean;\n options: Option[];\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function Path({\n parsedValue,\n disabled,\n readonly,\n options,\n option,\n t,\n onChange,\n}: PathParams): TemplateResult {\n return Input({\n displayValue: option?.label,\n disabled,\n readonly,\n value: parsedValue.path,\n label: 'field',\n list: options.map(option => ({ ...option, value: option.path })),\n type: 'text',\n id: 'path',\n t: t,\n onChange: newPath => onChange({ operator: null, value: '', path: newPath }),\n });\n}\n"]}
@@ -3,6 +3,8 @@ import { TemplateResult } from 'lit-html';
3
3
  import { I18n } from '../../I18n/I18n';
4
4
  export declare type RangeValueParams = {
5
5
  parsedValue: ParsedValue;
6
+ readonly: boolean;
7
+ disabled: boolean;
6
8
  option: Option | null;
7
9
  t: I18n['t'];
8
10
  onChange: (newValue: ParsedValue) => void;
@@ -4,7 +4,7 @@ import { Input } from "./Input.js";
4
4
  import { Select } from "./Select.js";
5
5
  export function RangeValue(params) {
6
6
  var _a, _b, _c;
7
- const { t, parsedValue, option, onChange } = params;
7
+ const { t, parsedValue, option, readonly, disabled, onChange } = params;
8
8
  const splitValue = parsedValue.value.split('..');
9
9
  const from = splitValue.length >= 1 ? splitValue[0] : '';
10
10
  const to = splitValue.length >= 2 ? splitValue[1] : '';
@@ -17,6 +17,8 @@ export function RangeValue(params) {
17
17
  <div class="bg-base">
18
18
  ${Field({
19
19
  displayValue: (_b = list === null || list === void 0 ? void 0 : list.find(v => v.value === from)) === null || _b === void 0 ? void 0 : _b.label,
20
+ readonly,
21
+ disabled,
20
22
  value: from,
21
23
  label: 'range_from',
22
24
  type: type,
@@ -29,6 +31,8 @@ export function RangeValue(params) {
29
31
  <div class="bg-base">
30
32
  ${Field({
31
33
  displayValue: (_c = list === null || list === void 0 ? void 0 : list.find(v => v.value === to)) === null || _c === void 0 ? void 0 : _c.label,
34
+ readonly,
35
+ disabled,
32
36
  label: 'range_to',
33
37
  value: to,
34
38
  type: type,
@@ -1 +1 @@
1
- {"version":3,"file":"RangeValue.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/RangeValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,oBAAiB;AACrD,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,MAAM,EAAE,oBAAiB;AASlC,MAAM,UAAU,UAAU,CAAC,MAAwB;;IACjD,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,MAAM,KAAK,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,MAAM,UAAU,SAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,GAAG,CAAC;IAC5C,MAAM,IAAI,GAAG,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAChG,MAAM,IAAI,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;IAE1B,OAAO,IAAI,CAAA;;;UAGH,KAAK,CAAC;QACN,YAAY,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,2CAAG,KAAK;QACtD,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,EAAE,EAAE,CAAC;KAChF,CAAC;;;;UAIA,KAAK,CAAC;QACN,YAAY,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,2CAAG,KAAK;QACpD,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,KAAK,QAAQ,EAAE,EAAE,CAAC;KAClF,CAAC;;;GAGP,CAAC;AACJ,CAAC","sourcesContent":["import { Option, ParsedValue, Type } from '../types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { Select } from './Select';\n\nexport type RangeValueParams = {\n parsedValue: ParsedValue;\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function RangeValue(params: RangeValueParams): TemplateResult {\n const { t, parsedValue, option, onChange } = params;\n const splitValue = parsedValue.value.split('..');\n const from = splitValue.length >= 1 ? splitValue[0] : '';\n const to = splitValue.length >= 2 ? splitValue[1] : '';\n\n const Field = option?.list ? Select : Input;\n const optionType = option?.type ?? Type.Any;\n const type = optionType === Type.Number ? 'number' : optionType === Type.Date ? 'date' : 'text';\n const list = option?.list;\n\n return html`\n <div class=\"grid bg-contrast-10 gap-1px grid-cols-1 grid-rows-2 sm-grid-cols-2 sm-grid-rows-1\">\n <div class=\"bg-base\">\n ${Field({\n displayValue: list?.find(v => v.value === from)?.label,\n value: from,\n label: 'range_from',\n type: type,\n list: list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: `${newValue}..${to}` }),\n })}\n </div>\n\n <div class=\"bg-base\">\n ${Field({\n displayValue: list?.find(v => v.value === to)?.label,\n label: 'range_to',\n value: to,\n type: type,\n list: list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: `${from}..${newValue}` }),\n })}\n </div>\n </div>\n `;\n}\n"]}
1
+ {"version":3,"file":"RangeValue.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/RangeValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,oBAAiB;AACrD,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAWlC,MAAM,UAAU,UAAU,CAAC,MAAwB;;IACjD,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACxE,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvD,MAAM,KAAK,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,MAAM,UAAU,SAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,GAAG,CAAC;IAC5C,MAAM,IAAI,GAAG,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAChG,MAAM,IAAI,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC;IAE1B,OAAO,IAAI,CAAA;;;UAGH,KAAK,CAAC;QACN,YAAY,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,2CAAG,KAAK;QACtD,QAAQ;QACR,QAAQ;QACR,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,QAAQ,KAAK,EAAE,EAAE,EAAE,CAAC;KAChF,CAAC;;;;UAIA,KAAK,CAAC;QACN,YAAY,QAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,2CAAG,KAAK;QACpD,QAAQ;QACR,QAAQ;QACR,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,KAAK,QAAQ,EAAE,EAAE,CAAC;KAClF,CAAC;;;GAGP,CAAC;AACJ,CAAC","sourcesContent":["import { Option, ParsedValue, Type } from '../types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { Select } from './Select';\n\nexport type RangeValueParams = {\n parsedValue: ParsedValue;\n readonly: boolean;\n disabled: boolean;\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function RangeValue(params: RangeValueParams): TemplateResult {\n const { t, parsedValue, option, readonly, disabled, onChange } = params;\n const splitValue = parsedValue.value.split('..');\n const from = splitValue.length >= 1 ? splitValue[0] : '';\n const to = splitValue.length >= 2 ? splitValue[1] : '';\n\n const Field = option?.list ? Select : Input;\n const optionType = option?.type ?? Type.Any;\n const type = optionType === Type.Number ? 'number' : optionType === Type.Date ? 'date' : 'text';\n const list = option?.list;\n\n return html`\n <div class=\"grid bg-contrast-10 gap-1px grid-cols-1 grid-rows-2 sm-grid-cols-2 sm-grid-rows-1\">\n <div class=\"bg-base\">\n ${Field({\n displayValue: list?.find(v => v.value === from)?.label,\n readonly,\n disabled,\n value: from,\n label: 'range_from',\n type: type,\n list: list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: `${newValue}..${to}` }),\n })}\n </div>\n\n <div class=\"bg-base\">\n ${Field({\n displayValue: list?.find(v => v.value === to)?.label,\n readonly,\n disabled,\n label: 'range_to',\n value: to,\n type: type,\n list: list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: `${from}..${newValue}` }),\n })}\n </div>\n </div>\n `;\n}\n"]}
@@ -5,6 +5,8 @@ export declare type RuleParams = {
5
5
  parsedValue: ParsedValue;
6
6
  isFullSize?: boolean;
7
7
  isNested?: boolean;
8
+ disabled: boolean;
9
+ readonly: boolean;
8
10
  options: Option[];
9
11
  t: I18n['t'];
10
12
  onChange: (newValue: ParsedValue) => void;
@@ -12,11 +12,19 @@ import { SingleValue } from "./SingleValue.js";
12
12
  import { classMap } from "../../../../utils/class-map.js";
13
13
  export function Rule(params) {
14
14
  var _a, _b;
15
- const { parsedValue, options, t, isNested, isFullSize, onChange, onDelete, onConvert } = params;
15
+ const { parsedValue, isFullSize, isNested, readonly, disabled, options, t, onConvert, onDelete, onChange, } = params;
16
16
  const option = (_a = options.find(o => o.path === parsedValue.path)) !== null && _a !== void 0 ? _a : null;
17
17
  const type = (_b = option === null || option === void 0 ? void 0 : option.type) !== null && _b !== void 0 ? _b : Type.Any;
18
18
  const operator = parsedValue.operator;
19
- const componentParams = { parsedValue: parsedValue, option, options, t, onChange };
19
+ const componentParams = {
20
+ parsedValue: parsedValue,
21
+ disabled,
22
+ readonly,
23
+ options,
24
+ option,
25
+ t,
26
+ onChange,
27
+ };
20
28
  const typeToIcon = {
21
29
  [Type.Attribute]: icons.typeAttribute,
22
30
  [Type.Boolean]: icons.typeBoolean,
@@ -30,14 +38,23 @@ export function Rule(params) {
30
38
  <div
31
39
  class=${classMap({
32
40
  'flex-1 bg-base rounded overflow-hidden border': true,
33
- 'border-contrast-10': !isNested,
34
- 'border-contrast-50': !!isNested,
41
+ 'border-contrast-10': !isNested && !readonly,
42
+ 'border-contrast-50': !!isNested || readonly,
43
+ 'border-dashed': readonly,
44
+ 'border-solid': !readonly,
35
45
  })}
36
46
  >
37
47
  <div class="bg-contrast-10">
38
48
  <div class="grid gap-1px grid-vertical sm-grid-horizontal">
39
49
  <div class="bg-base" title=${t(`type_${type}`)}>
40
- <div class="w-m h-m text-tertiary" aria-hidden="true">
50
+ <div
51
+ class=${classMap({
52
+ 'w-m h-m': true,
53
+ 'text-tertiary': !readonly && !disabled,
54
+ 'text-disabled': readonly || disabled,
55
+ })}
56
+ aria-hidden="true"
57
+ >
41
58
  ${option ? typeToIcon[type] : icons.typeAny}
42
59
  </div>
43
60
  </div>
@@ -74,7 +91,7 @@ export function Rule(params) {
74
91
  class=${classMap({
75
92
  '-mr-s self-start flex-col sm-flex-row flex-shrink-0 items-center': true,
76
93
  'border-t border-b border-transparent divide-y divide-transparent': true,
77
- 'hidden': !!isFullSize,
94
+ 'hidden': !!isFullSize || readonly,
78
95
  'flex': !isFullSize,
79
96
  })}
80
97
  >
@@ -82,11 +99,12 @@ export function Rule(params) {
82
99
  aria-label=${t('delete')}
83
100
  class=${classMap({
84
101
  'box-content flex w-m h-m rounded-full transition-colors': true,
85
- 'text-secondary hover-bg-contrast-5 hover-text-error': true,
102
+ 'text-secondary hover-bg-contrast-5 hover-text-error': !disabled,
103
+ 'cursor-default text-disabled': disabled,
86
104
  'focus-outline-none focus-ring-2 ring-primary-50': true,
87
105
  'opacity-0': !parsedValue.path,
88
106
  })}
89
- ?disabled=${!parsedValue.path}
107
+ ?disabled=${disabled || readonly || !parsedValue.path}
90
108
  @click=${onDelete}
91
109
  >
92
110
  <iron-icon
@@ -100,11 +118,13 @@ export function Rule(params) {
100
118
  <button
101
119
  aria-label=${t('add_or_clause')}
102
120
  class=${classMap({
103
- 'box-content flex w-m h-m rounded-full transition-colors text-success': true,
104
- 'hover-bg-contrast-5 focus-outline-none focus-ring-2 ring-primary-50': true,
121
+ 'box-content flex w-m h-m rounded-full transition-colors': true,
122
+ 'text-success hover-bg-contrast-5': !disabled,
123
+ 'cursor-default text-disabled': disabled,
124
+ 'focus-outline-none focus-ring-2 ring-primary-50': true,
105
125
  'opacity-0': !parsedValue.path || !!isNested,
106
126
  })}
107
- ?disabled=${!parsedValue.path}
127
+ ?disabled=${disabled || readonly || !parsedValue.path}
108
128
  @click=${onConvert}
109
129
  >
110
130
  <iron-icon
@@ -1 +1 @@
1
- {"version":3,"file":"Rule.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Rule.ts"],"names":[],"mappings":"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","sourcesContent":["import * as icons from '../icons/index';\n\nimport { Operator, Option, ParsedValue, Type } from '../types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { BooleanValue } from './BooleanValue';\nimport { I18n } from '../../I18n/I18n';\nimport { IsDefinedValue } from './IsDefinedValue';\nimport { ListValue } from './ListValue';\nimport { Name } from './Name';\nimport { OperatorToggle } from './OperatorToggle';\nimport { Path } from './Path';\nimport { RangeValue } from './RangeValue';\nimport { SingleValue } from './SingleValue';\nimport { classMap } from '../../../../utils/class-map';\n\nexport type RuleParams = {\n parsedValue: ParsedValue;\n isFullSize?: boolean;\n isNested?: boolean;\n options: Option[];\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n onDelete?: () => void;\n onConvert?: () => void;\n};\n\nexport function Rule(params: RuleParams): TemplateResult {\n const { parsedValue, options, t, isNested, isFullSize, onChange, onDelete, onConvert } = params;\n\n const option = options.find(o => o.path === parsedValue.path) ?? null;\n const type = option?.type ?? Type.Any;\n const operator = parsedValue.operator;\n const componentParams = { parsedValue: parsedValue, option, options, t, onChange };\n\n const typeToIcon = {\n [Type.Attribute]: icons.typeAttribute,\n [Type.Boolean]: icons.typeBoolean,\n [Type.Number]: icons.typeNumber,\n [Type.String]: icons.typeString,\n [Type.Date]: icons.typeDate,\n [Type.Any]: icons.typeAny,\n };\n\n return html`\n <div class=\"flex items-center space-x-s\" aria-label=${t('query_builder_rule')}>\n <div\n class=${classMap({\n 'flex-1 bg-base rounded overflow-hidden border': true,\n 'border-contrast-10': !isNested,\n 'border-contrast-50': !!isNested,\n })}\n >\n <div class=\"bg-contrast-10\">\n <div class=\"grid gap-1px grid-vertical sm-grid-horizontal\">\n <div class=\"bg-base\" title=${t(`type_${type}`)}>\n <div class=\"w-m h-m text-tertiary\" aria-hidden=\"true\">\n ${option ? typeToIcon[type] : icons.typeAny}\n </div>\n </div>\n\n <div class=\"bg-base\">\n ${parsedValue.path && (type === Type.Attribute || parsedValue.name)\n ? html`\n <div class=\"bg-contrast-10 grid gap-1px grid-cols-1 sm-grid-cols-2\">\n <div class=\"bg-base\">${Path(componentParams)}</div>\n <div class=\"bg-base\">${Name(componentParams)}</div>\n </div>\n `\n : Path(componentParams)}\n </div>\n\n <div class=\"bg-base\">${OperatorToggle(componentParams)}</div>\n\n <div class=\"bg-base\">\n ${operator === Operator.In\n ? ListValue(componentParams)\n : operator === Operator.IsDefined\n ? IsDefinedValue(componentParams)\n : type === Type.Boolean\n ? BooleanValue(componentParams)\n : operator === null && [Type.Number, Type.Date].includes(type)\n ? RangeValue(componentParams)\n : SingleValue(componentParams)}\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=${classMap({\n '-mr-s self-start flex-col sm-flex-row flex-shrink-0 items-center': true,\n 'border-t border-b border-transparent divide-y divide-transparent': true,\n 'hidden': !!isFullSize,\n 'flex': !isFullSize,\n })}\n >\n <button\n aria-label=${t('delete')}\n class=${classMap({\n 'box-content flex w-m h-m rounded-full transition-colors': true,\n 'text-secondary hover-bg-contrast-5 hover-text-error': true,\n 'focus-outline-none focus-ring-2 ring-primary-50': true,\n 'opacity-0': !parsedValue.path,\n })}\n ?disabled=${!parsedValue.path}\n @click=${onDelete}\n >\n <iron-icon\n aria-hidden=\"true\"\n class=\"m-auto icon-inline text-xl\"\n icon=\"icons:remove-circle-outline\"\n >\n </iron-icon>\n </button>\n\n <button\n aria-label=${t('add_or_clause')}\n class=${classMap({\n 'box-content flex w-m h-m rounded-full transition-colors text-success': true,\n 'hover-bg-contrast-5 focus-outline-none focus-ring-2 ring-primary-50': true,\n 'opacity-0': !parsedValue.path || !!isNested,\n })}\n ?disabled=${!parsedValue.path}\n @click=${onConvert}\n >\n <iron-icon\n aria-hidden=\"true\"\n class=\"m-auto icon-inline text-xl\"\n icon=\"icons:add-circle-outline\"\n >\n </iron-icon>\n </button>\n </div>\n </div>\n `;\n}\n"]}
1
+ {"version":3,"file":"Rule.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Rule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,0BAAuB;AAExC,OAAO,EAAE,QAAQ,EAAuB,IAAI,EAAE,oBAAiB;AAC/D,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAE9C,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAClD,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,IAAI,EAAE,kBAAe;AAC9B,OAAO,EAAE,cAAc,EAAE,4BAAyB;AAClD,OAAO,EAAE,IAAI,EAAE,kBAAe;AAC9B,OAAO,EAAE,UAAU,EAAE,wBAAqB;AAC1C,OAAO,EAAE,WAAW,EAAE,yBAAsB;AAC5C,OAAO,EAAE,QAAQ,EAAE,uCAAoC;AAevD,MAAM,UAAU,IAAI,CAAC,MAAkB;;IACrC,MAAM,EACJ,WAAW,EACX,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,CAAC,EACD,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,GAAG,MAAM,CAAC;IAEX,MAAM,MAAM,SAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,mCAAI,IAAI,CAAC;IACtE,MAAM,IAAI,SAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,GAAG,CAAC;IACtC,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtC,MAAM,eAAe,GAAG;QACtB,WAAW,EAAE,WAAW;QACxB,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,MAAM;QACN,CAAC;QACD,QAAQ;KACT,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa;QACrC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW;QACjC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU;QAC/B,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,UAAU;QAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ;QAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO;KAC1B,CAAC;IAEF,OAAO,IAAI,CAAA;0DAC6C,CAAC,CAAC,oBAAoB,CAAC;;gBAEjE,QAAQ,CAAC;QACf,+CAA+C,EAAE,IAAI;QACrD,oBAAoB,EAAE,CAAC,QAAQ,IAAI,CAAC,QAAQ;QAC5C,oBAAoB,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ;QAC5C,eAAe,EAAE,QAAQ;QACzB,cAAc,EAAE,CAAC,QAAQ;KAC1B,CAAC;;;;yCAI+B,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAC;;wBAElC,QAAQ,CAAC;QACf,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,CAAC,QAAQ,IAAI,CAAC,QAAQ;QACvC,eAAe,EAAE,QAAQ,IAAI,QAAQ;KACtC,CAAC;;;kBAGA,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO;;;;;gBAK3C,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC;QACjE,CAAC,CAAC,IAAI,CAAA;;6CAEuB,IAAI,CAAC,eAAe,CAAC;6CACrB,IAAI,CAAC,eAAe,CAAC;;mBAE/C;QACH,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;;;mCAGJ,cAAc,CAAC,eAAe,CAAC;;;gBAGlD,QAAQ,KAAK,QAAQ,CAAC,EAAE;QACxB,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC;QAC5B,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS;YACjC,CAAC,CAAC,cAAc,CAAC,eAAe,CAAC;YACjC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO;gBACvB,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC;gBAC/B,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAC9D,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;oBAC7B,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC;;;;;;;gBAO9B,QAAQ,CAAC;QACf,kEAAkE,EAAE,IAAI;QACxE,kEAAkE,EAAE,IAAI;QACxE,QAAQ,EAAE,CAAC,CAAC,UAAU,IAAI,QAAQ;QAClC,MAAM,EAAE,CAAC,UAAU;KACpB,CAAC;;;uBAGa,CAAC,CAAC,QAAQ,CAAC;kBAChB,QAAQ,CAAC;QACf,yDAAyD,EAAE,IAAI;QAC/D,qDAAqD,EAAE,CAAC,QAAQ;QAChE,8BAA8B,EAAE,QAAQ;QACxC,iDAAiD,EAAE,IAAI;QACvD,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI;KAC/B,CAAC;sBACU,QAAQ,IAAI,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI;mBAC5C,QAAQ;;;;;;;;;;;uBAWJ,CAAC,CAAC,eAAe,CAAC;kBACvB,QAAQ,CAAC;QACf,yDAAyD,EAAE,IAAI;QAC/D,kCAAkC,EAAE,CAAC,QAAQ;QAC7C,8BAA8B,EAAE,QAAQ;QACxC,iDAAiD,EAAE,IAAI;QACvD,WAAW,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ;KAC7C,CAAC;sBACU,QAAQ,IAAI,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI;mBAC5C,SAAS;;;;;;;;;;;GAWzB,CAAC;AACJ,CAAC","sourcesContent":["import * as icons from '../icons/index';\n\nimport { Operator, Option, ParsedValue, Type } from '../types';\nimport { TemplateResult, html } from 'lit-html';\n\nimport { BooleanValue } from './BooleanValue';\nimport { I18n } from '../../I18n/I18n';\nimport { IsDefinedValue } from './IsDefinedValue';\nimport { ListValue } from './ListValue';\nimport { Name } from './Name';\nimport { OperatorToggle } from './OperatorToggle';\nimport { Path } from './Path';\nimport { RangeValue } from './RangeValue';\nimport { SingleValue } from './SingleValue';\nimport { classMap } from '../../../../utils/class-map';\n\nexport type RuleParams = {\n parsedValue: ParsedValue;\n isFullSize?: boolean;\n isNested?: boolean;\n disabled: boolean;\n readonly: boolean;\n options: Option[];\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n onDelete?: () => void;\n onConvert?: () => void;\n};\n\nexport function Rule(params: RuleParams): TemplateResult {\n const {\n parsedValue,\n isFullSize,\n isNested,\n readonly,\n disabled,\n options,\n t,\n onConvert,\n onDelete,\n onChange,\n } = params;\n\n const option = options.find(o => o.path === parsedValue.path) ?? null;\n const type = option?.type ?? Type.Any;\n const operator = parsedValue.operator;\n const componentParams = {\n parsedValue: parsedValue,\n disabled,\n readonly,\n options,\n option,\n t,\n onChange,\n };\n\n const typeToIcon = {\n [Type.Attribute]: icons.typeAttribute,\n [Type.Boolean]: icons.typeBoolean,\n [Type.Number]: icons.typeNumber,\n [Type.String]: icons.typeString,\n [Type.Date]: icons.typeDate,\n [Type.Any]: icons.typeAny,\n };\n\n return html`\n <div class=\"flex items-center space-x-s\" aria-label=${t('query_builder_rule')}>\n <div\n class=${classMap({\n 'flex-1 bg-base rounded overflow-hidden border': true,\n 'border-contrast-10': !isNested && !readonly,\n 'border-contrast-50': !!isNested || readonly,\n 'border-dashed': readonly,\n 'border-solid': !readonly,\n })}\n >\n <div class=\"bg-contrast-10\">\n <div class=\"grid gap-1px grid-vertical sm-grid-horizontal\">\n <div class=\"bg-base\" title=${t(`type_${type}`)}>\n <div\n class=${classMap({\n 'w-m h-m': true,\n 'text-tertiary': !readonly && !disabled,\n 'text-disabled': readonly || disabled,\n })}\n aria-hidden=\"true\"\n >\n ${option ? typeToIcon[type] : icons.typeAny}\n </div>\n </div>\n\n <div class=\"bg-base\">\n ${parsedValue.path && (type === Type.Attribute || parsedValue.name)\n ? html`\n <div class=\"bg-contrast-10 grid gap-1px grid-cols-1 sm-grid-cols-2\">\n <div class=\"bg-base\">${Path(componentParams)}</div>\n <div class=\"bg-base\">${Name(componentParams)}</div>\n </div>\n `\n : Path(componentParams)}\n </div>\n\n <div class=\"bg-base\">${OperatorToggle(componentParams)}</div>\n\n <div class=\"bg-base\">\n ${operator === Operator.In\n ? ListValue(componentParams)\n : operator === Operator.IsDefined\n ? IsDefinedValue(componentParams)\n : type === Type.Boolean\n ? BooleanValue(componentParams)\n : operator === null && [Type.Number, Type.Date].includes(type)\n ? RangeValue(componentParams)\n : SingleValue(componentParams)}\n </div>\n </div>\n </div>\n </div>\n\n <div\n class=${classMap({\n '-mr-s self-start flex-col sm-flex-row flex-shrink-0 items-center': true,\n 'border-t border-b border-transparent divide-y divide-transparent': true,\n 'hidden': !!isFullSize || readonly,\n 'flex': !isFullSize,\n })}\n >\n <button\n aria-label=${t('delete')}\n class=${classMap({\n 'box-content flex w-m h-m rounded-full transition-colors': true,\n 'text-secondary hover-bg-contrast-5 hover-text-error': !disabled,\n 'cursor-default text-disabled': disabled,\n 'focus-outline-none focus-ring-2 ring-primary-50': true,\n 'opacity-0': !parsedValue.path,\n })}\n ?disabled=${disabled || readonly || !parsedValue.path}\n @click=${onDelete}\n >\n <iron-icon\n aria-hidden=\"true\"\n class=\"m-auto icon-inline text-xl\"\n icon=\"icons:remove-circle-outline\"\n >\n </iron-icon>\n </button>\n\n <button\n aria-label=${t('add_or_clause')}\n class=${classMap({\n 'box-content flex w-m h-m rounded-full transition-colors': true,\n 'text-success hover-bg-contrast-5': !disabled,\n 'cursor-default text-disabled': disabled,\n 'focus-outline-none focus-ring-2 ring-primary-50': true,\n 'opacity-0': !parsedValue.path || !!isNested,\n })}\n ?disabled=${disabled || readonly || !parsedValue.path}\n @click=${onConvert}\n >\n <iron-icon\n aria-hidden=\"true\"\n class=\"m-auto icon-inline text-xl\"\n icon=\"icons:add-circle-outline\"\n >\n </iron-icon>\n </button>\n </div>\n </div>\n `;\n}\n"]}
@@ -2,6 +2,8 @@ import { TemplateResult } from 'lit-html';
2
2
  import { I18n } from '../../I18n/I18n';
3
3
  export declare type SelectParams = {
4
4
  clearable?: boolean;
5
+ disabled: boolean;
6
+ readonly: boolean;
5
7
  label: string;
6
8
  value: string;
7
9
  list?: {
@@ -5,16 +5,25 @@ export function Select(params) {
5
5
  const isEmpty = (_b = (_a = params.list) === null || _a === void 0 ? void 0 : _a.every(v => v.value !== params.value)) !== null && _b !== void 0 ? _b : true;
6
6
  return html `
7
7
  <label
8
- class="flex items-center cursor-pointer transition-colors group text-tertiary hover-bg-contrast-5"
8
+ class=${classMap({
9
+ 'flex items-center transition-colors group text-tertiary': true,
10
+ 'cursor-pointer hover-bg-contrast-5': !params.disabled && !params.readonly,
11
+ 'cursor-default': params.disabled || params.readonly,
12
+ })}
9
13
  >
10
14
  <div class="relative flex-1 min-w-0 overflow-hidden">
11
15
  <select
12
16
  class=${classMap({
13
- 'cursor-pointer bg-transparent relative appearance-none flex h-m px-s': true,
17
+ 'bg-transparent relative appearance-none flex h-m px-s': true,
14
18
  'font-medium w-full max-w-full whitespace-nowrap focus-outline-none': true,
15
- 'text-tertiary': isEmpty,
16
- 'text-body': !isEmpty,
19
+ 'text-tertiary': isEmpty && !params.disabled,
20
+ 'text-body': !isEmpty && !params.disabled && !params.readonly,
21
+ 'text-disabled': params.disabled,
22
+ 'text-secondary': !isEmpty && params.readonly,
23
+ 'cursor-pointer': !params.disabled && !params.readonly,
24
+ 'cursor-default': params.disabled || params.readonly,
17
25
  })}
26
+ ?disabled=${params.disabled || params.readonly}
18
27
  @change=${(evt) => {
19
28
  const select = evt.currentTarget;
20
29
  const value = select.options[select.options.selectedIndex].value;
@@ -38,16 +47,27 @@ export function Select(params) {
38
47
  ? ''
39
48
  : html `
40
49
  <span
41
- class="font-tnum text-xs font-medium border mr-s px-xs rounded-s border-current inline-block"
50
+ class=${classMap({
51
+ 'font-tnum text-xs font-medium border mr-s px-xs rounded-s border-current inline-block': true,
52
+ 'text-body': !params.disabled && !params.readonly,
53
+ 'text-disabled': params.disabled,
54
+ 'text-secondary': params.readonly,
55
+ })}
42
56
  >
43
57
  ${params.t(params.label)}
44
58
  </span>
45
59
 
46
- ${params.clearable
60
+ ${params.clearable && !params.readonly
47
61
  ? html `
48
62
  <button
49
63
  aria-label=${params.t('delete')}
50
- class="w-s h-s mr-xs text-body flex items-center justify-center transition-colors rounded-full focus-outline-none focus-ring-2 focus-ring-primary-50 hover-bg-contrast-5 hover-text-error"
64
+ class=${classMap({
65
+ 'w-s h-s mr-xs flex items-center justify-center transition-colors rounded-full': true,
66
+ 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,
67
+ 'hover-bg-contrast-5 hover-text-error text-body': !params.disabled,
68
+ 'text-disabled': params.disabled,
69
+ })}
70
+ ?disabled=${params.disabled}
51
71
  @click=${() => params.onChange('')}
52
72
  >
53
73
  <iron-icon
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Select.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,uCAAoC;AAWvD,MAAM,UAAU,MAAM,CAAC,MAAoB;;IACzC,MAAM,OAAO,eAAG,MAAM,CAAC,IAAI,0CAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,oCAAK,IAAI,CAAC;IAE1E,OAAO,IAAI,CAAA;;;;;;kBAMK,QAAQ,CAAC;QACf,sEAAsE,EAAE,IAAI;QAC5E,oEAAoE,EAAE,IAAI;QAC1E,eAAe,EAAE,OAAO;QACxB,WAAW,EAAE,CAAC,OAAO;KACtB,CAAC;oBACQ,CAAC,GAAU,EAAE,EAAE;QACvB,MAAM,MAAM,GAAG,GAAG,CAAC,aAAkC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QACjE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;;YAEC,OAAO;QACP,CAAC,CAAC,IAAI,CAAA;sDACoC,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;eACxE;QACH,CAAC,CAAC,EAAE;YACJ,MAAA,MAAM,CAAC,IAAI,0CAAE,GAAG,CAChB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CACnB,IAAI,CAAA;gCACc,KAAK,cAAc,KAAK,KAAK,MAAM,CAAC,KAAK;oBACrD,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;;eAEpB,CACJ;;;;QAIH,OAAO;QACP,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,CAAA;;;;gBAIE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;;;cAGxB,MAAM,CAAC,SAAS;YAChB,CAAC,CAAC,IAAI,CAAA;;iCAEa,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;;6BAEtB,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;;;;;;;;;iBASrC;YACH,CAAC,CAAC,EAAE;WACP;;GAER,CAAC;AACJ,CAAC","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { classMap } from '../../../../utils/class-map';\n\nexport type SelectParams = {\n clearable?: boolean;\n label: string;\n value: string;\n list?: { label: string; value: string }[];\n t: I18n['t'];\n onChange: (newValue: string) => void;\n};\n\nexport function Select(params: SelectParams): TemplateResult {\n const isEmpty = params.list?.every(v => v.value !== params.value) ?? true;\n\n return html`\n <label\n class=\"flex items-center cursor-pointer transition-colors group text-tertiary hover-bg-contrast-5\"\n >\n <div class=\"relative flex-1 min-w-0 overflow-hidden\">\n <select\n class=${classMap({\n 'cursor-pointer bg-transparent relative appearance-none flex h-m px-s': true,\n 'font-medium w-full max-w-full whitespace-nowrap focus-outline-none': true,\n 'text-tertiary': isEmpty,\n 'text-body': !isEmpty,\n })}\n @change=${(evt: Event) => {\n const select = evt.currentTarget as HTMLSelectElement;\n const value = select.options[select.options.selectedIndex].value;\n params.onChange(value);\n }}\n >\n ${isEmpty\n ? html`\n <option value=\"\" disabled ?selected=${isEmpty}>${params.t(params.label)}</option>\n `\n : ''}\n ${params.list?.map(\n ({ label, value }) =>\n html`\n <option value=${value} ?selected=${value === params.value}>\n ${params.t(label)}\n </option>\n `\n )}\n </select>\n </div>\n\n ${isEmpty\n ? ''\n : html`\n <span\n class=\"font-tnum text-xs font-medium border mr-s px-xs rounded-s border-current inline-block\"\n >\n ${params.t(params.label)}\n </span>\n\n ${params.clearable\n ? html`\n <button\n aria-label=${params.t('delete')}\n class=\"w-s h-s mr-xs text-body flex items-center justify-center transition-colors rounded-full focus-outline-none focus-ring-2 focus-ring-primary-50 hover-bg-contrast-5 hover-text-error\"\n @click=${() => params.onChange('')}\n >\n <iron-icon\n aria-hidden=\"true\"\n class=\"icon-inline text-l\"\n icon=\"icons:remove-circle-outline\"\n >\n </iron-icon>\n </button>\n `\n : ''}\n `}\n </label>\n `;\n}\n"]}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/Select.ts"],"names":[],"mappings":"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","sourcesContent":["import { TemplateResult, html } from 'lit-html';\n\nimport { I18n } from '../../I18n/I18n';\nimport { classMap } from '../../../../utils/class-map';\n\nexport type SelectParams = {\n clearable?: boolean;\n disabled: boolean;\n readonly: boolean;\n label: string;\n value: string;\n list?: { label: string; value: string }[];\n t: I18n['t'];\n onChange: (newValue: string) => void;\n};\n\nexport function Select(params: SelectParams): TemplateResult {\n const isEmpty = params.list?.every(v => v.value !== params.value) ?? true;\n\n return html`\n <label\n class=${classMap({\n 'flex items-center transition-colors group text-tertiary': true,\n 'cursor-pointer hover-bg-contrast-5': !params.disabled && !params.readonly,\n 'cursor-default': params.disabled || params.readonly,\n })}\n >\n <div class=\"relative flex-1 min-w-0 overflow-hidden\">\n <select\n class=${classMap({\n 'bg-transparent relative appearance-none flex h-m px-s': true,\n 'font-medium w-full max-w-full whitespace-nowrap focus-outline-none': true,\n 'text-tertiary': isEmpty && !params.disabled,\n 'text-body': !isEmpty && !params.disabled && !params.readonly,\n 'text-disabled': params.disabled,\n 'text-secondary': !isEmpty && params.readonly,\n 'cursor-pointer': !params.disabled && !params.readonly,\n 'cursor-default': params.disabled || params.readonly,\n })}\n ?disabled=${params.disabled || params.readonly}\n @change=${(evt: Event) => {\n const select = evt.currentTarget as HTMLSelectElement;\n const value = select.options[select.options.selectedIndex].value;\n params.onChange(value);\n }}\n >\n ${isEmpty\n ? html`\n <option value=\"\" disabled ?selected=${isEmpty}>${params.t(params.label)}</option>\n `\n : ''}\n ${params.list?.map(\n ({ label, value }) =>\n html`\n <option value=${value} ?selected=${value === params.value}>\n ${params.t(label)}\n </option>\n `\n )}\n </select>\n </div>\n\n ${isEmpty\n ? ''\n : html`\n <span\n class=${classMap({\n 'font-tnum text-xs font-medium border mr-s px-xs rounded-s border-current inline-block':\n true,\n 'text-body': !params.disabled && !params.readonly,\n 'text-disabled': params.disabled,\n 'text-secondary': params.readonly,\n })}\n >\n ${params.t(params.label)}\n </span>\n\n ${params.clearable && !params.readonly\n ? html`\n <button\n aria-label=${params.t('delete')}\n class=${classMap({\n 'w-s h-s mr-xs flex items-center justify-center transition-colors rounded-full':\n true,\n 'focus-outline-none focus-ring-2 focus-ring-primary-50': true,\n 'hover-bg-contrast-5 hover-text-error text-body': !params.disabled,\n 'text-disabled': params.disabled,\n })}\n ?disabled=${params.disabled}\n @click=${() => params.onChange('')}\n >\n <iron-icon\n aria-hidden=\"true\"\n class=\"icon-inline text-l\"\n icon=\"icons:remove-circle-outline\"\n >\n </iron-icon>\n </button>\n `\n : ''}\n `}\n </label>\n `;\n}\n"]}
@@ -3,6 +3,8 @@ import { I18n } from '../../I18n/I18n';
3
3
  import { TemplateResult } from 'lit-html';
4
4
  export declare type SingleValueParams = {
5
5
  parsedValue: ParsedValue;
6
+ readonly: boolean;
7
+ disabled: boolean;
6
8
  option: Option | null;
7
9
  t: I18n['t'];
8
10
  onChange: (newValue: ParsedValue) => void;
@@ -3,12 +3,13 @@ import { Input } from "./Input.js";
3
3
  import { Select } from "./Select.js";
4
4
  export function SingleValue(params) {
5
5
  var _a, _b, _c, _d;
6
- const { t, option, parsedValue, onChange } = params;
6
+ const { t, option, parsedValue, readonly, disabled, onChange } = params;
7
7
  const Field = (option === null || option === void 0 ? void 0 : option.list) ? Select : Input;
8
8
  const type = (_a = option === null || option === void 0 ? void 0 : option.type) !== null && _a !== void 0 ? _a : Type.Any;
9
9
  return Field({
10
10
  displayValue: (_c = (_b = option === null || option === void 0 ? void 0 : option.list) === null || _b === void 0 ? void 0 : _b.find(v => v.value === parsedValue.value)) === null || _c === void 0 ? void 0 : _c.label,
11
- disabled: !parsedValue.path,
11
+ readonly,
12
+ disabled: disabled || !parsedValue.path,
12
13
  value: (_d = parsedValue.value) !== null && _d !== void 0 ? _d : '',
13
14
  label: 'value',
14
15
  type: type === Type.Number ? 'number' : type === Type.Date ? 'date' : 'text',
@@ -1 +1 @@
1
- {"version":3,"file":"SingleValue.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/SingleValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,oBAAiB;AAGrD,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAUlC,MAAM,UAAU,WAAW,CAAC,MAAyB;;IACnD,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACpD,MAAM,KAAK,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,MAAM,IAAI,SAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,GAAG,CAAC;IAEtC,OAAO,KAAK,CAAC;QACX,YAAY,cAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,2CAAG,KAAK;QAC3E,QAAQ,EAAE,CAAC,WAAW,CAAC,IAAI;QAC3B,KAAK,QAAE,WAAW,CAAC,KAAK,mCAAI,EAAE;QAC9B,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC5E,IAAI,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;QAClB,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KACpE,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Option, ParsedValue, Type } from '../types';\n\nimport { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { Select } from './Select';\nimport { TemplateResult } from 'lit-html';\n\nexport type SingleValueParams = {\n parsedValue: ParsedValue;\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function SingleValue(params: SingleValueParams): TemplateResult {\n const { t, option, parsedValue, onChange } = params;\n const Field = option?.list ? Select : Input;\n const type = option?.type ?? Type.Any;\n\n return Field({\n displayValue: option?.list?.find(v => v.value === parsedValue.value)?.label,\n disabled: !parsedValue.path,\n value: parsedValue.value ?? '',\n label: 'value',\n type: type === Type.Number ? 'number' : type === Type.Date ? 'date' : 'text',\n list: option?.list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: newValue }),\n });\n}\n"]}
1
+ {"version":3,"file":"SingleValue.js","sourceRoot":"","sources":["../../../../../src/elements/public/QueryBuilder/components/SingleValue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAE,oBAAiB;AAGrD,OAAO,EAAE,KAAK,EAAE,mBAAgB;AAChC,OAAO,EAAE,MAAM,EAAE,oBAAiB;AAYlC,MAAM,UAAU,WAAW,CAAC,MAAyB;;IACnD,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACxE,MAAM,KAAK,GAAG,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,EAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5C,MAAM,IAAI,SAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,mCAAI,IAAI,CAAC,GAAG,CAAC;IAEtC,OAAO,KAAK,CAAC;QACX,YAAY,cAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,2CAAG,KAAK;QAC3E,QAAQ;QACR,QAAQ,EAAE,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI;QACvC,KAAK,QAAE,WAAW,CAAC,KAAK,mCAAI,EAAE;QAC9B,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC5E,IAAI,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;QAClB,CAAC,EAAE,CAAC;QACJ,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;KACpE,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { Option, ParsedValue, Type } from '../types';\n\nimport { I18n } from '../../I18n/I18n';\nimport { Input } from './Input';\nimport { Select } from './Select';\nimport { TemplateResult } from 'lit-html';\n\nexport type SingleValueParams = {\n parsedValue: ParsedValue;\n readonly: boolean;\n disabled: boolean;\n option: Option | null;\n t: I18n['t'];\n onChange: (newValue: ParsedValue) => void;\n};\n\nexport function SingleValue(params: SingleValueParams): TemplateResult {\n const { t, option, parsedValue, readonly, disabled, onChange } = params;\n const Field = option?.list ? Select : Input;\n const type = option?.type ?? Type.Any;\n\n return Field({\n displayValue: option?.list?.find(v => v.value === parsedValue.value)?.label,\n readonly,\n disabled: disabled || !parsedValue.path,\n value: parsedValue.value ?? '',\n label: 'value',\n type: type === Type.Number ? 'number' : type === Type.Date ? 'date' : 'text',\n list: option?.list,\n t: t,\n onChange: newValue => onChange({ ...parsedValue, value: newValue }),\n });\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@foxy.io/elements",
3
3
  "type": "module",
4
- "version": "1.22.0-beta.2",
4
+ "version": "1.22.0-beta.3",
5
5
  "description": "E-commerce web components by Foxy.",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1 +0,0 @@
1
- import{a8 as a,a9 as r,ay as n,aa as t,au as e,az as l}from"./shared-dcdb6ea1.js";var u=Object.prototype.hasOwnProperty;function o(a,r){return null!=a&&u.call(a,r)}function s(u,s){return null!=u&&function(u,o,s){for(var c=-1,f=(o=a(o,u)).length,h=!1;++c<f;){var i=r(o[c]);if(!(h=null!=u&&s(u,i)))break;u=u[i]}return h||++c!=f?h:!!(f=null==u?0:u.length)&&n(f)&&t(i,f)&&(e(u)||l(u))}(u,s,o)}export{s as h};
@@ -1 +0,0 @@
1
- import{A as e,ad as t}from"./shared-dcdb6ea1.js";import{d as s}from"./shared-a8ced8bf.js";var n=function(e,t,s,n){return new(s||(s=Promise))((function(i,o){function r(e){try{c(n.next(e))}catch(e){o(e)}}function a(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(r,a)}c((n=n.apply(e,t||[])).next())}))};class i extends e{constructor(e){super(Object.assign(Object.assign({},e),{fetch:(...e)=>this.__fetch(...e)}))}signIn(t){return n(this,void 0,void 0,(function*(){i.v8n.credentials.check(t);const s=yield this.fetch(new URL("./authenticate",this.base).toString(),{body:JSON.stringify(t),method:"POST"});if(!s.ok){const t=401===s.status?"UNAUTHORIZED":"UNKNOWN";throw new e.AuthError({code:t})}{const e=yield s.json(),t=Object.assign(Object.assign({},e),{date_created:(new Date).toISOString()});this.storage.setItem(i.SESSION,JSON.stringify(t))}}))}sendPasswordResetEmail(t){return n(this,void 0,void 0,(function*(){i.v8n.email.check(t.email);if(!(yield this.fetch(new URL("./forgot_password",this.base).toString(),{body:JSON.stringify(t),method:"POST"})).ok)throw new e.AuthError({code:"UNKNOWN"})}))}signOut(){return n(this,void 0,void 0,(function*(){if(!(yield this.fetch(new URL("./authenticate",this.base).toString(),{method:"DELETE"})).ok)throw new e.AuthError({code:"UNKNOWN"});this.storage.clear(),this.cache.clear()}))}__fetch(e,t){var o;return n(this,void 0,void 0,(function*(){let n=JSON.parse(null!==(o=this.storage.getItem(i.SESSION))&&void 0!==o?o:"null");const r=new s.Request(e,t);if(null!==n){new Date(n.date_created).getTime()+1e3*n.expires_in<Date.now()?(this.console.info("Session has expired, signing out."),this.storage.clear(),this.cache.clear(),n=null):r.headers.set("Authorization",`Bearer ${n.session_token}`)}r.headers.set("Content-Type","application/json"),r.headers.set("FOXY-API-VERSION","1"),this.console.trace(`${r.method} ${r.url}`);const a=yield s.fetch(r);if(n&&a.ok){const e=Object.assign(Object.assign({},n),{date_created:(new Date).toISOString()});this.storage.setItem(i.SESSION,JSON.stringify(e))}return a}))}}i.SESSION="session",i.v8n=Object.assign({},e.v8n,{credentials:t().schema({email:t().string(),newPassword:t().optional(t().string()),password:t().string()}),email:t().string()});let o=/(-?(?:\d+\.?\d*|\d*\.?\d+)(?:e[-+]?\d+)?)\s*([a-zµμ]*)/gi;function r(e="",t="ms"){var s=null;return(e=e.replace(/(\d),(\d)/g,"$1$2")).replace(o,(function(e,t,n){(n=r[n]||r[n.toLowerCase().replace(/s$/,"")])&&(s=(s||0)+parseFloat(t,10)*n)})),s&&s/r[t]}r.nanosecond=r.ns=1e-6,r["µs"]=r["μs"]=r.us=r.microsecond=.001,r.millisecond=r.ms=1,r.second=r.sec=r.s=1e3*r.ms,r.minute=r.min=r.m=60*r.s,r.hour=r.hr=r.h=60*r.m,r.day=r.d=24*r.h,r.week=r.wk=r.w=7*r.d,r.month=r.b=30.4375*r.d,r.year=r.yr=r.y=365.25*r.d;export{i as A,r as p};
@@ -1 +0,0 @@
1
- import"./shared-6192121c.js";import{I as e}from"./shared-e8eaf692.js";import{h as t,c as i}from"./shared-7f33a83a.js";import{Q as n}from"./shared-dcdb6ea1.js";import"./shared-3f814c12.js";import{_ as r}from"./shared-a8ced8bf.js";import"./shared-d411ad01.js";import"./foxy-spinner.js";import{C as s}from"./shared-67546e10.js";import{T as a}from"./shared-a14b401b.js";import{N as o}from"./shared-dc91f7ae.js";import{c as l}from"./shared-4e709717.js";let d,c=e=>e;customElements.define("foxy-internal-delete-control",class extends e{constructor(){super(...arguments),this.theme="error"}static get properties(){return r(r({},super.properties),{},{theme:{type:String}})}renderControl(){return t(d||(d=c` <foxy-internal-confirm-dialog message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" infer="" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <vaadin-button data-testid="delete" theme="${0}" class="w-full" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="" key="delete"></foxy-i18n> </vaadin-button> `),(e=>{var t;return!e.detail.cancelled&&(null===(t=this.nucleon)||void 0===t?void 0:t.delete())}),this.theme,this.disabled||this.readonly,(e=>{this.renderRoot.querySelector("#confirm").show(e.currentTarget)}))}});let m,f=e=>e;customElements.define("foxy-internal-create-control",class extends e{constructor(){super(...arguments),this.theme="primary success"}static get properties(){return r(r({},super.properties),{},{theme:{type:String}})}renderControl(){return t(m||(m=f` <vaadin-button class="w-full" theme="${0}" ?disabled="${0}" @click="${0}"> <foxy-i18n infer="" key="create"></foxy-i18n> </vaadin-button> `),this.theme,this.disabled||this.__isInvalid,(()=>{var e;return null===(e=this.nucleon)||void 0===e?void 0:e.submit()}))}get __isCleanTemplateInvalid(){var e;return!!(null===(e=this.nucleon)||void 0===e?void 0:e.in({idle:{template:{clean:"invalid"}}}))}get __isDirtyTemplateInvalid(){var e;return!!(null===(e=this.nucleon)||void 0===e?void 0:e.in({idle:{template:{dirty:"invalid"}}}))}get __isCleanSnapshotInvalid(){var e;return!!(null===(e=this.nucleon)||void 0===e?void 0:e.in({idle:{snapshot:{clean:"invalid"}}}))}get __isDirtySnapshotInvalid(){var e;return!!(null===(e=this.nucleon)||void 0===e?void 0:e.in({idle:{snapshot:{dirty:"invalid"}}}))}get __isTemplateInvalid(){return this.__isCleanTemplateInvalid||this.__isDirtyTemplateInvalid}get __isSnapshotInvalid(){return this.__isCleanSnapshotInvalid||this.__isDirtySnapshotInvalid}get __isInvalid(){return this.__isSnapshotInvalid||this.__isTemplateInvalid}});let p,y,u=e=>e;customElements.define("foxy-internal-timestamps-control",class extends e{static get styles(){return[super.styles,i(p||(p=u`.max-w-0{max-width:0}`))]}renderControl(){return t(y||(y=u` <table class="font-lumo text-m leading-m w-full"> <tbody class="divide-y divide-contrast-10"> <tr> <td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m"> <foxy-i18n infer="" key="date_created"></foxy-i18n> </td> <td class="max-w-0 truncate py-s text-body w-2-3"> <foxy-i18n options="${0}" infer="" key="date"> </foxy-i18n> </td> </tr> <tr> <td class="max-w-0 truncate py-s text-secondary w-1-3 pr-m"> <foxy-i18n infer="" key="date_modified"></foxy-i18n> </td> <td class="max-w-0 truncate py-s text-body w-2-3"> <foxy-i18n options="${0}" infer="" key="date"> </foxy-i18n> </td> </tr> </tbody> </table> `),JSON.stringify({value:n(this,"nucleon.form.date_created")}),JSON.stringify({value:n(this,"nucleon.form.date_modified")}))}});let h,v,x,_=e=>e;const b=s(a(o));class g extends b{renderBody(){return this.data?t(h||(h=_` <foxy-internal-timestamps-control infer="timestamps"></foxy-internal-timestamps-control> <foxy-internal-delete-control infer="delete"></foxy-internal-delete-control> `)):t(v||(v=_`<foxy-internal-create-control infer="create"></foxy-internal-create-control>`))}render(){const e=!(this.in("idle")||this.in({busy:"fetching"})&&this.data);return t(x||(x=_` <div aria-busy="${0}" aria-live="polite" class="relative"> <div class="${0}"> ${0} </div> <div data-testid="spinner" class="${0}"> <foxy-spinner layout="${0}" class="m-auto" state="${0}" infer="spinner"> </foxy-spinner> </div> </div> `),this.in("busy"),l({"grid grid-cols-1 gap-m":!0,"transition-opacity":!0,"opacity-0 pointer-events-none":e}),this.renderBody(),l({"transition-opacity absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!e}),this.in("fail")?"vertical":"no-label",this.in("fail")?"error":"busy")}}customElements.define("foxy-internal-form",g);export{g as I};
@@ -1 +0,0 @@
1
- import{ab as a,ac as r}from"./shared-dcdb6ea1.js";var e=function(){try{var r=a(Object,"defineProperty");return r({},"",{}),r}catch(a){}}();function t(a,r,t){"__proto__"==r&&e?e(a,r,{configurable:!0,enumerable:!0,value:t,writable:!0}):a[r]=t}var o=Object.prototype.hasOwnProperty;function n(a,e,n){var c=a[e];o.call(a,e)&&r(c,n)&&(void 0!==n||e in a)||t(a,e,n)}export{n as a,t as b};
@@ -1 +0,0 @@
1
- import{_ as r}from"./shared-a8ced8bf.js";import{p as s}from"./shared-6192121c.js";function t(t){var a;const n=s(t),o=null!==(a={y:"yearly",m:"monthly",w:"weekly",d:"daily"}[n.units])&&void 0!==a?a:n.units;return r(r({},n),{},{units:o})}export{t as p};
@@ -1 +0,0 @@
1
- import{_ as e}from"./shared-a8ced8bf.js";import{h as t,L as n}from"./shared-7f33a83a.js";import{i as r,a as s}from"./shared-a14b401b.js";import{F as a,A as i}from"./shared-dcdb6ea1.js";import{I as o}from"./shared-4f037e43.js";const l={type:"backend",init:()=>{},read:(e,t,n)=>{const r=async e=>{const t=e.ok?null:new Error(await e.text()),r=!!e.ok&&await e.json();n(t,r)},s=e=>{const t=e instanceof Error?e:new Error(String(e));n(t,!1)},o=new a("fetch",{cancelable:!0,composed:!0,bubbles:!0,request:new i.WHATWGRequest(`foxy://i18n/${t}/${e}`),resolve:r,reject:s});dispatchEvent(o),o.defaultPrevented||fetch(o.request).then(r).catch(s)},create:()=>{throw new Error("foxy-i18n does not support resource creation")}};function c(e,t=!1){var n;const r=e.replace(/(y|m|w|d)/,""),s=e.replace(/\.?\d+/,"");return{count:".5"===r?.5:parseInt(r),units:t&&null!==(n={y:"year",m:"month",w:"week",d:"day"}[s])&&void 0!==n?n:s}}const u={discount:({ns:e,type:t,details:n},r,s)=>{const a=t.endsWith("_percentage")?.01:1,i=n.split("|"),o=`${["allunits","incremental","repeat","single"].includes(i[0])?i.shift():"single"}_${t}_discount_summary`;return i.map((t=>{var n,r;const s=null!==(r=null===(n=/[-+]/.exec(t))||void 0===n?void 0:n.index)&&void 0!==r?r:-1,i=parseFloat(t.substring(s))*a,l=parseFloat(t.substring(0,s));return`$t(${o}, ${JSON.stringify({adjustment:i,from:l,ns:e})})`})).join("; ")},relative:(e,t,n)=>{const r=new Intl.RelativeTimeFormat(n);let{count:s,units:a}=c(e,!0);return.5===s&&"month"===a&&(s=2,a="week"),r.format(s,a)},percent:(e,t,n)=>{let r=null;try{"number"==typeof e&&(r=e.toLocaleString(n,{style:"percent"}))}catch(e){console.warn(`i18next formatter error: ${e.message}`)}return r||String(e)},ordinal:(e,t,n)=>`${e}$t(ordinal_${new Intl.PluralRules(n,{type:"ordinal"}).select(e)})`,price:(e,t,n,r)=>{var s;try{const[t,a]=e.split(" ");return parseFloat(t).toLocaleString(n,{maximumFractionDigits:2,minimumFractionDigits:2,currencyDisplay:null!==(s=null==r?void 0:r.currencyDisplay)&&void 0!==s?s:"symbol",signDisplay:null==r?void 0:r.signDisplay,style:"currency",currency:a})}catch(t){return e}},date:(e,t,n,r)=>{var s,a,i;if(!e)return"$t(unknown)";const o=new Date(e),l=null!==(s=null==r?void 0:r.month)&&void 0!==s?s:"long",c=(null!==(a=null==r?void 0:r.year)&&void 0!==a?a:(new Date).getFullYear()===o.getFullYear())?void 0:"numeric",u=null!==(i=null==r?void 0:r.day)&&void 0!==i?i:"numeric";return o.toLocaleDateString(n,{month:l,year:c,day:u})},time:(e,t,n)=>new Date(e).toLocaleTimeString(n,{hour:"numeric",minute:"numeric"})};let d,p=e=>e;class m extends(s(o(n),"")){constructor(){super(...arguments),this.options={},this.key=""}static onTranslationChange(e){const t=["initialized","loaded"],n=["removed","added"];return t.forEach((t=>m.i18next.on(t,e))),n.forEach((t=>m.i18next.store.on(t,e))),()=>{t.forEach((t=>m.i18next.off(t,e))),n.forEach((t=>m.i18next.store.off(t,e)))}}static onResourceFetch(e){const t=t=>{if(t instanceof a&&t.request.url.startsWith("foxy://i18n/")){const[n,r]=t.request.url.split("/").reverse();t.respondWith(e(r,n))}};return addEventListener("fetch",t),()=>removeEventListener("fetch",t)}static setGateways({values:e}){for(const t in e)this.i18next.addResource("en","gateways",`gateways.${t}`,e[t].name)}static get properties(){return e(e({},super.properties),{},{options:{type:Object},key:{type:String}})}connectedCallback(){super.connectedCallback(),this.__unsubscribe=m.onTranslationChange((()=>this.requestUpdate()))}render(){return t(d||(d=p`<span>${0}</span>`),this.t(this.key,e(e({},this.options),{},{lng:this.lang})))}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this.__unsubscribe)||void 0===e||e.call(this)}}m.FetchEvent=a,m.i18next=r.createInstance().use(l),m.i18next.init({interpolation:{format:(e,t="",n="en",r={})=>t.split(" ").filter((e=>!!e.trim())).reduce(((e,t)=>{var s,a;return null!==(a=null===(s=u[t])||void 0===s?void 0:s.call(u,e,t,n,r))&&void 0!==a?a:e}),e),escapeValue:!1},fallbackLng:"en",fallbackNS:"shared",defaultNS:"shared",ns:["shared"]}),customElements.define("foxy-i18n",m);export{m as I,c as p};
@@ -1 +0,0 @@
1
- import{_ as e}from"./shared-a8ced8bf.js";import{h as t}from"./shared-7f33a83a.js";import{B as r}from"./shared-dcdb6ea1.js";import{i as s}from"./shared-d3bf9ac0.js";let o,i,n=e=>e;const l=l=>class extends l{constructor(){super(...arguments),this.templates={},this.mode="production",this.readonly=!1,this.readonlyControls=r.False,this.disabled=!1,this.disabledControls=r.False,this.hidden=!1,this.hiddenControls=r.False,this.__observer=new MutationObserver((()=>this.__onMutation()))}static get inferredProperties(){return[...super.inferredProperties,"disabledSelector","readonlySelector","hiddenSelector","templates","disabled","readonly","hidden","mode"]}static get properties(){return e(e({},super.properties),{},{templates:{attribute:!1},mode:{type:String},readonly:{type:Boolean,reflect:!0},readonlyControls:{attribute:"readonlycontrols",converter:{fromAttribute:e=>new r(null!=e?e:"")},hasChanged:(e,t)=>e.toString()!==(null==t?void 0:t.toString())},disabled:{type:Boolean,reflect:!0},disabledControls:{attribute:"disabledcontrols",converter:{fromAttribute:e=>new r(null!=e?e:"")},hasChanged:(e,t)=>e.toString()!==(null==t?void 0:t.toString())},hidden:{type:Boolean,reflect:!0},hiddenControls:{attribute:"hiddencontrols",converter:{fromAttribute:e=>new r(null!=e?e:"")},hasChanged:(e,t)=>e.toString()!==(null==t?void 0:t.toString())}})}get readonlySelector(){return this.readonly?r.True:this.readonlyControls}get disabledSelector(){return this.disabled?r.True:this.disabledControls}get hiddenSelector(){return this.hidden?r.True:this.hiddenControls}connectedCallback(){super.connectedCallback(),"development"===this.mode&&this.__observe()}disconnectedCallback(){super.disconnectedCallback(),this.__observer.disconnect()}firstUpdated(...e){super.firstUpdated(...e),"production"===this.mode&&this.compileTemplates()}updated(e){super.updated(e),this.style.display=this.hidden?"none":"",e.has("mode")&&(this.__observer.disconnect(),"development"===this.mode&&this.__observe())}compileTemplates(t=!1){const r=t?{}:e({},this.templates);Array.from(this.children).forEach((e=>{var t;if("template"!==e.localName)return;const s=null!==(t=e.getAttribute("slot"))&&void 0!==t?t:"default";try{const t=`return html\`${e.innerHTML}\``;r[s]=new Function("html","host",t)}catch(e){console.error(e)}})),this.templates=r}renderTemplateOrSlot(e,r){const l=null!=e?e:"default",d=this.templates[l];if(!d)return t(o||(o=n`<slot name="${0}"></slot>`),s(e));return t(i||(i=n` <foxy-internal-sandbox data-testid="${0}" .render="${0}"> </foxy-internal-sandbox> `),l,(()=>{try{const e=null!=r?r:this,s=new Proxy({},{get:(t,r)=>e[r]});return null==d?void 0:d(t,s)}catch(e){console.error(e)}}))}getNestedTemplates(e){const t={};return Object.entries(this.templates).forEach((([r,s])=>{if(r.startsWith(`${e}:`)){const o=r.replace(`${e}:`,"");t[o]=s}})),t}applyInferredProperties(e){if(super.applyInferredProperties(e),null===this.infer)return;const t=e.get("disabledSelector"),s=e.get("disabled"),o=e.get("readonlySelector"),i=e.get("readonly"),n=e.get("hiddenSelector"),l=e.get("hidden"),d=e.get("templates"),a=e.get("mode"),h=r.True.toString(),c=(e,t)=>e.toString()===h||null!=t&&t,u=e=>{var t;return null!==(t=this.infer?null==e?void 0:e.zoom(this.infer):e)&&void 0!==t?t:r.False};this.disabledControls=u(t),this.disabled=c(this.disabledControls,s),this.readonlyControls=u(o),this.readonly=c(this.readonlyControls,i),this.hiddenControls=u(n),this.hidden=c(this.hiddenControls,l),this.templates=null!=d?d:{},this.infer&&(this.templates=this.getNestedTemplates(this.infer)),this.mode=null!=a?a:"production"}__observe(){this.__observer.observe(this,{characterData:!0,attributes:!0,childList:!0,subtree:!0}),this.__onMutation()}__onMutation(){const e={characterData:!0,attributes:!0,childList:!0,subtree:!0};this.__observer.disconnect(),this.__observer.observe(this,e),Array.from(this.children).forEach((t=>{"template"===t.localName&&t.hasAttribute("slot")&&this.__observer.observe(t.content,e)})),this.compileTemplates(!0)}};export{l as C};