@teppen/react-ui 1.10.2 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +73 -6
  2. package/dist/cjs/node_modules/react-icons/bi/index.js.map +1 -1
  3. package/dist/cjs/node_modules/react-icons/lib/iconBase.js.map +1 -1
  4. package/dist/cjs/node_modules/react-icons/lib/iconContext.js.map +1 -1
  5. package/dist/cjs/node_modules/react-icons/lu/index.js.map +1 -1
  6. package/dist/cjs/node_modules/react-icons/md/index.js.map +1 -1
  7. package/dist/cjs/node_modules/react-icons/ti/index.js.map +1 -1
  8. package/dist/cjs/node_modules/tslib/tslib.es6.js +1 -1
  9. package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
  10. package/dist/cjs/src/file-uploader/hook.js +1 -1
  11. package/dist/cjs/src/file-uploader/hook.js.map +1 -1
  12. package/dist/cjs/src/search-bar/condition-search-bar/base.js +1 -2
  13. package/dist/cjs/src/search-bar/condition-search-bar/base.js.map +1 -1
  14. package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js +1 -2
  15. package/dist/cjs/src/search-bar/condition-search-bar/condition-list.js.map +1 -1
  16. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js +1 -2
  17. package/dist/cjs/src/search-bar/condition-search-bar/input-form.js.map +1 -1
  18. package/dist/cjs/src/search-bar/id-generator/provider.js +1 -2
  19. package/dist/cjs/src/search-bar/id-generator/provider.js.map +1 -1
  20. package/dist/cjs/src/select-box/index.js +1 -2
  21. package/dist/cjs/src/select-box/index.js.map +1 -1
  22. package/dist/cjs/src/select-box/options-window/component.js +1 -1
  23. package/dist/cjs/src/select-box/options-window/component.js.map +1 -1
  24. package/dist/cjs/src/select-box/parts/input-area.js +1 -2
  25. package/dist/cjs/src/select-box/parts/input-area.js.map +1 -1
  26. package/dist/cjs/src/select-box/provider.js +1 -2
  27. package/dist/cjs/src/select-box/provider.js.map +1 -1
  28. package/dist/cjs/src/table/cell/ui/cell.js +1 -2
  29. package/dist/cjs/src/table/cell/ui/cell.js.map +1 -1
  30. package/dist/cjs/src/table/checkbox/components.js +1 -2
  31. package/dist/cjs/src/table/checkbox/components.js.map +1 -1
  32. package/dist/cjs/src/table/copy/format.js +2 -0
  33. package/dist/cjs/src/table/copy/format.js.map +1 -0
  34. package/dist/cjs/src/table/copy/hooks.js +1 -1
  35. package/dist/cjs/src/table/copy/hooks.js.map +1 -1
  36. package/dist/cjs/src/table/edit/provider.js +1 -2
  37. package/dist/cjs/src/table/edit/provider.js.map +1 -1
  38. package/dist/cjs/src/table/edit/ui/base-input.js +1 -2
  39. package/dist/cjs/src/table/edit/ui/base-input.js.map +1 -1
  40. package/dist/cjs/src/table/edit/ui/editor.js.map +1 -1
  41. package/dist/cjs/src/table/edit/ui/number-input.js +1 -2
  42. package/dist/cjs/src/table/edit/ui/number-input.js.map +1 -1
  43. package/dist/cjs/src/table/edit/ui/select-input.js +1 -2
  44. package/dist/cjs/src/table/edit/ui/select-input.js.map +1 -1
  45. package/dist/cjs/src/table/edit/ui/string-input.js +1 -2
  46. package/dist/cjs/src/table/edit/ui/string-input.js.map +1 -1
  47. package/dist/cjs/src/table/filter-v2/hook.js +1 -1
  48. package/dist/cjs/src/table/filter-v2/hook.js.map +1 -1
  49. package/dist/cjs/src/table/frame/frame.js +1 -2
  50. package/dist/cjs/src/table/frame/frame.js.map +1 -1
  51. package/dist/cjs/src/table/header/columns-width/provider.js +1 -2
  52. package/dist/cjs/src/table/header/columns-width/provider.js.map +1 -1
  53. package/dist/cjs/src/table/header/columns-width/reducer.js +1 -1
  54. package/dist/cjs/src/table/header/columns-width/reducer.js.map +1 -1
  55. package/dist/cjs/src/table/header/header-v2-hook.js +1 -1
  56. package/dist/cjs/src/table/header/header-v2-hook.js.map +1 -1
  57. package/dist/cjs/src/table/header/header-v2.js +1 -1
  58. package/dist/cjs/src/table/header/header-v2.js.map +1 -1
  59. package/dist/cjs/src/table/header/header.js +1 -2
  60. package/dist/cjs/src/table/header/header.js.map +1 -1
  61. package/dist/cjs/src/table/id/provider.js +1 -1
  62. package/dist/cjs/src/table/id/provider.js.map +1 -1
  63. package/dist/cjs/src/table/operation/components/keyboard-setting.js +1 -2
  64. package/dist/cjs/src/table/operation/components/keyboard-setting.js.map +1 -1
  65. package/dist/cjs/src/table/operation/event-target.js +2 -0
  66. package/dist/cjs/src/table/operation/event-target.js.map +1 -0
  67. package/dist/cjs/src/table/pagenation/components.js +1 -2
  68. package/dist/cjs/src/table/pagenation/components.js.map +1 -1
  69. package/dist/cjs/src/table/pagenation/hooks.js +1 -1
  70. package/dist/cjs/src/table/pagenation/hooks.js.map +1 -1
  71. package/dist/cjs/src/table/pagenation/providers.js +1 -2
  72. package/dist/cjs/src/table/pagenation/providers.js.map +1 -1
  73. package/dist/cjs/src/table/paste/hooks.js +1 -1
  74. package/dist/cjs/src/table/paste/hooks.js.map +1 -1
  75. package/dist/cjs/src/table/paste/logic.js +1 -1
  76. package/dist/cjs/src/table/paste/logic.js.map +1 -1
  77. package/dist/cjs/src/table/paste/parse.js +2 -0
  78. package/dist/cjs/src/table/paste/parse.js.map +1 -0
  79. package/dist/cjs/src/table/paste/provider.js +1 -1
  80. package/dist/cjs/src/table/paste/provider.js.map +1 -1
  81. package/dist/cjs/src/table/sheet/components.js +1 -1
  82. package/dist/cjs/src/table/sheet/components.js.map +1 -1
  83. package/dist/cjs/src/table/sheet/providers.js +1 -2
  84. package/dist/cjs/src/table/sheet/providers.js.map +1 -1
  85. package/dist/cjs/src/table/sort/components.js +1 -2
  86. package/dist/cjs/src/table/sort/components.js.map +1 -1
  87. package/dist/cjs/src/table/sort/provider.js +1 -2
  88. package/dist/cjs/src/table/sort/provider.js.map +1 -1
  89. package/dist/cjs/src/table/table/base.js +1 -2
  90. package/dist/cjs/src/table/table/base.js.map +1 -1
  91. package/dist/cjs/src/table/table/component-provider/provider.js +1 -2
  92. package/dist/cjs/src/table/table/component-provider/provider.js.map +1 -1
  93. package/dist/cjs/src/table/table/hook.js +1 -1
  94. package/dist/cjs/src/table/table/hook.js.map +1 -1
  95. package/dist/esm/node_modules/react-icons/bi/index.js.map +1 -1
  96. package/dist/esm/node_modules/react-icons/lib/iconBase.js.map +1 -1
  97. package/dist/esm/node_modules/react-icons/lib/iconContext.js.map +1 -1
  98. package/dist/esm/node_modules/react-icons/lu/index.js.map +1 -1
  99. package/dist/esm/node_modules/react-icons/md/index.js.map +1 -1
  100. package/dist/esm/node_modules/react-icons/ti/index.js.map +1 -1
  101. package/dist/esm/node_modules/tslib/tslib.es6.js +1 -1
  102. package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
  103. package/dist/esm/package.json +3 -0
  104. package/dist/esm/src/file-uploader/hook.js +1 -1
  105. package/dist/esm/src/file-uploader/hook.js.map +1 -1
  106. package/dist/esm/src/search-bar/condition-search-bar/base.js +1 -2
  107. package/dist/esm/src/search-bar/condition-search-bar/base.js.map +1 -1
  108. package/dist/esm/src/search-bar/condition-search-bar/condition-list.js +1 -2
  109. package/dist/esm/src/search-bar/condition-search-bar/condition-list.js.map +1 -1
  110. package/dist/esm/src/search-bar/condition-search-bar/input-form.js +1 -2
  111. package/dist/esm/src/search-bar/condition-search-bar/input-form.js.map +1 -1
  112. package/dist/esm/src/search-bar/id-generator/provider.js +1 -2
  113. package/dist/esm/src/search-bar/id-generator/provider.js.map +1 -1
  114. package/dist/esm/src/select-box/index.js +1 -2
  115. package/dist/esm/src/select-box/index.js.map +1 -1
  116. package/dist/esm/src/select-box/options-window/component.js +1 -1
  117. package/dist/esm/src/select-box/options-window/component.js.map +1 -1
  118. package/dist/esm/src/select-box/parts/input-area.js +1 -2
  119. package/dist/esm/src/select-box/parts/input-area.js.map +1 -1
  120. package/dist/esm/src/select-box/provider.js +1 -2
  121. package/dist/esm/src/select-box/provider.js.map +1 -1
  122. package/dist/esm/src/table/cell/ui/cell.js +1 -2
  123. package/dist/esm/src/table/cell/ui/cell.js.map +1 -1
  124. package/dist/esm/src/table/checkbox/components.js +1 -2
  125. package/dist/esm/src/table/checkbox/components.js.map +1 -1
  126. package/dist/esm/src/table/copy/format.js +2 -0
  127. package/dist/esm/src/table/copy/format.js.map +1 -0
  128. package/dist/esm/src/table/copy/hooks.js +1 -1
  129. package/dist/esm/src/table/copy/hooks.js.map +1 -1
  130. package/dist/esm/src/table/edit/provider.js +1 -2
  131. package/dist/esm/src/table/edit/provider.js.map +1 -1
  132. package/dist/esm/src/table/edit/ui/base-input.js +1 -2
  133. package/dist/esm/src/table/edit/ui/base-input.js.map +1 -1
  134. package/dist/esm/src/table/edit/ui/editor.js.map +1 -1
  135. package/dist/esm/src/table/edit/ui/number-input.js +1 -2
  136. package/dist/esm/src/table/edit/ui/number-input.js.map +1 -1
  137. package/dist/esm/src/table/edit/ui/select-input.js +1 -2
  138. package/dist/esm/src/table/edit/ui/select-input.js.map +1 -1
  139. package/dist/esm/src/table/edit/ui/string-input.js +1 -2
  140. package/dist/esm/src/table/edit/ui/string-input.js.map +1 -1
  141. package/dist/esm/src/table/filter-v2/hook.js +1 -1
  142. package/dist/esm/src/table/filter-v2/hook.js.map +1 -1
  143. package/dist/esm/src/table/frame/frame.js +1 -2
  144. package/dist/esm/src/table/frame/frame.js.map +1 -1
  145. package/dist/esm/src/table/header/columns-width/provider.js +1 -2
  146. package/dist/esm/src/table/header/columns-width/provider.js.map +1 -1
  147. package/dist/esm/src/table/header/columns-width/reducer.js +1 -1
  148. package/dist/esm/src/table/header/columns-width/reducer.js.map +1 -1
  149. package/dist/esm/src/table/header/header-v2-hook.js +1 -1
  150. package/dist/esm/src/table/header/header-v2-hook.js.map +1 -1
  151. package/dist/esm/src/table/header/header-v2.js +1 -1
  152. package/dist/esm/src/table/header/header-v2.js.map +1 -1
  153. package/dist/esm/src/table/header/header.js +1 -2
  154. package/dist/esm/src/table/header/header.js.map +1 -1
  155. package/dist/esm/src/table/id/provider.js +1 -1
  156. package/dist/esm/src/table/id/provider.js.map +1 -1
  157. package/dist/esm/src/table/operation/components/keyboard-setting.js +1 -2
  158. package/dist/esm/src/table/operation/components/keyboard-setting.js.map +1 -1
  159. package/dist/esm/src/table/operation/event-target.js +2 -0
  160. package/dist/esm/src/table/operation/event-target.js.map +1 -0
  161. package/dist/esm/src/table/pagenation/components.js +1 -2
  162. package/dist/esm/src/table/pagenation/components.js.map +1 -1
  163. package/dist/esm/src/table/pagenation/hooks.js +1 -1
  164. package/dist/esm/src/table/pagenation/hooks.js.map +1 -1
  165. package/dist/esm/src/table/pagenation/providers.js +1 -2
  166. package/dist/esm/src/table/pagenation/providers.js.map +1 -1
  167. package/dist/esm/src/table/paste/hooks.js +1 -1
  168. package/dist/esm/src/table/paste/hooks.js.map +1 -1
  169. package/dist/esm/src/table/paste/logic.js +1 -1
  170. package/dist/esm/src/table/paste/logic.js.map +1 -1
  171. package/dist/esm/src/table/paste/parse.js +2 -0
  172. package/dist/esm/src/table/paste/parse.js.map +1 -0
  173. package/dist/esm/src/table/paste/provider.js +1 -1
  174. package/dist/esm/src/table/paste/provider.js.map +1 -1
  175. package/dist/esm/src/table/sheet/components.js +1 -1
  176. package/dist/esm/src/table/sheet/components.js.map +1 -1
  177. package/dist/esm/src/table/sheet/providers.js +1 -2
  178. package/dist/esm/src/table/sheet/providers.js.map +1 -1
  179. package/dist/esm/src/table/sort/components.js +1 -2
  180. package/dist/esm/src/table/sort/components.js.map +1 -1
  181. package/dist/esm/src/table/sort/provider.js +1 -2
  182. package/dist/esm/src/table/sort/provider.js.map +1 -1
  183. package/dist/esm/src/table/table/base.js +1 -2
  184. package/dist/esm/src/table/table/base.js.map +1 -1
  185. package/dist/esm/src/table/table/component-provider/provider.js +1 -2
  186. package/dist/esm/src/table/table/component-provider/provider.js.map +1 -1
  187. package/dist/esm/src/table/table/hook.js +1 -1
  188. package/dist/esm/src/table/table/hook.js.map +1 -1
  189. package/dist/index.d.ts +13 -1
  190. package/package.json +1 -3
@@ -1,2 +1,2 @@
1
- var t=function(r,o){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])},t(r,o)};function r(r,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function n(){this.constructor=r}t(r,o),r.prototype=null===o?Object.create(o):(n.prototype=o.prototype,new n)}var o=function(){return o=Object.assign||function(t){for(var r,o=1,n=arguments.length;o<n;o++)for(var e in r=arguments[o])Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e]);return t},o.apply(this,arguments)};function n(t,r,o){if(o||2===arguments.length)for(var n,e=0,c=r.length;e<c;e++)!n&&e in r||(n||(n=Array.prototype.slice.call(r,0,e)),n[e]=r[e]);return t.concat(n||Array.prototype.slice.call(r))}"function"==typeof SuppressedError&&SuppressedError;export{o as __assign,r as __extends,n as __spreadArray};
1
+ var t=function(r,o){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(t[o]=r[o])},t(r,o)};function r(r,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function e(){this.constructor=r}t(r,o),r.prototype=null===o?Object.create(o):(e.prototype=o.prototype,new e)}var o=function(){return o=Object.assign||function(t){for(var r,o=1,e=arguments.length;o<e;o++)for(var n in r=arguments[o])Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n]);return t},o.apply(this,arguments)};function e(t,r){var o={};for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&r.indexOf(e)<0&&(o[e]=t[e]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(e=Object.getOwnPropertySymbols(t);n<e.length;n++)r.indexOf(e[n])<0&&Object.prototype.propertyIsEnumerable.call(t,e[n])&&(o[e[n]]=t[e[n]])}return o}function n(t,r,o){if(o||2===arguments.length)for(var e,n=0,p=r.length;n<p;n++)!e&&n in r||(e||(e=Array.prototype.slice.call(r,0,n)),e[n]=r[n]);return t.concat(e||Array.prototype.slice.call(r))}"function"==typeof SuppressedError&&SuppressedError;export{o as __assign,r as __extends,e as __rest,n as __spreadArray};
2
2
  //# sourceMappingURL=tslib.es6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tslib.es6.js","sources":["../../../../node_modules/tslib/tslib.es6.js"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","TypeError","String","__","this","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__spreadArray","to","from","pack","ar","l","slice","concat","SuppressedError"],"mappings":"AAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,GAAI,EAC7FP,EAAcC,EAAGC,EAC5B,EAEO,SAASS,EAAUV,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIU,UAAU,uBAAyBC,OAAOX,GAAK,iCAE7D,SAASY,IAAOC,KAAKC,YAAcf,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOc,OAAOf,IAAMY,EAAGN,UAAYN,EAAEM,UAAW,IAAIM,EACnF,CAEU,IAACI,EAAW,WAQlB,OAPAA,EAAWf,OAAOgB,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIf,KADTc,EAAIG,UAAUF,GACOnB,OAAOK,UAAUC,eAAeC,KAAKW,EAAGd,KAAIa,EAAEb,GAAKc,EAAEd,IAE9E,OAAOa,CACX,EACOF,EAASQ,MAAMX,KAAMS,UAChC,EA6KO,SAASG,EAAcC,EAAIC,EAAMC,GACpC,GAAIA,GAA6B,IAArBN,UAAUC,OAAc,IAAK,IAA4BM,EAAxBT,EAAI,EAAGU,EAAIH,EAAKJ,OAAYH,EAAIU,EAAGV,KACxES,GAAQT,KAAKO,IACRE,IAAIA,EAAKzB,MAAME,UAAUyB,MAAMvB,KAAKmB,EAAM,EAAGP,IAClDS,EAAGT,GAAKO,EAAKP,IAGrB,OAAOM,EAAGM,OAAOH,GAAMzB,MAAME,UAAUyB,MAAMvB,KAAKmB,GACtD,CA8FkD,mBAApBM,iBAAiCA","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"tslib.es6.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -1,2 +1,2 @@
