@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
- "use strict";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)};exports.__assign=function(){return exports.__assign=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},exports.__assign.apply(this,arguments)},"function"==typeof SuppressedError&&SuppressedError,exports.__extends=function(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)},exports.__spreadArray=function(t,r,o){if(o||2===arguments.length)for(var n,e=0,s=r.length;e<s;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))};
1
+ "use strict";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)};exports.__assign=function(){return exports.__assign=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},exports.__assign.apply(this,arguments)},"function"==typeof SuppressedError&&SuppressedError,exports.__extends=function(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)},exports.__rest=function(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},exports.__spreadArray=function(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))};
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","__assign","assign","t","s","i","n","arguments","length","apply","this","SuppressedError","TypeError","String","__","constructor","create","to","from","pack","ar","l","slice","concat"],"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,EAUWS,QAAAA,SAAW,WAQlB,OAPAA,QAAAA,SAAWR,OAAOS,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIR,KADTO,EAAIG,UAAUF,GACOZ,OAAOK,UAAUC,eAAeC,KAAKI,EAAGP,KAAIM,EAAEN,GAAKO,EAAEP,IAE9E,OAAOM,CACX,EACOF,iBAASQ,MAAMC,KAAMH,UAChC,EAmRkD,mBAApBI,iBAAiCA,kCApSxD,SAAmBpB,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIoB,UAAU,uBAAyBC,OAAOrB,GAAK,iCAE7D,SAASsB,IAAOJ,KAAKK,YAAcxB,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOuB,OAAOxB,IAAMsB,EAAGhB,UAAYN,EAAEM,UAAW,IAAIgB,EACnF,wBAwLO,SAAuBG,EAAIC,EAAMC,GACpC,GAAIA,GAA6B,IAArBZ,UAAUC,OAAc,IAAK,IAA4BY,EAAxBf,EAAI,EAAGgB,EAAIH,EAAKV,OAAYH,EAAIgB,EAAGhB,KACxEe,GAAQf,KAAKa,IACRE,IAAIA,EAAKxB,MAAME,UAAUwB,MAAMtB,KAAKkB,EAAM,EAAGb,IAClDe,EAAGf,GAAKa,EAAKb,IAGrB,OAAOY,EAAGM,OAAOH,GAAMxB,MAAME,UAAUwB,MAAMtB,KAAKkB,GACtD","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"tslib.es6.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react"),i=["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"],a=[".msg",".jpg",".jpeg",".png",".pdf",".xlsx",".docx",".txt",".zip"];exports.useFileUploader=function(t){var n=e.useRef(null),o=e.useState(!1),r=o[0],p=o[1],s=t.acceptedFileTypes||i,l=t.allowedExtensions||a,c=function(e){var i=function(e){var i=[],a=[];return e.forEach((function(e){if(t.maxFileSize&&e.size>t.maxFileSize)a.push(e);else{var n=e.name.split(".").pop();n&&l.some((function(e){return e.toLowerCase()===".".concat(n.toLowerCase())||e.toLowerCase()===n.toLowerCase()}))||s.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&&t.addFiles(a),n.length>0&&t.onValidationError&&t.onValidationError(n)};return{inputProps:{ref:n,type:"file",className:"hidden",accept:s.join(","),onChange:function(e){if(e.target.files){var i=Array.from(e.target.files);c(i)}}},isDragging:r,dropSpaceProps:{onClick:function(){var e;return null===(e=n.current)||void 0===e?void 0:e.click()},onDrop:function(e){if(e.preventDefault(),p(!1),e.dataTransfer.files){var i=Array.from(e.dataTransfer.files);c(i)}},onDragOver:function(e){e.preventDefault(),p(!0)},onDragLeave:function(e){p(!1)}}}};
1
+ "use strict";var e=require("../../node_modules/tslib/tslib.es6.js"),i=require("react"),n=["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"],t=[".msg",".jpg",".jpeg",".png",".pdf",".xlsx",".docx",".txt",".zip"];exports.useFileUploader=function(a){var o,r,p=i.useRef(null),s=i.useState(!1),l=s[0],c=s[1],d=void 0!==a.allowedExtensions&&void 0===a.acceptedFileTypes,u=void 0!==a.acceptedFileTypes&&void 0===a.allowedExtensions,f=d?[]:null!==(o=a.acceptedFileTypes)&&void 0!==o?o:n,m=u?[]:null!==(r=a.allowedExtensions)&&void 0!==r?r:t,v=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 m.some((function(e){return e.toLowerCase().replace(/^\./,"")===n}))}(e)||function(e){return f.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}},x=function(e){var i=v(e),n=i.validFiles,t=i.rejectedFiles;n.length>0&&a.addFiles(n),t.length>0&&a.onValidationError&&a.onValidationError(t)};return{inputProps:{ref:p,type:"file",className:"hidden",accept:e.__spreadArray(e.__spreadArray([],m.map((function(e){return e.startsWith(".")?e:".".concat(e)})),!0),f,!0).join(","),onChange:function(e){if(e.target.files){var i=Array.from(e.target.files);x(i)}e.target.value=""}},isDragging:l,dropSpaceProps:{onClick:function(){var e;return null===(e=p.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);x(i)}},onDragOver:function(e){e.preventDefault(),c(!0)},onDragLeave:function(e){c(!1)}}}};
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","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":"oCAkCMA,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,gCAGI,SACJC,GAEA,IAAMC,EAAWC,EAAAA,OAAyB,MACpCC,EAA8BC,EAAAA,UAAS,GAAtCC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAE1BI,EAAgBP,EAAMQ,mBAAqBV,EAC3CW,EACJT,EAAMS,mBAAqBV,EA8CvBW,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","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":"uFAkCMA,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,gCAGI,SACJC,WAEMC,EAAWC,EAAAA,OAAyB,MACpCC,EAA8BC,EAAAA,UAAS,GAAtCC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAK1BI,OACwBC,IAA5BR,EAAMS,wBACsBD,IAA5BR,EAAMU,kBACFC,OACwBH,IAA5BR,EAAMU,wBACsBF,IAA5BR,EAAMS,kBAEFG,EAAgBL,EAClB,GACuB,QAAvBM,EAAAb,EAAMU,yBAAiB,IAAAG,EAAAA,EAAIf,EACzBW,EAAoBE,EACtB,GACuB,QAAvBG,EAAAd,EAAMS,yBAAiB,IAAAK,EAAAA,EAAIf,EAqBzBgB,EAAgB,SACpBC,GAEA,IAAMC,EAAqB,GACrBC,EAAwB,GAgB9B,OAdAF,EAAMG,SAAQ,SAACC,GAETpB,EAAMqB,aAAeD,EAAKE,KAAOtB,EAAMqB,YACzCH,EAAcK,KAAKH,GA5BA,SAACA,GACxB,IAAMI,EAAMJ,EAAKK,KAAKC,YAAY,KAClC,GAAIF,GAAO,EAAG,OAAO,EAErB,IAAMG,EAAYP,EAAKK,KAAKG,MAAMJ,EAAM,GAAGK,cAC3C,OAAOpB,EAAkBqB,MACvB,SAACC,GAAQ,OAAAA,EAAIF,cAAcG,QAAQ,MAAO,MAAQL,CAAzC,GAEb,CAwBQM,CAAiBb,IAtBL,SAACA,GACnB,OAAAR,EAAckB,MAAK,SAACI,GAClB,GAAIA,EAAKC,SAAS,MAAO,CACvB,IAAMC,EAAWF,EAAKG,MAAM,KAAK,GACjC,OAAOjB,EAAKc,KAAKI,WAAW,GAAAC,OAAGH,EAAQ,KACzC,CACA,OAAOhB,EAAKc,OAASA,CACvB,GANA,CAqBgCM,CAAYpB,GACxCH,EAAWM,KAAKH,GAEhBF,EAAcK,KAAKH,EAEvB,IAEO,CAAEH,WAAUA,EAAEC,cAAaA,EACpC,EAEMuB,EAAW,SAACzB,GACV,IAAAH,EAAgCE,EAAcC,GAA5CC,EAAUJ,EAAAI,WAAEC,EAAaL,EAAAK,cAC7BD,EAAWyB,OAAS,GACtB1C,EAAMyC,SAASxB,GAEbC,EAAcwB,OAAS,GAAK1C,EAAM2C,mBACpC3C,EAAM2C,kBAAkBzB,EAE5B,EAoBA,MAAO,CACL0B,WAAY,CACVC,IAAK5C,EACLiC,KAAM,OACNY,UAAW,SAGXC,OAAQC,EAAAA,cAAAA,gBAAA,GACHvC,EAAkBwC,KAAI,SAAClB,GACxB,OAAAA,EAAIO,WAAW,KAAOP,EAAM,IAAAQ,OAAIR,EAAhC,KACD,GACEnB,MACHsC,KAAK,KACPC,SAAU,SAACC,GACT,GAAIA,EAAEC,OAAOrC,MAAO,CAClB,IAAMsC,EAAgBC,MAAMC,KAAKJ,EAAEC,OAAOrC,OAC1CyB,EAASa,EACX,CAEAF,EAAEC,OAAOI,MAAQ,EACnB,GAEFpD,WAAUA,EACVqD,eAAgB,CACdC,QAAS,WAAA,IAAA9C,EAAM,OAAgB,QAAhBA,EAAAZ,EAAS2D,eAAO,IAAA/C,OAAA,EAAAA,EAAEgD,OAAO,EACxCC,OA3Ce,SAACV,GAGlB,GAFAA,EAAEW,iBACFzD,GAAc,GACV8C,EAAEY,aAAahD,MAAO,CACxB,IAAMiD,EAAeV,MAAMC,KAAKJ,EAAEY,aAAahD,OAC/CyB,EAASwB,EACX,CACF,EAqCIC,WAnCmB,SAACd,GACtBA,EAAEW,iBACFzD,GAAc,EAChB,EAiCI6D,YA/BoB,SAACf,GACvB9C,GAAc,EAChB,GAgCF"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),n=require("../../select-box/provider.js");require("../id-generator/context.js");var i=require("../id-generator/provider.js"),t=require("./condition-input-management/provider.js");require("./condition-input-management/context.js");var s=require("./condition-list.js"),o=require("./input-form.js"),l=require("../../../node_modules/react-icons/bi/index.js"),a=r.memo((function(r){return e.jsx(n.SelectBoxProvider,{children:e.jsx(i.IdGeneratorProvider,{id:r.id,children:e.jsx(t.ConditionInputProvider,{targets:r.targets,onChangeCondition:r.onChangeCondition,children:e.jsx(c,{size:r.size,conditions:r.conditions})})})})}));function c(n){var i=r.useRef(null);return r.useEffect((function(){if(i.current){var e=i.current,r=function(r){0!==r.deltaY&&(r.preventDefault(),e.scrollLeft+=r.deltaY)};return e.addEventListener("wheel",r),function(){e.removeEventListener("wheel",r)}}}),[i]),e.jsxs("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),children:[e.jsx("div",{className:"px-2",children:e.jsx(l.BiSearchAlt,{className:"text-slate-600"})}),e.jsxs("div",{ref:i,className:"relative flex w-full items-center gap-1 overflow-x-auto teppen-no-scrollbar",children:[e.jsx("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.jsx(s.ConditionList,{conditions:n.conditions}),e.jsx("div",{className:"flex items-center min-w-64 w-full",children:e.jsx(o.SearchBarInputForm,{size:n.size})})]})]})}exports.ConditionSearchBar=a,exports.SearchBar=c;
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react"),n=require("../../select-box/provider.js");require("../id-generator/context.js");var i=require("../id-generator/provider.js"),t=require("./condition-input-management/provider.js");require("./condition-input-management/context.js");var s=require("./condition-list.js"),o=require("./input-form.js"),l=require("../../../node_modules/react-icons/bi/index.js"),a=r.memo((function(r){return e.jsx(n.SelectBoxProvider,{children:e.jsx(i.IdGeneratorProvider,{id:r.id,children:e.jsx(t.ConditionInputProvider,{targets:r.targets,onChangeCondition:r.onChangeCondition,children:e.jsx(c,{size:r.size,conditions:r.conditions})})})})}));function c(n){var i=r.useRef(null);return r.useEffect((function(){if(i.current){var e=i.current,r=function(r){0!==r.deltaY&&(r.preventDefault(),e.scrollLeft+=r.deltaY)};return e.addEventListener("wheel",r),function(){e.removeEventListener("wheel",r)}}}),[i]),e.jsxs("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),children:[e.jsx("div",{className:"px-2",children:e.jsx(l.BiSearchAlt,{className:"text-slate-600"})}),e.jsxs("div",{ref:i,className:"relative flex w-full items-center gap-1 overflow-x-auto teppen-no-scrollbar",children:[e.jsx("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.jsx(s.ConditionList,{conditions:n.conditions}),e.jsx("div",{className:"flex items-center min-w-64 w-full",children:e.jsx(o.SearchBarInputForm,{size:n.size})})]})]})}exports.ConditionSearchBar=a,exports.SearchBar=c;
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":"mbA0BaA,EAAqBC,EAAAA,MAAK,SACrCC,GAEA,OACEC,EAAAA,IAACC,EAAAA,kBAAiB,CAAAC,SAChBF,EAAAA,IAACG,EAAAA,oBAAmB,CAACC,GAAIL,EAAMK,GAAEF,SAC/BF,EAAAA,IAACK,EAAAA,uBAAsB,CACrBC,QAASP,EAAMO,QACfC,kBAAmBR,EAAMQ,kBAAiBL,SAE1CF,EAAAA,IAACQ,EAAS,CAACC,KAAMV,EAAMU,KAAMC,WAAYX,EAAMW,kBAKzD,IAEM,SAAUF,EAAUT,GACxB,IAAMY,EAAMC,EAAAA,OAAuB,MAqBnC,OAnBAC,EAAAA,WAAU,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,EAAAA,YACEC,UAAW,6GACM,UAAfzB,EAAMU,KACF,UACe,UAAfV,EAAMU,KACN,UACA,IACJP,SAAA,CAEFF,EAAAA,IAAA,MAAA,CAAKwB,UAAU,OAAMtB,SACnBF,MAACyB,EAAAA,YAAW,CAACD,UAAU,qBAEzBD,OAAA,MAAA,CACEZ,IAAKA,EACLa,UAAU,8EAA6EtB,SAAA,CAEvFF,EAAAA,IAAA,QAAA,CAAAE,SAAQ,uOASRF,EAAAA,IAAC0B,EAAAA,cAAa,CAAChB,WAAYX,EAAMW,aACjCV,EAAAA,IAAA,MAAA,CAAKwB,UAAU,oCAAmCtB,SAChDF,EAAAA,IAAC2B,EAAAA,mBAAkB,CAAClB,KAAMV,EAAMU,cAK1C"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("./condition-input-management/context.js");require("react"),require("../../../node_modules/tslib/tslib.es6.js");var a=require("../../../node_modules/react-icons/ti/index.js");function n(n){var o=t.useConditionInputAction().deleteCondition;return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow",children:[e.jsx("p",{className:"whitespace-nowrap",children:r(n.condition)}),e.jsx("div",{children:e.jsx(a.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:function(){return o(n.index)}})})]})}function r(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(", "))}}exports.ConditionList=function(t){return e.jsx("div",{className:"flex gap-1",children:t.conditions.map((function(t,a){return e.jsx(n,{index:a,condition:t},a)}))})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("./condition-input-management/context.js");require("react"),require("../../../node_modules/tslib/tslib.es6.js");var a=require("../../../node_modules/react-icons/ti/index.js");function n(n){var o=t.useConditionInputAction().deleteCondition;return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border-2 border-sky-600 rounded shadow",children:[e.jsx("p",{className:"whitespace-nowrap",children:r(n.condition)}),e.jsx("div",{children:e.jsx(a.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:function(){return o(n.index)}})})]})}function r(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(", "))}}exports.ConditionList=function(t){return e.jsx("div",{className:"flex gap-1",children:t.conditions.map((function(t,a){return e.jsx(n,{index:a,condition:t},a)}))})};
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":["FixedValue","props","deleteCondition","useConditionInputAction","_jsxs","className","children","_jsx","getLabel","condition","TiDeleteOutline","onClick","index","input","type","concat","target","label","operator","payload","value","toLocaleDateString","toLocaleString","from","to","Error","selectedKey_1","_a","options","find","o","join","conditions","map","c","i"],"mappings":"sPAoBA,SAASA,EAAWC,GACV,IAAAC,EAAoBC,EAAAA,0CAE5B,OACEC,EAAAA,KAAA,MAAA,CAAKC,UAAU,4EAA2EC,SAAA,CACxFC,WAAGF,UAAU,oBAAmBC,SAAEE,EAASP,EAAMQ,aACjDF,EAAAA,IAAA,MAAA,CAAAD,SACEC,MAACG,EAAAA,gBAAe,CACdL,UAAU,0DACVM,QAAS,WAAM,OAAAT,EAAgBD,EAAMW,MAAtB,QAKzB,CAEA,SAASJ,EAASC,SAChB,OAAQA,EAAUI,MAAMC,MACtB,IAAK,OACH,MAAO,GAAAC,OAAGN,EAAUO,OAAOC,MAAK,KAAAF,OAAIN,EAAUS,SAASD,OACzD,IAAK,gBAEL,IAAK,gBACH,MAAO,GAAAF,OAAGN,EAAUO,OAAOC,MAAK,KAAAF,OAAIN,EAAUS,SAASD,MAAK,KAAAF,OAAIN,EAAUI,MAAMM,QAAQC,OAC1F,IAAK,cACH,MAAO,GAAAL,OAAGN,EAAUO,OAAOC,MAAK,KAAAF,OAC9BN,EAAUS,SAASD,kBACjBR,EAAUI,MAAMM,QAAQC,MAAMC,sBACpC,IAAK,kBACH,MAAO,GAAAN,OAAGN,EAAUO,OAAOC,MAAK,KAAAF,OAC9BN,EAAUS,SAASD,kBACjBR,EAAUI,MAAMM,QAAQC,MAAME,kBACpC,IAAK,eAEL,IAAK,eAEL,IAAK,aACH,MAAO,GAAAP,OAAGN,EAAUO,OAAOC,MAAK,KAAAF,OAAIN,EAAUS,SAASD,MAAK,KAAAF,OAAIN,EAAUI,MAAMM,QAAQI,KAAI,OAAAR,OAAMN,EAAUI,MAAMM,QAAQK,IAC5H,IAAK,SACH,GAA8B,WAA1Bf,EAAUO,OAAOF,KACnB,MAAM,IAAIW,MAAM,cAGlB,IAAMC,EAAcjB,EAAUI,MAAMM,QAAQC,MAC5C,MAAO,UAAGX,EAAUO,OAAOC,MAAK,KAAAF,OAAIN,EAAUS,SAASD,MAAK,KAAAF,OACG,QAA7DY,EAAAlB,EAAUO,OAAOY,QAAQC,MAAK,SAACC,GAAM,OAAAA,EAAEV,QAAUM,CAAZ,WAAwB,IAAAC,OAAA,EAAAA,EAAEV,OAEnE,IAAK,eACH,MAAO,GAAAF,OAAGN,EAAUO,OAAOC,MAAK,KAAAF,OAC9BN,EAAUS,SAASD,MAAK,KAAAF,OACtBN,EAAUI,MAAMM,QAAQC,MAAMW,KAAK,OAE7C,uBA9DM,SAAwB9B,GAC5B,OACEM,MAAA,MAAA,CAAKF,UAAU,sBACZJ,EAAM+B,WAAWC,KAAI,SAACC,EAAGC,GAAM,OAC9B5B,EAAAA,IAACP,GAAmBY,MAAOuB,EAAG1B,UAAWyB,GAAxBC,EADa,KAKtC"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../select-box/index.js"),i=require("./condition-input-management/context.js");require("../../../node_modules/tslib/tslib.es6.js");var o=require("../id-generator/context.js"),r=require("../../../node_modules/react-icons/ti/index.js");function u(){var t=o.useIdGenerator().generateId,r=i.useConditionInputState().targets,u=i.useConditionInputAction().inputTarget;return e.jsx(n.SelectBox,{id:t("TargetInput"),onSelect:function(e){u(e)},options:r.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function a(){var t=o.useIdGenerator().generateId,r=i.useConditionInputState(),u=i.useConditionInputAction(),a=u.inputOperator,l=u.removeInputedTarget;if("inputted target"!==r.status)return null;var p=r.inputtingCondition.target,s=r.useableOperators;return e.jsxs(e.Fragment,{children:[e.jsx(f,{label:p.label,onClickDelete:function(){l()}}),e.jsx("div",{className:"w-full min-w-64",children:e.jsx(n.SelectBox,{id:t("OperatorInput"),onSelect:function(e){a(e),setTimeout((function(){var e=document.getElementById(t("ValueInput"));e&&e.focus()}),10)},options:s.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function l(t){var n=i.useConditionInputState(),o=i.useConditionInputAction(),r=o.removeInputedOperator,u=o.removeInputedTarget;if("inputted operator"!==n.status)return null;var a=n.inputtingCondition.target,l=n.inputtingCondition.operator;return e.jsxs(e.Fragment,{children:[e.jsx(f,{label:a.label,onClickDelete:function(){u()}}),e.jsx(f,{label:l.label,onClickDelete:function(){r()}}),"single string"===n.inputtingCondition.operator.inputType?e.jsx(p,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):"single number"===n.inputtingCondition.operator.inputType?e.jsx(s,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):"select"===n.inputtingCondition.operator.inputType?e.jsx(c,{inputType:n.inputtingCondition.operator.inputType,options:"select"===n.inputtingCondition.target.type?n.inputtingCondition.target.options:[]}):"single datetime"===n.inputtingCondition.operator.inputType?e.jsx(d,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):"single date"===n.inputtingCondition.operator.inputType?e.jsx(g,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):console.error("Not implemented")]})}function p(n){var r=o.useIdGenerator().generateId,u=t.useState(""),a=u[0],l=u[1],p=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"text",placeholder:"Search text",value:a,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(p({type:n.inputType,payload:{value:a}}),l(""))}})}function s(n){var r=o.useIdGenerator().generateId,u=t.useState(""),a=u[0],l=u[1],p=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"text",placeholder:"Search text",value:a,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(p({type:n.inputType,payload:{value:Number(a)}}),l(""))}})}function c(t){var r=i.useConditionInputAction().inputValue,u=o.useIdGenerator().generateId;return e.jsx("div",{className:"w-full min-w-64",children:e.jsx(n.SelectBox,{id:u("ValueInput"),onSelect:function(e){r({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function d(n){var r=o.useIdGenerator().generateId,u=i.useConditionInputAction().inputValue,a=t.useRef(null);return t.useEffect((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e.jsx("input",{ref:a,id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"datetime-local",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,16),onKeyDown:function(e){var t,i;if("Enter"===e.key){var o=new Date(null!==(i=null===(t=a.current)||void 0===t?void 0:t.value)&&void 0!==i?i:"");if(isNaN(o.getTime()))return;u({type:n.inputType,payload:{value:o}})}},onClick:function(e){e.currentTarget.showPicker()}})}function g(n){var r=o.useIdGenerator().generateId,u=i.useConditionInputAction().inputValue,a=t.useRef(null),l=t.useRef(!1);return t.useEffect((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e.jsx("input",{ref:a,id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"date",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,10),onKeyDown:function(e){var t;if("Enter"===e.key){if(!(null===(t=a.current)||void 0===t?void 0:t.value))return;var i=a.current.value.split("-"),o=i[0],r=i[1],l=i[2],p=new Date(Number(o),Number(r)-1,Number(l));if(isNaN(p.getTime()))return;u({type:n.inputType,payload:{value:p}})}},onClick:function(e){l.current||(e.currentTarget.showPicker(),l.current=!0)}})}function f(t){return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border border-gray-200 rounded bg-slate-100",children:[e.jsx("p",{className:"whitespace-nowrap",children:t.label}),t.onClickDelete&&e.jsx("div",{children:e.jsx(r.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:t.onClickDelete})})]})}exports.SearchBarInputForm=function(t){switch(i.useConditionInputState().status){case"waiting for input":return e.jsx(u,{});case"inputted target":return e.jsx(a,{});case"inputted operator":return e.jsx(l,{size:t.size})}};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../../select-box/index.js"),i=require("./condition-input-management/context.js");require("../../../node_modules/tslib/tslib.es6.js");var o=require("../id-generator/context.js"),r=require("../../../node_modules/react-icons/ti/index.js");function u(){var t=o.useIdGenerator().generateId,r=i.useConditionInputState().targets,u=i.useConditionInputAction().inputTarget;return e.jsx(n.SelectBox,{id:t("TargetInput"),onSelect:function(e){u(e)},options:r.map((function(e){return{value:e.key,label:e.label}})),placeholder:"Select target",no_appearance:!0,no_icon:!0})}function a(){var t=o.useIdGenerator().generateId,r=i.useConditionInputState(),u=i.useConditionInputAction(),a=u.inputOperator,l=u.removeInputedTarget;if("inputted target"!==r.status)return null;var p=r.inputtingCondition.target,s=r.useableOperators;return e.jsxs(e.Fragment,{children:[e.jsx(f,{label:p.label,onClickDelete:function(){l()}}),e.jsx("div",{className:"w-full min-w-64",children:e.jsx(n.SelectBox,{id:t("OperatorInput"),onSelect:function(e){a(e),setTimeout((function(){var e=document.getElementById(t("ValueInput"));e&&e.focus()}),10)},options:s.map((function(e){return{value:e.key,label:e.label}})),defaultIsOpen:!0,placeholder:"Select operator",no_appearance:!0,no_icon:!0})})]})}function l(t){var n=i.useConditionInputState(),o=i.useConditionInputAction(),r=o.removeInputedOperator,u=o.removeInputedTarget;if("inputted operator"!==n.status)return null;var a=n.inputtingCondition.target,l=n.inputtingCondition.operator;return e.jsxs(e.Fragment,{children:[e.jsx(f,{label:a.label,onClickDelete:function(){u()}}),e.jsx(f,{label:l.label,onClickDelete:function(){r()}}),"single string"===n.inputtingCondition.operator.inputType?e.jsx(p,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):"single number"===n.inputtingCondition.operator.inputType?e.jsx(s,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):"select"===n.inputtingCondition.operator.inputType?e.jsx(c,{inputType:n.inputtingCondition.operator.inputType,options:"select"===n.inputtingCondition.target.type?n.inputtingCondition.target.options:[]}):"single datetime"===n.inputtingCondition.operator.inputType?e.jsx(d,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):"single date"===n.inputtingCondition.operator.inputType?e.jsx(g,{inputType:n.inputtingCondition.operator.inputType,size:t.size}):console.error("Not implemented")]})}function p(n){var r=o.useIdGenerator().generateId,u=t.useState(""),a=u[0],l=u[1],p=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"text",placeholder:"Search text",value:a,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(p({type:n.inputType,payload:{value:a}}),l(""))}})}function s(n){var r=o.useIdGenerator().generateId,u=t.useState(""),a=u[0],l=u[1],p=i.useConditionInputAction().inputValue;return e.jsx("input",{id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"text",placeholder:"Search text",value:a,onChange:function(e){l(e.target.value)},onKeyDown:function(e){"Enter"===e.key&&(p({type:n.inputType,payload:{value:Number(a)}}),l(""))}})}function c(t){var r=i.useConditionInputAction().inputValue,u=o.useIdGenerator().generateId;return e.jsx("div",{className:"w-full min-w-64",children:e.jsx(n.SelectBox,{id:u("ValueInput"),onSelect:function(e){r({type:t.inputType,payload:{value:e}})},options:t.options,defaultIsOpen:!0,placeholder:"Select value",no_appearance:!0,no_icon:!0})})}function d(n){var r=o.useIdGenerator().generateId,u=i.useConditionInputAction().inputValue,a=t.useRef(null);return t.useEffect((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e.jsx("input",{ref:a,id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"datetime-local",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,16),onKeyDown:function(e){var t,i;if("Enter"===e.key){var o=new Date(null!==(i=null===(t=a.current)||void 0===t?void 0:t.value)&&void 0!==i?i:"");if(isNaN(o.getTime()))return;u({type:n.inputType,payload:{value:o}})}},onClick:function(e){e.currentTarget.showPicker()}})}function g(n){var r=o.useIdGenerator().generateId,u=i.useConditionInputAction().inputValue,a=t.useRef(null),l=t.useRef(!1);return t.useEffect((function(){if(a.current){var e=a.current;e.focus(),e.scrollIntoView(),e.click()}}),[]),e.jsx("input",{ref:a,id:r("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"===n.size?"text-sm":"large"===n.size?"text-lg":""),type:"date",defaultValue:new Date((new Date).getTime()-6e4*(new Date).getTimezoneOffset()).toISOString().slice(0,10),onKeyDown:function(e){var t;if("Enter"===e.key){if(!(null===(t=a.current)||void 0===t?void 0:t.value))return;var i=a.current.value.split("-"),o=i[0],r=i[1],l=i[2],p=new Date(Number(o),Number(r)-1,Number(l));if(isNaN(p.getTime()))return;u({type:n.inputType,payload:{value:p}})}},onClick:function(e){l.current||(e.currentTarget.showPicker(),l.current=!0)}})}function f(t){return e.jsxs("div",{className:"flex items-center gap-2 w-fit px-2 border border-gray-200 rounded bg-slate-100",children:[e.jsx("p",{className:"whitespace-nowrap",children:t.label}),t.onClickDelete&&e.jsx("div",{children:e.jsx(r.TiDeleteOutline,{className:"bg-white hover:bg-slate-300 rounded-full cursor-pointer",onClick:t.onClickDelete})})]})}exports.SearchBarInputForm=function(t){switch(i.useConditionInputState().status){case"waiting for input":return e.jsx(u,{});case"inputted target":return e.jsx(a,{});case"inputted operator":return e.jsx(l,{size:t.size})}};
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":["TargetInputForm","generateId","useIdGenerator","targets","useConditionInputState","inputTarget","useConditionInputAction","_jsx","SelectBox","id","onSelect","value","options","map","t","key","label","placeholder","no_appearance","no_icon","OperatorInputForm","state","_a","inputOperator","removeInputedTarget","status","target","inputtingCondition","operators","useableOperators","_jsxs","_Fragment","children","FixedValue","onClickDelete","className","setTimeout","element","document","getElementById","focus","defaultIsOpen","SearchValueInputForm","props","removeInputedOperator","operator","inputType","InputSingleString","size","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":"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"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./context.js");exports.IdGeneratorProvider=function(n){var c=r.useMemo((function(){return{generateId:function(e){return"".concat(n.id,":").concat(e)}}}),[]);return e.jsx(t.IdGeneratorContext.Provider,{value:c,children:n.children})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("./context.js");exports.IdGeneratorProvider=function(n){var c=r.useMemo((function(){return{generateId:function(e){return"".concat(n.id,":").concat(e)}}}),[]);return e.jsx(t.IdGeneratorContext.Provider,{value:c,children:n.children})};
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":["props","actions","useMemo","generateId","componentType","id","concat","_jsx","IdGeneratorContext","Provider","value","children"],"mappings":"sIAMM,SAA8BA,GAIlC,IAAMC,EAAUC,WACd,WAAM,MAAA,CACJC,WAAY,SAACC,GACX,MAAO,UAAGJ,EAAMK,GAAE,KAAAC,OAAIF,EACxB,EAHI,GAKN,IAGF,OACEG,EAAAA,IAACC,qBAAmBC,SAAQ,CAACC,MAAOT,WACjCD,EAAMW,UAGb"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("../../node_modules/tslib/tslib.es6.js"),r=require("react/jsx-runtime"),n=require("./parts/input-area.js"),i=require("react"),o=require("./id/provider.js"),t=require("./lib/id-generator.js"),s=require("./parts/frame.js"),a=require("./options-window/context.js"),u=require("./provider.js");function c(e){var u=a.useOptionsWindowActions(),c=u.openOptionsWindow,p=u.closeOptionsWindow,d=i.useCallback((function(){c(t.IdGenerator.generateIdSelectBoxInputArea(e.id),e.options,e.onSelect)}),[e.id,e.options,e.onSelect]),l=i.useCallback((function(){p()}),[]);return i.useEffect((function(){e.defaultIsOpen&&d()}),[e.defaultIsOpen]),r.jsx(o.IdProvider,{id:e.id,children:r.jsx(s.SelectBoxFrame,{open:d,close:l,no_icon:e.no_icon,children:r.jsx(n.InputArea,{id:e.id,value:e.value,open:d,close:l,inputRef:e.inputRef,options:e.options,no_appearance:e.no_appearance,placeholder:e.placeholder})})})}exports.SelectBox=function(n){return r.jsx(u.SelectBoxProvider,{children:r.jsx(c,e.__assign({},n))})};
1
+ "use client";"use strict";var e=require("../../node_modules/tslib/tslib.es6.js"),n=require("react/jsx-runtime"),r=require("./parts/input-area.js"),i=require("react"),o=require("./id/provider.js"),t=require("./lib/id-generator.js"),s=require("./parts/frame.js"),u=require("./options-window/context.js"),a=require("./provider.js");function c(e){var a=u.useOptionsWindowActions(),c=a.openOptionsWindow,l=a.closeOptionsWindow,p=i.useCallback((function(){c(t.IdGenerator.generateIdSelectBoxInputArea(e.id),e.options,e.onSelect)}),[e.id,e.options,e.onSelect]),d=i.useCallback((function(){l()}),[]);return i.useEffect((function(){e.defaultIsOpen&&p()}),[e.defaultIsOpen]),n.jsx(o.IdProvider,{id:e.id,children:n.jsx(s.SelectBoxFrame,{open:p,close:d,no_icon:e.no_icon,children:n.jsx(r.InputArea,{id:e.id,value:e.value,open:p,close:d,inputRef:e.inputRef,options:e.options,no_appearance:e.no_appearance,placeholder:e.placeholder})})})}exports.SelectBox=function(r){return n.jsx(a.SelectBoxProvider,{children:n.jsx(c,e.__assign({},r))})};
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":["SelectBoxContent","props","_a","useOptionsWindowActions","openOptionsWindow","closeOptionsWindow","open","useCallback","IdGenerator","generateIdSelectBoxInputArea","id","options","onSelect","close","useEffect","defaultIsOpen","_jsx","IdProvider","children","SelectBoxFrame","no_icon","InputArea","value","inputRef","no_appearance","placeholder","SelectBoxProvider","__assign"],"mappings":"yUA8BA,SAASA,EAAiBC,GAClB,IAAAC,EAA4CC,EAAAA,0BAA1CC,EAAiBF,EAAAE,kBAAEC,EAAkBH,EAAAG,mBAEvCC,EAAOC,EAAAA,aAAY,WACvBH,EACEI,EAAAA,YAAYC,6BAA6BR,EAAMS,IAC/CT,EAAMU,QACNV,EAAMW,SAEV,GAAG,CAACX,EAAMS,GAAIT,EAAMU,QAASV,EAAMW,WAE7BC,EAAQN,EAAAA,aAAY,WACxBF,GACF,GAAG,IAQH,OANAS,EAAAA,WAAU,WACJb,EAAMc,eACRT,GAEJ,GAAG,CAACL,EAAMc,gBAGRC,EAAAA,IAACC,aAAU,CAACP,GAAIT,EAAMS,GAAEQ,SACtBF,EAAAA,IAACG,EAAAA,eAAc,CAACb,KAAMA,EAAMO,MAAOA,EAAOO,QAASnB,EAAMmB,QAAOF,SAC9DF,MAACK,EAAAA,UAAS,CACRX,GAAIT,EAAMS,GACVY,MAAOrB,EAAMqB,MACbhB,KAAMA,EACNO,MAAOA,EACPU,SAAUtB,EAAMsB,SAChBZ,QAASV,EAAMU,QACfa,cAAevB,EAAMuB,cACrBC,YAAaxB,EAAMwB,iBAK7B,mBA7CM,SAAoBxB,GACxB,OACEe,MAACU,EAAAA,kBAAiB,CAAAR,SAChBF,EAAAA,IAAChB,EAAgB2B,EAAAA,SAAA,CAAA,EAAK1B,KAG5B"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../id/provider.js"),o=require("../lib/id-generator.js"),i=require("./context.js");exports.OptionsArea=function(){var r=n.useIdContext(),s=i.useOptionsWindow(),l=s.state,u=s.actions,a=t.useState(""),c=a[0],d=a[1],f=t.useState(void 0),p=f[0],v=f[1],m=t.useState({top:0,left:0}),g=m[0],y=m[1],w=l.isOpen?0===l.options.length?void 0:"number"==typeof p&&p<l.options.length&&p>=0?l.options[p].value:void 0:void 0;return t.useEffect((function(){if(l.isOpen){var e=document.getElementById(o.IdGenerator.generateIdSelectBoxOption(r,null!=w?w:""));if(!e)return;if(0===g.top&&0===g.left)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else v(void 0)}),[l,g,w]),t.useEffect((function(){if(l.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.min(e+1,l.options.length-1):0}));else if("ArrowUp"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.max(e-1,0):0}));else if("Enter"===e.key){if(e.preventDefault(),"number"==typeof p){if(0===l.options.length||l.options.length<=p)return;var t=l.options[p].value;if(!t)return;d(t),l.onSelect(t),u.closeOptionsWindow()}}else"Escape"===e.key&&(e.preventDefault(),u.closeOptionsWindow())};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[l,p,v,u]),t.useEffect((function(){var e=setTimeout((function(){var e;if(l.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(l.selectBoxId);if(r){var s=r.getBoundingClientRect(),u=s.top+s.height,a=s.left;if(t){var c=t.getBoundingClientRect();y({top:u-c.top+t.scrollTop,left:a-c.left+t.scrollLeft})}else y({top:u+window.scrollY,left:a+window.scrollX})}}}),0);return function(){clearTimeout(e)}}),[l.isOpen]),t.useEffect((function(){var e=function(e){if(l.isOpen){var t=document.getElementById(l.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)}}),[l.isOpen]),l.isOpen?e.jsx("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:g,children:l.options.map((function(t){var n,i;return e.jsx("div",{id:o.IdGenerator.generateIdSelectBoxOption(r,null!==(n=t.value)&&void 0!==n?n:""),className:"hover:bg-gray-200 px-2 py-1 ".concat("string"==typeof w?w===t.value?"bg-gray-100":"bg-white":c===t.value?"bg-gray-100":"bg-white"),onClick:function(){l.onSelect(t.value),u.closeOptionsWindow()},children:null!==(i=t.searchLabel)&&void 0!==i?i:t.label},t.value)}))}):e.jsx(e.Fragment,{})};
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../id/provider.js"),o=require("../lib/id-generator.js"),i=require("./context.js");exports.OptionsArea=function(){var r=n.useIdContext(),s=i.useOptionsWindow(),l=s.state,u=s.actions,a=t.useState(""),c=a[0],d=a[1],f=t.useState(void 0),p=f[0],v=f[1],m=t.useState({top:0,left:0}),g=m[0],y=m[1],w=l.isOpen?0===l.options.length?void 0:"number"==typeof p&&p<l.options.length&&p>=0?l.options[p].value:void 0:void 0;return t.useEffect((function(){if(l.isOpen){var e=document.getElementById(o.IdGenerator.generateIdSelectBoxOption(r,null!=w?w:""));if(!e)return;if(0===g.top&&0===g.left)return;e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})}else v(void 0)}),[l,g,w]),t.useEffect((function(){if(l.isOpen){var e=function(e){if("ArrowDown"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.min(e+1,l.options.length-1):0}));else if("ArrowUp"===e.key)e.preventDefault(),v((function(e){return"number"==typeof e?Math.max(e-1,0):0}));else if("Enter"===e.key){if(e.preventDefault(),"number"==typeof p){if(0===l.options.length||l.options.length<=p)return;var t=l.options[p].value;if("string"!=typeof t)return;d(t),l.onSelect(t),u.closeOptionsWindow()}}else"Escape"===e.key&&(e.preventDefault(),u.closeOptionsWindow())};return document.addEventListener("keydown",e),function(){document.removeEventListener("keydown",e)}}}),[l,p,v,u]),t.useEffect((function(){var e=setTimeout((function(){var e;if(l.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(l.selectBoxId);if(r){var s=r.getBoundingClientRect(),u=s.top+s.height,a=s.left;if(t){var c=t.getBoundingClientRect();y({top:u-c.top+t.scrollTop,left:a-c.left+t.scrollLeft})}else y({top:u+window.scrollY,left:a+window.scrollX})}}}),0);return function(){clearTimeout(e)}}),[l.isOpen]),t.useEffect((function(){var e=function(e){if(l.isOpen){var t=document.getElementById(l.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)}}),[l.isOpen]),l.isOpen?e.jsx("div",{id:"ReactUI:SelectBox:OptionsArea",className:"absolute min-w-fit max-h-[40vh] overflow-auto border border-gray-300 z-10",style:g,children:l.options.map((function(t){var n,i;return e.jsx("div",{id:o.IdGenerator.generateIdSelectBoxOption(r,null!==(n=t.value)&&void 0!==n?n:""),className:"hover:bg-gray-200 px-2 py-1 ".concat("string"==typeof w?w===t.value?"bg-gray-100":"bg-white":c===t.value?"bg-gray-100":"bg-white"),onClick:function(){l.onSelect(t.value),u.closeOptionsWindow()},children:null!==(i=t.searchLabel)&&void 0!==i?i:t.label},t.value)}))}):e.jsx(e.Fragment,{})};
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":["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":["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
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../id/provider.js"),r=require("../lib/id-generator.js"),o=require("../options-window/context.js");exports.InputArea=function(a){var i,s,u,c=n.useIdContext(),l=o.useOptionsWindow(),d=l.state,p=l.actions,f=t.useMemo((function(){return d.isOpen?a.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())})):[]}),[a.options,d]);t.useEffect((function(){d.isOpen&&p.setSearchText(d.searchText)}),[d]),t.useEffect((function(){if(!d.isOpen){var e=document.getElementById(r.IdGenerator.generateIdSelectBoxInputArea(a.id));if(e){var t=function(e){"ArrowDown"===e.key&&(e.preventDefault(),a.open())};return e.addEventListener("keydown",t),function(){e.removeEventListener("keydown",t)}}}}),[d,f]);var v=null!==(s=null===(i=a.options.find((function(e){return e.value===a.value})))||void 0===i?void 0:i.label)&&void 0!==s?s:"";return e.jsx("input",{id:r.IdGenerator.generateIdSelectBoxInputArea(c),ref:a.inputRef,className:"px-2 py-1 placeholder:text-gray-400 ".concat(a.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:""===v?null!==(u=a.placeholder)&&void 0!==u?u:"選択してください":v,value:d.isOpen?d.searchText:v,onChange:function(e){e.preventDefault(),p.setSearchText(e.target.value)}})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("../id/provider.js"),r=require("../lib/id-generator.js"),o=require("../options-window/context.js");exports.InputArea=function(a){var i,s,u,c=n.useIdContext(),l=o.useOptionsWindow(),d=l.state,p=l.actions,f=t.useMemo((function(){return d.isOpen?a.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())})):[]}),[a.options,d]);t.useEffect((function(){d.isOpen&&p.setSearchText(d.searchText)}),[d]),t.useEffect((function(){if(!d.isOpen){var e=document.getElementById(r.IdGenerator.generateIdSelectBoxInputArea(a.id));if(e){var t=function(e){"ArrowDown"===e.key&&(e.preventDefault(),a.open())};return e.addEventListener("keydown",t),function(){e.removeEventListener("keydown",t)}}}}),[d,f]);var v=null!==(s=null===(i=a.options.find((function(e){return e.value===a.value})))||void 0===i?void 0:i.label)&&void 0!==s?s:"";return e.jsx("input",{id:r.IdGenerator.generateIdSelectBoxInputArea(c),ref:a.inputRef,className:"px-2 py-1 placeholder:text-gray-400 ".concat(a.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:""===v?null!==(u=a.placeholder)&&void 0!==u?u:"選択してください":v,value:d.isOpen?d.searchText:v,onChange:function(e){e.preventDefault(),p.setSearchText(e.target.value)}})};
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":["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":"+MAkBM,SAAoBA,aAClBC,EAAKC,EAAAA,eACLC,EAAqBC,EAAAA,mBAAnBC,EAAKF,EAAAE,MAAEC,EAAOH,EAAAG,QAEhBC,EAAkBC,EAAAA,SAAQ,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,EAAAA,WAAU,WACJb,EAAMI,QACRH,EAAQa,cAAcd,EAAMQ,WAEhC,GAAG,CAACR,IAEJa,EAAAA,WAAU,WACR,IAAKb,EAAMI,OAAQ,CACjB,IAAMW,EAAeC,SAASC,eAC5BC,EAAAA,YAAYC,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,EAAAA,aACEnC,GAAIsB,EAAAA,YAAYC,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
- "use strict";var e=require("react/jsx-runtime"),r=require("react");require("./options-window/context.js");var i=require("./options-window/component.js"),n=require("./options-window/provider.js"),t=r.createContext(!1),o=function(){return r.useContext(t)};exports.SelectBoxProvider=function(r){return o()?e.jsx(e.Fragment,{children:r.children}):e.jsx(t.Provider,{value:!0,children:e.jsxs(n.SelectOptionsWindowProvider,{children:[r.children,e.jsx(i.OptionsArea,{})]})})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react");require("./options-window/context.js");var i=require("./options-window/component.js"),n=require("./options-window/provider.js"),t=r.createContext(!1),o=function(){return r.useContext(t)};exports.SelectBoxProvider=function(r){return o()?e.jsx(e.Fragment,{children:r.children}):e.jsx(t.Provider,{value:!0,children:e.jsxs(n.SelectOptionsWindowProvider,{children:[r.children,e.jsx(i.OptionsArea,{})]})})};
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","useOnceRead","useContext","props","_jsx","_Fragment","children","Provider","value","_jsxs","SelectOptionsWindowProvider","OptionsArea"],"mappings":"gNAUMA,EAAmBC,EAAAA,eAAc,GAmBjCC,EAAc,WAClB,OAAOC,EAAAA,WAAWH,EACpB,4BAnBiC,SAACI,GAGhC,OAFkBF,IAGTG,EAAAA,IAAAC,EAAAA,SAAA,CAAAC,SAAGH,EAAMG,WAIhBF,EAAAA,IAACL,EAAiBQ,SAAQ,CAACC,OAAO,EAAIF,SACpCG,EAAAA,KAACC,EAAAA,4BAA2B,CAAAJ,SAAA,CACzBH,EAAMG,SACPF,EAAAA,IAACO,EAAAA,YAAW,QAIpB"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),o=require("../../id/provider.js"),l=require("../hooks.js");exports.TableCell=function(n){var s=o.useTableIdGenerator(),i=l.useCell(n.id,n.row),r=i.type,t=i.component,a=i.onDoubleClick,c=i.onMouseDown,u=i.onMouseEnter,d=s.extractCellIndexFromId(n.id);d[0];var x=d[1];return e.jsx("td",{id:n.id,className:"table-col-".concat(x," p-px ").concat(n.cellFormatClassName),onDoubleClick:n.isExistOnClickRow?void 0:a,onMouseDown:c,onMouseEnter:u,children:e.jsx("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?t:e.jsx("div",{onDoubleClick:a,className:"max-w-full",children:e.jsx("p",{className:"text-left max-w-full select-none overflow-hidden whitespace-nowrap text-ellipsis",children:t})})})})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),o=require("../../id/provider.js"),l=require("../hooks.js");exports.TableCell=function(n){var s=o.useTableIdGenerator(),i=l.useCell(n.id,n.row),t=i.type,r=i.component,a=i.onDoubleClick,c=i.onMouseDown,u=i.onMouseEnter,d=s.extractCellIndexFromId(n.id);d[0];var x=d[1];return e.jsx("td",{id:n.id,className:"table-col-".concat(x," p-px ").concat(n.cellFormatClassName),onDoubleClick:n.isExistOnClickRow?void 0:a,onMouseDown:c,onMouseEnter:u,children:e.jsx("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"===t?r:e.jsx("div",{onDoubleClick:a,className:"max-w-full",children:e.jsx("p",{className:"text-left max-w-full select-none overflow-hidden whitespace-nowrap text-ellipsis",children:r})})})})};
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":["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":"0IAMM,SAAoBA,GAOxB,IAAMC,EAAcC,EAAAA,sBACdC,EAAgEC,UACpEJ,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,EAAAA,UACEV,GAAIL,EAAMK,GACVW,UAAW,aAAAC,OAAaH,EAAQ,UAAAG,OAASjB,EAAMkB,qBAC/CT,cAAgBT,EAAMmB,uBAAoCC,EAAhBX,EAC1CC,YAAaA,EACbC,aAAcA,EAAYU,SAE1BN,EAAAA,IAAA,MAAA,CACEC,UAAW,uEACXM,QAAS,SAACC,GACRA,EAAEC,iBACJ,EAACH,SAES,cAATd,IAGCQ,aAAKN,cAAeA,EAAeO,UAAU,aAAYK,SACvDN,MAAA,IAAA,CACEC,UAAW,mFAAkFK,SAE5Fb,SAOf"}
@@ -1,3 +1,2 @@
1
- "use client";
2
- "use strict";var e=require("react/jsx-runtime"),t=require("react"),c=require("./provider.js"),n=t.memo((function(n){var r=c.useCheckboxContext(),o=c.useCheckboxStatusContext().checkboxStatusState,u=n.row,i=t.useMemo((function(){return o.checkedRecords.map((function(e){return e.id}))}),[o.checkedRecords]);return r?e.jsx("div",{className:"grid place-items-center w-full h-full px-1",children:e.jsx("input",{type:"checkbox",checked:i.includes(u.id),onChange:function(e){e.preventDefault(),e.target.checked?r.onChecked(u):r.onUnchecked(u)},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e.jsx(e.Fragment,{})})),r=t.memo((function(n){var r=t.useRef(null),o=c.useCheckboxContext(),u=c.useCheckboxStatusContext(),i=u.checkboxStatusState,s=u.existChecked,a=u.indeterminate,d=t.useMemo((function(){return i.checkedRecords.map((function(e){return e.id}))}),[i.checkedRecords]),h=t.useMemo((function(){return n.rows.filter((function(e){return!d.includes(e.id)}))}),[n.rows,d]);return t.useEffect((function(){null!=r.current&&(r.current.indeterminate=!0===a)}),[a]),o?e.jsx("div",{className:"grid place-items-center w-full h-full px-1",children:e.jsx("input",{ref:r,type:"checkbox",checked:s,onChange:function(e){e.preventDefault(),e.target.checked?h.forEach((function(e){o.onChecked(e)})):i.checkedRecords.forEach((function(e){o.onUnchecked(e)}))},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e.jsx(e.Fragment,{})}));exports.AllCheckbox=r,exports.Checkbox=n;
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),c=require("./provider.js"),n=t.memo((function(n){var r=c.useCheckboxContext(),o=c.useCheckboxStatusContext().checkboxStatusState,u=n.row,i=t.useMemo((function(){return o.checkedRecords.map((function(e){return e.id}))}),[o.checkedRecords]);return r?e.jsx("div",{className:"grid place-items-center w-full h-full px-1",children:e.jsx("input",{type:"checkbox",checked:i.includes(u.id),onChange:function(e){e.preventDefault(),e.target.checked?r.onChecked(u):r.onUnchecked(u)},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e.jsx(e.Fragment,{})})),r=t.memo((function(n){var r=t.useRef(null),o=c.useCheckboxContext(),u=c.useCheckboxStatusContext(),i=u.checkboxStatusState,s=u.existChecked,a=u.indeterminate,d=t.useMemo((function(){return i.checkedRecords.map((function(e){return e.id}))}),[i.checkedRecords]),h=t.useMemo((function(){return n.rows.filter((function(e){return!d.includes(e.id)}))}),[n.rows,d]);return t.useEffect((function(){null!=r.current&&(r.current.indeterminate=!0===a)}),[a]),o?e.jsx("div",{className:"grid place-items-center w-full h-full px-1",children:e.jsx("input",{ref:r,type:"checkbox",checked:s,onChange:function(e){e.preventDefault(),e.target.checked?h.forEach((function(e){o.onChecked(e)})):i.checkedRecords.forEach((function(e){o.onUnchecked(e)}))},onClick:function(e){e.preventDefault(),e.stopPropagation()}})}):e.jsx(e.Fragment,{})}));exports.AllCheckbox=r,exports.Checkbox=n;
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":"2GAUaA,EAAWC,EAAAA,MAAK,SAAYC,GACvC,IAAMC,EAAWC,EAAAA,qBACTC,EAAwBC,EAAAA,+CAC1BC,EAAML,EAAMK,IAEZC,EAAcC,EAAAA,SAAQ,WAC1B,OAAOJ,EAAoBK,eAAeC,KAAI,SAACC,GAAW,OAAAA,EAAOC,EAAP,GAC5D,GAAG,CAACR,EAAoBK,iBAExB,OAAKP,EAGHW,EAAAA,IAAA,MAAA,CAAKC,UAAU,sDACbD,EAAAA,IAAA,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,EAAAA,kBAsBxB,IAEaa,EAAc1B,EAAAA,MAAK,SAAmCC,GAGjE,IAAM0B,EAAMC,EAAAA,OAAyB,MAC/B1B,EAAWC,EAAAA,qBACX0B,EACJxB,EAAAA,2BADMD,EAAmByB,EAAAzB,oBAAE0B,EAAYD,EAAAC,aAAEC,EAAaF,EAAAE,cAGlDxB,EAAcC,EAAAA,SAAQ,WAC1B,OAAOJ,EAAoBK,eAAeC,KAAI,SAACC,GAAW,OAAAA,EAAOC,EAAP,GAC5D,GAAG,CAACR,EAAoBK,iBAElBuB,EAAexB,EAAAA,SAAQ,WAC3B,OAAOP,EAAMgC,KAAKC,QAAO,SAAC5B,GAAQ,OAACC,EAAYU,SAASX,EAAIM,GAA1B,GACpC,GAAG,CAACX,EAAMgC,KAAM1B,IAUhB,OARA4B,EAAAA,WAAU,WACW,MAAfR,EAAIS,UAIRT,EAAIS,QAAQL,eAAkC,IAAlBA,EAC9B,GAAG,CAACA,IAEC7B,EAGHW,EAAAA,WAAKC,UAAU,6CAA4CuB,SACzDxB,EAAAA,IAAA,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,EAAAA,kBA2BxB"}
@@ -0,0 +1,2 @@
1
+ "use strict";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 r=n(e);return r?"".concat(r.getFullYear(),"-").concat(t(r.getMonth()+1),"-").concat(t(r.getDate())):""}exports.formatDateForCopy=e,exports.formatDatetimeForCopy=function(r){var o=n(r);return o?"".concat(e(o)," ").concat(t(o.getHours()),":").concat(t(o.getMinutes()),":").concat(t(o.getSeconds())):""};
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","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,2DAGM,SAAgCT,GACpC,IAAMC,EAAOF,EAAOC,GACpB,OAAKC,EAEE,GAAAK,OAAGD,EAAkBJ,GAAK,KAAAK,OAAIX,EAAIM,EAAKS,YAAW,KAAAJ,OAAIX,EAC3DM,EAAKU,cACN,KAAAL,OAAIX,EAAIM,EAAKW,eAJI,EAKpB"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../range/provider.js"),o=function(t,n){switch(n.type){case"setRows":return e.__assign(e.__assign({},t),{rows:n.payload.rows});case"setCols":return e.__assign(e.__assign({},t),{cols:n.payload.cols});case"copied":return e.__assign(e.__assign({},t),{copiedAt:new Date});default:return t}};exports.useCopyReducer=function(s){var r=t.useReducer(o,e.__assign({},s)),a=r[0],i=r[1],d=n.useRangeStateContext();t.useEffect((function(){i({type:"setCols",payload:{cols:s.cols}})}),[s.cols]);var c=t.useCallback((function(e){if(d.isSelecting){var t=d.start.rowIndex<=d.end.rowIndex?d.start.rowIndex:d.end.rowIndex,n=d.start.rowIndex>=d.end.rowIndex?d.start.rowIndex:d.end.rowIndex,o=d.start.colIndex<=d.end.colIndex?d.start.colIndex:d.end.colIndex,s=d.start.colIndex>=d.end.colIndex?d.start.colIndex:d.end.colIndex,r=a.rows.slice(t,n+1).map((function(e){for(var t=[],n=function(n){var o=a.cols[n];if("number"==o.type||"string"==o.type)return t.push(e[o.key]),"continue";if("select"==o.type){var s=e[o.key];return null==s||""===s?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},r=o;r<=s;r++)n(r);return t})).map((function(e){return e.join("\t")})).join("\n");if(null==e?void 0:e.enableDeprecatedCopy){var c=document.createElement("textarea");c.style.position="fixed",c.style.top="0",c.style.left="0",c.style.width="2em",c.style.height="2em",c.style.padding="0",c.style.border="none",c.style.outline="none",c.style.boxShadow="none",c.style.background="transparent",c.value=r,document.body.appendChild(c),c.select(),document.execCommand("copy"),document.body.removeChild(c)}else navigator.clipboard.writeText(r);i({type:"copied"})}}),[d,a.rows,a.cols]),l=t.useCallback((function(e){i({type:"setRows",payload:{rows:e}})}),[]);return{states:t.useMemo((function(){return{copiedAt:a.copiedAt}}),[a.copiedAt]),actions:t.useMemo((function(){return{copy:c,setRows:l}}),[c,l])}};
1
+ "use strict";var e=require("../../../node_modules/tslib/tslib.es6.js"),t=require("react"),n=require("../range/provider.js"),o=require("./format.js"),s=function(t,n){switch(n.type){case"setRows":return e.__assign(e.__assign({},t),{rows:n.payload.rows});case"setCols":return e.__assign(e.__assign({},t),{cols:n.payload.cols});case"copied":return e.__assign(e.__assign({},t),{copiedAt:new Date});default:return t}};exports.useCopyReducer=function(r){var a=t.useReducer(s,e.__assign({},r)),i=a[0],d=a[1],c=n.useRangeStateContext();t.useEffect((function(){d({type:"setCols",payload:{cols:r.cols}})}),[r.cols]);var u=t.useCallback((function(e){if(c.isSelecting){var t=c.start.rowIndex<=c.end.rowIndex?c.start.rowIndex:c.end.rowIndex,n=c.start.rowIndex>=c.end.rowIndex?c.start.rowIndex:c.end.rowIndex,s=c.start.colIndex<=c.end.colIndex?c.start.colIndex:c.end.colIndex,r=c.start.colIndex>=c.end.colIndex?c.start.colIndex:c.end.colIndex,a=i.rows.slice(t,n+1).map((function(e){for(var t=[],n=function(n){var s=i.cols[n];if("number"==s.type||"string"==s.type)return t.push(e[s.key]),"continue";if("select"==s.type){var r=e[s.key];if(null==r||""===r)t.push("");else{var a=s.options.find((function(e){return e.value===r}));t.push(a?a.label:String(r))}return"continue"}return"date"===s.type?(t.push(o.formatDateForCopy(e[s.key])),"continue"):"datetime"===s.type?(t.push(o.formatDatetimeForCopy(e[s.key])),"continue"):void 0},a=s;a<=r;a++)n(a);return t})).map((function(e){return e.join("\t")})).join("\n");if(null==e?void 0:e.enableDeprecatedCopy){var u=document.createElement("textarea");u.style.position="fixed",u.style.top="0",u.style.left="0",u.style.width="2em",u.style.height="2em",u.style.padding="0",u.style.border="none",u.style.outline="none",u.style.boxShadow="none",u.style.background="transparent",u.value=a,document.body.appendChild(u),u.select(),document.execCommand("copy"),document.body.removeChild(u)}else navigator.clipboard.writeText(a);d({type:"copied"})}}),[c,i.rows,i.cols]),l=t.useCallback((function(e){d({type:"setRows",payload:{rows:e}})}),[]);return{states:t.useMemo((function(){return{copiedAt:i.copiedAt}}),[i.copiedAt]),actions:t.useMemo((function(){return{copy:u,setRows:l}}),[u,l])}};
2
2
  //# sourceMappingURL=hooks.js.map