1
- import{useRef as e,useState as i}from"react";var a=["image/*","text/*","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.ms-outlook","application/json","application/xml","application/pdf","application/x-compressed","application/x-zip-compressed","application/x-gzip","application/x-bzip2","application/x-tar","application/x-rar-compressed","application/x-7z-compressed","application/zip"],n=[".msg",".jpg",".jpeg",".png",".pdf",".xlsx",".docx",".txt",".zip"];function o(o){var t=e(null),r=i(!1),p=r[0],c=r[1],l=o.acceptedFileTypes||a,s=o.allowedExtensions||n,f=function(e){var i=function(e){var i=[],a=[];return e.forEach((function(e){if(o.maxFileSize&&e.size>o.maxFileSize)a.push(e);else{var n=e.name.split(".").pop();n&&s.some((function(e){return e.toLowerCase()===".".concat(n.toLowerCase())||e.toLowerCase()===n.toLowerCase()}))||l.some((function(i){if(i.endsWith("/*")){var a=i.split("/")[0];return e.type.startsWith("".concat(a,"/"))}return e.type===i}))?i.push(e):a.push(e)}})),{validFiles:i,rejectedFiles:a}}(e),a=i.validFiles,n=i.rejectedFiles;a.length>0&&o.addFiles(a),n.length>0&&o.onValidationError&&o.onValidationError(n)};return{inputProps:{ref:t,type:"file",className:"hidden",accept:l.join(","),onChange:function(e){if(e.target.files){var i=Array.from(e.target.files);f(i)}}},isDragging:p,dropSpaceProps:{onClick:function(){var e;return null===(e=t.current)||void 0===e?void 0:e.click()},onDrop:function(e){if(e.preventDefault(),c(!1),e.dataTransfer.files){var i=Array.from(e.dataTransfer.files);f(i)}},onDragOver:function(e){e.preventDefault(),c(!0)},onDragLeave:function(e){c(!1)}}}}export{o as useFileUploader};
1
+ import{__spreadArray as e}from"../../node_modules/tslib/tslib.es6.js";import{useRef as i,useState as n}from"react";var t=["image/*","text/*","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.ms-excel","application/vnd.ms-outlook","application/json","application/xml","application/pdf","application/x-compressed","application/x-zip-compressed","application/x-gzip","application/x-bzip2","application/x-tar","application/x-rar-compressed","application/x-7z-compressed","application/zip"],o=[".msg",".jpg",".jpeg",".png",".pdf",".xlsx",".docx",".txt",".zip"];function a(a){var r,p,l=i(null),s=n(!1),c=s[0],d=s[1],f=void 0!==a.allowedExtensions&&void 0===a.acceptedFileTypes,u=void 0!==a.acceptedFileTypes&&void 0===a.allowedExtensions,m=f?[]:null!==(r=a.acceptedFileTypes)&&void 0!==r?r:t,v=u?[]:null!==(p=a.allowedExtensions)&&void 0!==p?p:o,x=function(e){var i=[],n=[];return e.forEach((function(e){a.maxFileSize&&e.size>a.maxFileSize?n.push(e):function(e){var i=e.name.lastIndexOf(".");if(i<=0)return!1;var n=e.name.slice(i+1).toLowerCase();return v.some((function(e){return e.toLowerCase().replace(/^\./,"")===n}))}(e)||function(e){return m.some((function(i){if(i.endsWith("/*")){var n=i.split("/")[0];return e.type.startsWith("".concat(n,"/"))}return e.type===i}))}(e)?i.push(e):n.push(e)})),{validFiles:i,rejectedFiles:n}},g=function(e){var i=x(e),n=i.validFiles,t=i.rejectedFiles;n.length>0&&a.addFiles(n),t.length>0&&a.onValidationError&&a.onValidationError(t)};return{inputProps:{ref:l,type:"file",className:"hidden",accept:e(e([],v.map((function(e){return e.startsWith(".")?e:".".concat(e)})),!0),m,!0).join(","),onChange:function(e){if(e.target.files){var i=Array.from(e.target.files);g(i)}e.target.value=""}},isDragging:c,dropSpaceProps:{onClick:function(){var e;return null===(e=l.current)||void 0===e?void 0:e.click()},onDrop:function(e){if(e.preventDefault(),d(!1),e.dataTransfer.files){var i=Array.from(e.dataTransfer.files);g(i)}},onDragOver:function(e){e.preventDefault(),d(!0)},onDragLeave:function(e){d(!1)}}}}export{a as useFileUploader};
2
2
  //# sourceMappingURL=hook.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sources":["../../../../src/file-uploader/hook.ts"],"sourcesContent":["import { useRef, useState } from \"react\";\n\n// Type returned by useRef<T>(null).\n// React 18: RefObject<T> (current: T | null) / React 19: RefObject<T | null>\ntype NullableRefObject<T> = null extends React.RefObject<T>[\"current\"]\n ? React.RefObject<T>\n : React.RefObject<T | null>;\n\ninterface IPropsFileUploader {\n addFiles: (files: File[]) => void;\n onValidationError?: (rejectedFiles: File[]) => void;\n acceptedFileTypes?: string[];\n allowedExtensions?: string[];\n maxFileSize?: number;\n}\n\ninterface IReturnFileUploader {\n inputProps: {\n ref: NullableRefObject<HTMLInputElement>;\n type: \"file\";\n accept?: string;\n className?: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n };\n isDragging: boolean;\n dropSpaceProps: {\n onClick?: React.MouseEventHandler;\n onDrop: (e: React.DragEvent) => void;\n onDragOver: (e: React.DragEvent) => void;\n onDragLeave: (e: React.DragEvent) => void;\n };\n}\n\n// Default accepted file types\nconst DEFAULT_ACCEPTED_TYPES = [\n \"image/*\", // image\n \"text/*\", // .txt\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\", // .xlsx\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\", // .pptx\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\", // .docx\n \"application/vnd.ms-excel\", // .xls\n \"application/vnd.ms-outlook\", // .msg\n \"application/json\", // .json\n \"application/xml\", // .xml\n \"application/pdf\", // .pdf\n \"application/x-compressed\", // .tgz\n \"application/x-zip-compressed\", // .zip\n \"application/x-gzip\", // .gz\n \"application/x-bzip2\", // .bz2\n \"application/x-tar\", // .tar\n \"application/x-rar-compressed\", // .rar\n \"application/x-7z-compressed\", // .7z\n \"application/zip\", // .zip\n];\n\n// Default allowed extensions\nconst DEFAULT_ALLOWED_EXTENSIONS = [\n \".msg\",\n \".jpg\",\n \".jpeg\",\n \".png\",\n \".pdf\",\n \".xlsx\",\n \".docx\",\n \".txt\",\n \".zip\",\n];\n\nexport function useFileUploader(\n props: IPropsFileUploader\n): IReturnFileUploader {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n const acceptedTypes = props.acceptedFileTypes || DEFAULT_ACCEPTED_TYPES;\n const allowedExtensions =\n props.allowedExtensions || DEFAULT_ALLOWED_EXTENSIONS;\n\n const validateFiles = (\n files: File[]\n ): { validFiles: File[]; rejectedFiles: File[] } => {\n const validFiles: File[] = [];\n const rejectedFiles: File[] = [];\n\n files.forEach((file) => {\n // Check file size if maxFileSize is specified\n if (props.maxFileSize && file.size > props.maxFileSize) {\n rejectedFiles.push(file);\n return;\n }\n\n const extension = file.name.split(\".\").pop();\n if (\n extension &&\n allowedExtensions.some(\n (ext) =>\n ext.toLowerCase() === `.${extension.toLowerCase()}` ||\n ext.toLowerCase() === extension.toLowerCase()\n )\n ) {\n validFiles.push(file);\n return;\n }\n\n if (\n acceptedTypes.some((type) => {\n if (type.endsWith(\"/*\")) {\n const mainType = type.split(\"/\")[0];\n return file.type.startsWith(`${mainType}/`);\n }\n return file.type === type;\n })\n ) {\n validFiles.push(file);\n } else {\n rejectedFiles.push(file);\n }\n });\n\n return { validFiles, rejectedFiles };\n };\n\n const addFiles = (files: File[]) => {\n const { validFiles, rejectedFiles } = validateFiles(files);\n if (validFiles.length > 0) {\n props.addFiles(validFiles);\n }\n if (rejectedFiles.length > 0 && props.onValidationError) {\n props.onValidationError(rejectedFiles);\n }\n };\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n if (e.dataTransfer.files) {\n const droppedFiles = Array.from(e.dataTransfer.files);\n addFiles(droppedFiles);\n }\n };\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(true);\n };\n\n const handleDragLeave = (e: React.DragEvent) => {\n setIsDragging(false);\n };\n\n return {\n inputProps: {\n ref: inputRef,\n type: \"file\",\n className: \"hidden\",\n accept: acceptedTypes.join(\",\"),\n onChange: (e) => {\n if (e.target.files) {\n const selectedFiles = Array.from(e.target.files);\n addFiles(selectedFiles);\n }\n },\n },\n isDragging,\n dropSpaceProps: {\n onClick: () => inputRef.current?.click(),\n onDrop: handleDrop,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n },\n };\n}\n"],"names":["DEFAULT_ACCEPTED_TYPES","DEFAULT_ALLOWED_EXTENSIONS","useFileUploader","props","inputRef","useRef","_a","useState","isDragging","setIsDragging","acceptedTypes","acceptedFileTypes","allowedExtensions","addFiles","files","validFiles","rejectedFiles","forEach","file","maxFileSize","size","push","extension","name","split","pop","some","ext","toLowerCase","type","endsWith","mainType","startsWith","concat","validateFiles","length","onValidationError","inputProps","ref","className","accept","join","onChange","e","target","selectedFiles","Array","from","dropSpaceProps","onClick","current","click","onDrop","preventDefault","dataTransfer","droppedFiles","onDragOver","onDragLeave"],"mappings":"6CAkCA,IAAMA,EAAyB,CAC7B,UACA,SACA,oEACA,4EACA,0EACA,2BACA,6BACA,mBACA,kBACA,kBACA,2BACA,+BACA,qBACA,sBACA,oBACA,+BACA,8BACA,mBAIIC,EAA6B,CACjC,OACA,OACA,QACA,OACA,OACA,QACA,QACA,OACA,QAGI,SAAUC,EACdC,GAEA,IAAMC,EAAWC,EAAyB,MACpCC,EAA8BC,GAAS,GAAtCC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAE1BI,EAAgBP,EAAMQ,mBAAqBX,EAC3CY,EACJT,EAAMS,mBAAqBX,EA8CvBY,EAAW,SAACC,GACV,IAAAR,EA7Cc,SACpBQ,GAEA,IAAMC,EAAqB,GACrBC,EAAwB,GAqC9B,OAnCAF,EAAMG,SAAQ,SAACC,GAEb,GAAIf,EAAMgB,aAAeD,EAAKE,KAAOjB,EAAMgB,YACzCH,EAAcK,KAAKH,OADrB,CAKA,IAAMI,EAAYJ,EAAKK,KAAKC,MAAM,KAAKC,MAErCH,GACAV,EAAkBc,MAChB,SAACC,GACC,OAAAA,EAAIC,gBAAkB,WAAIN,EAAUM,gBACpCD,EAAIC,gBAAkBN,EAAUM,aADhC,KASJlB,EAAcgB,MAAK,SAACG,GAClB,GAAIA,EAAKC,SAAS,MAAO,CACvB,IAAMC,EAAWF,EAAKL,MAAM,KAAK,GACjC,OAAON,EAAKW,KAAKG,WAAW,GAAAC,OAAGF,EAAQ,KACzC,CACA,OAAOb,EAAKW,OAASA,CACvB,IAXAd,EAAWM,KAAKH,GAehBF,EAAcK,KAAKH,EA1BrB,CA4BF,IAEO,CAAEH,WAAUA,EAAEC,cAAaA,EACpC,CAGwCkB,CAAcpB,GAA5CC,EAAUT,EAAAS,WAAEC,EAAaV,EAAAU,cAC7BD,EAAWoB,OAAS,GACtBhC,EAAMU,SAASE,GAEbC,EAAcmB,OAAS,GAAKhC,EAAMiC,mBACpCjC,EAAMiC,kBAAkBpB,EAE5B,EAoBA,MAAO,CACLqB,WAAY,CACVC,IAAKlC,EACLyB,KAAM,OACNU,UAAW,SACXC,OAAQ9B,EAAc+B,KAAK,KAC3BC,SAAU,SAACC,GACT,GAAIA,EAAEC,OAAO9B,MAAO,CAClB,IAAM+B,EAAgBC,MAAMC,KAAKJ,EAAEC,OAAO9B,OAC1CD,EAASgC,EACX,CACF,GAEFrC,WAAUA,EACVwC,eAAgB,CACdC,QAAS,WAAA,IAAA3C,EAAM,OAAgB,QAAhBA,EAAAF,EAAS8C,eAAO,IAAA5C,OAAA,EAAAA,EAAE6C,OAAO,EACxCC,OAlCe,SAACT,GAGlB,GAFAA,EAAEU,iBACF5C,GAAc,GACVkC,EAAEW,aAAaxC,MAAO,CACxB,IAAMyC,EAAeT,MAAMC,KAAKJ,EAAEW,aAAaxC,OAC/CD,EAAS0C,EACX,CACF,EA4BIC,WA1BmB,SAACb,GACtBA,EAAEU,iBACF5C,GAAc,EAChB,EAwBIgD,YAtBoB,SAACd,GACvBlC,GAAc,EAChB,GAuBF"}
1
+ {"version":3,"file":"hook.js","sources":["../../../../src/file-uploader/hook.ts"],"sourcesContent":["import { useRef, useState } from \"react\";\n\n// Type returned by useRef<T>(null).\n// React 18: RefObject<T> (current: T | null) / React 19: RefObject<T | null>\ntype NullableRefObject<T> = null extends React.RefObject<T>[\"current\"]\n ? React.RefObject<T>\n : React.RefObject<T | null>;\n\ninterface IPropsFileUploader {\n addFiles: (files: File[]) => void;\n onValidationError?: (rejectedFiles: File[]) => void;\n acceptedFileTypes?: string[];\n allowedExtensions?: string[];\n maxFileSize?: number;\n}\n\ninterface IReturnFileUploader {\n inputProps: {\n ref: NullableRefObject<HTMLInputElement>;\n type: \"file\";\n accept?: string;\n className?: string;\n onChange: React.ChangeEventHandler<HTMLInputElement>;\n };\n isDragging: boolean;\n dropSpaceProps: {\n onClick?: React.MouseEventHandler;\n onDrop: (e: React.DragEvent) => void;\n onDragOver: (e: React.DragEvent) => void;\n onDragLeave: (e: React.DragEvent) => void;\n };\n}\n\n// Default accepted file types\nconst DEFAULT_ACCEPTED_TYPES = [\n \"image/*\", // image\n \"text/*\", // .txt\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\", // .xlsx\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\", // .pptx\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\", // .docx\n \"application/vnd.ms-excel\", // .xls\n \"application/vnd.ms-outlook\", // .msg\n \"application/json\", // .json\n \"application/xml\", // .xml\n \"application/pdf\", // .pdf\n \"application/x-compressed\", // .tgz\n \"application/x-zip-compressed\", // .zip\n \"application/x-gzip\", // .gz\n \"application/x-bzip2\", // .bz2\n \"application/x-tar\", // .tar\n \"application/x-rar-compressed\", // .rar\n \"application/x-7z-compressed\", // .7z\n \"application/zip\", // .zip\n];\n\n// Default allowed extensions\nconst DEFAULT_ALLOWED_EXTENSIONS = [\n \".msg\",\n \".jpg\",\n \".jpeg\",\n \".png\",\n \".pdf\",\n \".xlsx\",\n \".docx\",\n \".txt\",\n \".zip\",\n];\n\nexport function useFileUploader(\n props: IPropsFileUploader\n): IReturnFileUploader {\n const inputRef = useRef<HTMLInputElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n // When only one of the two lists is given, files are checked against that\n // list alone, so e.g. `allowedExtensions: [\".pdf\"]` accepts only PDFs.\n // With neither (or both), a file passes if it matches either list.\n const extensionOnly =\n props.allowedExtensions !== undefined &&\n props.acceptedFileTypes === undefined;\n const typeOnly =\n props.acceptedFileTypes !== undefined &&\n props.allowedExtensions === undefined;\n\n const acceptedTypes = extensionOnly\n ? []\n : props.acceptedFileTypes ?? DEFAULT_ACCEPTED_TYPES;\n const allowedExtensions = typeOnly\n ? []\n : props.allowedExtensions ?? DEFAULT_ALLOWED_EXTENSIONS;\n\n const matchesExtension = (file: File) => {\n const dot = file.name.lastIndexOf(\".\");\n if (dot <= 0) return false;\n\n const extension = file.name.slice(dot + 1).toLowerCase();\n return allowedExtensions.some(\n (ext) => ext.toLowerCase().replace(/^\\./, \"\") === extension\n );\n };\n\n const matchesType = (file: File) =>\n acceptedTypes.some((type) => {\n if (type.endsWith(\"/*\")) {\n const mainType = type.split(\"/\")[0];\n return file.type.startsWith(`${mainType}/`);\n }\n return file.type === type;\n });\n\n const validateFiles = (\n files: File[]\n ): { validFiles: File[]; rejectedFiles: File[] } => {\n const validFiles: File[] = [];\n const rejectedFiles: File[] = [];\n\n files.forEach((file) => {\n // Check file size if maxFileSize is specified\n if (props.maxFileSize && file.size > props.maxFileSize) {\n rejectedFiles.push(file);\n return;\n }\n\n if (matchesExtension(file) || matchesType(file)) {\n validFiles.push(file);\n } else {\n rejectedFiles.push(file);\n }\n });\n\n return { validFiles, rejectedFiles };\n };\n\n const addFiles = (files: File[]) => {\n const { validFiles, rejectedFiles } = validateFiles(files);\n if (validFiles.length > 0) {\n props.addFiles(validFiles);\n }\n if (rejectedFiles.length > 0 && props.onValidationError) {\n props.onValidationError(rejectedFiles);\n }\n };\n\n const handleDrop = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n if (e.dataTransfer.files) {\n const droppedFiles = Array.from(e.dataTransfer.files);\n addFiles(droppedFiles);\n }\n };\n\n const handleDragOver = (e: React.DragEvent) => {\n e.preventDefault();\n setIsDragging(true);\n };\n\n const handleDragLeave = (e: React.DragEvent) => {\n setIsDragging(false);\n };\n\n return {\n inputProps: {\n ref: inputRef,\n type: \"file\",\n className: \"hidden\",\n // List extensions too, so that files without a known MIME type (such as\n // .msg) can be picked in the file dialog.\n accept: [\n ...allowedExtensions.map((ext) =>\n ext.startsWith(\".\") ? ext : `.${ext}`\n ),\n ...acceptedTypes,\n ].join(\",\"),\n onChange: (e) => {\n if (e.target.files) {\n const selectedFiles = Array.from(e.target.files);\n addFiles(selectedFiles);\n }\n // Clear the value so that picking the same file again fires onChange.\n e.target.value = \"\";\n },\n },\n isDragging,\n dropSpaceProps: {\n onClick: () => inputRef.current?.click(),\n onDrop: handleDrop,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n },\n };\n}\n"],"names":["DEFAULT_ACCEPTED_TYPES","DEFAULT_ALLOWED_EXTENSIONS","useFileUploader","props","inputRef","useRef","_c","useState","isDragging","setIsDragging","extensionOnly","undefined","allowedExtensions","acceptedFileTypes","typeOnly","acceptedTypes","_a","_b","validateFiles","files","validFiles","rejectedFiles","forEach","file","maxFileSize","size","push","dot","name","lastIndexOf","extension","slice","toLowerCase","some","ext","replace","matchesExtension","type","endsWith","mainType","split","startsWith","concat","matchesType","addFiles","length","onValidationError","inputProps","ref","className","accept","__spreadArray","map","join","onChange","e","target","selectedFiles","Array","from","value","dropSpaceProps","onClick","current","click","onDrop","preventDefault","dataTransfer","droppedFiles","onDragOver","onDragLeave"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as e,jsxs as n}from"react/jsx-runtime";import{memo as t,useRef as r,useEffect as i}from"react";import{SelectBoxProvider as o}from"../../select-box/provider.js";import"../id-generator/context.js";import{IdGeneratorProvider as l}from"../id-generator/provider.js";import{ConditionInputProvider as s}from"./condition-input-management/provider.js";import"./condition-input-management/context.js";import{ConditionList as a}from"./condition-list.js";import{SearchBarInputForm as c}from"./input-form.js";import{BiSearchAlt as d}from"../../../node_modules/react-icons/bi/index.js";var m=t((function(n){return e(o,{children:e(l,{id:n.id,children:e(s,{targets:n.targets,onChangeCondition:n.onChangeCondition,children:e(p,{size:n.size,conditions:n.conditions})})})})}));function p(t){var o=r(null);return i((function(){if(o.current){var e=o.current,n=function(n){0!==n.deltaY&&(n.preventDefault(),e.scrollLeft+=n.deltaY)};return e.addEventListener("wheel",n),function(){e.removeEventListener("wheel",n)}}}),[o]),n("div",{className:"flex items-center gap-1 w-full px-2 py-1 bg-white border border-slate-700 rounded-md text-gray-800 ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),children:[e("div",{className:"px-2",children:e(d,{className:"text-slate-600"})}),n("div",{ref:o,className:"relative flex w-full items-center gap-1 overflow-x-auto teppen-no-scrollbar",children:[e("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e(a,{conditions:t.conditions}),e("div",{className:"flex items-center min-w-64 w-full",children:e(c,{size:t.size})})]})]})}export{m as ConditionSearchBar,p as SearchBar};
1
+ "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import{memo as t,useRef as r,useEffect as i}from"react";import{SelectBoxProvider as o}from"../../select-box/provider.js";import"../id-generator/context.js";import{IdGeneratorProvider as l}from"../id-generator/provider.js";import{ConditionInputProvider as s}from"./condition-input-management/provider.js";import"./condition-input-management/context.js";import{ConditionList as a}from"./condition-list.js";import{SearchBarInputForm as c}from"./input-form.js";import{BiSearchAlt as d}from"../../../node_modules/react-icons/bi/index.js";var m=t((function(n){return e(o,{children:e(l,{id:n.id,children:e(s,{targets:n.targets,onChangeCondition:n.onChangeCondition,children:e(p,{size:n.size,conditions:n.conditions})})})})}));function p(t){var o=r(null);return i((function(){if(o.current){var e=o.current,n=function(n){0!==n.deltaY&&(n.preventDefault(),e.scrollLeft+=n.deltaY)};return e.addEventListener("wheel",n),function(){e.removeEventListener("wheel",n)}}}),[o]),n("div",{className:"flex items-center gap-1 w-full px-2 py-1 bg-white border border-slate-700 rounded-md text-gray-800 ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),children:[e("div",{className:"px-2",children:e(d,{className:"text-slate-600"})}),n("div",{ref:o,className:"relative flex w-full items-center gap-1 overflow-x-auto teppen-no-scrollbar",children:[e("style",{children:"\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n "}),e(a,{conditions:t.conditions}),e("div",{className:"flex items-center min-w-64 w-full",children:e(c,{size:t.size})})]})]})}export{m as ConditionSearchBar,p as SearchBar};
3
2
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"base.js","sources":["../../../../../src/search-bar/condition-search-bar/base.tsx"],"sourcesContent":["\"use client\";\n\nimport { memo, useEffect, useRef } from \"react\";\nimport { SelectBoxProvider } from \"../../select-box/provider\";\nimport { IdGeneratorProvider } from \"../id-generator\";\nimport { ConditionInputProvider } from \"./condition-input-management\";\nimport {\n Condition,\n Target,\n TConditionChangeAction,\n} from \"./condition-input-management/type\";\nimport { ConditionList } from \"./condition-list\";\nimport { SearchBarInputForm } from \"./input-form\";\nimport { BiSearchAlt } from \"react-icons/bi\";\n\ninterface SearcchBarProps {\n size: \"small\" | \"medium\" | \"large\";\n conditions: Condition[];\n}\n\ninterface ConditionSearchBarProps extends SearcchBarProps {\n id: string;\n targets: Target[];\n onChangeCondition: (action: TConditionChangeAction) => void;\n}\n\nexport const ConditionSearchBar = memo(function CS(\n props: ConditionSearchBarProps\n) {\n return (\n <SelectBoxProvider>\n <IdGeneratorProvider id={props.id}>\n <ConditionInputProvider\n targets={props.targets}\n onChangeCondition={props.onChangeCondition}\n >\n <SearchBar size={props.size} conditions={props.conditions} />\n </ConditionInputProvider>\n </IdGeneratorProvider>\n </SelectBoxProvider>\n );\n});\n\nexport function SearchBar(props: SearcchBarProps) {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n const scrollX = (e: WheelEvent) => {\n if (e.deltaY === 0) return;\n\n e.preventDefault();\n element.scrollLeft += e.deltaY;\n };\n\n element.addEventListener(\"wheel\", scrollX);\n\n return () => {\n element.removeEventListener(\"wheel\", scrollX);\n };\n }\n }, [ref]);\n\n return (\n <div\n className={`flex items-center gap-1 w-full px-2 py-1 bg-white border border-slate-700 rounded-md text-gray-800 ${\n props.size === \"small\"\n ? \"text-sm\"\n : props.size === \"large\"\n ? \"text-lg\"\n : \"\"\n }`}\n >\n <div className=\"px-2\">\n <BiSearchAlt className=\"text-slate-600\" />\n </div>\n <div\n ref={ref}\n className=\"relative flex w-full items-center gap-1 overflow-x-auto teppen-no-scrollbar\"\n >\n <style>{`\n .teppen-no-scrollbar {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .teppen-no-scrollbar::-webkit-scrollbar {\n display: none;\n }\n `}</style>\n <ConditionList conditions={props.conditions} />\n <div className=\"flex items-center min-w-64 w-full\">\n <SearchBarInputForm size={props.size} />\n </div>\n </div>\n </div>\n );\n}\n"],"names":["ConditionSearchBar","memo","props","_jsx","SelectBoxProvider","children","IdGeneratorProvider","id","ConditionInputProvider","targets","onChangeCondition","SearchBar","size","conditions","ref","useRef","useEffect","current","element_1","scrollX_1","e","deltaY","preventDefault","scrollLeft","addEventListener","removeEventListener","_jsxs","className","BiSearchAlt","ConditionList","SearchBarInputForm"],"mappings":"wlBA0BaA,EAAqBC,GAAK,SACrCC,GAEA,OACEC,EAACC,EAAiB,CAAAC,SAChBF,EAACG,EAAmB,CAACC,GAAIL,EAAMK,GAAEF,SAC/BF,EAACK,EAAsB,CACrBC,QAASP,EAAMO,QACfC,kBAAmBR,EAAMQ,kBAAiBL,SAE1CF,EAACQ,EAAS,CAACC,KAAMV,EAAMU,KAAMC,WAAYX,EAAMW,kBAKzD,IAEM,SAAUF,EAAUT,GACxB,IAAMY,EAAMC,EAAuB,MAqBnC,OAnBAC,GAAU,WACR,GAAIF,EAAIG,QAAS,CACf,IAAMC,EAAUJ,EAAIG,QAEdE,EAAU,SAACC,GACE,IAAbA,EAAEC,SAEND,EAAEE,iBACFJ,EAAQK,YAAcH,EAAEC,OAC1B,EAIA,OAFAH,EAAQM,iBAAiB,QAASL,GAE3B,WACLD,EAAQO,oBAAoB,QAASN,EACvC,CACF,CACF,GAAG,CAACL,IAGFY,SACEC,UAAW,6GACM,UAAfzB,EAAMU,KACF,UACe,UAAfV,EAAMU,KACN,UACA,IACJP,SAAA,CAEFF,EAAA,MAAA,CAAKwB,UAAU,OAAMtB,SACnBF,EAACyB,EAAW,CAACD,UAAU,qBAEzBD,EAAA,MAAA,CACEZ,IAAKA,EACLa,UAAU,8EAA6EtB,SAAA,CAEvFF,EAAA,QAAA,CAAAE,SAAQ,uOASRF,EAAC0B,EAAa,CAAChB,WAAYX,EAAMW,aACjCV,EAAA,MAAA,CAAKwB,UAAU,oCAAmCtB,SAChDF,EAAC2B,EAAkB,CAAClB,KAAMV,EAAMU,cAK1C"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useConditionInputAction as a}from"./condition-input-management/context.js";import"react";import"../../../node_modules/tslib/tslib.es6.js";import{TiDeleteOutline as n}from"../../../node_modules/react-icons/ti/index.js";function o(t){return e("div",{className:"flex gap-1",children:t.conditions.map((function(t,a){return e(r,{index:a,condition:t},a)}))})}function r(o){var r=a().deleteCondition;return t("div",{className:"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow",children:[e("p",{className:"whitespace-nowrap",children:c(o.condition)}),e("div",{children:e(n,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:function(){return r(o.index)}})})]})}function c(e){var t;switch(e.input.type){case"none":return"".concat(e.target.label," ").concat(e.operator.label);case"single string":case"single number":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value);case"single date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.toLocaleDateString());case"single datetime":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.toLocaleString());case"range string":case"range number":case"range date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.from," ~ ").concat(e.input.payload.to);case"select":if("select"!==e.target.type)throw new Error("type error");var a=e.input.payload.value;return"".concat(e.target.label," ").concat(e.operator.label," ").concat(null===(t=e.target.options.find((function(e){return e.value===a})))||void 0===t?void 0:t.label);case"multi select":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.join(", "))}}export{o as ConditionList};
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useConditionInputAction as a}from"./condition-input-management/context.js";import"react";import"../../../node_modules/tslib/tslib.es6.js";import{TiDeleteOutline as n}from"../../../node_modules/react-icons/ti/index.js";function o(t){return e("div",{className:"flex gap-1",children:t.conditions.map((function(t,a){return e(r,{index:a,condition:t},a)}))})}function r(o){var r=a().deleteCondition;return t("div",{className:"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow",children:[e("p",{className:"whitespace-nowrap",children:c(o.condition)}),e("div",{children:e(n,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:function(){return r(o.index)}})})]})}function c(e){var t;switch(e.input.type){case"none":return"".concat(e.target.label," ").concat(e.operator.label);case"single string":case"single number":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value);case"single date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.toLocaleDateString());case"single datetime":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.toLocaleString());case"range string":case"range number":case"range date":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.from," ~ ").concat(e.input.payload.to);case"select":if("select"!==e.target.type)throw new Error("type error");var a=e.input.payload.value;return"".concat(e.target.label," ").concat(e.operator.label," ").concat(null===(t=e.target.options.find((function(e){return e.value===a})))||void 0===t?void 0:t.label);case"multi select":return"".concat(e.target.label," ").concat(e.operator.label," ").concat(e.input.payload.value.join(", "))}}export{o as ConditionList};
3
2
  //# sourceMappingURL=condition-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"condition-list.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"condition-list.js","sources":["../../../../../src/search-bar/condition-search-bar/condition-list.tsx"],"sourcesContent":["\"use client\";\n\nimport { useConditionInputAction } from \"./condition-input-management\";\nimport { TiDeleteOutline } from \"react-icons/ti\";\nimport { Condition } from \"./condition-input-management/type\";\n\ninterface IPropsConditionList {\n conditions: Condition[];\n}\n\nexport function ConditionList(props: IPropsConditionList) {\n return (\n <div className=\"flex gap-1\">\n {props.conditions.map((c, i) => (\n <FixedValue key={i} index={i} condition={c} />\n ))}\n </div>\n );\n}\n\nfunction FixedValue(props: { condition: Condition; index: number }) {\n const { deleteCondition } = useConditionInputAction();\n\n return (\n <div className=\"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow\">\n <p className=\"whitespace-nowrap\">{getLabel(props.condition)}</p>\n <div>\n <TiDeleteOutline\n className=\"bg-white hover:bg-slate-300 rounded-full cursor-pointer\"\n onClick={() => deleteCondition(props.index)}\n />\n </div>\n </div>\n );\n}\n\nfunction getLabel(condition: Condition): string {\n switch (condition.input.type) {\n case \"none\":\n return `${condition.target.label} ${condition.operator.label}`;\n case \"single string\":\n return `${condition.target.label} ${condition.operator.label} ${condition.input.payload.value}`;\n case \"single number\":\n return `${condition.target.label} ${condition.operator.label} ${condition.input.payload.value}`;\n case \"single date\":\n return `${condition.target.label} ${\n condition.operator.label\n } ${condition.input.payload.value.toLocaleDateString()}`;\n case \"single datetime\":\n return `${condition.target.label} ${\n condition.operator.label\n } ${condition.input.payload.value.toLocaleString()}`;\n case \"range string\":\n return `${condition.target.label} ${condition.operator.label} ${condition.input.payload.from} ~ ${condition.input.payload.to}`;\n case \"range number\":\n return `${condition.target.label} ${condition.operator.label} ${condition.input.payload.from} ~ ${condition.input.payload.to}`;\n case \"range date\":\n return `${condition.target.label} ${condition.operator.label} ${condition.input.payload.from} ~ ${condition.input.payload.to}`;\n case \"select\":\n if (condition.target.type !== \"select\") {\n throw new Error(\"type error\");\n }\n\n const selectedKey = condition.input.payload.value;\n return `${condition.target.label} ${condition.operator.label} ${\n condition.target.options.find((o) => o.value === selectedKey)?.label\n }`;\n case \"multi select\":\n return `${condition.target.label} ${\n condition.operator.label\n } ${condition.input.payload.value.join(\", \")}`;\n }\n}\n"],"names":["ConditionList","props","_jsx","className","conditions","map","c","i","FixedValue","index","condition","deleteCondition","useConditionInputAction","_jsxs","children","getLabel","TiDeleteOutline","onClick","input","type","concat","target","label","operator","payload","value","toLocaleDateString","toLocaleString","from","to","Error","selectedKey_1","_a","options","find","o","join"],"mappings":"gSAUM,SAAUA,EAAcC,GAC5B,OACEC,EAAA,MAAA,CAAKC,UAAU,sBACZF,EAAMG,WAAWC,KAAI,SAACC,EAAGC,GAAM,OAC9BL,EAACM,GAAmBC,MAAOF,EAAGG,UAAWJ,GAAxBC,EADa,KAKtC,CAEA,SAASC,EAAWP,GACV,IAAAU,EAAoBC,oBAE5B,OACEC,EAAA,MAAA,CAAKV,UAAU,4EAA2EW,SAAA,CACxFZ,OAAGC,UAAU,oBAAmBW,SAAEC,EAASd,EAAMS,aACjDR,EAAA,MAAA,CAAAY,SACEZ,EAACc,EAAe,CACdb,UAAU,0DACVc,QAAS,WAAM,OAAAN,EAAgBV,EAAMQ,MAAtB,QAKzB,CAEA,SAASM,EAASL,SAChB,OAAQA,EAAUQ,MAAMC,MACtB,IAAK,OACH,MAAO,GAAAC,OAAGV,EAAUW,OAAOC,MAAK,KAAAF,OAAIV,EAAUa,SAASD,OACzD,IAAK,gBAEL,IAAK,gBACH,MAAO,GAAAF,OAAGV,EAAUW,OAAOC,MAAK,KAAAF,OAAIV,EAAUa,SAASD,MAAK,KAAAF,OAAIV,EAAUQ,MAAMM,QAAQC,OAC1F,IAAK,cACH,MAAO,GAAAL,OAAGV,EAAUW,OAAOC,MAAK,KAAAF,OAC9BV,EAAUa,SAASD,kBACjBZ,EAAUQ,MAAMM,QAAQC,MAAMC,sBACpC,IAAK,kBACH,MAAO,GAAAN,OAAGV,EAAUW,OAAOC,MAAK,KAAAF,OAC9BV,EAAUa,SAASD,kBACjBZ,EAAUQ,MAAMM,QAAQC,MAAME,kBACpC,IAAK,eAEL,IAAK,eAEL,IAAK,aACH,MAAO,GAAAP,OAAGV,EAAUW,OAAOC,MAAK,KAAAF,OAAIV,EAAUa,SAASD,MAAK,KAAAF,OAAIV,EAAUQ,MAAMM,QAAQI,KAAI,OAAAR,OAAMV,EAAUQ,MAAMM,QAAQK,IAC5H,IAAK,SACH,GAA8B,WAA1BnB,EAAUW,OAAOF,KACnB,MAAM,IAAIW,MAAM,cAGlB,IAAMC,EAAcrB,EAAUQ,MAAMM,QAAQC,MAC5C,MAAO,UAAGf,EAAUW,OAAOC,MAAK,KAAAF,OAAIV,EAAUa,SAASD,MAAK,KAAAF,OACG,QAA7DY,EAAAtB,EAAUW,OAAOY,QAAQC,MAAK,SAACC,GAAM,OAAAA,EAAEV,QAAUM,CAAZ,WAAwB,IAAAC,OAAA,EAAAA,EAAEV,OAEnE,IAAK,eACH,MAAO,GAAAF,OAAGV,EAAUW,OAAOC,MAAK,KAAAF,OAC9BV,EAAUa,SAASD,MAAK,KAAAF,OACtBV,EAAUQ,MAAMM,QAAQC,MAAMW,KAAK,OAE7C"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useState as i,useRef as o,useEffect as r}from"react";import{SelectBox as a}from"../../select-box/index.js";import{useConditionInputState as u,useConditionInputAction as l}from"./condition-input-management/context.js";import"../../../node_modules/tslib/tslib.es6.js";import{useIdGenerator as p}from"../id-generator/context.js";import{TiDeleteOutline as c}from"../../../node_modules/react-icons/ti/index.js";function s(t){switch(u().status){case"waiting for input":return e(d,{});case"inputted target":return e(g,{});case"inputted operator":return e(f,{size:t.size})}}function d(){var t=p().generateId,n=u().targets,i=l().inputTarget;return e(a,{id:t("TargetInput"),onSelect:function(e){i(e)},options:n.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function g(){var i=p().generateId,o=u(),r=l(),c=r.inputOperator,s=r.removeInputedTarget;if("inputted target"!==o.status)return null;var d=o.inputtingCondition.target,g=o.useableOperators;return t(n,{children:[e(T,{label:d.label,onClickDelete:function(){s()}}),e("div",{className:"w-full min-w-64",children:e(a,{id:i("OperatorInput"),onSelect:function(e){c(e),setTimeout((function(){var e=document.getElementById(i("ValueInput"));e&&e.focus()}),10)},options:g.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function f(i){var o=u(),r=l(),a=r.removeInputedOperator,p=r.removeInputedTarget;if("inputted operator"!==o.status)return null;var c=o.inputtingCondition.target,s=o.inputtingCondition.operator;return t(n,{children:[e(T,{label:c.label,onClickDelete:function(){p()}}),e(T,{label:s.label,onClickDelete:function(){a()}}),"single string"===o.inputtingCondition.operator.inputType?e(m,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single number"===o.inputtingCondition.operator.inputType?e(y,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"select"===o.inputtingCondition.operator.inputType?e(v,{inputType:o.inputtingCondition.operator.inputType,options:"select"===o.inputtingCondition.target.type?o.inputtingCondition.target.options:[]}):"single datetime"===o.inputtingCondition.operator.inputType?e(b,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single date"===o.inputtingCondition.operator.inputType?e(w,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):console.error("Not implemented")]})}function m(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=l().inputValue;return e("input",{id:n("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(u({type:t.inputType,payload:{value:r}}),a(""))}})}function y(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=l().inputValue;return e("input",{id:n("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(u({type:t.inputType,payload:{value:Number(r)}}),a(""))}})}function v(t){var n=l().inputValue,i=p().generateId;return e("div",{className:"w-full min-w-64",children:e(a,{id:i("ValueInput"),onSelect:function(e){n({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function b(t){var n=p().generateId,i=l().inputValue,a=o(null);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"datetime-local",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,16),onKeyDown:function(e){var n,o;if("Enter"===e.key){var r=new Date(null!==(o=null===(n=a.current)||void 0===n?void 0:n.value)&&void 0!==o?o:"");if(isNaN(r.getTime()))return;i({type:t.inputType,payload:{value:r}})}},onClick:function(e){e.currentTarget.showPicker()}})}function w(t){var n=p().generateId,i=l().inputValue,a=o(null),u=o(!1);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"date",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,10),onKeyDown:function(e){var n;if("Enter"===e.key){if(!(null===(n=a.current)||void 0===n?void 0:n.value))return;var o=a.current.value.split("-"),r=o[0],u=o[1],l=o[2],p=new Date(Number(r),Number(u)-1,Number(l));if(isNaN(p.getTime()))return;i({type:t.inputType,payload:{value:p}})}},onClick:function(e){u.current||(e.currentTarget.showPicker(),u.current=!0)}})}function T(n){return t("div",{className:"flex items-center gap-2 w-fit px-2 border border-gray-200 rounded bg-slate-100",children:[e("p",{className:"whitespace-nowrap",children:n.label}),n.onClickDelete&&e("div",{children:e(c,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:n.onClickDelete})})]})}export{s as SearchBarInputForm};
1
+ "use client";import{jsx as e,jsxs as t,Fragment as n}from"react/jsx-runtime";import{useState as i,useRef as o,useEffect as r}from"react";import{SelectBox as a}from"../../select-box/index.js";import{useConditionInputState as u,useConditionInputAction as l}from"./condition-input-management/context.js";import"../../../node_modules/tslib/tslib.es6.js";import{useIdGenerator as p}from"../id-generator/context.js";import{TiDeleteOutline as c}from"../../../node_modules/react-icons/ti/index.js";function s(t){switch(u().status){case"waiting for input":return e(d,{});case"inputted target":return e(g,{});case"inputted operator":return e(f,{size:t.size})}}function d(){var t=p().generateId,n=u().targets,i=l().inputTarget;return e(a,{id:t("TargetInput"),onSelect:function(e){i(e)},options:n.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function g(){var i=p().generateId,o=u(),r=l(),c=r.inputOperator,s=r.removeInputedTarget;if("inputted target"!==o.status)return null;var d=o.inputtingCondition.target,g=o.useableOperators;return t(n,{children:[e(T,{label:d.label,onClickDelete:function(){s()}}),e("div",{className:"w-full min-w-64",children:e(a,{id:i("OperatorInput"),onSelect:function(e){c(e),setTimeout((function(){var e=document.getElementById(i("ValueInput"));e&&e.focus()}),10)},options:g.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function f(i){var o=u(),r=l(),a=r.removeInputedOperator,p=r.removeInputedTarget;if("inputted operator"!==o.status)return null;var c=o.inputtingCondition.target,s=o.inputtingCondition.operator;return t(n,{children:[e(T,{label:c.label,onClickDelete:function(){p()}}),e(T,{label:s.label,onClickDelete:function(){a()}}),"single string"===o.inputtingCondition.operator.inputType?e(m,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single number"===o.inputtingCondition.operator.inputType?e(y,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"select"===o.inputtingCondition.operator.inputType?e(v,{inputType:o.inputtingCondition.operator.inputType,options:"select"===o.inputtingCondition.target.type?o.inputtingCondition.target.options:[]}):"single datetime"===o.inputtingCondition.operator.inputType?e(b,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):"single date"===o.inputtingCondition.operator.inputType?e(w,{inputType:o.inputtingCondition.operator.inputType,size:i.size}):console.error("Not implemented")]})}function m(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=l().inputValue;return e("input",{id:n("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(u({type:t.inputType,payload:{value:r}}),a(""))}})}function y(t){var n=p().generateId,o=i(""),r=o[0],a=o[1],u=l().inputValue;return e("input",{id:n("ValueInput"),className:"appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"text",placeholder:"Search text",value:r,onChange:function(e){a(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(u({type:t.inputType,payload:{value:Number(r)}}),a(""))}})}function v(t){var n=l().inputValue,i=p().generateId;return e("div",{className:"w-full min-w-64",children:e(a,{id:i("ValueInput"),onSelect:function(e){n({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function b(t){var n=p().generateId,i=l().inputValue,a=o(null);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"datetime-local",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,16),onKeyDown:function(e){var n,o;if("Enter"===e.key){var r=new Date(null!==(o=null===(n=a.current)||void 0===n?void 0:n.value)&&void 0!==o?o:"");if(isNaN(r.getTime()))return;i({type:t.inputType,payload:{value:r}})}},onClick:function(e){e.currentTarget.showPicker()}})}function w(t){var n=p().generateId,i=l().inputValue,a=o(null),u=o(!1);return r((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e("input",{ref:a,id:n("ValueInput"),className:"appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ".concat("small"===t.size?"text-sm":"large"===t.size?"text-lg":""),type:"date",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,10),onKeyDown:function(e){var n;if("Enter"===e.key){if(!(null===(n=a.current)||void 0===n?void 0:n.value))return;var o=a.current.value.split("-"),r=o[0],u=o[1],l=o[2],p=new Date(Number(r),Number(u)-1,Number(l));if(isNaN(p.getTime()))return;i({type:t.inputType,payload:{value:p}})}},onClick:function(e){u.current||(e.currentTarget.showPicker(),u.current=!0)}})}function T(n){return t("div",{className:"flex items-center gap-2 w-fit px-2 border border-gray-200 rounded bg-slate-100",children:[e("p",{className:"whitespace-nowrap",children:n.label}),n.onClickDelete&&e("div",{children:e(c,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:n.onClickDelete})})]})}export{s as SearchBarInputForm};
3
2
  //# sourceMappingURL=input-form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-form.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"input-form.js","sources":["../../../../../src/search-bar/condition-search-bar/input-form.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport { Options, SelectBox } from \"../../select-box\";\nimport {\n useConditionInputAction,\n useConditionInputState,\n} from \"./condition-input-management\";\nimport { useIdGenerator } from \"../id-generator\";\nimport { TiDeleteOutline } from \"react-icons/ti\";\n\nexport function SearchBarInputForm(props: {\n size?: \"small\" | \"medium\" | \"large\";\n}) {\n const { status } = useConditionInputState();\n\n switch (status) {\n case \"waiting for input\":\n return <TargetInputForm />;\n case \"inputted target\":\n return <OperatorInputForm />;\n case \"inputted operator\":\n return <SearchValueInputForm size={props.size} />;\n }\n}\n\nfunction TargetInputForm() {\n const { generateId } = useIdGenerator();\n const { targets } = useConditionInputState();\n const { inputTarget } = useConditionInputAction();\n\n return (\n <SelectBox\n id={generateId(\"TargetInput\")}\n onSelect={(value) => {\n inputTarget(value);\n }}\n options={targets.map((t) => ({\n value: t.key,\n label: t.label,\n }))}\n placeholder=\"Select target\"\n no_appearance\n no_icon\n />\n );\n}\n\nfunction OperatorInputForm() {\n const { generateId } = useIdGenerator();\n const state = useConditionInputState();\n const { inputOperator, removeInputedTarget } = useConditionInputAction();\n\n if (state.status !== \"inputted target\") {\n return null;\n }\n\n const target = state.inputtingCondition.target;\n const operators = state.useableOperators;\n\n return (\n <>\n <FixedValue\n label={target.label}\n onClickDelete={() => {\n removeInputedTarget();\n }}\n />\n <div className=\"w-full min-w-64\">\n <SelectBox\n id={generateId(\"OperatorInput\")}\n onSelect={(value) => {\n inputOperator(value);\n\n setTimeout(() => {\n const element = document.getElementById(generateId(\"ValueInput\"));\n\n if (element) {\n element.focus();\n }\n }, 10);\n }}\n options={operators.map((t) => ({\n value: t.key,\n label: t.label,\n }))}\n defaultIsOpen\n placeholder=\"Select operator\"\n no_appearance\n no_icon\n />\n </div>\n </>\n );\n}\n\nfunction SearchValueInputForm(props: { size?: \"small\" | \"medium\" | \"large\" }) {\n const state = useConditionInputState();\n const { removeInputedOperator, removeInputedTarget } =\n useConditionInputAction();\n\n if (state.status !== \"inputted operator\") {\n return null;\n }\n\n const target = state.inputtingCondition.target;\n const operator = state.inputtingCondition.operator;\n\n return (\n <>\n <FixedValue\n label={target.label}\n onClickDelete={() => {\n removeInputedTarget();\n }}\n />\n <FixedValue\n label={operator.label}\n onClickDelete={() => {\n removeInputedOperator();\n }}\n />\n {state.inputtingCondition.operator.inputType === \"single string\" ? (\n <InputSingleString\n inputType={state.inputtingCondition.operator.inputType}\n size={props.size}\n />\n ) : state.inputtingCondition.operator.inputType === \"single number\" ? (\n <InputSingleNumber\n inputType={state.inputtingCondition.operator.inputType}\n size={props.size}\n />\n ) : state.inputtingCondition.operator.inputType === \"select\" ? (\n <InputSingleSelect\n inputType={state.inputtingCondition.operator.inputType}\n options={\n state.inputtingCondition.target.type === \"select\"\n ? state.inputtingCondition.target.options\n : []\n }\n />\n ) : state.inputtingCondition.operator.inputType === \"single datetime\" ? (\n <InputSingleDatetime\n inputType={state.inputtingCondition.operator.inputType}\n size={props.size}\n />\n ) : state.inputtingCondition.operator.inputType === \"single date\" ? (\n <InputSingleDate\n inputType={state.inputtingCondition.operator.inputType}\n size={props.size}\n />\n ) : (\n console.error(\"Not implemented\")\n )}\n </>\n );\n}\n\nfunction InputSingleString(props: {\n inputType: \"single string\";\n size?: \"small\" | \"medium\" | \"large\";\n}) {\n const { generateId } = useIdGenerator();\n const [value, setValue] = useState(\"\");\n const { inputValue } = useConditionInputAction();\n\n return (\n <input\n id={generateId(\"ValueInput\")}\n className={`appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ${\n props.size === \"small\"\n ? \"text-sm\"\n : props.size === \"large\"\n ? \"text-lg\"\n : \"\"\n }`}\n type=\"text\"\n placeholder=\"Search text\"\n value={value}\n onChange={(e) => {\n setValue(e.target.value);\n }}\n // 文字列が確定し、Enterキーが押されたら値を入力する\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n inputValue({\n type: props.inputType,\n payload: {\n value: value,\n },\n });\n setValue(\"\");\n }\n }}\n />\n );\n}\n\nfunction InputSingleNumber(props: {\n inputType: \"single number\";\n size?: \"small\" | \"medium\" | \"large\";\n}) {\n const { generateId } = useIdGenerator();\n const [value, setValue] = useState(\"\");\n const { inputValue } = useConditionInputAction();\n\n return (\n <input\n id={generateId(\"ValueInput\")}\n className={`appearance-none w-full min-w-64 border-none px-2 py-1 placeholder:text-gray-400 focus:outline-none focus-visible:outline-none bg-transparent ${\n props.size === \"small\"\n ? \"text-sm\"\n : props.size === \"large\"\n ? \"text-lg\"\n : \"\"\n }`}\n type=\"text\"\n placeholder=\"Search text\"\n value={value}\n onChange={(e) => {\n setValue(e.target.value);\n }}\n // 文字列が確定し、Enterキーが押されたら値を入力する\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n inputValue({\n type: props.inputType,\n payload: {\n value: Number(value),\n },\n });\n setValue(\"\");\n }\n }}\n />\n );\n}\n\nfunction InputSingleSelect(props: { inputType: \"select\"; options: Options[] }) {\n const { inputValue } = useConditionInputAction();\n const { generateId } = useIdGenerator();\n\n return (\n <div className=\"w-full min-w-64\">\n <SelectBox\n id={generateId(\"ValueInput\")}\n onSelect={(value) => {\n inputValue({\n type: props.inputType,\n payload: {\n value: value,\n },\n });\n }}\n options={props.options}\n defaultIsOpen\n placeholder=\"Select value\"\n no_appearance\n no_icon\n />\n </div>\n );\n}\n\nfunction InputSingleDatetime(props: {\n inputType: \"single datetime\";\n size?: \"small\" | \"medium\" | \"large\";\n}) {\n const { generateId } = useIdGenerator();\n const { inputValue } = useConditionInputAction();\n const ref = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n element.focus();\n element.scrollIntoView();\n element.click();\n }\n }, []);\n\n return (\n <input\n ref={ref}\n id={generateId(\"ValueInput\")}\n className={`appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ${\n props.size === \"small\"\n ? \"text-sm\"\n : props.size === \"large\"\n ? \"text-lg\"\n : \"\"\n }`}\n type=\"datetime-local\"\n defaultValue={new Date(\n new Date().getTime() - new Date().getTimezoneOffset() * 60000\n )\n .toISOString()\n .slice(0, 16)}\n // Enterキーが押されたら値を入力する\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n const value = new Date(ref.current?.value ?? \"\");\n\n if (isNaN(value.getTime())) {\n return;\n }\n\n inputValue({\n type: props.inputType,\n payload: {\n value,\n },\n });\n }\n }}\n onClick={(e) => {\n e.currentTarget.showPicker();\n }}\n />\n );\n}\n\nfunction InputSingleDate(props: {\n inputType: \"single date\";\n size?: \"small\" | \"medium\" | \"large\";\n}) {\n const { generateId } = useIdGenerator();\n const { inputValue } = useConditionInputAction();\n const ref = useRef<HTMLInputElement>(null);\n const isClicked = useRef(false);\n\n useEffect(() => {\n if (ref.current) {\n const element = ref.current;\n\n element.focus();\n element.scrollIntoView();\n element.click();\n }\n }, []);\n\n return (\n <input\n ref={ref}\n id={generateId(\"ValueInput\")}\n className={`appearance-none w-fit min-w-64 border-none px-2 py-1 focus:outline-none focus-visible:outline-none bg-transparent ${\n props.size === \"small\"\n ? \"text-sm\"\n : props.size === \"large\"\n ? \"text-lg\"\n : \"\"\n }`}\n type=\"date\"\n defaultValue={new Date(\n new Date().getTime() - new Date().getTimezoneOffset() * 60000\n )\n .toISOString()\n .slice(0, 10)}\n // Enterキーが押されたら値を入力する\n onKeyDown={(e) => {\n if (e.key === \"Enter\") {\n if (!ref.current?.value) {\n return;\n }\n\n const [year, month, date] = ref.current.value.split(\"-\");\n const value = new Date(Number(year), Number(month) - 1, Number(date));\n\n if (isNaN(value.getTime())) {\n return;\n }\n\n inputValue({\n type: props.inputType,\n payload: {\n value,\n },\n });\n }\n }}\n onClick={(e) => {\n if (isClicked.current) {\n return;\n }\n\n e.currentTarget.showPicker();\n isClicked.current = true;\n }}\n />\n );\n}\n\nfunction FixedValue(props: { label: string; onClickDelete?: () => void }) {\n return (\n <div className=\"flex items-center gap-2 w-fit px-2 border border-gray-200 rounded bg-slate-100\">\n <p className=\"whitespace-nowrap\">{props.label}</p>\n {props.onClickDelete && (\n <div>\n <TiDeleteOutline\n className=\"bg-white hover:bg-slate-300 rounded-full cursor-pointer\"\n onClick={props.onClickDelete}\n />\n </div>\n )}\n </div>\n );\n}\n"],"names":["SearchBarInputForm","props","useConditionInputState","_jsx","TargetInputForm","OperatorInputForm","SearchValueInputForm","size","generateId","useIdGenerator","targets","inputTarget","useConditionInputAction","SelectBox","id","onSelect","value","options","map","t","key","label","placeholder","no_appearance","no_icon","state","_a","inputOperator","removeInputedTarget","status","target","inputtingCondition","operators","useableOperators","_jsxs","_Fragment","children","FixedValue","onClickDelete","className","setTimeout","element","document","getElementById","focus","defaultIsOpen","removeInputedOperator","operator","inputType","InputSingleString","InputSingleNumber","InputSingleSelect","type","InputSingleDatetime","InputSingleDate","console","error","useState","setValue","inputValue","concat","onChange","e","onKeyDown","payload","Number","ref","useRef","useEffect","current","scrollIntoView","click","defaultValue","Date","getTime","getTimezoneOffset","toISOString","slice","_b","isNaN","onClick","currentTarget","showPicker","isClicked","split","year","month","date","TiDeleteOutline"],"mappings":"0eAWM,SAAUA,EAAmBC,GAKjC,OAFmBC,YAGjB,IAAK,oBACH,OAAOC,EAACC,EAAe,IACzB,IAAK,kBACH,OAAOD,EAACE,EAAiB,IAC3B,IAAK,oBACH,OAAOF,EAACG,EAAoB,CAACC,KAAMN,EAAMM,OAE/C,CAEA,SAASH,IACC,IAAAI,EAAeC,eACfC,EAAYR,YACZS,EAAgBC,gBAExB,OACET,EAACU,EAAS,CACRC,GAAIN,EAAW,eACfO,SAAU,SAACC,GACTL,EAAYK,EACd,EACAC,QAASP,EAAQQ,KAAI,SAACC,GAAM,MAAA,CAC1BH,MAAOG,EAAEC,IACTC,MAAOF,EAAEE,MAFiB,IAI5BC,YAAY,gBACZC,eAAa,EACbC,SAAO,GAGb,CAEA,SAASnB,IACC,IAAAG,EAAeC,eACjBgB,EAAQvB,IACRwB,EAAyCd,IAAvCe,EAAaD,EAAAC,cAAEC,EAAmBF,EAAAE,oBAE1C,GAAqB,oBAAjBH,EAAMI,OACR,OAAO,KAGT,IAAMC,EAASL,EAAMM,mBAAmBD,OAClCE,EAAYP,EAAMQ,iBAExB,OACEC,EAAAC,EAAA,CAAAC,SAAA,CACEjC,EAACkC,EAAU,CACThB,MAAOS,EAAOT,MACdiB,cAAe,WACbV,GACF,IAEFzB,EAAA,MAAA,CAAKoC,UAAU,kBAAiBH,SAC9BjC,EAACU,EAAS,CACRC,GAAIN,EAAW,iBACfO,SAAU,SAACC,GACTW,EAAcX,GAEdwB,YAAW,WACT,IAAMC,EAAUC,SAASC,eAAenC,EAAW,eAE/CiC,GACFA,EAAQG,OAEZ,GAAG,GACL,EACA3B,QAASe,EAAUd,KAAI,SAACC,GAAM,MAAA,CAC5BH,MAAOG,EAAEC,IACTC,MAAOF,EAAEE,MAFmB,IAI9BwB,iBACAvB,YAAY,kBACZC,eAAa,EACbC,iBAKV,CAEA,SAASlB,EAAqBL,GAC5B,IAAMwB,EAAQvB,IACRwB,EACJd,IADMkC,EAAqBpB,EAAAoB,sBAAElB,EAAmBF,EAAAE,oBAGlD,GAAqB,sBAAjBH,EAAMI,OACR,OAAO,KAGT,IAAMC,EAASL,EAAMM,mBAAmBD,OAClCiB,EAAWtB,EAAMM,mBAAmBgB,SAE1C,OACEb,EAAAC,EAAA,CAAAC,SAAA,CACEjC,EAACkC,EAAU,CACThB,MAAOS,EAAOT,MACdiB,cAAe,WACbV,GACF,IAEFzB,EAACkC,EAAU,CACThB,MAAO0B,EAAS1B,MAChBiB,cAAe,WACbQ,GACF,IAE+C,kBAAhDrB,EAAMM,mBAAmBgB,SAASC,UACjC7C,EAAC8C,EAAiB,CAChBD,UAAWvB,EAAMM,mBAAmBgB,SAASC,UAC7CzC,KAAMN,EAAMM,OAEoC,kBAAhDkB,EAAMM,mBAAmBgB,SAASC,UACpC7C,EAAC+C,EAAiB,CAChBF,UAAWvB,EAAMM,mBAAmBgB,SAASC,UAC7CzC,KAAMN,EAAMM,OAEoC,WAAhDkB,EAAMM,mBAAmBgB,SAASC,UACpC7C,EAACgD,EAAiB,CAChBH,UAAWvB,EAAMM,mBAAmBgB,SAASC,UAC7C/B,QAC2C,WAAzCQ,EAAMM,mBAAmBD,OAAOsB,KAC5B3B,EAAMM,mBAAmBD,OAAOb,QAChC,KAG0C,oBAAhDQ,EAAMM,mBAAmBgB,SAASC,UACpC7C,EAACkD,EAAmB,CAClBL,UAAWvB,EAAMM,mBAAmBgB,SAASC,UAC7CzC,KAAMN,EAAMM,OAEoC,gBAAhDkB,EAAMM,mBAAmBgB,SAASC,UACpC7C,EAACmD,GACCN,UAAWvB,EAAMM,mBAAmBgB,SAASC,UAC7CzC,KAAMN,EAAMM,OAGdgD,QAAQC,MAAM,qBAItB,CAEA,SAASP,EAAkBhD,GAIjB,IAAAO,EAAeC,eACjBiB,EAAoB+B,EAAS,IAA5BzC,EAAKU,EAAA,GAAEgC,EAAQhC,EAAA,GACdiC,EAAe/C,eAEvB,OACET,EAAA,QAAA,CACEW,GAAIN,EAAW,cACf+B,UAAW,gJAAAqB,OACM,UAAf3D,EAAMM,KACF,UACe,UAAfN,EAAMM,KACN,UACA,IAEN6C,KAAK,OACL9B,YAAY,cACZN,MAAOA,EACP6C,SAAU,SAACC,GACTJ,EAASI,EAAEhC,OAAOd,MACpB,EAEA+C,UAAW,SAACD,GACI,UAAVA,EAAE1C,MACJuC,EAAW,CACTP,KAAMnD,EAAM+C,UACZgB,QAAS,CACPhD,MAAOA,KAGX0C,EAAS,IAEb,GAGN,CAEA,SAASR,EAAkBjD,GAIjB,IAAAO,EAAeC,eACjBiB,EAAoB+B,EAAS,IAA5BzC,EAAKU,EAAA,GAAEgC,EAAQhC,EAAA,GACdiC,EAAe/C,eAEvB,OACET,EAAA,QAAA,CACEW,GAAIN,EAAW,cACf+B,UAAW,gJAAAqB,OACM,UAAf3D,EAAMM,KACF,UACe,UAAfN,EAAMM,KACN,UACA,IAEN6C,KAAK,OACL9B,YAAY,cACZN,MAAOA,EACP6C,SAAU,SAACC,GACTJ,EAASI,EAAEhC,OAAOd,MACpB,EAEA+C,UAAW,SAACD,GACI,UAAVA,EAAE1C,MACJuC,EAAW,CACTP,KAAMnD,EAAM+C,UACZgB,QAAS,CACPhD,MAAOiD,OAAOjD,MAGlB0C,EAAS,IAEb,GAGN,CAEA,SAASP,EAAkBlD,GACjB,IAAA0D,EAAe/C,eACfJ,EAAeC,eAEvB,OACEN,EAAA,MAAA,CAAKoC,UAAU,kBAAiBH,SAC9BjC,EAACU,EAAS,CACRC,GAAIN,EAAW,cACfO,SAAU,SAACC,GACT2C,EAAW,CACTP,KAAMnD,EAAM+C,UACZgB,QAAS,CACPhD,MAAOA,IAGb,EACAC,QAAShB,EAAMgB,QACf4B,eAAa,EACbvB,YAAY,eACZC,eAAa,EACbC,SAAO,KAIf,CAEA,SAAS6B,EAAoBpD,GAInB,IAAAO,EAAeC,eACfkD,EAAe/C,eACjBsD,EAAMC,EAAyB,MAYrC,OAVAC,GAAU,WACR,GAAIF,EAAIG,QAAS,CACf,IAAM5B,EAAUyB,EAAIG,QAEpB5B,EAAQG,QACRH,EAAQ6B,iBACR7B,EAAQ8B,OACV,CACF,GAAG,IAGDpE,WACE+D,IAAKA,EACLpD,GAAIN,EAAW,cACf+B,UAAW,qHAAAqB,OACM,UAAf3D,EAAMM,KACF,UACe,UAAfN,EAAMM,KACN,UACA,IAEN6C,KAAK,iBACLoB,aAAc,IAAIC,MAChB,IAAIA,MAAOC,UAA6C,KAAjC,IAAID,MAAOE,qBAEjCC,cACAC,MAAM,EAAG,IAEZd,UAAW,SAACD,WACV,GAAc,UAAVA,EAAE1C,IAAiB,CACrB,IAAMJ,EAAQ,IAAIyD,KAAuB,QAAlBK,EAAW,QAAXpD,EAAAwC,EAAIG,eAAO,IAAA3C,OAAA,EAAAA,EAAEV,aAAK,IAAA8D,EAAAA,EAAI,IAE7C,GAAIC,MAAM/D,EAAM0D,WACd,OAGFf,EAAW,CACTP,KAAMnD,EAAM+C,UACZgB,QAAS,CACPhD,MAAKA,IAGX,CACF,EACAgE,QAAS,SAAClB,GACRA,EAAEmB,cAAcC,YAClB,GAGN,CAEA,SAAS5B,EAAgBrD,GAIf,IAAAO,EAAeC,eACfkD,EAAe/C,eACjBsD,EAAMC,EAAyB,MAC/BgB,EAAYhB,GAAO,GAYzB,OAVAC,GAAU,WACR,GAAIF,EAAIG,QAAS,CACf,IAAM5B,EAAUyB,EAAIG,QAEpB5B,EAAQG,QACRH,EAAQ6B,iBACR7B,EAAQ8B,OACV,CACF,GAAG,IAGDpE,WACE+D,IAAKA,EACLpD,GAAIN,EAAW,cACf+B,UAAW,qHAAAqB,OACM,UAAf3D,EAAMM,KACF,UACe,UAAfN,EAAMM,KACN,UACA,IAEN6C,KAAK,OACLoB,aAAc,IAAIC,MAChB,IAAIA,MAAOC,UAA6C,KAAjC,IAAID,MAAOE,qBAEjCC,cACAC,MAAM,EAAG,IAEZd,UAAW,SAACD,SACV,GAAc,UAAVA,EAAE1C,IAAiB,CACrB,KAAgB,QAAXM,EAAAwC,EAAIG,eAAO,IAAA3C,OAAA,EAAAA,EAAEV,OAChB,OAGI,IAAA8D,EAAsBZ,EAAIG,QAAQrD,MAAMoE,MAAM,KAA7CC,OAAMC,OAAOC,OACdvE,EAAQ,IAAIyD,KAAKR,OAAOoB,GAAOpB,OAAOqB,GAAS,EAAGrB,OAAOsB,IAE/D,GAAIR,MAAM/D,EAAM0D,WACd,OAGFf,EAAW,CACTP,KAAMnD,EAAM+C,UACZgB,QAAS,CACPhD,MAAKA,IAGX,CACF,EACAgE,QAAS,SAAClB,GACJqB,EAAUd,UAIdP,EAAEmB,cAAcC,aAChBC,EAAUd,SAAU,EACtB,GAGN,CAEA,SAAShC,EAAWpC,GAClB,OACEiC,EAAA,MAAA,CAAKK,UAAU,2FACbpC,EAAA,IAAA,CAAGoC,UAAU,6BAAqBtC,EAAMoB,QACvCpB,EAAMqC,eACLnC,kBACEA,EAACqF,GACCjD,UAAU,0DACVyC,QAAS/E,EAAMqC,oBAM3B"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as r}from"react/jsx-runtime";import{useMemo as t}from"react";import{IdGeneratorContext as n}from"./context.js";function e(e){var o=t((function(){return{generateId:function(r){return"".concat(e.id,":").concat(r)}}}),[]);return r(n.Provider,{value:o,children:e.children})}export{e as IdGeneratorProvider};
1
+ "use client";import{jsx as r}from"react/jsx-runtime";import{useMemo as t}from"react";import{IdGeneratorContext as e}from"./context.js";function n(n){var o=t((function(){return{generateId:function(r){return"".concat(n.id,":").concat(r)}}}),[]);return r(e.Provider,{value:o,children:n.children})}export{n as IdGeneratorProvider};
3
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../../src/search-bar/id-generator/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo } from \"react\";\nimport { IdGeneratorContext } from \"./context\";\nimport { TComponentType } from \"./type\";\n\nexport function IdGeneratorProvider(props: {\n children: React.ReactNode;\n id: string;\n}) {\n const actions = useMemo(\n () => ({\n generateId: (componentType: TComponentType) => {\n return `${props.id}:${componentType}`;\n },\n }),\n []\n );\n\n return (\n <IdGeneratorContext.Provider value={actions}>\n {props.children}\n </IdGeneratorContext.Provider>\n );\n}\n"],"names":["IdGeneratorProvider","props","actions","useMemo","generateId","componentType","id","concat","_jsx","IdGeneratorContext","Provider","value","children"],"mappings":"uIAMM,SAAUA,EAAoBC,GAIlC,IAAMC,EAAUC,GACd,WAAM,MAAA,CACJC,WAAY,SAACC,GACX,MAAO,UAAGJ,EAAMK,GAAE,KAAAC,OAAIF,EACxB,EAHI,GAKN,IAGF,OACEG,EAACC,EAAmBC,SAAQ,CAACC,MAAOT,WACjCD,EAAMW,UAGb"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{__assign as o}from"../../node_modules/tslib/tslib.es6.js";import{jsx as e}from"react/jsx-runtime";import{InputArea as n}from"./parts/input-area.js";import{useCallback as i,useEffect as r}from"react";import{IdProvider as t}from"./id/provider.js";import{IdGenerator as p}from"./lib/id-generator.js";import{SelectBoxFrame as s}from"./parts/frame.js";import{useOptionsWindowActions as a}from"./options-window/context.js";import{SelectBoxProvider as c}from"./provider.js";function d(n){return e(c,{children:e(l,o({},n))})}function l(o){var c=a(),d=c.openOptionsWindow,l=c.closeOptionsWindow,m=i((function(){d(p.generateIdSelectBoxInputArea(o.id),o.options,o.onSelect)}),[o.id,o.options,o.onSelect]),f=i((function(){l()}),[]);return r((function(){o.defaultIsOpen&&m()}),[o.defaultIsOpen]),e(t,{id:o.id,children:e(s,{open:m,close:f,no_icon:o.no_icon,children:e(n,{id:o.id,value:o.value,open:m,close:f,inputRef:o.inputRef,options:o.options,no_appearance:o.no_appearance,placeholder:o.placeholder})})})}export{d as SelectBox};
1
+ "use client";import{__assign as o}from"../../node_modules/tslib/tslib.es6.js";import{jsx as e}from"react/jsx-runtime";import{InputArea as n}from"./parts/input-area.js";import{useCallback as i,useEffect as r}from"react";import{IdProvider as t}from"./id/provider.js";import{IdGenerator as p}from"./lib/id-generator.js";import{SelectBoxFrame as s}from"./parts/frame.js";import{useOptionsWindowActions as c}from"./options-window/context.js";import{SelectBoxProvider as a}from"./provider.js";function d(n){return e(a,{children:e(l,o({},n))})}function l(o){var a=c(),d=a.openOptionsWindow,l=a.closeOptionsWindow,m=i((function(){d(p.generateIdSelectBoxInputArea(o.id),o.options,o.onSelect)}),[o.id,o.options,o.onSelect]),f=i((function(){l()}),[]);return r((function(){o.defaultIsOpen&&m()}),[o.defaultIsOpen]),e(t,{id:o.id,children:e(s,{open:m,close:f,no_icon:o.no_icon,children:e(n,{id:o.id,value:o.value,open:m,close:f,inputRef:o.inputRef,options:o.options,no_appearance:o.no_appearance,placeholder:o.placeholder})})})}export{d as SelectBox};
3
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/select-box/index.tsx"],"sourcesContent":["\"use client\";\n\nimport { InputArea, SelectBoxFrame } from \"./parts\";\nimport { Options, useOptionsWindowActions } from \"./options-window\";\nimport { SelectBoxProvider } from \"./provider\";\nimport { IdProvider } from \"./id/provider\";\nimport { useCallback, useEffect } from \"react\";\nimport { IdGenerator } from \"./lib\";\nexport { type Options } from \"./options-window\";\n\ninterface IPropsSelectBox {\n id: string;\n inputRef?: React.Ref<HTMLInputElement>;\n defaultIsOpen?: boolean;\n options: Options[];\n value?: string;\n onSelect: (value: string) => void;\n no_appearance?: boolean;\n no_icon?: boolean;\n placeholder?: string;\n}\n\nexport function SelectBox(props: IPropsSelectBox) {\n return (\n <SelectBoxProvider>\n <SelectBoxContent {...props} />\n </SelectBoxProvider>\n );\n}\n\nfunction SelectBoxContent(props: IPropsSelectBox) {\n const { openOptionsWindow, closeOptionsWindow } = useOptionsWindowActions();\n\n const open = useCallback(() => {\n openOptionsWindow(\n IdGenerator.generateIdSelectBoxInputArea(props.id),\n props.options,\n props.onSelect\n );\n }, [props.id, props.options, props.onSelect]);\n\n const close = useCallback(() => {\n closeOptionsWindow();\n }, []);\n\n useEffect(() => {\n if (props.defaultIsOpen) {\n open();\n }\n }, [props.defaultIsOpen]);\n\n return (\n <IdProvider id={props.id}>\n <SelectBoxFrame open={open} close={close} no_icon={props.no_icon}>\n <InputArea\n id={props.id}\n value={props.value}\n open={open}\n close={close}\n inputRef={props.inputRef}\n options={props.options}\n no_appearance={props.no_appearance}\n placeholder={props.placeholder}\n />\n </SelectBoxFrame>\n </IdProvider>\n );\n}\n"],"names":["SelectBox","props","_jsx","SelectBoxProvider","children","SelectBoxContent","__assign","_a","useOptionsWindowActions","openOptionsWindow","closeOptionsWindow","open","useCallback","IdGenerator","generateIdSelectBoxInputArea","id","options","onSelect","close","useEffect","defaultIsOpen","IdProvider","SelectBoxFrame","no_icon","InputArea","value","inputRef","no_appearance","placeholder"],"mappings":"ueAsBM,SAAUA,EAAUC,GACxB,OACEC,EAACC,EAAiB,CAAAC,SAChBF,EAACG,EAAgBC,EAAA,CAAA,EAAKL,KAG5B,CAEA,SAASI,EAAiBJ,GAClB,IAAAM,EAA4CC,IAA1CC,EAAiBF,EAAAE,kBAAEC,EAAkBH,EAAAG,mBAEvCC,EAAOC,GAAY,WACvBH,EACEI,EAAYC,6BAA6Bb,EAAMc,IAC/Cd,EAAMe,QACNf,EAAMgB,SAEV,GAAG,CAAChB,EAAMc,GAAId,EAAMe,QAASf,EAAMgB,WAE7BC,EAAQN,GAAY,WACxBF,GACF,GAAG,IAQH,OANAS,GAAU,WACJlB,EAAMmB,eACRT,GAEJ,GAAG,CAACV,EAAMmB,gBAGRlB,EAACmB,EAAU,CAACN,GAAId,EAAMc,GAAEX,SACtBF,EAACoB,EAAc,CAACX,KAAMA,EAAMO,MAAOA,EAAOK,QAAStB,EAAMsB,QAAOnB,SAC9DF,EAACsB,EAAS,CACRT,GAAId,EAAMc,GACVU,MAAOxB,EAAMwB,MACbd,KAAMA,EACNO,MAAOA,EACPQ,SAAUzB,EAAMyB,SAChBV,QAASf,EAAMe,QACfW,cAAe1B,EAAM0B,cACrBC,YAAa3B,EAAM2B,iBAK7B"}
@@ -1,2 +1,2 @@
1
- import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as o}from"react";import{useIdContext as i}from"../id/provider.js";import{IdGenerator as r}from"../lib/id-generator.js";import{useOptionsWindow as l}from"./context.js";function s(){var s=i(),a=l(),c=a.state,u=a.actions,d=n(""),f=d[0],p=d[1],v=n(void 0),m=v[0],g=v[1],y=n({top:0,left:0}),h=y[0],w=y[1],b=c.isOpen?0===c.options.length?void 0:"number"==typeof m&&m<c.options.length&&m>=0?c.options[m].value:void 0:void 0;return o((function(){if(c.isOpen){var e=document.getElementById(r.generateIdSelectBoxOption(s,null!=b?b:""));if(!e)return;if(0===h.top&&0===h.left)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else g(void 0)}),[c,h,b]),o((function(){if(c.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),g((function(e){return"number"==typeof e?Math.min(e+1,c.options.length-1):0}));else if("ArrowUp"===e.key)e.preventDefault(),g((function(e){return"number"==typeof e?Math.max(e-1,0):0}));else if("Enter"===e.key){if(e.preventDefault(),"number"==typeof m){if(0===c.options.length||c.options.length<=m)return;var t=c.options[m].value;if(!t)return;p(t),c.onSelect(t),u.closeOptionsWindow()}}else"Escape"===e.key&&(e.preventDefault(),u.closeOptionsWindow())};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[c,m,g,u]),o((function(){var e=setTimeout((function(){var e;if(c.isOpen){for(var t=null===(e=document.getElementById("ReactUI:SelectBox:OptionsArea"))||void 0===e?void 0:e.parentElement,n=["relative","fixed","absolute","sticky"];t;){var o=n.some((function(e){return t.className.includes(e)})),i=n.some((function(e){return t.style.position.includes(e)}));if(o||i)break;t=t.parentElement}var r=document.getElementById(c.selectBoxId);if(r){var l=r.getBoundingClientRect(),s=l.top+l.height,a=l.left;if(t){var u=t.getBoundingClientRect();w({top:s-u.top+t.scrollTop,left:a-u.left+t.scrollLeft})}else w({top:s+window.scrollY,left:a+window.scrollX})}}}),0);return function(){clearTimeout(e)}}),[c.isOpen]),o((function(){var e=function(e){if(c.isOpen){var t=document.getElementById(c.selectBoxId),n=document.getElementById("ReactUI:SelectBox:OptionsArea"),o=e.target;o instanceof Node&&(null==t?void 0:t.contains(o))||o instanceof Node&&(null==n?void 0:n.contains(o))||(u.setSearchText(""),u.closeOptionsWindow())}};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[c.isOpen]),c.isOpen?e("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:h,children:c.options.map((function(t){var n,o;return e("div",{id:r.generateIdSelectBoxOption(s,null!==(n=t.value)&&void 0!==n?n:""),className:"hover:bg-gray-200 px-2 py-1 ".concat("string"==typeof b?b===t.value?"bg-gray-100":"bg-white":f===t.value?"bg-gray-100":"bg-white"),onClick:function(){c.onSelect(t.value),u.closeOptionsWindow()},children:null!==(o=t.searchLabel)&&void 0!==o?o:t.label},t.value)}))}):e(t,{})}export{s as OptionsArea};
1
+ import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useState as n,useEffect as o}from"react";import{useIdContext as i}from"../id/provider.js";import{IdGenerator as r}from"../lib/id-generator.js";import{useOptionsWindow as l}from"./context.js";function s(){var s=i(),a=l(),c=a.state,u=a.actions,d=n(""),f=d[0],p=d[1],v=n(void 0),m=v[0],g=v[1],y=n({top:0,left:0}),h=y[0],w=y[1],b=c.isOpen?0===c.options.length?void 0:"number"==typeof m&&m<c.options.length&&m>=0?c.options[m].value:void 0:void 0;return o((function(){if(c.isOpen){var e=document.getElementById(r.generateIdSelectBoxOption(s,null!=b?b:""));if(!e)return;if(0===h.top&&0===h.left)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else g(void 0)}),[c,h,b]),o((function(){if(c.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),g((function(e){return"number"==typeof e?Math.min(e+1,c.options.length-1):0}));else if("ArrowUp"===e.key)e.preventDefault(),g((function(e){return"number"==typeof e?Math.max(e-1,0):0}));else if("Enter"===e.key){if(e.preventDefault(),"number"==typeof m){if(0===c.options.length||c.options.length<=m)return;var t=c.options[m].value;if("string"!=typeof t)return;p(t),c.onSelect(t),u.closeOptionsWindow()}}else"Escape"===e.key&&(e.preventDefault(),u.closeOptionsWindow())};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[c,m,g,u]),o((function(){var e=setTimeout((function(){var e;if(c.isOpen){for(var t=null===(e=document.getElementById("ReactUI:SelectBox:OptionsArea"))||void 0===e?void 0:e.parentElement,n=["relative","fixed","absolute","sticky"];t;){var o=n.some((function(e){return t.className.includes(e)})),i=n.some((function(e){return t.style.position.includes(e)}));if(o||i)break;t=t.parentElement}var r=document.getElementById(c.selectBoxId);if(r){var l=r.getBoundingClientRect(),s=l.top+l.height,a=l.left;if(t){var u=t.getBoundingClientRect();w({top:s-u.top+t.scrollTop,left:a-u.left+t.scrollLeft})}else w({top:s+window.scrollY,left:a+window.scrollX})}}}),0);return function(){clearTimeout(e)}}),[c.isOpen]),o((function(){var e=function(e){if(c.isOpen){var t=document.getElementById(c.selectBoxId),n=document.getElementById("ReactUI:SelectBox:OptionsArea"),o=e.target;o instanceof Node&&(null==t?void 0:t.contains(o))||o instanceof Node&&(null==n?void 0:n.contains(o))||(u.setSearchText(""),u.closeOptionsWindow())}};return document.addEventListener("mousedown",e),function(){document.removeEventListener("mousedown",e)}}),[c.isOpen]),c.isOpen?e("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:h,children:c.options.map((function(t){var n,o;return e("div",{id:r.generateIdSelectBoxOption(s,null!==(n=t.value)&&void 0!==n?n:""),className:"hover:bg-gray-200 px-2 py-1 ".concat("string"==typeof b?b===t.value?"bg-gray-100":"bg-white":f===t.value?"bg-gray-100":"bg-white"),onClick:function(){c.onSelect(t.value),u.closeOptionsWindow()},children:null!==(o=t.searchLabel)&&void 0!==o?o:t.label},t.value)}))}):e(t,{})}export{s as OptionsArea};
2
2
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../../../src/select-box/options-window/component.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { useIdContext } from \"../id/provider\";\nimport { IdGenerator } from \"../lib\";\nimport { useOptionsWindow } from \"./context\";\n\nexport function OptionsArea() {\n const id = useIdContext();\n const { state, actions } = useOptionsWindow();\n const [value, setValue] = useState(\"\");\n const [selectingIndex, setSelectingIndex] = useState<number | undefined>(\n undefined\n );\n const [position, setPosition] = useState({ top: 0, left: 0 });\n\n const selectingValue = state.isOpen\n ? state.options.length === 0\n ? undefined\n : typeof selectingIndex === \"number\" &&\n selectingIndex < state.options.length &&\n selectingIndex >= 0\n ? state.options[selectingIndex].value\n : undefined\n : undefined;\n\n useEffect(() => {\n if (state.isOpen) {\n const optionElement = document.getElementById(\n IdGenerator.generateIdSelectBoxOption(id, selectingValue ?? \"\")\n );\n\n if (!optionElement) return;\n if (position.top === 0 && position.left === 0) return;\n\n optionElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n } else {\n setSelectingIndex(undefined);\n }\n }, [state, position, selectingValue]);\n\n useEffect(() => {\n if (state.isOpen) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\"\n ? Math.min(prev + 1, state.options.length - 1)\n : 0\n );\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\" ? Math.max(prev - 1, 0) : 0\n );\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (typeof selectingIndex === \"number\") {\n if (\n state.options.length === 0 ||\n state.options.length <= selectingIndex\n )\n return;\n\n const value = state.options[selectingIndex].value;\n\n if (!value) return;\n\n setValue(value);\n state.onSelect(value);\n actions.closeOptionsWindow();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n actions.closeOptionsWindow();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n }, [state, selectingIndex, setSelectingIndex, actions]);\n\n useEffect(() => {\n const searchParentElement = () => {\n if (state.isOpen) {\n let parentElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n )?.parentElement;\n\n const positionClasses = [\"relative\", \"fixed\", \"absolute\", \"sticky\"];\n\n while (parentElement) {\n const hasPositionClass = positionClasses.some((className) =>\n parentElement!.className.includes(className)\n );\n\n const hasPositionStyle = positionClasses.some((style) =>\n parentElement!.style.position.includes(style)\n );\n\n if (hasPositionClass || hasPositionStyle) break;\n\n parentElement = parentElement.parentElement;\n }\n\n const selectBoxElement = document.getElementById(state.selectBoxId);\n\n if (selectBoxElement) {\n const rect = selectBoxElement.getBoundingClientRect();\n let top = rect.top + rect.height;\n let left = rect.left;\n\n if (parentElement) {\n const parentRect = parentElement.getBoundingClientRect();\n setPosition({\n top: top - parentRect.top + parentElement.scrollTop,\n left: left - parentRect.left + parentElement.scrollLeft,\n });\n } else {\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n });\n }\n }\n }\n };\n\n const timer = setTimeout(searchParentElement, 0);\n\n return () => {\n clearTimeout(timer);\n };\n }, [state.isOpen]);\n\n useEffect(() => {\n const onClickOutOfSelectBox = (e: MouseEvent) => {\n if (!state.isOpen) return;\n\n // SelectBox関連の要素を取得\n const frameElement = document.getElementById(state.selectBoxId);\n const optionsElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n );\n\n // クリックされた要素を取得\n const ele = e.target;\n\n if (ele instanceof Node && frameElement?.contains(ele)) return;\n\n if (ele instanceof Node && optionsElement?.contains(ele)) return;\n\n actions.setSearchText(\"\");\n actions.closeOptionsWindow();\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfSelectBox);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfSelectBox);\n };\n }, [state.isOpen]);\n\n if (!state.isOpen) return <></>;\n\n return (\n <div\n id={\"ReactUI:SelectBox:OptionsArea\"}\n className=\"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10\"\n style={position}\n >\n {state.options.map((option) => (\n <div\n id={IdGenerator.generateIdSelectBoxOption(id, option.value ?? \"\")}\n className={`hover:bg-gray-200 px-2 py-1 ${\n typeof selectingValue === \"string\"\n ? selectingValue === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n : value === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n }`}\n key={option.value}\n onClick={() => {\n state.onSelect(option.value);\n actions.closeOptionsWindow();\n }}\n >\n {option.searchLabel ?? option.label}\n </div>\n ))}\n </div>\n );\n}\n"],"names":["OptionsArea","id","useIdContext","_a","useOptionsWindow","state","actions","_b","useState","value","setValue","_c","undefined","selectingIndex","setSelectingIndex","_d","top","left","position","setPosition","selectingValue","isOpen","options","length","useEffect","optionElement","document","getElementById","IdGenerator","generateIdSelectBoxOption","scrollIntoView","behavior","block","inline","handleKeydown_1","e","key","preventDefault","prev","Math","min","max","value_1","onSelect","closeOptionsWindow","addEventListener","removeEventListener","timer","setTimeout","parentElement_1","parentElement","positionClasses","hasPositionClass","some","className","includes","hasPositionStyle","style","selectBoxElement","selectBoxId","rect","getBoundingClientRect","top_1","height","parentRect","scrollTop","scrollLeft","window","scrollY","scrollX","clearTimeout","onClickOutOfSelectBox","frameElement","optionsElement","ele","target","Node","contains","setSearchText","_jsx","map","option","concat","onClick","children","searchLabel","label"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../../../src/select-box/options-window/component.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { useIdContext } from \"../id/provider\";\nimport { IdGenerator } from \"../lib\";\nimport { useOptionsWindow } from \"./context\";\n\nexport function OptionsArea() {\n const id = useIdContext();\n const { state, actions } = useOptionsWindow();\n const [value, setValue] = useState(\"\");\n const [selectingIndex, setSelectingIndex] = useState<number | undefined>(\n undefined\n );\n const [position, setPosition] = useState({ top: 0, left: 0 });\n\n const selectingValue = state.isOpen\n ? state.options.length === 0\n ? undefined\n : typeof selectingIndex === \"number\" &&\n selectingIndex < state.options.length &&\n selectingIndex >= 0\n ? state.options[selectingIndex].value\n : undefined\n : undefined;\n\n useEffect(() => {\n if (state.isOpen) {\n const optionElement = document.getElementById(\n IdGenerator.generateIdSelectBoxOption(id, selectingValue ?? \"\")\n );\n\n if (!optionElement) return;\n if (position.top === 0 && position.left === 0) return;\n\n optionElement.scrollIntoView({\n behavior: \"smooth\",\n block: \"nearest\",\n inline: \"nearest\",\n });\n } else {\n setSelectingIndex(undefined);\n }\n }, [state, position, selectingValue]);\n\n useEffect(() => {\n if (state.isOpen) {\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\"\n ? Math.min(prev + 1, state.options.length - 1)\n : 0\n );\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setSelectingIndex((prev) =>\n typeof prev === \"number\" ? Math.max(prev - 1, 0) : 0\n );\n } else if (e.key === \"Enter\") {\n e.preventDefault();\n if (typeof selectingIndex === \"number\") {\n if (\n state.options.length === 0 ||\n state.options.length <= selectingIndex\n )\n return;\n\n // \"\" is a valid value (e.g. the option that clears the cell).\n const value = state.options[selectingIndex].value;\n\n if (typeof value !== \"string\") return;\n\n setValue(value);\n state.onSelect(value);\n actions.closeOptionsWindow();\n }\n } else if (e.key === \"Escape\") {\n e.preventDefault();\n actions.closeOptionsWindow();\n }\n };\n\n document.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n }, [state, selectingIndex, setSelectingIndex, actions]);\n\n useEffect(() => {\n const searchParentElement = () => {\n if (state.isOpen) {\n let parentElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n )?.parentElement;\n\n const positionClasses = [\"relative\", \"fixed\", \"absolute\", \"sticky\"];\n\n while (parentElement) {\n const hasPositionClass = positionClasses.some((className) =>\n parentElement!.className.includes(className)\n );\n\n const hasPositionStyle = positionClasses.some((style) =>\n parentElement!.style.position.includes(style)\n );\n\n if (hasPositionClass || hasPositionStyle) break;\n\n parentElement = parentElement.parentElement;\n }\n\n const selectBoxElement = document.getElementById(state.selectBoxId);\n\n if (selectBoxElement) {\n const rect = selectBoxElement.getBoundingClientRect();\n let top = rect.top + rect.height;\n let left = rect.left;\n\n if (parentElement) {\n const parentRect = parentElement.getBoundingClientRect();\n setPosition({\n top: top - parentRect.top + parentElement.scrollTop,\n left: left - parentRect.left + parentElement.scrollLeft,\n });\n } else {\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n });\n }\n }\n }\n };\n\n const timer = setTimeout(searchParentElement, 0);\n\n return () => {\n clearTimeout(timer);\n };\n }, [state.isOpen]);\n\n useEffect(() => {\n const onClickOutOfSelectBox = (e: MouseEvent) => {\n if (!state.isOpen) return;\n\n // SelectBox関連の要素を取得\n const frameElement = document.getElementById(state.selectBoxId);\n const optionsElement = document.getElementById(\n \"ReactUI:SelectBox:OptionsArea\"\n );\n\n // クリックされた要素を取得\n const ele = e.target;\n\n if (ele instanceof Node && frameElement?.contains(ele)) return;\n\n if (ele instanceof Node && optionsElement?.contains(ele)) return;\n\n actions.setSearchText(\"\");\n actions.closeOptionsWindow();\n };\n\n document.addEventListener(\"mousedown\", onClickOutOfSelectBox);\n\n return () => {\n document.removeEventListener(\"mousedown\", onClickOutOfSelectBox);\n };\n }, [state.isOpen]);\n\n if (!state.isOpen) return <></>;\n\n return (\n <div\n id={\"ReactUI:SelectBox:OptionsArea\"}\n className=\"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10\"\n style={position}\n >\n {state.options.map((option) => (\n <div\n id={IdGenerator.generateIdSelectBoxOption(id, option.value ?? \"\")}\n className={`hover:bg-gray-200 px-2 py-1 ${\n typeof selectingValue === \"string\"\n ? selectingValue === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n : value === option.value\n ? \"bg-gray-100\"\n : \"bg-white\"\n }`}\n key={option.value}\n onClick={() => {\n state.onSelect(option.value);\n actions.closeOptionsWindow();\n }}\n >\n {option.searchLabel ?? option.label}\n </div>\n ))}\n </div>\n );\n}\n"],"names":["OptionsArea","id","useIdContext","_a","useOptionsWindow","state","actions","_b","useState","value","setValue","_c","undefined","selectingIndex","setSelectingIndex","_d","top","left","position","setPosition","selectingValue","isOpen","options","length","useEffect","optionElement","document","getElementById","IdGenerator","generateIdSelectBoxOption","scrollIntoView","behavior","block","inline","handleKeydown_1","e","key","preventDefault","prev","Math","min","max","value_1","onSelect","closeOptionsWindow","addEventListener","removeEventListener","timer","setTimeout","parentElement_1","parentElement","positionClasses","hasPositionClass","some","className","includes","hasPositionStyle","style","selectBoxElement","selectBoxId","rect","getBoundingClientRect","top_1","height","parentRect","scrollTop","scrollLeft","window","scrollY","scrollX","clearTimeout","onClickOutOfSelectBox","frameElement","optionsElement","ele","target","Node","contains","setSearchText","_jsx","map","option","concat","onClick","children","searchLabel","label"],"mappings":"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"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as e}from"react/jsx-runtime";import{useMemo as t,useEffect as n}from"react";import{useIdContext as r}from"../id/provider.js";import{IdGenerator as o}from"../lib/id-generator.js";import{useOptionsWindow as a}from"../options-window/context.js";function i(i){var s,c,l,u=r(),p=a(),d=p.state,f=p.actions,v=t((function(){return d.isOpen?i.options.filter((function(e){return e.searchText?e.searchText.toLowerCase().includes(d.searchText.toLowerCase()):e.searchLabel?e.searchLabel.toLowerCase().includes(d.searchText.toLowerCase()):e.label.toLowerCase().includes(d.searchText.toLowerCase())})):[]}),[i.options,d]);n((function(){d.isOpen&&f.setSearchText(d.searchText)}),[d]),n((function(){if(!d.isOpen){var e=document.getElementById(o.generateIdSelectBoxInputArea(i.id));if(e){var t=function(e){"ArrowDown"===e.key&&(e.preventDefault(),i.open())};return e.addEventListener("keydown",t),function(){e.removeEventListener("keydown",t)}}}}),[d,v]);var x=null!==(c=null===(s=i.options.find((function(e){return e.value===i.value})))||void 0===s?void 0:s.label)&&void 0!==c?c:"";return e("input",{id:o.generateIdSelectBoxInputArea(u),ref:i.inputRef,className:"px-2 py-1 placeholder:text-gray-400 ".concat(i.no_appearance?"appearance-none border-none focus:outline-none focus-visible:outline-none bg-transparent w-full":"border border-gray-300 w-full"),type:"text",placeholder:""===x?null!==(l=i.placeholder)&&void 0!==l?l:"選択してください":x,value:d.isOpen?d.searchText:x,onChange:function(e){e.preventDefault(),f.setSearchText(e.target.value)}})}export{i as InputArea};
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import{useMemo as t,useEffect as n}from"react";import{useIdContext as r}from"../id/provider.js";import{IdGenerator as o}from"../lib/id-generator.js";import{useOptionsWindow as a}from"../options-window/context.js";function i(i){var s,c,l,u=r(),p=a(),d=p.state,f=p.actions,v=t((function(){return d.isOpen?i.options.filter((function(e){return e.searchText?e.searchText.toLowerCase().includes(d.searchText.toLowerCase()):e.searchLabel?e.searchLabel.toLowerCase().includes(d.searchText.toLowerCase()):e.label.toLowerCase().includes(d.searchText.toLowerCase())})):[]}),[i.options,d]);n((function(){d.isOpen&&f.setSearchText(d.searchText)}),[d]),n((function(){if(!d.isOpen){var e=document.getElementById(o.generateIdSelectBoxInputArea(i.id));if(e){var t=function(e){"ArrowDown"===e.key&&(e.preventDefault(),i.open())};return e.addEventListener("keydown",t),function(){e.removeEventListener("keydown",t)}}}}),[d,v]);var x=null!==(c=null===(s=i.options.find((function(e){return e.value===i.value})))||void 0===s?void 0:s.label)&&void 0!==c?c:"";return e("input",{id:o.generateIdSelectBoxInputArea(u),ref:i.inputRef,className:"px-2 py-1 placeholder:text-gray-400 ".concat(i.no_appearance?"appearance-none border-none focus:outline-none focus-visible:outline-none bg-transparent w-full":"border border-gray-300 w-full"),type:"text",placeholder:""===x?null!==(l=i.placeholder)&&void 0!==l?l:"選択してください":x,value:d.isOpen?d.searchText:x,onChange:function(e){e.preventDefault(),f.setSearchText(e.target.value)}})}export{i as InputArea};
3
2
  //# sourceMappingURL=input-area.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-area.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"input-area.js","sources":["../../../../../src/select-box/parts/input-area.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useMemo, useState } from \"react\";\nimport { useIdContext } from \"../id/provider\";\nimport { IdGenerator } from \"../lib\";\nimport { Options, useOptionsWindow } from \"../options-window\";\n\ninterface IPropsInputArea {\n id: string;\n inputRef?: React.Ref<HTMLInputElement>;\n open: () => void;\n close: () => void;\n options: Options[];\n no_appearance?: boolean;\n placeholder?: string;\n value?: string;\n}\n\nexport function InputArea(props: IPropsInputArea) {\n const id = useIdContext();\n const { state, actions } = useOptionsWindow();\n\n const searchedOptions = useMemo(() => {\n if (!state.isOpen) {\n return [];\n }\n\n return props.options.filter((option) => {\n if (option.searchText) {\n return option.searchText\n .toLowerCase()\n .includes(state.searchText.toLowerCase());\n } else if (option.searchLabel) {\n return option.searchLabel\n .toLowerCase()\n .includes(state.searchText.toLowerCase());\n } else {\n return option.label\n .toLowerCase()\n .includes(state.searchText.toLowerCase());\n }\n });\n }, [props.options, state]);\n\n useEffect(() => {\n if (state.isOpen) {\n actions.setSearchText(state.searchText);\n }\n }, [state]);\n\n useEffect(() => {\n if (!state.isOpen) {\n const inputElement = document.getElementById(\n IdGenerator.generateIdSelectBoxInputArea(props.id)\n );\n\n if (inputElement) {\n // inputElementにフォーカスされている場合、ArrowDownを押すとOptionsAreaが開く\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n props.open();\n }\n };\n inputElement.addEventListener(\"keydown\", handleKeydown);\n\n return () => {\n inputElement.removeEventListener(\"keydown\", handleKeydown);\n };\n }\n }\n }, [state, searchedOptions]);\n\n const label =\n props.options.find((option) => option.value === props.value)?.label ?? \"\";\n\n return (\n <input\n id={IdGenerator.generateIdSelectBoxInputArea(id)}\n ref={props.inputRef}\n className={`px-2 py-1 placeholder:text-gray-400 ${\n props.no_appearance\n ? \"appearance-none border-none focus:outline-none focus-visible:outline-none bg-transparent w-full\"\n : \"border border-gray-300 w-full\"\n }`}\n type=\"text\"\n placeholder={\n label === \"\" ? props.placeholder ?? \"選択してください\" : label\n }\n value={state.isOpen ? state.searchText : label}\n onChange={(e) => {\n e.preventDefault();\n actions.setSearchText(e.target.value);\n }}\n />\n );\n}\n"],"names":["InputArea","props","id","useIdContext","_d","useOptionsWindow","state","actions","searchedOptions","useMemo","isOpen","options","filter","option","searchText","toLowerCase","includes","searchLabel","label","useEffect","setSearchText","inputElement_1","document","getElementById","IdGenerator","generateIdSelectBoxInputArea","handleKeydown_1","e","key","preventDefault","open","addEventListener","removeEventListener","_b","_a","find","value","_jsx","ref","inputRef","className","concat","no_appearance","type","placeholder","_c","onChange","target"],"mappings":"0QAkBM,SAAUA,EAAUC,aAClBC,EAAKC,IACLC,EAAqBC,IAAnBC,EAAKF,EAAAE,MAAEC,EAAOH,EAAAG,QAEhBC,EAAkBC,GAAQ,WAC9B,OAAKH,EAAMI,OAIJT,EAAMU,QAAQC,QAAO,SAACC,GAC3B,OAAIA,EAAOC,WACFD,EAAOC,WACXC,cACAC,SAASV,EAAMQ,WAAWC,eACpBF,EAAOI,YACTJ,EAAOI,YACXF,cACAC,SAASV,EAAMQ,WAAWC,eAEtBF,EAAOK,MACXH,cACAC,SAASV,EAAMQ,WAAWC,cAEjC,IAjBS,EAkBX,GAAG,CAACd,EAAMU,QAASL,IAEnBa,GAAU,WACJb,EAAMI,QACRH,EAAQa,cAAcd,EAAMQ,WAEhC,GAAG,CAACR,IAEJa,GAAU,WACR,IAAKb,EAAMI,OAAQ,CACjB,IAAMW,EAAeC,SAASC,eAC5BC,EAAYC,6BAA6BxB,EAAMC,KAGjD,GAAImB,EAAc,CAEhB,IAAMK,EAAgB,SAACC,GACP,cAAVA,EAAEC,MACJD,EAAEE,iBACF5B,EAAM6B,OAEV,EAGA,OAFAT,EAAaU,iBAAiB,UAAWL,GAElC,WACLL,EAAaW,oBAAoB,UAAWN,EAC9C,CACF,CACF,CACF,GAAG,CAACpB,EAAOE,IAEX,IAAMU,EAC+D,QAAnEe,EAA4D,QAA5DC,EAAAjC,EAAMU,QAAQwB,MAAK,SAACtB,GAAW,OAAAA,EAAOuB,QAAUnC,EAAMmC,KAAvB,WAA6B,IAAAF,OAAA,EAAAA,EAAEhB,aAAK,IAAAe,EAAAA,EAAI,GAEzE,OACEI,WACEnC,GAAIsB,EAAYC,6BAA6BvB,GAC7CoC,IAAKrC,EAAMsC,SACXC,UAAW,uCAAAC,OACTxC,EAAMyC,cACF,kGACA,iCAENC,KAAK,OACLC,YACY,KAAV1B,EAAgC,UAAjBjB,EAAM2C,mBAAW,IAAAC,EAAAA,EAAI,WAAa3B,EAEnDkB,MAAO9B,EAAMI,OAASJ,EAAMQ,WAAaI,EACzC4B,SAAU,SAACnB,GACTA,EAAEE,iBACFtB,EAAQa,cAAcO,EAAEoB,OAAOX,MACjC,GAGN"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as r,Fragment as o,jsxs as i}from"react/jsx-runtime";import{createContext as n,useContext as t}from"react";import"./options-window/context.js";import{OptionsArea as e}from"./options-window/component.js";import{SelectOptionsWindowProvider as c}from"./options-window/provider.js";var m=n(!1),p=function(n){return d()?r(o,{children:n.children}):r(m.Provider,{value:!0,children:i(c,{children:[n.children,r(e,{})]})})},d=function(){return t(m)};export{p as SelectBoxProvider};
1
+ "use client";import{jsx as r,Fragment as o,jsxs as i}from"react/jsx-runtime";import{createContext as n,useContext as t}from"react";import"./options-window/context.js";import{OptionsArea as e}from"./options-window/component.js";import{SelectOptionsWindowProvider as c}from"./options-window/provider.js";var m=n(!1),p=function(n){return d()?r(o,{children:n.children}):r(m.Provider,{value:!0,children:i(c,{children:[n.children,r(e,{})]})})},d=function(){return t(m)};export{p as SelectBoxProvider};
3
2
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"provider.js","sources":["../../../../src/select-box/provider.tsx"],"sourcesContent":["\"use client\";\n\nimport { createContext, useContext } from \"react\";\nimport { OptionsArea } from \"./options-window\";\nimport { SelectOptionsWindowProvider } from \"./options-window/provider\";\n\ninterface ISelectBoxProvider {\n children: React.ReactNode;\n}\n\nconst IsDefinedContext = createContext(false);\n\nexport const SelectBoxProvider = (props: ISelectBoxProvider) => {\n const isDefined = useOnceRead();\n\n if (isDefined) {\n return <>{props.children}</>;\n }\n\n return (\n <IsDefinedContext.Provider value={true}>\n <SelectOptionsWindowProvider>\n {props.children}\n <OptionsArea />\n </SelectOptionsWindowProvider>\n </IsDefinedContext.Provider>\n );\n};\n\nconst useOnceRead = () => {\n return useContext(IsDefinedContext);\n};\n"],"names":["IsDefinedContext","createContext","SelectBoxProvider","props","useOnceRead","_jsx","_Fragment","children","Provider","value","_jsxs","SelectOptionsWindowProvider","OptionsArea","useContext"],"mappings":"8SAUA,IAAMA,EAAmBC,GAAc,GAE1BC,EAAoB,SAACC,GAGhC,OAFkBC,IAGTC,EAAAC,EAAA,CAAAC,SAAGJ,EAAMI,WAIhBF,EAACL,EAAiBQ,SAAQ,CAACC,OAAO,EAAIF,SACpCG,EAACC,EAA2B,CAAAJ,SAAA,CACzBJ,EAAMI,SACPF,EAACO,EAAW,QAIpB,EAEMR,EAAc,WAClB,OAAOS,EAAWb,EACpB"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as o}from"react/jsx-runtime";import{useTableIdGenerator as e}from"../../id/provider.js";import{useCell as n}from"../hooks.js";function l(l){var t=e(),i=n(l.id,l.row),r=i.type,c=i.component,a=i.onDoubleClick,s=i.onMouseDown,m=i.onMouseEnter,d=t.extractCellIndexFromId(l.id);d[0];var p=d[1];return o("td",{id:l.id,className:"table-col-".concat(p," p-px ").concat(l.cellFormatClassName),onDoubleClick:l.isExistOnClickRow?void 0:a,onMouseDown:s,onMouseEnter:m,children:o("div",{className:"flex items-center gap-3 min-h-10 w-fit max-w-full p-2 cursor-default",onClick:function(o){o.stopPropagation()},children:"component"===r?c:o("div",{onDoubleClick:a,className:"max-w-full",children:o("p",{className:"text-left max-w-full select-none overflow-hidden whitespace-nowrap text-ellipsis",children:c})})})})}export{l as TableCell};
1
+ "use client";import{jsx as e}from"react/jsx-runtime";import{useTableIdGenerator as o}from"../../id/provider.js";import{useCell as n}from"../hooks.js";function l(l){var t=o(),i=n(l.id,l.row),r=i.type,c=i.component,s=i.onDoubleClick,a=i.onMouseDown,m=i.onMouseEnter,d=t.extractCellIndexFromId(l.id);d[0];var p=d[1];return e("td",{id:l.id,className:"table-col-".concat(p," p-px ").concat(l.cellFormatClassName),onDoubleClick:l.isExistOnClickRow?void 0:s,onMouseDown:a,onMouseEnter:m,children:e("div",{className:"flex items-center gap-3 min-h-10 w-fit max-w-full p-2 cursor-default",onClick:function(e){e.stopPropagation()},children:"component"===r?c:e("div",{onDoubleClick:s,className:"max-w-full",children:e("p",{className:"text-left max-w-full select-none overflow-hidden whitespace-nowrap text-ellipsis",children:c})})})})}export{l as TableCell};
3
2
  //# sourceMappingURL=cell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cell.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"cell.js","sources":["../../../../../../src/table/cell/ui/cell.tsx"],"sourcesContent":["\"use client\";\n\nimport { useTableIdGenerator } from \"../../id\";\nimport { DataObject, DataRecord } from \"../../table/type\";\nimport { useCell } from \"../hooks\";\n\nexport function TableCell(props: {\n id: string;\n row: DataObject<DataRecord>;\n editable: boolean;\n cellFormatClassName?: string;\n isExistOnClickRow: boolean;\n}) {\n const IdGenerator = useTableIdGenerator();\n const { type, component, onDoubleClick, onMouseDown, onMouseEnter } = useCell(\n props.id,\n props.row\n );\n const [_, colIndex] = IdGenerator.extractCellIndexFromId(props.id);\n\n return (\n <td\n id={props.id}\n className={`table-col-${colIndex} p-px ${props.cellFormatClassName}`}\n onDoubleClick={!props.isExistOnClickRow ? onDoubleClick : undefined}\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n >\n <div\n className={`flex items-center gap-3 min-h-10 w-fit max-w-full p-2 cursor-default`}\n onClick={(e) => {\n e.stopPropagation();\n }}\n >\n {type === \"component\" ? (\n component\n ) : (\n <div onDoubleClick={onDoubleClick} className=\"max-w-full\">\n <p\n className={`text-left max-w-full select-none overflow-hidden whitespace-nowrap text-ellipsis`}\n >\n {component}\n </p>\n </div>\n )}\n </div>\n </td>\n );\n}\n"],"names":["TableCell","props","IdGenerator","useTableIdGenerator","_a","useCell","id","row","type","component","onDoubleClick","onMouseDown","onMouseEnter","_b","extractCellIndexFromId","colIndex","_jsx","className","concat","cellFormatClassName","isExistOnClickRow","undefined","children","onClick","e","stopPropagation"],"mappings":"sJAMM,SAAUA,EAAUC,GAOxB,IAAMC,EAAcC,IACdC,EAAgEC,EACpEJ,EAAMK,GACNL,EAAMM,KAFAC,SAAMC,EAASL,EAAAK,UAAEC,EAAaN,EAAAM,cAAEC,EAAWP,EAAAO,YAAEC,EAAYR,EAAAQ,aAI3DC,EAAgBX,EAAYY,uBAAuBb,EAAMK,IAAvDO,EAAA,OAAEE,OAEV,OACEC,QACEV,GAAIL,EAAMK,GACVW,UAAW,aAAAC,OAAaH,EAAQ,UAAAG,OAASjB,EAAMkB,qBAC/CT,cAAgBT,EAAMmB,uBAAoCC,EAAhBX,EAC1CC,YAAaA,EACbC,aAAcA,EAAYU,SAE1BN,EAAA,MAAA,CACEC,UAAW,uEACXM,QAAS,SAACC,GACRA,EAAEC,iBACJ,EAACH,SAES,cAATd,IAGCQ,SAAKN,cAAeA,EAAeO,UAAU,aAAYK,SACvDN,EAAA,IAAA,CACEC,UAAW,mFAAkFK,SAE5Fb,SAOf"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- import{jsx as e,Fragment as n}from"react/jsx-runtime";import{memo as c,useMemo as t,useRef as r,useEffect as o}from"react";import{useCheckboxContext as i,useCheckboxStatusContext as u}from"./provider.js";var d=c((function(c){var r=i(),o=u().checkboxStatusState,d=c.row,a=t((function(){return o.checkedRecords.map((function(e){return e.id}))}),[o.checkedRecords]);return r?e("div",{className:"grid place-items-center w-full h-full px-1",children:e("input",{type:"checkbox",checked:a.includes(d.id),onChange:function(e){e.preventDefault(),e.target.checked?r.onChecked(d):r.onUnchecked(d)},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})})),a=c((function(c){var d=r(null),a=i(),f=u(),l=f.checkboxStatusState,h=f.existChecked,p=f.indeterminate,s=t((function(){return l.checkedRecords.map((function(e){return e.id}))}),[l.checkedRecords]),k=t((function(){return c.rows.filter((function(e){return!s.includes(e.id)}))}),[c.rows,s]);return o((function(){null!=d.current&&(d.current.indeterminate=!0===p)}),[p]),a?e("div",{className:"grid place-items-center w-full h-full px-1",children:e("input",{ref:d,type:"checkbox",checked:h,onChange:function(e){e.preventDefault(),e.target.checked?k.forEach((function(e){a.onChecked(e)})):l.checkedRecords.forEach((function(e){a.onUnchecked(e)}))},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})}));export{a as AllCheckbox,d as Checkbox};
1
+ "use client";import{jsx as e,Fragment as n}from"react/jsx-runtime";import{memo as c,useMemo as t,useRef as r,useEffect as o}from"react";import{useCheckboxContext as i,useCheckboxStatusContext as u}from"./provider.js";var d=c((function(c){var r=i(),o=u().checkboxStatusState,d=c.row,a=t((function(){return o.checkedRecords.map((function(e){return e.id}))}),[o.checkedRecords]);return r?e("div",{className:"grid place-items-center w-full h-full px-1",children:e("input",{type:"checkbox",checked:a.includes(d.id),onChange:function(e){e.preventDefault(),e.target.checked?r.onChecked(d):r.onUnchecked(d)},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})})),a=c((function(c){var d=r(null),a=i(),f=u(),l=f.checkboxStatusState,h=f.existChecked,p=f.indeterminate,s=t((function(){return l.checkedRecords.map((function(e){return e.id}))}),[l.checkedRecords]),k=t((function(){return c.rows.filter((function(e){return!s.includes(e.id)}))}),[c.rows,s]);return o((function(){null!=d.current&&(d.current.indeterminate=!0===p)}),[p]),a?e("div",{className:"grid place-items-center w-full h-full px-1",children:e("input",{ref:d,type:"checkbox",checked:h,onChange:function(e){e.preventDefault(),e.target.checked?k.forEach((function(e){a.onChecked(e)})):l.checkedRecords.forEach((function(e){a.onUnchecked(e)}))},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e(n,{})}));export{a as AllCheckbox,d as Checkbox};
3
2
  //# sourceMappingURL=components.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"components.js","sources":["../../../../../src/table/checkbox/components.tsx"],"sourcesContent":["\"use client\";\n\nimport { memo, useEffect, useMemo, useRef } from \"react\";\nimport { useCheckboxContext, useCheckboxStatusContext } from \"./provider\";\nimport { DataObject, DataRecord } from \"../table/type\";\n\ntype TPropsCheckbox = {\n row: DataObject<DataRecord>;\n};\n\nexport const Checkbox = memo(function CB(props: TPropsCheckbox) {\n const checkbox = useCheckboxContext();\n const { checkboxStatusState } = useCheckboxStatusContext();\n const row = props.row;\n\n const checkboxIds = useMemo(() => {\n return checkboxStatusState.checkedRecords.map((record) => record.id);\n }, [checkboxStatusState.checkedRecords]);\n\n if (!checkbox) return <></>;\n\n return (\n <div className=\"grid place-items-center w-full h-full px-1\">\n <input\n type=\"checkbox\"\n checked={checkboxIds.includes(row.id)}\n onChange={(e) => {\n e.preventDefault();\n if (e.target.checked) {\n checkbox.onChecked(row);\n } else {\n checkbox.onUnchecked(row);\n }\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n </div>\n );\n});\n\nexport const AllCheckbox = memo(function ACB<T extends DataRecord>(props: {\n rows: DataObject<T>[];\n}) {\n const ref = useRef<HTMLInputElement>(null);\n const checkbox = useCheckboxContext();\n const { checkboxStatusState, existChecked, indeterminate } =\n useCheckboxStatusContext();\n\n const checkboxIds = useMemo(() => {\n return checkboxStatusState.checkedRecords.map((record) => record.id);\n }, [checkboxStatusState.checkedRecords]);\n\n const uncheckLists = useMemo(() => {\n return props.rows.filter((row) => !checkboxIds.includes(row.id));\n }, [props.rows, checkboxIds]);\n\n useEffect(() => {\n if (ref.current == null) {\n return;\n }\n\n ref.current.indeterminate = indeterminate === true;\n }, [indeterminate]);\n\n if (!checkbox) return <></>;\n\n return (\n <div className=\"grid place-items-center w-full h-full px-1\">\n <input\n ref={ref}\n type=\"checkbox\"\n checked={existChecked}\n onChange={(e) => {\n e.preventDefault();\n if (e.target.checked) {\n uncheckLists.forEach((row) => {\n checkbox.onChecked(row);\n });\n } else {\n checkboxStatusState.checkedRecords.forEach((row) => {\n checkbox.onUnchecked(row);\n });\n }\n }}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n />\n </div>\n );\n});\n"],"names":["Checkbox","memo","props","checkbox","useCheckboxContext","checkboxStatusState","useCheckboxStatusContext","row","checkboxIds","useMemo","checkedRecords","map","record","id","_jsx","className","type","checked","includes","onChange","e","preventDefault","target","onChecked","onUnchecked","onClick","stopPropagation","AllCheckbox","ref","useRef","_a","existChecked","indeterminate","uncheckLists","rows","filter","useEffect","current","children","forEach"],"mappings":"6NAUaA,EAAWC,GAAK,SAAYC,GACvC,IAAMC,EAAWC,IACTC,EAAwBC,wBAC1BC,EAAML,EAAMK,IAEZC,EAAcC,GAAQ,WAC1B,OAAOJ,EAAoBK,eAAeC,KAAI,SAACC,GAAW,OAAAA,EAAOC,EAAP,GAC5D,GAAG,CAACR,EAAoBK,iBAExB,OAAKP,EAGHW,EAAA,MAAA,CAAKC,UAAU,sDACbD,EAAA,QAAA,CACEE,KAAK,WACLC,QAAST,EAAYU,SAASX,EAAIM,IAClCM,SAAU,SAACC,GACTA,EAAEC,iBACED,EAAEE,OAAOL,QACXd,EAASoB,UAAUhB,GAEnBJ,EAASqB,YAAYjB,EAEzB,EACAkB,QAAS,SAACL,GACRA,EAAEC,iBACFD,EAAEM,iBACJ,MAlBgBZ,OAsBxB,IAEaa,EAAc1B,GAAK,SAAmCC,GAGjE,IAAM0B,EAAMC,EAAyB,MAC/B1B,EAAWC,IACX0B,EACJxB,IADMD,EAAmByB,EAAAzB,oBAAE0B,EAAYD,EAAAC,aAAEC,EAAaF,EAAAE,cAGlDxB,EAAcC,GAAQ,WAC1B,OAAOJ,EAAoBK,eAAeC,KAAI,SAACC,GAAW,OAAAA,EAAOC,EAAP,GAC5D,GAAG,CAACR,EAAoBK,iBAElBuB,EAAexB,GAAQ,WAC3B,OAAOP,EAAMgC,KAAKC,QAAO,SAAC5B,GAAQ,OAACC,EAAYU,SAASX,EAAIM,GAA1B,GACpC,GAAG,CAACX,EAAMgC,KAAM1B,IAUhB,OARA4B,GAAU,WACW,MAAfR,EAAIS,UAIRT,EAAIS,QAAQL,eAAkC,IAAlBA,EAC9B,GAAG,CAACA,IAEC7B,EAGHW,SAAKC,UAAU,6CAA4CuB,SACzDxB,EAAA,QAAA,CACEc,IAAKA,EACLZ,KAAK,WACLC,QAASc,EACTZ,SAAU,SAACC,GACTA,EAAEC,iBACED,EAAEE,OAAOL,QACXgB,EAAaM,SAAQ,SAAChC,GACpBJ,EAASoB,UAAUhB,EACrB,IAEAF,EAAoBK,eAAe6B,SAAQ,SAAChC,GAC1CJ,EAASqB,YAAYjB,EACvB,GAEJ,EACAkB,QAAS,SAACL,GACRA,EAAEC,iBACFD,EAAEM,iBACJ,MAvBgBZ,OA2BxB"}
@@ -0,0 +1,2 @@
1
+ var t=function(t){return t.toString().padStart(2,"0")};function n(t){if(null==t||""===t)return null;var n=t instanceof Date?t:new Date(t);return isNaN(n.getTime())?null:n}function e(e){var c=n(e);return c?"".concat(c.getFullYear(),"-").concat(t(c.getMonth()+1),"-").concat(t(c.getDate())):""}function c(c){var a=n(c);return a?"".concat(e(a)," ").concat(t(a.getHours()),":").concat(t(a.getMinutes()),":").concat(t(a.getSeconds())):""}export{e as formatDateForCopy,c as formatDatetimeForCopy};
2
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sources":["../../../../../src/table/copy/format.ts"],"sourcesContent":["const pad = (n: number) => n.toString().padStart(2, \"0\");\n\nfunction toDate(value: unknown): Date | null {\n if (value === null || value === undefined || value === \"\") return null;\n\n const date = value instanceof Date ? value : new Date(value as string);\n return isNaN(date.getTime()) ? null : date;\n}\n\n/**\n * Formats a date as YYYY-MM-DD in the local time zone.\n * (toISOString uses UTC, which shifts the day in time zones such as JST.)\n */\nexport function formatDateForCopy(value: unknown): string {\n const date = toDate(value);\n if (!date) return \"\";\n\n return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(\n date.getDate()\n )}`;\n}\n\n/** Formats a date as \"YYYY-MM-DD HH:mm:ss\" in the local time zone. */\nexport function formatDatetimeForCopy(value: unknown): string {\n const date = toDate(value);\n if (!date) return \"\";\n\n return `${formatDateForCopy(date)} ${pad(date.getHours())}:${pad(\n date.getMinutes()\n )}:${pad(date.getSeconds())}`;\n}\n"],"names":["pad","n","toString","padStart","toDate","value","date","Date","isNaN","getTime","formatDateForCopy","concat","getFullYear","getMonth","getDate","formatDatetimeForCopy","getHours","getMinutes","getSeconds"],"mappings":"AAAA,IAAMA,EAAM,SAACC,GAAc,OAAAA,EAAEC,WAAWC,SAAS,EAAG,IAAzB,EAE3B,SAASC,EAAOC,GACd,GAAIA,SAAmD,KAAVA,EAAc,OAAO,KAElE,IAAMC,EAAOD,aAAiBE,KAAOF,EAAQ,IAAIE,KAAKF,GACtD,OAAOG,MAAMF,EAAKG,WAAa,KAAOH,CACxC,CAMM,SAAUI,EAAkBL,GAChC,IAAMC,EAAOF,EAAOC,GACpB,OAAKC,EAEE,GAAAK,OAAGL,EAAKM,0BAAiBZ,EAAIM,EAAKO,WAAa,GAAE,KAAAF,OAAIX,EAC1DM,EAAKQ,YAHW,EAKpB,CAGM,SAAUC,EAAsBV,GACpC,IAAMC,EAAOF,EAAOC,GACpB,OAAKC,EAEE,GAAAK,OAAGD,EAAkBJ,GAAK,KAAAK,OAAIX,EAAIM,EAAKU,YAAW,KAAAL,OAAIX,EAC3DM,EAAKW,cACN,KAAAN,OAAIX,EAAIM,EAAKY,eAJI,EAKpB"}
@@ -1,2 +1,2 @@
1
- import{__assign as e}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as t,useEffect as n,useCallback as o,useMemo as r}from"react";import{useRangeStateContext as s}from"../range/provider.js";var d=function(t,n){switch(n.type){case"setRows":return e(e({},t),{rows:n.payload.rows});case"setCols":return e(e({},t),{cols:n.payload.cols});case"copied":return e(e({},t),{copiedAt:new Date});default:return t}};function i(i){var c=t(d,e({},i)),l=c[0],a=c[1],u=s();n((function(){a({type:"setCols",payload:{cols:i.cols}})}),[i.cols]);var p=o((function(e){if(u.isSelecting){var t=u.start.rowIndex<=u.end.rowIndex?u.start.rowIndex:u.end.rowIndex,n=u.start.rowIndex>=u.end.rowIndex?u.start.rowIndex:u.end.rowIndex,o=u.start.colIndex<=u.end.colIndex?u.start.colIndex:u.end.colIndex,r=u.start.colIndex>=u.end.colIndex?u.start.colIndex:u.end.colIndex,s=l.rows.slice(t,n+1).map((function(e){for(var t=[],n=function(n){var o=l.cols[n];if("number"==o.type||"string"==o.type)return t.push(e[o.key]),"continue";if("select"==o.type){var r=e[o.key];return null==r||""===r?t.push(""):t.push(o.options.find((function(t){return t.value===e[o.key]})).label),"continue"}return"date"===o.type?(t.push(e[o.key].toISOString().split("T")[0]),"continue"):"datetime"===o.type?(t.push(e[o.key].toISOString()),"continue"):void 0},s=o;s<=r;s++)n(s);return t})).map((function(e){return e.join("\t")})).join("\n");if(null==e?void 0:e.enableDeprecatedCopy){var d=document.createElement("textarea");d.style.position="fixed",d.style.top="0",d.style.left="0",d.style.width="2em",d.style.height="2em",d.style.padding="0",d.style.border="none",d.style.outline="none",d.style.boxShadow="none",d.style.background="transparent",d.value=s,document.body.appendChild(d),d.select(),document.execCommand("copy"),document.body.removeChild(d)}else navigator.clipboard.writeText(s);a({type:"copied"})}}),[u,l.rows,l.cols]),y=o((function(e){a({type:"setRows",payload:{rows:e}})}),[]);return{states:r((function(){return{copiedAt:l.copiedAt}}),[l.copiedAt]),actions:r((function(){return{copy:p,setRows:y}}),[p,y])}}export{i as useCopyReducer};
1
+ import{__assign as e}from"../../../node_modules/tslib/tslib.es6.js";import{useReducer as t,useEffect as n,useCallback as o,useMemo as r}from"react";import{useRangeStateContext as s}from"../range/provider.js";import{formatDateForCopy as d,formatDatetimeForCopy as i}from"./format.js";var a=function(t,n){switch(n.type){case"setRows":return e(e({},t),{rows:n.payload.rows});case"setCols":return e(e({},t),{cols:n.payload.cols});case"copied":return e(e({},t),{copiedAt:new Date});default:return t}};function c(c){var l=t(a,e({},c)),u=l[0],p=l[1],y=s();n((function(){p({type:"setCols",payload:{cols:c.cols}})}),[c.cols]);var f=o((function(e){if(y.isSelecting){var t=y.start.rowIndex<=y.end.rowIndex?y.start.rowIndex:y.end.rowIndex,n=y.start.rowIndex>=y.end.rowIndex?y.start.rowIndex:y.end.rowIndex,o=y.start.colIndex<=y.end.colIndex?y.start.colIndex:y.end.colIndex,r=y.start.colIndex>=y.end.colIndex?y.start.colIndex:y.end.colIndex,s=u.rows.slice(t,n+1).map((function(e){for(var t=[],n=function(n){var o=u.cols[n];if("number"==o.type||"string"==o.type)return t.push(e[o.key]),"continue";if("select"==o.type){var r=e[o.key];if(null==r||""===r)t.push("");else{var s=o.options.find((function(e){return e.value===r}));t.push(s?s.label:String(r))}return"continue"}return"date"===o.type?(t.push(d(e[o.key])),"continue"):"datetime"===o.type?(t.push(i(e[o.key])),"continue"):void 0},s=o;s<=r;s++)n(s);return t})).map((function(e){return e.join("\t")})).join("\n");if(null==e?void 0:e.enableDeprecatedCopy){var a=document.createElement("textarea");a.style.position="fixed",a.style.top="0",a.style.left="0",a.style.width="2em",a.style.height="2em",a.style.padding="0",a.style.border="none",a.style.outline="none",a.style.boxShadow="none",a.style.background="transparent",a.value=s,document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}else navigator.clipboard.writeText(s);p({type:"copied"})}}),[y,u.rows,u.cols]),m=o((function(e){p({type:"setRows",payload:{rows:e}})}),[]);return{states:r((function(){return{copiedAt:u.copiedAt}}),[u.copiedAt]),actions:r((function(){return{copy:f,setRows:m}}),[f,m])}}export{c as useCopyReducer};
2
2
  //# sourceMappingURL=hooks.js.map