@shepai/cli 1.177.0 → 1.178.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 (341) hide show
  1. package/apis/json-schema/Language.yaml +1 -0
  2. package/dist/packages/core/src/application/ports/output/services/agent-auth-detector.interface.d.ts +23 -0
  3. package/dist/packages/core/src/application/ports/output/services/agent-auth-detector.interface.d.ts.map +1 -0
  4. package/dist/packages/core/src/application/ports/output/services/agent-auth-detector.interface.js +13 -0
  5. package/dist/packages/core/src/application/ports/output/services/file-system-service.interface.d.ts +18 -0
  6. package/dist/packages/core/src/application/ports/output/services/file-system-service.interface.d.ts.map +1 -0
  7. package/dist/packages/core/src/application/ports/output/services/file-system-service.interface.js +7 -0
  8. package/dist/packages/core/src/application/ports/output/services/index.d.ts +3 -0
  9. package/dist/packages/core/src/application/ports/output/services/index.d.ts.map +1 -1
  10. package/dist/packages/core/src/application/ports/output/services/project-scaffold-service.interface.d.ts +33 -0
  11. package/dist/packages/core/src/application/ports/output/services/project-scaffold-service.interface.d.ts.map +1 -0
  12. package/dist/packages/core/src/application/ports/output/services/project-scaffold-service.interface.js +9 -0
  13. package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.d.ts +42 -0
  14. package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.d.ts.map +1 -0
  15. package/dist/packages/core/src/application/use-cases/agents/check-agent-auth.use-case.js +134 -0
  16. package/dist/packages/core/src/application/use-cases/projects/create-project.use-case.d.ts +43 -0
  17. package/dist/packages/core/src/application/use-cases/projects/create-project.use-case.d.ts.map +1 -0
  18. package/dist/packages/core/src/application/use-cases/projects/create-project.use-case.js +84 -0
  19. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts +13 -2
  20. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.d.ts.map +1 -1
  21. package/dist/packages/core/src/application/use-cases/repositories/delete-repository.use-case.js +14 -3
  22. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  23. package/dist/packages/core/src/infrastructure/di/container.js +16 -0
  24. package/dist/packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.d.ts +35 -0
  25. package/dist/packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.d.ts.map +1 -0
  26. package/dist/packages/core/src/infrastructure/services/agent-auth-detector/platform-agent-auth-detector.service.js +165 -0
  27. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.d.ts.map +1 -1
  28. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/merge/merge.node.js +31 -5
  29. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts +14 -0
  30. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.d.ts.map +1 -1
  31. package/dist/packages/core/src/infrastructure/services/agents/feature-agent/nodes/prompts/merge-prompts.js +63 -0
  32. package/dist/packages/core/src/infrastructure/services/file-system.service.d.ts +10 -0
  33. package/dist/packages/core/src/infrastructure/services/file-system.service.d.ts.map +1 -0
  34. package/dist/packages/core/src/infrastructure/services/file-system.service.js +22 -0
  35. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.d.ts.map +1 -1
  36. package/dist/packages/core/src/infrastructure/services/git/git-pr.service.js +57 -10
  37. package/dist/packages/core/src/infrastructure/services/project-scaffold/fs-project-scaffold.service.d.ts +22 -0
  38. package/dist/packages/core/src/infrastructure/services/project-scaffold/fs-project-scaffold.service.d.ts.map +1 -0
  39. package/dist/packages/core/src/infrastructure/services/project-scaffold/fs-project-scaffold.service.js +74 -0
  40. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts +10 -2
  41. package/dist/src/presentation/web/app/actions/check-agent-auth.d.ts.map +1 -1
  42. package/dist/src/presentation/web/app/actions/check-agent-auth.js +7 -199
  43. package/dist/src/presentation/web/app/actions/create-project-folder.d.ts +16 -0
  44. package/dist/src/presentation/web/app/actions/create-project-folder.d.ts.map +1 -0
  45. package/dist/src/presentation/web/app/actions/create-project-folder.js +18 -0
  46. package/dist/src/presentation/web/app/actions/delete-repository.d.ts +4 -1
  47. package/dist/src/presentation/web/app/actions/delete-repository.d.ts.map +1 -1
  48. package/dist/src/presentation/web/app/actions/delete-repository.js +2 -2
  49. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  50. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +2 -2
  51. package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts +3 -1
  52. package/dist/src/presentation/web/components/common/repository-node/repository-node-config.d.ts.map +1 -1
  53. package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/common/repository-node/repository-node.js +13 -4
  55. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +5 -3
  57. package/dist/src/presentation/web/components/features/control-center/control-center-inner.d.ts.map +1 -1
  58. package/dist/src/presentation/web/components/features/control-center/control-center-inner.js +134 -124
  59. package/dist/src/presentation/web/components/features/control-center/new-project-dialog.d.ts +8 -0
  60. package/dist/src/presentation/web/components/features/control-center/new-project-dialog.d.ts.map +1 -0
  61. package/dist/src/presentation/web/components/features/control-center/new-project-dialog.js +43 -0
  62. package/dist/src/presentation/web/components/features/control-center/use-canvas-event-listeners.d.ts +27 -0
  63. package/dist/src/presentation/web/components/features/control-center/use-canvas-event-listeners.d.ts.map +1 -0
  64. package/dist/src/presentation/web/components/features/control-center/use-canvas-event-listeners.js +84 -0
  65. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts +3 -1
  66. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  67. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +4 -2
  68. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts +21 -0
  69. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.d.ts.map +1 -0
  70. package/dist/src/presentation/web/components/features/control-center/use-fab-actions.js +70 -0
  71. package/dist/src/presentation/web/components/features/control-center/use-workspace-fit-view.d.ts +27 -0
  72. package/dist/src/presentation/web/components/features/control-center/use-workspace-fit-view.d.ts.map +1 -0
  73. package/dist/src/presentation/web/components/features/control-center/use-workspace-fit-view.js +48 -0
  74. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -1
  75. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +8 -1
  76. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts +3 -1
  77. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.d.ts.map +1 -1
  78. package/dist/src/presentation/web/components/features/features-canvas/canvas-toolbar.js +3 -3
  79. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
  80. package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +1 -1
  81. package/dist/src/presentation/web/components/features/features-canvas/manage-workspace-dialog.d.ts +15 -0
  82. package/dist/src/presentation/web/components/features/features-canvas/manage-workspace-dialog.d.ts.map +1 -0
  83. package/dist/src/presentation/web/components/features/features-canvas/manage-workspace-dialog.js +74 -0
  84. package/dist/src/presentation/web/components/features/features-canvas/workspace-name-dialog.d.ts +11 -0
  85. package/dist/src/presentation/web/components/features/features-canvas/workspace-name-dialog.d.ts.map +1 -0
  86. package/dist/src/presentation/web/components/features/features-canvas/workspace-name-dialog.js +22 -0
  87. package/dist/src/presentation/web/components/features/features-canvas/workspace-selector.d.ts +13 -0
  88. package/dist/src/presentation/web/components/features/features-canvas/workspace-selector.d.ts.map +1 -0
  89. package/dist/src/presentation/web/components/features/features-canvas/workspace-selector.js +21 -0
  90. package/dist/src/presentation/web/hooks/use-workspaces.d.ts +37 -0
  91. package/dist/src/presentation/web/hooks/use-workspaces.d.ts.map +1 -0
  92. package/dist/src/presentation/web/hooks/use-workspaces.js +219 -0
  93. package/dist/src/presentation/web/lib/derive-graph.d.ts +3 -1
  94. package/dist/src/presentation/web/lib/derive-graph.d.ts.map +1 -1
  95. package/dist/translations/ar/web.json +4 -1
  96. package/dist/translations/de/web.json +4 -1
  97. package/dist/translations/en/web.json +4 -1
  98. package/dist/translations/es/web.json +4 -1
  99. package/dist/translations/fr/web.json +4 -1
  100. package/dist/translations/he/web.json +4 -1
  101. package/dist/translations/pt/web.json +4 -1
  102. package/dist/translations/ru/web.json +4 -1
  103. package/dist/translations/uk/web.json +3 -0
  104. package/dist/tsconfig.build.tsbuildinfo +1 -1
  105. package/package.json +1 -1
  106. package/web/.next/BUILD_ID +1 -1
  107. package/web/.next/build-manifest.json +2 -2
  108. package/web/.next/fallback-build-manifest.json +2 -2
  109. package/web/.next/prerender-manifest.json +3 -3
  110. package/web/.next/required-server-files.js +2 -2
  111. package/web/.next/required-server-files.json +2 -2
  112. package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +73 -58
  113. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js +1 -2
  114. package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
  115. package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
  116. package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +69 -54
  117. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js +1 -2
  118. package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
  119. package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
  120. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +75 -60
  121. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +1 -2
  122. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  123. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  124. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +91 -76
  125. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +1 -2
  126. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  127. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  128. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +91 -76
  129. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +1 -2
  130. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  131. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  132. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +71 -56
  133. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js +1 -2
  134. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  135. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  136. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +71 -56
  137. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +1 -2
  138. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  139. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  140. package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +69 -54
  141. package/web/.next/server/app/(dashboard)/chat/page.js +1 -2
  142. package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
  143. package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
  144. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +75 -60
  145. package/web/.next/server/app/(dashboard)/create/page.js +1 -2
  146. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  147. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  148. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +91 -76
  149. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +1 -2
  150. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  151. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  152. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +91 -76
  153. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +1 -2
  154. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  155. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  156. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +69 -54
  157. package/web/.next/server/app/(dashboard)/page.js +1 -2
  158. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  159. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  160. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page/server-reference-manifest.json +71 -56
  161. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js +1 -2
  162. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
  163. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
  164. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +71 -56
  165. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +1 -2
  166. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  167. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  168. package/web/.next/server/app/_global-error.html +2 -2
  169. package/web/.next/server/app/_global-error.rsc +1 -1
  170. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  171. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  172. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  173. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  174. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  175. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
  176. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  177. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  178. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  179. package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
  180. package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
  181. package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
  182. package/web/.next/server/app/features/page/server-reference-manifest.json +6 -6
  183. package/web/.next/server/app/features/page.js.nft.json +1 -1
  184. package/web/.next/server/app/features/page_client-reference-manifest.js +1 -1
  185. package/web/.next/server/app/settings/page/server-reference-manifest.json +9 -9
  186. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  187. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  188. package/web/.next/server/app/skills/page/server-reference-manifest.json +13 -13
  189. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  190. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  191. package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
  192. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  193. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  194. package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
  195. package/web/.next/server/app/version/page.js.nft.json +1 -1
  196. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  197. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  198. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  199. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  200. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js +2 -2
  201. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_feature-drawer-client_tsx_e9755fc8._.js.map +1 -1
  202. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js +1 -1
  203. package/web/.next/server/chunks/ssr/[root-of-the-server]__1cd4327c._.js.map +1 -1
  204. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js +1 -1
  205. package/web/.next/server/chunks/ssr/[root-of-the-server]__1f389e5d._.js.map +1 -1
  206. package/web/.next/server/chunks/ssr/[root-of-the-server]__23b5ca2c._.js +1 -1
  207. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  208. package/web/.next/server/chunks/ssr/[root-of-the-server]__46b10380._.js +3 -0
  209. package/web/.next/server/chunks/ssr/[root-of-the-server]__46b10380._.js.map +1 -0
  210. package/web/.next/server/chunks/ssr/[root-of-the-server]__540c615f._.js +2 -2
  211. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js +1 -1
  212. package/web/.next/server/chunks/ssr/[root-of-the-server]__6c7d3936._.js.map +1 -1
  213. package/web/.next/server/chunks/ssr/[root-of-the-server]__7528eb6f._.js +1 -1
  214. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b512877._.js +3 -0
  215. package/web/.next/server/chunks/ssr/[root-of-the-server]__8b512877._.js.map +1 -0
  216. package/web/.next/server/chunks/ssr/[root-of-the-server]__990dba2d._.js +3 -0
  217. package/web/.next/server/chunks/ssr/[root-of-the-server]__990dba2d._.js.map +1 -0
  218. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js +1 -1
  219. package/web/.next/server/chunks/ssr/[root-of-the-server]__b7b96453._.js.map +1 -1
  220. package/web/.next/server/chunks/ssr/[root-of-the-server]__cc9c7bbb._.js +3 -0
  221. package/web/.next/server/chunks/ssr/[root-of-the-server]__cc9c7bbb._.js.map +1 -0
  222. package/web/.next/server/chunks/ssr/_05c23ad9._.js +1 -1
  223. package/web/.next/server/chunks/ssr/_05c23ad9._.js.map +1 -1
  224. package/web/.next/server/chunks/ssr/_16eb4fec._.js +1 -1
  225. package/web/.next/server/chunks/ssr/_16eb4fec._.js.map +1 -1
  226. package/web/.next/server/chunks/ssr/_35b56ded._.js +3 -0
  227. package/web/.next/server/chunks/ssr/_35b56ded._.js.map +1 -0
  228. package/web/.next/server/chunks/ssr/{_4cbb7f95._.js → _496c9117._.js} +2 -2
  229. package/web/.next/server/chunks/ssr/{_4cbb7f95._.js.map → _496c9117._.js.map} +1 -1
  230. package/web/.next/server/chunks/ssr/_56b9d60f._.js +1 -1
  231. package/web/.next/server/chunks/ssr/_56b9d60f._.js.map +1 -1
  232. package/web/.next/server/chunks/ssr/_6abfa39e._.js +1 -1
  233. package/web/.next/server/chunks/ssr/_79a4a04a._.js +3 -0
  234. package/web/.next/server/chunks/ssr/_79a4a04a._.js.map +1 -0
  235. package/web/.next/server/chunks/ssr/{_3fc2374c._.js → _a1cc5e68._.js} +2 -2
  236. package/web/.next/server/chunks/ssr/_a1cc5e68._.js.map +1 -0
  237. package/web/.next/server/chunks/ssr/{_19a779c6._.js → _a2e317b3._.js} +2 -2
  238. package/web/.next/server/chunks/ssr/{_19a779c6._.js.map → _a2e317b3._.js.map} +1 -1
  239. package/web/.next/server/chunks/ssr/_f8c55130._.js +1 -1
  240. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  241. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  242. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js +1 -1
  243. package/web/.next/server/chunks/ssr/f3a1f_components_common_control-center-drawer_repository-drawer-client_tsx_39a00c03._.js.map +1 -1
  244. package/web/.next/server/chunks/ssr/src_presentation_web_06109d28._.js +5 -0
  245. package/web/.next/server/chunks/ssr/src_presentation_web_06109d28._.js.map +1 -0
  246. package/web/.next/server/chunks/ssr/src_presentation_web_0bca70f8._.js +3 -0
  247. package/web/.next/server/chunks/ssr/src_presentation_web_0bca70f8._.js.map +1 -0
  248. package/web/.next/server/chunks/ssr/src_presentation_web_367cdbe0._.js +3 -0
  249. package/web/.next/server/chunks/ssr/src_presentation_web_367cdbe0._.js.map +1 -0
  250. package/web/.next/server/chunks/ssr/src_presentation_web_57fed7fd._.js +3 -0
  251. package/web/.next/server/chunks/ssr/src_presentation_web_57fed7fd._.js.map +1 -0
  252. package/web/.next/server/chunks/ssr/src_presentation_web_7f567f6d._.js +3 -0
  253. package/web/.next/server/chunks/ssr/src_presentation_web_7f567f6d._.js.map +1 -0
  254. package/web/.next/server/chunks/ssr/src_presentation_web_972f58d5._.js +3 -0
  255. package/web/.next/server/chunks/ssr/src_presentation_web_972f58d5._.js.map +1 -0
  256. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js +1 -1
  257. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_4ce30db7.js.map +1 -1
  258. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js +1 -1
  259. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_e4032193.js.map +1 -1
  260. package/web/.next/server/chunks/ssr/src_presentation_web_a71b18a2._.js +3 -0
  261. package/web/.next/server/chunks/ssr/src_presentation_web_a71b18a2._.js.map +1 -0
  262. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js +2 -2
  263. package/web/.next/server/chunks/ssr/src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js.map +1 -1
  264. package/web/.next/server/chunks/ssr/src_presentation_web_bebe675e._.js +3 -0
  265. package/web/.next/server/chunks/ssr/src_presentation_web_bebe675e._.js.map +1 -0
  266. package/web/.next/server/chunks/ssr/src_presentation_web_c93e8bc6._.js +3 -0
  267. package/web/.next/server/chunks/ssr/src_presentation_web_c93e8bc6._.js.map +1 -0
  268. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js +1 -1
  269. package/web/.next/server/chunks/ssr/src_presentation_web_components_895e5bfa._.js.map +1 -1
  270. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  271. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  272. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js +1 -1
  273. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_skills_8a174cac._.js.map +1 -1
  274. package/web/.next/server/chunks/ssr/src_presentation_web_e729f44a._.js +5 -0
  275. package/web/.next/server/chunks/ssr/src_presentation_web_e729f44a._.js.map +1 -0
  276. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js +1 -1
  277. package/web/.next/server/chunks/ssr/translations_23dd5e7e._.js.map +1 -1
  278. package/web/.next/server/pages/500.html +2 -2
  279. package/web/.next/server/server-reference-manifest.js +1 -1
  280. package/web/.next/server/server-reference-manifest.json +590 -484
  281. package/web/.next/static/chunks/{b5d355eb59916926.js → 0b6c8ca8403db859.js} +2 -2
  282. package/web/.next/static/chunks/{eaa1b979d63d322b.js → 0ff97e3b2c05f514.js} +1 -1
  283. package/web/.next/static/chunks/124b79a5d2a760fb.css +1 -0
  284. package/web/.next/static/chunks/{829d2f8ef2715f2f.js → 27b1e99ab97bdf52.js} +3 -3
  285. package/web/.next/static/chunks/28ad440cbb92bebe.js +1 -0
  286. package/web/.next/static/chunks/{4c20d4cd4786a0c8.js → 2ce798babf8adbc5.js} +1 -1
  287. package/web/.next/static/chunks/{ef897f150084ef85.js → 374e00e5b4ab142e.js} +1 -1
  288. package/web/.next/static/chunks/4052a4971fbbac9c.js +1 -0
  289. package/web/.next/static/chunks/{0a706f8508eae0a8.js → 44dc686d971c7513.js} +3 -3
  290. package/web/.next/static/chunks/{0d0e2661bd167e0f.js → 64a765a6eec07603.js} +1 -1
  291. package/web/.next/static/chunks/{bb479c31b5b53bac.js → 74c37f189bc83156.js} +2 -2
  292. package/web/.next/static/chunks/8057357cf1f9b4ef.js +1 -0
  293. package/web/.next/static/chunks/{b5a916fec4cdc897.js → 8ecdaada8068211c.js} +1 -1
  294. package/web/.next/static/chunks/b2c52514837b4fc4.js +1 -0
  295. package/web/.next/static/chunks/{efd57b6ffc7cbd54.js → b567f6c06cc7013a.js} +1 -1
  296. package/web/.next/static/chunks/{c0e4cd44851a9293.js → bbc95353509ede89.js} +1 -1
  297. package/web/.next/static/chunks/{77d6506c7d1f711f.js → f2ec6318c5ff73b8.js} +1 -1
  298. package/web/.next/static/chunks/{18f429029d702545.js → f7741bf45b42ac62.js} +1 -1
  299. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js +0 -3
  300. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_adopt_page_actions_ad0071c9.js.map +0 -1
  301. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js +0 -3
  302. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_@drawer_chat_page_actions_90d98b2b.js.map +0 -1
  303. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js +0 -3
  304. package/web/.next/server/chunks/ssr/744ca_web__next-internal_server_app_(dashboard)_chat_page_actions_d3828105.js.map +0 -1
  305. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js +0 -3
  306. package/web/.next/server/chunks/ssr/[root-of-the-server]__51ec77a8._.js.map +0 -1
  307. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js +0 -3
  308. package/web/.next/server/chunks/ssr/[root-of-the-server]__66047a1b._.js.map +0 -1
  309. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js +0 -3
  310. package/web/.next/server/chunks/ssr/[root-of-the-server]__a932cd3a._.js.map +0 -1
  311. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js +0 -3
  312. package/web/.next/server/chunks/ssr/[root-of-the-server]__aa72e794._.js.map +0 -1
  313. package/web/.next/server/chunks/ssr/_073183f4._.js +0 -3
  314. package/web/.next/server/chunks/ssr/_073183f4._.js.map +0 -1
  315. package/web/.next/server/chunks/ssr/_3fc2374c._.js.map +0 -1
  316. package/web/.next/server/chunks/ssr/_57b1af27._.js +0 -3
  317. package/web/.next/server/chunks/ssr/_57b1af27._.js.map +0 -1
  318. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js +0 -3
  319. package/web/.next/server/chunks/ssr/src_presentation_web_17d39233._.js.map +0 -1
  320. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js +0 -5
  321. package/web/.next/server/chunks/ssr/src_presentation_web_54b02639._.js.map +0 -1
  322. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js +0 -5
  323. package/web/.next/server/chunks/ssr/src_presentation_web_7b7b9e3b._.js.map +0 -1
  324. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js +0 -3
  325. package/web/.next/server/chunks/ssr/src_presentation_web_807cba76._.js.map +0 -1
  326. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js +0 -3
  327. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_90b5e66e.js.map +0 -1
  328. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js +0 -3
  329. package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_baaca5d5._.js.map +0 -1
  330. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js +0 -3
  331. package/web/.next/server/chunks/ssr/src_presentation_web_e1cd1869._.js.map +0 -1
  332. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js +0 -3
  333. package/web/.next/server/chunks/ssr/src_presentation_web_e3a30e30._.js.map +0 -1
  334. package/web/.next/static/chunks/3fc5b2287f192799.js +0 -1
  335. package/web/.next/static/chunks/a20f2d6f76f469b7.css +0 -1
  336. package/web/.next/static/chunks/ddd34e939acc204f.js +0 -1
  337. package/web/.next/static/chunks/f9d948464ed409cb.js +0 -1
  338. package/web/.next/static/chunks/fc0232384ec2b48d.js +0 -1
  339. /package/web/.next/static/{UZ2czjiAnEl1RF-HTzHyA → d9JsHxuahs7UrJKwH-FGH}/_buildManifest.js +0 -0
  340. /package/web/.next/static/{UZ2czjiAnEl1RF-HTzHyA → d9JsHxuahs7UrJKwH-FGH}/_clientMiddlewareManifest.json +0 -0
  341. /package/web/.next/static/{UZ2czjiAnEl1RF-HTzHyA → d9JsHxuahs7UrJKwH-FGH}/_ssgManifest.js +0 -0
@@ -1,10 +1,10 @@
1
- module.exports=[71185,a=>{"use strict";var b=a.i(12656),c=a.i(69845),d=a.i(96960),e=a.i(31378),f=a.i(25700);let g=(0,f.default)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]]);var h=a.i(33511);let i=(0,f.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var j=a.i(2807);let k=(0,f.default)("arrow-down-a-z",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]),l=(0,f.default)("arrow-up-a-z",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]);class m{constructor(a){this.table=a}reloadData(a,b,c){return this.table.dataLoader.load(a,void 0,void 0,void 0,b,c)}langText(){return this.table.modules.localize.getText(...arguments)}langBind(){return this.table.modules.localize.bind(...arguments)}langLocale(){return this.table.modules.localize.getLocale(...arguments)}commsConnections(){return this.table.modules.comms.getConnections(...arguments)}commsSend(){return this.table.modules.comms.send(...arguments)}layoutMode(){return this.table.modules.layout.getMode()}layoutRefresh(a){return this.table.modules.layout.layout(a)}subscribe(){return this.table.eventBus.subscribe(...arguments)}unsubscribe(){return this.table.eventBus.unsubscribe(...arguments)}subscribed(a){return this.table.eventBus.subscribed(a)}subscriptionChange(){return this.table.eventBus.subscriptionChange(...arguments)}dispatch(){return this.table.eventBus.dispatch(...arguments)}chain(){return this.table.eventBus.chain(...arguments)}confirm(){return this.table.eventBus.confirm(...arguments)}dispatchExternal(){return this.table.externalEvents.dispatch(...arguments)}subscribedExternal(a){return this.table.externalEvents.subscribed(a)}subscriptionChangeExternal(){return this.table.externalEvents.subscriptionChange(...arguments)}options(a){return this.table.options[a]}setOption(a,b){return void 0!==b&&(this.table.options[a]=b),this.table.options[a]}deprecationCheck(a,b,c){return this.table.deprecationAdvisor.check(a,b,c)}deprecationCheckMsg(a,b){return this.table.deprecationAdvisor.checkMsg(a,b)}deprecationMsg(a){return this.table.deprecationAdvisor.msg(a)}module(a){return this.table.module(a)}}class n{static elVisible(a){return!(a.offsetWidth<=0&&a.offsetHeight<=0)}static elOffset(a){var b=a.getBoundingClientRect();return{top:b.top+window.pageYOffset-document.documentElement.clientTop,left:b.left+window.pageXOffset-document.documentElement.clientLeft}}static retrieveNestedData(a,b,c){var d,e=a?b.split(a):[b],f=e.length;for(let a=0;a<f&&(d=c=c[e[a]],c);a++);return d}static deepClone(a,b,c=[]){var d={}.__proto__,e=[].__proto__;for(var f in b||(b=Object.assign(Array.isArray(a)?[]:{},a)),a){let g=a[f],h,i;null!=g&&"object"==typeof g&&(g.__proto__===d||g.__proto__===e)&&((h=c.findIndex(a=>a.subject===g))>-1?b[f]=c[h].copy:(i=Object.assign(Array.isArray(g)?[]:{},g),c.unshift({subject:g,copy:i}),b[f]=this.deepClone(g,i,c)))}return b}}let o=class a extends m{constructor(a,b,c){super(a),this.element=b,this.container=this._lookupContainer(),this.parent=c,this.reversedX=!1,this.childPopup=null,this.blurable=!1,this.blurCallback=null,this.blurEventsBound=!1,this.renderedCallback=null,this.visible=!1,this.hideable=!0,this.element.classList.add("tabulator-popup-container"),this.blurEvent=this.hide.bind(this,!1),this.escEvent=this._escapeCheck.bind(this),this.destroyBinding=this.tableDestroyed.bind(this),this.destroyed=!1}tableDestroyed(){this.destroyed=!0,this.hide(!0)}_lookupContainer(){var a=this.table.options.popupContainer;return"string"==typeof a?(a=document.querySelector(a))||console.warn("Menu Error - no container element found matching selector:",this.table.options.popupContainer,"(defaulting to document body)"):!0===a&&(a=this.table.element),a&&!this._checkContainerIsParent(a)&&(a=!1,console.warn("Menu Error - container element does not contain this table:",this.table.options.popupContainer,"(defaulting to document body)")),a||(a=document.body),a}_checkContainerIsParent(a,b=this.table.element){return a===b||!!b.parentNode&&this._checkContainerIsParent(a,b.parentNode)}renderCallback(a){this.renderedCallback=a}containerEventCoords(a){var b=!(a instanceof MouseEvent),c=b?a.touches[0].pageX:a.pageX,d=b?a.touches[0].pageY:a.pageY;if(this.container!==document.body){let a=n.elOffset(this.container);c-=a.left,d-=a.top}return{x:c,y:d}}elementPositionCoords(a,b="right"){var c,d,e,f=n.elOffset(a);switch(this.container!==document.body&&(c=n.elOffset(this.container),f.left-=c.left,f.top-=c.top),b){case"right":d=f.left+a.offsetWidth,e=f.top-1;break;case"bottom":d=f.left,e=f.top+a.offsetHeight;break;case"left":d=f.left,e=f.top-1;break;case"top":d=f.left,e=f.top;break;case"center":d=f.left+a.offsetWidth/2,e=f.top+a.offsetHeight/2}return{x:d,y:e,offset:f}}show(a,b){var c,d,e,f,g;return this.destroyed||this.table.destroyed||(a instanceof HTMLElement?(e=a,f=(g=this.elementPositionCoords(a,b)).offset,c=g.x,d=g.y):"number"==typeof a?(f={top:0,left:0},c=a,d=b):(c=(g=this.containerEventCoords(a)).x,d=g.y,this.reversedX=!1),this.element.style.top=d+"px",this.element.style.left=c+"px",this.container.appendChild(this.element),"function"==typeof this.renderedCallback&&this.renderedCallback(),this._fitToScreen(c,d,e,f,b),this.visible=!0,this.subscribe("table-destroy",this.destroyBinding),this.element.addEventListener("mousedown",a=>{a.stopPropagation()})),this}_fitToScreen(a,b,c,d,e){var f=this.container===document.body?document.documentElement.scrollTop:this.container.scrollTop;(a+this.element.offsetWidth>=this.container.offsetWidth||this.reversedX)&&(this.element.style.left="",c?this.element.style.right=this.container.offsetWidth-d.left+"px":this.element.style.right=this.container.offsetWidth-a+"px",this.reversedX=!0);let g=Math.max(this.container.offsetHeight,f?this.container.scrollHeight:0);b+this.element.offsetHeight>g&&(c?"bottom"===e?this.element.style.top=parseInt(this.element.style.top)-this.element.offsetHeight-c.offsetHeight-1+"px":this.element.style.top=parseInt(this.element.style.top)-this.element.offsetHeight+c.offsetHeight+1+"px":this.element.style.height=g+"px")}isVisible(){return this.visible}hideOnBlur(a){return this.blurable=!0,this.visible&&(setTimeout(()=>{this.visible&&(this.table.rowManager.element.addEventListener("scroll",this.blurEvent),this.subscribe("cell-editing",this.blurEvent),document.body.addEventListener("click",this.blurEvent),document.body.addEventListener("contextmenu",this.blurEvent),document.body.addEventListener("mousedown",this.blurEvent),window.addEventListener("resize",this.blurEvent),document.body.addEventListener("keydown",this.escEvent),this.blurEventsBound=!0)},100),this.blurCallback=a),this}_escapeCheck(a){27==a.key&&this.hide()}blockHide(){this.hideable=!1}restoreHide(){this.hideable=!0}hide(a=!1){return this.visible&&this.hideable&&(this.blurable&&this.blurEventsBound&&(document.body.removeEventListener("keydown",this.escEvent),document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),document.body.removeEventListener("mousedown",this.blurEvent),window.removeEventListener("resize",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent),this.unsubscribe("cell-editing",this.blurEvent),this.blurEventsBound=!1),this.childPopup&&this.childPopup.hide(),this.parent&&(this.parent.childPopup=null),this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.visible=!1,this.blurCallback&&!a&&this.blurCallback(),this.unsubscribe("table-destroy",this.destroyBinding)),this}child(b){return this.childPopup&&this.childPopup.hide(),this.childPopup=new a(this.table,b,this),this.childPopup}};class p extends m{constructor(a,b){super(a),this._handler=null}initialize(){}registerTableOption(a,b){this.table.optionsList.register(a,b)}registerColumnOption(a,b){this.table.columnManager.optionsList.register(a,b)}registerTableFunction(a,b){void 0===this.table[a]?this.table[a]=(...c)=>(this.table.initGuard(a),b(...c)):console.warn("Unable to bind table function, name already in use",a)}registerComponentFunction(a,b,c){return this.table.componentFunctionBinder.bind(a,b,c)}registerDataHandler(a,b){this.table.rowManager.registerDataPipelineHandler(a,b),this._handler=a}registerDisplayHandler(a,b){this.table.rowManager.registerDisplayPipelineHandler(a,b),this._handler=a}displayRows(a){var b,c=this.table.rowManager.displayRows.length-1;if(this._handler&&(b=this.table.rowManager.displayPipeline.findIndex(a=>a.handler===this._handler))>-1&&(c=b),a&&(c+=a),this._handler)if(c>-1)return this.table.rowManager.getDisplayRows(c);else return this.activeRows()}activeRows(){return this.table.rowManager.activeRows}refreshData(a,b){b||(b=this._handler),b&&this.table.rowManager.refreshActiveData(b,!1,a)}footerAppend(a){return this.table.footerManager.append(a)}footerPrepend(a){return this.table.footerManager.prepend(a)}footerRemove(a){return this.table.footerManager.remove(a)}popup(a,b){return new o(this.table,a,b)}alert(a,b){return this.table.alertManager.alert(a,b)}clearAlert(){return this.table.alertManager.clear()}}var q={rownum:function(a,b,c,d,e,f){return f.getPosition()}};class r extends p{static moduleName="accessor";static accessors=q;constructor(a){super(a),this.allowedTypes=["","data","download","clipboard","print","htmlOutput"],this.registerColumnOption("accessor"),this.registerColumnOption("accessorParams"),this.registerColumnOption("accessorData"),this.registerColumnOption("accessorDataParams"),this.registerColumnOption("accessorDownload"),this.registerColumnOption("accessorDownloadParams"),this.registerColumnOption("accessorClipboard"),this.registerColumnOption("accessorClipboardParams"),this.registerColumnOption("accessorPrint"),this.registerColumnOption("accessorPrintParams"),this.registerColumnOption("accessorHtmlOutput"),this.registerColumnOption("accessorHtmlOutputParams")}initialize(){this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("row-data-retrieve",this.transformRow.bind(this))}initializeColumn(a){var b=!1,c={};this.allowedTypes.forEach(d=>{var e,f="accessor"+(d.charAt(0).toUpperCase()+d.slice(1));a.definition[f]&&(e=this.lookupAccessor(a.definition[f]))&&(b=!0,c[f]={accessor:e,params:a.definition[f+"Params"]||{}})}),b&&(a.modules.accessor=c)}lookupAccessor(a){var b=!1;switch(typeof a){case"string":r.accessors[a]?b=r.accessors[a]:console.warn("Accessor Error - No such accessor found, ignoring: ",a);break;case"function":b=a}return b}transformRow(a,b){var c="accessor"+(b.charAt(0).toUpperCase()+b.slice(1)),d=a.getComponent(),e=n.deepClone(a.data||{});return this.table.columnManager.traverse(function(a){var f,g,h,i;a.modules.accessor&&(g=a.modules.accessor[c]||a.modules.accessor.accessor||!1)&&"undefined"!=(f=a.getFieldValue(e))&&(i=a.getComponent(),h="function"==typeof g.params?g.params(f,e,b,i,d):g.params,a.setFieldValue(e,g.accessor(f,e,b,h,i,d)))}),e}}var s={method:"GET"};function t(a,b,c){if(a&&c&&Object.keys(c).length&&(!b.method||"get"==b.method.toLowerCase())){var d,e;b.method="get",a+=(a.includes("?")?"&":"?")+(d=function a(b,c){var d=[];if(c=c||"",Array.isArray(b))b.forEach((b,e)=>{d=d.concat(a(b,c?c+"["+e+"]":e))});else if("object"==typeof b)for(var e in b)d=d.concat(a(b[e],c?c+"["+e+"]":e));else d.push({key:c,value:b});return d}(c),e=[],d.forEach(function(a){e.push(encodeURIComponent(a.key)+"="+encodeURIComponent(a.value))}),e.join("&"))}return a}function u(a,b,c){var d;return new Promise((e,f)=>{if(a=this.urlGenerator.call(this.table,a,b,c),"GET"!=b.method.toUpperCase())if(d="object"==typeof this.table.options.ajaxContentType?this.table.options.ajaxContentType:this.contentTypeFormatters[this.table.options.ajaxContentType]){for(var g in d.headers)b.headers||(b.headers={}),void 0===b.headers[g]&&(b.headers[g]=d.headers[g]);b.body=d.body.call(this,a,b,c)}else console.warn("Ajax Error - Invalid ajaxContentType value:",this.table.options.ajaxContentType);a?(void 0===b.headers&&(b.headers={}),void 0===b.headers.Accept&&(b.headers.Accept="application/json"),void 0===b.headers["X-Requested-With"]&&(b.headers["X-Requested-With"]="XMLHttpRequest"),void 0===b.mode&&(b.mode="cors"),"cors"==b.mode?(void 0===b.headers.Origin&&(b.headers.Origin=window.location.origin),void 0===b.credentials&&(b.credentials="same-origin")):void 0===b.credentials&&(b.credentials="include"),fetch(a,b).then(a=>{a.ok?a.json().then(a=>{e(a)}).catch(a=>{f(a),console.warn("Ajax Load Error - Invalid JSON returned",a)}):(console.error("Ajax Load Error - Connection Error: "+a.status,a.statusText),f(a))}).catch(a=>{console.error("Ajax Load Error - Connection Error: ",a),f(a)})):(console.warn("Ajax Load Error - No URL Set"),e([]))})}var v={json:{headers:{"Content-Type":"application/json"},body:function(a,b,c){return JSON.stringify(c)}},form:{headers:{},body:function(a,b,c){var d=function a(b,c){var d=[];if(c=c||"",Array.isArray(b))b.forEach((b,e)=>{d=d.concat(a(b,c?c+"["+e+"]":e))});else if("object"==typeof b)for(var e in b)d=d.concat(a(b[e],c?c+"["+e+"]":e));else d.push({key:c,value:b});return d}(c),e=new FormData;return d.forEach(function(a){e.append(a.key,a.value)}),e}}};class w extends p{static moduleName="ajax";static defaultConfig=s;static defaultURLGenerator=t;static defaultLoaderPromise=u;static contentTypeFormatters=v;constructor(a){super(a),this.config={},this.url="",this.urlGenerator=!1,this.params=!1,this.loaderPromise=!1,this.registerTableOption("ajaxURL",!1),this.registerTableOption("ajaxURLGenerator",!1),this.registerTableOption("ajaxParams",{}),this.registerTableOption("ajaxConfig","get"),this.registerTableOption("ajaxContentType","form"),this.registerTableOption("ajaxRequestFunc",!1),this.registerTableOption("ajaxRequesting",function(){}),this.registerTableOption("ajaxResponse",!1),this.contentTypeFormatters=w.contentTypeFormatters}initialize(){this.loaderPromise=this.table.options.ajaxRequestFunc||w.defaultLoaderPromise,this.urlGenerator=this.table.options.ajaxURLGenerator||w.defaultURLGenerator,this.table.options.ajaxURL&&this.setUrl(this.table.options.ajaxURL),this.setDefaultConfig(this.table.options.ajaxConfig),this.registerTableFunction("getAjaxUrl",this.getUrl.bind(this)),this.subscribe("data-loading",this.requestDataCheck.bind(this)),this.subscribe("data-params",this.requestParams.bind(this)),this.subscribe("data-load",this.requestData.bind(this))}requestParams(a,b,c,d){var e=this.table.options.ajaxParams;return e&&("function"==typeof e&&(e=e.call(this.table)),d=Object.assign(Object.assign({},e),d)),d}requestDataCheck(a,b,c,d){return!!(!a&&this.url||"string"==typeof a)}requestData(a,b,c,d,e){var f;return!e&&this.requestDataCheck(a)?(a&&this.setUrl(a),f=this.generateConfig(c),this.sendRequest(this.url,b,f)):e}setDefaultConfig(a={}){this.config=Object.assign({},w.defaultConfig),"string"==typeof a?this.config.method=a:Object.assign(this.config,a)}generateConfig(a={}){var b=Object.assign({},this.config);return"string"==typeof a?b.method=a:Object.assign(b,a),b}setUrl(a){this.url=a}getUrl(){return this.url}sendRequest(a,b,c){return!1!==this.table.options.ajaxRequesting.call(this.table,a,b)?this.loaderPromise(a,c,b).then(c=>(this.table.options.ajaxResponse&&(c=this.table.options.ajaxResponse.call(this.table,a,b,c)),c)):Promise.reject()}}var x={replace:function(a){return this.table.setData(a)},update:function(a){return this.table.updateOrAddData(a)},insert:function(a){return this.table.addData(a)}},y={table:function(a){var b=[],c=!0,d=this.table.columnManager.columns,e=[],f=[];return(a=a.split("\n")).forEach(function(a){b.push(a.split(" "))}),!!b.length&&(1!==b.length||!(b[0].length<2))&&(b[0].forEach(function(a){var b=d.find(function(b){return a&&b.definition.title&&a.trim()&&b.definition.title.trim()===a.trim()});b?e.push(b):c=!1}),!c&&(c=!0,e=[],b[0].forEach(function(a){var b=d.find(function(b){return a&&b.field&&a.trim()&&b.field.trim()===a.trim()});b?e.push(b):c=!1}),c||(e=this.table.columnManager.columnsByIndex)),c&&b.shift(),b.forEach(function(a){var b={};a.forEach(function(a,c){e[c]&&(b[e[c].field]=a)}),f.push(b)}),f)}},z={keybindings:{bindings:{copyToClipboard:["ctrl + 67","meta + 67"]},actions:{copyToClipboard:function(a){!this.table.modules.edit.currentCell&&this.table.modExists("clipboard",!0)&&this.table.modules.clipboard.copy(!1,!0)}}}};class A extends p{static moduleName="clipboard";static moduleExtensions=z;static pasteActions=x;static pasteParsers=y;constructor(a){super(a),this.mode=!0,this.pasteParser=function(){},this.pasteAction=function(){},this.customSelection=!1,this.rowRange=!1,this.blocked=!0,this.registerTableOption("clipboard",!1),this.registerTableOption("clipboardCopyStyled",!0),this.registerTableOption("clipboardCopyConfig",!1),this.registerTableOption("clipboardCopyFormatter",!1),this.registerTableOption("clipboardCopyRowRange","active"),this.registerTableOption("clipboardPasteParser","table"),this.registerTableOption("clipboardPasteAction","insert"),this.registerColumnOption("clipboard"),this.registerColumnOption("titleClipboard")}initialize(){this.mode=this.table.options.clipboard,this.rowRange=this.table.options.clipboardCopyRowRange,(!0===this.mode||"copy"===this.mode)&&this.table.element.addEventListener("copy",a=>{var b,c,d;this.blocked||(a.preventDefault(),this.customSelection?(b=this.customSelection,this.table.options.clipboardCopyFormatter&&(b=this.table.options.clipboardCopyFormatter("plain",b))):(d=this.table.modules.export.generateExportList(this.table.options.clipboardCopyConfig,this.table.options.clipboardCopyStyled,this.rowRange,"clipboard"),b=(c=this.table.modules.export.generateHTMLTable(d))?this.generatePlainContent(d):"",this.table.options.clipboardCopyFormatter&&(b=this.table.options.clipboardCopyFormatter("plain",b),c=this.table.options.clipboardCopyFormatter("html",c))),window.clipboardData&&window.clipboardData.setData?window.clipboardData.setData("Text",b):a.clipboardData&&a.clipboardData.setData?(a.clipboardData.setData("text/plain",b),c&&a.clipboardData.setData("text/html",c)):a.originalEvent&&a.originalEvent.clipboardData.setData&&(a.originalEvent.clipboardData.setData("text/plain",b),c&&a.originalEvent.clipboardData.setData("text/html",c)),this.dispatchExternal("clipboardCopied",b,c),this.reset())}),(!0===this.mode||"paste"===this.mode)&&this.table.element.addEventListener("paste",a=>{this.paste(a)}),this.setPasteParser(this.table.options.clipboardPasteParser),this.setPasteAction(this.table.options.clipboardPasteAction),this.registerTableFunction("copyToClipboard",this.copy.bind(this))}reset(){this.blocked=!0,this.customSelection=!1}generatePlainContent(a){var b=[];return a.forEach(a=>{var c=[];a.columns.forEach(b=>{var d="";if(b)if("group"===a.type&&(b.value=b.component.getKey()),null===b.value)d="";else switch(typeof b.value){case"object":d=JSON.stringify(b.value);break;case"undefined":d="";break;default:d=b.value}c.push(d)}),b.push(c.join(" "))}),b.join("\n")}copy(a,b){var c,d;this.blocked=!1,this.customSelection=!1,(!0===this.mode||"copy"===this.mode)&&(this.rowRange=a||this.table.options.clipboardCopyRowRange,void 0!==window.getSelection&&void 0!==document.createRange?((a=document.createRange()).selectNodeContents(this.table.element),(c=window.getSelection()).toString()&&b&&(this.customSelection=c.toString()),c.removeAllRanges(),c.addRange(a)):void 0!==document.selection&&void 0!==document.body.createTextRange&&((d=document.body.createTextRange()).moveToElementText(this.table.element),d.select()),document.execCommand("copy"),c&&c.removeAllRanges())}setPasteAction(a){switch(typeof a){case"string":this.pasteAction=A.pasteActions[a],this.pasteAction||console.warn("Clipboard Error - No such paste action found:",a);break;case"function":this.pasteAction=a}}setPasteParser(a){switch(typeof a){case"string":this.pasteParser=A.pasteParsers[a],this.pasteParser||console.warn("Clipboard Error - No such paste parser found:",a);break;case"function":this.pasteParser=a}}paste(a){var b,c,d;this.checkPasteOrigin(a)&&(b=this.getPasteData(a),(c=this.pasteParser.call(this,b))?(a.preventDefault(),this.table.modExists("mutator")&&(c=this.mutateData(c)),d=this.pasteAction.call(this,c),this.dispatchExternal("clipboardPasted",b,c,d)):this.dispatchExternal("clipboardPasteError",b))}mutateData(a){var b=[];return Array.isArray(a)?a.forEach(a=>{b.push(this.table.modules.mutator.transformRow(a,"clipboard"))}):b=a,b}checkPasteOrigin(a){var b=!0;return(this.confirm("clipboard-paste",[a])||!["DIV","SPAN"].includes(a.target.tagName))&&(b=!1),b}getPasteData(a){var b;return window.clipboardData&&window.clipboardData.getData?b=window.clipboardData.getData("Text"):a.clipboardData&&a.clipboardData.getData?b=a.clipboardData.getData("text/plain"):a.originalEvent&&a.originalEvent.clipboardData.getData&&(b=a.originalEvent.clipboardData.getData("text/plain")),b}}class B{constructor(a){return this._row=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._row.table.componentFunctionBinder.handle("row",a._row,b)}})}getData(a){return this._row.getData(a)}getElement(){return this._row.getElement()}getTable(){return this._row.table}getCells(){var a=[];return this._row.getCells().forEach(function(b){a.push(b.getComponent())}),a}getCell(a){var b=this._row.getCell(a);return!!b&&b.getComponent()}_getSelf(){return this._row}}class C{constructor(a){return this._cell=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._cell.table.componentFunctionBinder.handle("cell",a._cell,b)}})}getValue(){return this._cell.getValue()}getOldValue(){return this._cell.getOldValue()}getInitialValue(){return this._cell.initialValue}getElement(){return this._cell.getElement()}getRow(){return this._cell.row.getComponent()}getData(a){return this._cell.row.getData(a)}getType(){return"cell"}getField(){return this._cell.column.getField()}getColumn(){return this._cell.column.getComponent()}setValue(a,b){void 0===b&&(b=!0),this._cell.setValue(a,b)}restoreOldValue(){this._cell.setValueActual(this._cell.getOldValue())}restoreInitialValue(){this._cell.setValueActual(this._cell.initialValue)}checkHeight(){this._cell.checkHeight()}getTable(){return this._cell.table}_getSelf(){return this._cell}}class D extends m{constructor(a,b){super(a.table),this.table=a.table,this.column=a,this.row=b,this.element=null,this.value=null,this.initialValue,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.component=null,this.loaded=!1,this.build()}build(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data)),this.initialValue=this.value}generateElement(){this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.column.isRowHeader&&this.element.classList.add("tabulator-row-header")}_configureCell(){var a=this.element,b=this.column.getField();a.style.textAlign=this.column.hozAlign,this.column.vertAlign&&(a.style.display="inline-flex",a.style.alignItems=({top:"flex-start",bottom:"flex-end",middle:"center"})[this.column.vertAlign]||"",this.column.hozAlign&&(a.style.justifyContent=({left:"flex-start",right:"flex-end",center:"center"})[this.column.hozAlign]||"")),b&&a.setAttribute("tabulator-field",b),this.column.definition.cssClass&&this.column.definition.cssClass.split(" ").forEach(b=>{a.classList.add(b)}),this.dispatch("cell-init",this),this.column.visible||this.hide()}_generateContents(){var a;switch(typeof(a=this.chain("cell-format",this,null,()=>this.element.innerHTML=this.value))){case"object":if(a instanceof Node){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.appendChild(a)}else this.element.innerHTML="",null!=a&&console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",a);break;case"undefined":this.element.innerHTML="";break;default:this.element.innerHTML=a}}cellRendered(){this.dispatch("cell-rendered",this)}getElement(a){return!this.loaded&&(this.loaded=!0,a||this.layoutElement()),this.element}getValue(){return this.value}getOldValue(){return this.oldValue}setValue(a,b,c){this.setValueProcessData(a,b,c)&&(this.dispatch("cell-value-updated",this),this.cellRendered(),this.column.definition.cellEdited&&this.column.definition.cellEdited.call(this.table,this.getComponent()),this.dispatchExternal("cellEdited",this.getComponent()),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.table.rowManager.getData()))}setValueProcessData(a,b,c){var d=!1;return(this.value!==a||c)&&(d=!0,b&&(a=this.chain("cell-value-changing",[this,a],null,a))),this.setValueActual(a),d&&this.dispatch("cell-value-changed",this),d}setValueActual(a){this.oldValue=this.value,this.value=a,this.dispatch("cell-value-save-before",this),this.column.setFieldValue(this.row.data,a),this.dispatch("cell-value-save-after",this),this.loaded&&this.layoutElement()}layoutElement(){this._generateContents(),this.dispatch("cell-layout",this)}setWidth(){this.width=this.column.width,this.element.style.width=this.column.widthStyled}clearWidth(){this.width="",this.element.style.width=""}getWidth(){return this.width||this.element.offsetWidth}setMinWidth(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled}setMaxWidth(){this.maxWidth=this.column.maxWidth,this.element.style.maxWidth=this.column.maxWidthStyled}checkHeight(){this.row.reinitializeHeight()}clearHeight(){this.element.style.height="",this.height=null,this.dispatch("cell-height",this,"")}setHeight(){this.height=this.row.height,this.element.style.height=this.row.heightStyled,this.dispatch("cell-height",this,this.row.heightStyled)}getHeight(){return this.height||this.element.offsetHeight}show(){this.element.style.display=this.column.vertAlign?"inline-flex":""}hide(){this.element.style.display="none"}delete(){this.dispatch("cell-delete",this),!this.table.rowManager.redrawBlock&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}}getIndex(){return this.row.getCellIndex(this)}getComponent(){return this.component||(this.component=new C(this)),this.component}}class E{constructor(a){return this._column=a,this.type="ColumnComponent",new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._column.table.componentFunctionBinder.handle("column",a._column,b)}})}getElement(){return this._column.getElement()}getDefinition(){return this._column.getDefinition()}getField(){return this._column.getField()}getTitleDownload(){return this._column.getTitleDownload()}getCells(){var a=[];return this._column.cells.forEach(function(b){a.push(b.getComponent())}),a}isVisible(){return this._column.visible}show(){this._column.isGroup?this._column.columns.forEach(function(a){a.show()}):this._column.show()}hide(){this._column.isGroup?this._column.columns.forEach(function(a){a.hide()}):this._column.hide()}toggle(){this._column.visible?this.hide():this.show()}delete(){return this._column.delete()}getSubColumns(){var a=[];return this._column.columns.length&&this._column.columns.forEach(function(b){a.push(b.getComponent())}),a}getParentColumn(){return this._column.getParentComponent()}_getSelf(){return this._column}scrollTo(a,b){return this._column.table.columnManager.scrollToColumn(this._column,a,b)}getTable(){return this._column.table}move(a,b){var c=this._column.table.columnManager.findColumn(a);c?this._column.table.columnManager.moveColumn(this._column,c,b):console.warn("Move Error - No matching column found:",c)}getNextColumn(){var a=this._column.nextColumn();return!!a&&a.getComponent()}getPrevColumn(){var a=this._column.prevColumn();return!!a&&a.getComponent()}updateDefinition(a){return this._column.updateDefinition(a)}getWidth(){return this._column.getWidth()}setWidth(a){var b;return b=!0===a?this._column.reinitializeWidth(!0):this._column.setWidth(a),this._column.table.columnManager.rerenderColumns(!0),b}}var F={title:void 0,field:void 0,columns:void 0,visible:void 0,hozAlign:void 0,vertAlign:void 0,width:void 0,minWidth:40,maxWidth:void 0,maxInitialWidth:void 0,cssClass:void 0,variableHeight:void 0,headerVertical:void 0,headerHozAlign:void 0,headerWordWrap:!1,editableTitle:void 0};class G extends m{static defaultOptionList=F;constructor(a,b,c){super(b.table),this.definition=a,this.parent=b,this.type="column",this.columns=[],this.cells=[],this.isGroup=!1,this.isRowHeader=c,this.element=this.createElement(),this.contentElement=!1,this.titleHolderElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleDownload=null,this.titleFormatterRendered=!1,this.mapDefinitions(),this.setField(this.definition.field),this.modules={},this.width=null,this.widthStyled="",this.maxWidth=null,this.maxWidthStyled="",this.maxInitialWidth=null,this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this.component=null,this.definition.columns?(this.isGroup=!0,this.definition.columns.forEach((a,b)=>{var c=new G(a,this);this.attachColumn(c)}),this.checkColumnVisibility()):b.registerColumnField(this),this._initialize()}createElement(){var a=document.createElement("div");switch(a.classList.add("tabulator-col"),a.setAttribute("role","columnheader"),a.setAttribute("aria-sort","none"),this.isRowHeader&&a.classList.add("tabulator-row-header"),this.table.options.columnHeaderVertAlign){case"middle":a.style.justifyContent="center";break;case"bottom":a.style.justifyContent="flex-end"}return a}createGroupElement(){var a=document.createElement("div");return a.classList.add("tabulator-col-group-cols"),a}mapDefinitions(){var a=this.table.options.columnDefaults;if(a)for(let b in a)void 0===this.definition[b]&&(this.definition[b]=a[b]);this.definition=this.table.columnManager.optionsList.generate(G.defaultOptionList,this.definition)}checkDefinition(){Object.keys(this.definition).forEach(a=>{-1===G.defaultOptionList.indexOf(a)&&console.warn("Invalid column definition option in '"+(this.field||this.definition.title)+"' column:",a)})}setField(a){this.field=a,this.fieldStructure=a?this.table.options.nestedFieldSeparator?a.split(this.table.options.nestedFieldSeparator):[a]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData}registerColumnPosition(a){this.parent.registerColumnPosition(a)}registerColumnField(a){this.parent.registerColumnField(a)}reRegisterPosition(){this.isGroup?this.columns.forEach(function(a){a.reRegisterPosition()}):this.registerColumnPosition(this)}_initialize(){for(var a=this.definition;this.element.firstChild;)this.element.removeChild(this.element.firstChild);a.headerVertical&&(this.element.classList.add("tabulator-col-vertical"),"flip"===a.headerVertical&&this.element.classList.add("tabulator-col-vertical-flip")),this.contentElement=this._buildColumnHeaderContent(),this.element.appendChild(this.contentElement),this.isGroup?this._buildGroupHeader():this._buildColumnHeader(),this.dispatch("column-init",this)}_buildColumnHeader(){var a=this.definition;this.dispatch("column-layout",this),void 0!==a.visible&&(a.visible?this.show(!0):this.hide(!0)),a.cssClass&&a.cssClass.split(" ").forEach(a=>{this.element.classList.add(a)}),a.field&&this.element.setAttribute("tabulator-field",a.field),this.setMinWidth(parseInt(a.minWidth)),a.maxInitialWidth&&(this.maxInitialWidth=parseInt(a.maxInitialWidth)),a.maxWidth&&this.setMaxWidth(parseInt(a.maxWidth)),this.reinitializeWidth(),this.hozAlign=this.definition.hozAlign,this.vertAlign=this.definition.vertAlign,this.titleElement.style.textAlign=this.definition.headerHozAlign}_buildColumnHeaderContent(){var a=document.createElement("div");return a.classList.add("tabulator-col-content"),this.titleHolderElement=document.createElement("div"),this.titleHolderElement.classList.add("tabulator-col-title-holder"),a.appendChild(this.titleHolderElement),this.titleElement=this._buildColumnHeaderTitle(),this.titleHolderElement.appendChild(this.titleElement),a}_buildColumnHeaderTitle(){var a=this.definition,b=document.createElement("div");if(b.classList.add("tabulator-col-title"),a.headerWordWrap&&b.classList.add("tabulator-col-title-wrap"),a.editableTitle){var c=document.createElement("input");c.classList.add("tabulator-title-editor"),c.addEventListener("click",a=>{a.stopPropagation(),c.focus()}),c.addEventListener("mousedown",a=>{a.stopPropagation()}),c.addEventListener("change",()=>{a.title=c.value,this.dispatchExternal("columnTitleChanged",this.getComponent())}),b.appendChild(c),a.field?this.langBind("columns|"+a.field,b=>{c.value=b||a.title||"&nbsp;"}):c.value=a.title||"&nbsp;"}else a.field?this.langBind("columns|"+a.field,c=>{this._formatColumnHeaderTitle(b,c||a.title||"&nbsp;")}):this._formatColumnHeaderTitle(b,a.title||"&nbsp;");return b}_formatColumnHeaderTitle(a,b){var c=this.chain("column-format",[this,b,a],null,()=>b);switch(typeof c){case"object":c instanceof Node?a.appendChild(c):(a.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",c));break;case"undefined":a.innerHTML="";break;default:a.innerHTML=c}}_buildGroupHeader(){this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass&&this.definition.cssClass.split(" ").forEach(a=>{this.element.classList.add(a)}),this.titleElement.style.textAlign=this.definition.headerHozAlign,this.element.appendChild(this.groupElement)}_getFlatData(a){return a[this.field]}_getNestedData(a){var b,c=a,d=this.fieldStructure,e=d.length;for(let a=0;a<e&&(b=c=c[d[a]],c);a++);return b}_setFlatData(a,b){this.field&&(a[this.field]=b)}_setNestedData(a,b){var c=a,d=this.fieldStructure,e=d.length;for(let a=0;a<e;a++)if(a==e-1)c[d[a]]=b;else{if(!c[d[a]])if(void 0!==b)c[d[a]]={};else break;c=c[d[a]]}}attachColumn(a){this.groupElement?(this.columns.push(a),this.groupElement.appendChild(a.getElement()),a.columnRendered()):console.warn("Column Warning - Column being attached to another column instead of column group")}verticalAlign(a,b){var c=this.parent.isGroup?this.parent.getGroupElement().clientHeight:b||this.parent.getHeadersElement().clientHeight;this.element.style.height=c+"px",this.dispatch("column-height",this,this.element.style.height),this.isGroup&&(this.groupElement.style.minHeight=c-this.contentElement.offsetHeight+"px"),this.columns.forEach(function(b){b.verticalAlign(a)})}clearVerticalAlign(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(a){a.clearVerticalAlign()}),this.dispatch("column-height",this,"")}getElement(){return this.element}getGroupElement(){return this.groupElement}getField(){return this.field}getTitleDownload(){return this.titleDownload}getFirstColumn(){return this.isGroup?!!this.columns.length&&this.columns[0].getFirstColumn():this}getLastColumn(){return this.isGroup?!!this.columns.length&&this.columns[this.columns.length-1].getLastColumn():this}getColumns(a){var b=[];return a?this.columns.forEach(a=>{b.push(a),b=b.concat(a.getColumns(!0))}):b=this.columns,b}getCells(){return this.cells}getTopColumn(){return this.parent.isGroup?this.parent.getTopColumn():this}getDefinition(a){var b=[];return this.isGroup&&a&&(this.columns.forEach(function(a){b.push(a.getDefinition(!0))}),this.definition.columns=b),this.definition}checkColumnVisibility(){var a=!1;this.columns.forEach(function(b){b.visible&&(a=!0)}),a?(this.show(),this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1)):this.hide()}show(a,b){!this.visible&&(this.visible=!0,this.element.style.display="",this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(a){a.show()}),this.isGroup||null!==this.width||this.reinitializeWidth(),this.table.columnManager.verticalAlignHeaders(),this.dispatch("column-show",this,b),a||this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!0),this.parent.isGroup&&this.parent.matchChildWidths(),this.silent||this.table.columnManager.rerenderColumns())}hide(a,b){this.visible&&(this.visible=!1,this.element.style.display="none",this.table.columnManager.verticalAlignHeaders(),this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(a){a.hide()}),this.dispatch("column-hide",this,b),a||this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1),this.parent.isGroup&&this.parent.matchChildWidths(),this.silent||this.table.columnManager.rerenderColumns())}matchChildWidths(){var a=0;this.contentElement&&this.columns.length&&(this.columns.forEach(function(b){b.visible&&(a+=b.getWidth())}),this.contentElement.style.maxWidth=a-1+"px",this.table.initialized&&(this.element.style.width=a+"px"),this.parent.isGroup&&this.parent.matchChildWidths())}removeChild(a){var b=this.columns.indexOf(a);b>-1&&this.columns.splice(b,1),this.columns.length||this.delete()}setWidth(a){this.widthFixed=!0,this.setWidthActual(a)}setWidthActual(a){isNaN(a)&&(a=Math.floor(this.table.element.clientWidth/100*parseInt(a))),a=Math.max(this.minWidth,a),this.maxWidth&&(a=Math.min(this.maxWidth,a)),this.width=a,this.widthStyled=a?a+"px":"",this.element.style.width=this.widthStyled,this.isGroup||this.cells.forEach(function(a){a.setWidth()}),this.parent.isGroup&&this.parent.matchChildWidths(),this.dispatch("column-width",this),this.subscribedExternal("columnWidth")&&this.dispatchExternal("columnWidth",this.getComponent())}checkCellHeights(){var a=[];this.cells.forEach(function(b){b.row.heightInitialized&&(null!==b.row.getElement().offsetParent?(a.push(b.row),b.row.clearCellHeight()):b.row.heightInitialized=!1)}),a.forEach(function(a){a.calcHeight()}),a.forEach(function(a){a.setCellHeight()})}getWidth(){var a=0;return this.isGroup?this.columns.forEach(function(b){b.visible&&(a+=b.getWidth())}):a=this.width,a}getLeftOffset(){var a=this.element.offsetLeft;return this.parent.isGroup&&(a+=this.parent.getLeftOffset()),a}getHeight(){return Math.ceil(this.element.getBoundingClientRect().height)}setMinWidth(a){this.maxWidth&&a>this.maxWidth&&console.warn("the minWidth ("+(a=this.maxWidth)+"px) for column '"+this.field+"' cannot be bigger that its maxWidth ("+this.maxWidthStyled+")"),this.minWidth=a,this.minWidthStyled=a?a+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(a){a.setMinWidth()})}setMaxWidth(a){this.minWidth&&a<this.minWidth&&console.warn("the maxWidth ("+(a=this.minWidth)+"px) for column '"+this.field+"' cannot be smaller that its minWidth ("+this.minWidthStyled+")"),this.maxWidth=a,this.maxWidthStyled=a?a+"px":"",this.element.style.maxWidth=this.maxWidthStyled,this.cells.forEach(function(a){a.setMaxWidth()})}delete(){return new Promise((a,b)=>{this.isGroup&&this.columns.forEach(function(a){a.delete()}),this.dispatch("column-delete",this);var c=this.cells.length;for(let a=0;a<c;a++)this.cells[0].delete();this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=!1,this.contentElement=!1,this.titleElement=!1,this.groupElement=!1,this.parent.isGroup&&this.parent.removeChild(this),this.table.columnManager.deregisterColumn(this),this.table.columnManager.rerenderColumns(!0),this.dispatch("column-deleted",this),a()})}columnRendered(){this.titleFormatterRendered&&this.titleFormatterRendered(),this.dispatch("column-rendered",this)}generateCell(a){var b=new D(this,a);return this.cells.push(b),b}nextColumn(){var a=this.table.columnManager.findColumnIndex(this);return a>-1&&this._nextVisibleColumn(a+1)}_nextVisibleColumn(a){var b=this.table.columnManager.getColumnByIndex(a);return!b||b.visible?b:this._nextVisibleColumn(a+1)}prevColumn(){var a=this.table.columnManager.findColumnIndex(this);return a>-1&&this._prevVisibleColumn(a-1)}_prevVisibleColumn(a){var b=this.table.columnManager.getColumnByIndex(a);return!b||b.visible?b:this._prevVisibleColumn(a-1)}reinitializeWidth(a){this.widthFixed=!1,void 0===this.definition.width||a||this.setWidth(this.definition.width),this.dispatch("column-width-fit-before",this),this.fitToData(a),this.dispatch("column-width-fit-after",this)}fitToData(a){if(!this.isGroup){this.widthFixed||(this.element.style.width="",this.cells.forEach(a=>{a.clearWidth()}));var b=this.element.offsetWidth;if((!this.width||!this.widthFixed)&&(this.cells.forEach(a=>{var c=a.getWidth();c>b&&(b=c)}),b)){var c=b+1;a?this.setWidth(c):(this.maxInitialWidth&&!a&&(c=Math.min(c,this.maxInitialWidth)),this.setWidthActual(c))}}}updateDefinition(a){var b;return this.isGroup||this.parent.isGroup?(console.error("Column Update Error - The updateDefinition function is only available on ungrouped columns"),Promise.reject("Column Update Error - The updateDefinition function is only available on columns, not column groups")):(b=Object.assign(b=Object.assign({},this.getDefinition()),a),this.table.columnManager.addColumn(b,!1,this).then(a=>(b.field==this.field&&(this.field=!1),this.delete().then(()=>a.getComponent()))))}deleteCell(a){var b=this.cells.indexOf(a);b>-1&&this.cells.splice(b,1)}getComponent(){return this.component||(this.component=new E(this)),this.component}getPosition(){return this.table.columnManager.getVisibleColumnsByIndex().indexOf(this)+1}getParentComponent(){return this.parent instanceof G&&this.parent.getComponent()}}class H{constructor(a){return this._row=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._row.table.componentFunctionBinder.handle("row",a._row,b)}})}getData(a){return this._row.getData(a)}getElement(){return this._row.getElement()}getCells(){var a=[];return this._row.getCells().forEach(function(b){a.push(b.getComponent())}),a}getCell(a){var b=this._row.getCell(a);return!!b&&b.getComponent()}getIndex(){return this._row.getData("data")[this._row.table.options.index]}getPosition(){return this._row.getPosition()}watchPosition(a){return this._row.watchPosition(a)}delete(){return this._row.delete()}scrollTo(a,b){return this._row.table.rowManager.scrollToRow(this._row,a,b)}move(a,b){this._row.moveToRow(a,b)}update(a){return this._row.updateData(a)}normalizeHeight(){this._row.normalizeHeight(!0)}_getSelf(){return this._row}reformat(){return this._row.reinitialize()}getTable(){return this._row.table}getNextRow(){var a=this._row.nextRow();return a?a.getComponent():a}getPrevRow(){var a=this._row.prevRow();return a?a.getComponent():a}}class I extends m{constructor(a,b,c="row"){super(b.table),this.parent=b,this.data={},this.type=c,this.element=!1,this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.position=0,this.positionWatchers=[],this.component=null,this.created=!1,this.setData(a)}create(){this.created||(this.created=!0,this.generateElement())}createElement(){var a=document.createElement("div");a.classList.add("tabulator-row"),a.setAttribute("role","row"),this.element=a}getElement(){return this.create(),this.element}detachElement(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}generateElement(){this.createElement(),this.dispatch("row-init",this)}generateCells(){this.cells=this.table.columnManager.generateCells(this)}initialize(a,b){if(this.create(),!this.initialized||a){for(this.deleteCells();this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.dispatch("row-layout-before",this),this.generateCells(),this.initialized=!0,this.table.columnManager.renderer.renderRowCells(this,b),a&&this.normalizeHeight(),this.dispatch("row-layout",this),this.table.options.rowFormatter&&this.table.options.rowFormatter(this.getComponent()),this.dispatch("row-layout-after",this)}else this.table.columnManager.renderer.rerenderRowCells(this,b)}rendered(){this.cells.forEach(a=>{a.cellRendered()})}reinitializeHeight(){this.heightInitialized=!1,this.element&&null!==this.element.offsetParent&&this.normalizeHeight(!0)}deinitialize(){this.initialized=!1}deinitializeHeight(){this.heightInitialized=!1}reinitialize(a){this.initialized=!1,this.heightInitialized=!1,this.manualHeight||(this.height=0,this.heightStyled=""),this.element&&null!==this.element.offsetParent&&this.initialize(!0),this.dispatch("row-relayout",this)}calcHeight(a){var b=0,c=0;this.table.options.rowHeight?this.height=this.table.options.rowHeight:(c=this.calcMinHeight(),b=this.calcMaxHeight(),a?this.height=Math.max(b,c):this.height=this.manualHeight?this.height:Math.max(b,c)),this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight}calcMinHeight(){return this.table.options.resizableRows?this.element.clientHeight:0}calcMaxHeight(){var a=0;return this.cells.forEach(function(b){var c=b.getHeight();c>a&&(a=c)}),a}setCellHeight(){this.cells.forEach(function(a){a.setHeight()}),this.heightInitialized=!0}clearCellHeight(){this.cells.forEach(function(a){a.clearHeight()})}normalizeHeight(a){a&&!this.table.options.rowHeight&&this.clearCellHeight(),this.calcHeight(a),this.setCellHeight()}setHeight(a,b){(this.height!=a||b)&&(this.manualHeight=!0,this.height=a,this.heightStyled=a?a+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight,this.subscribedExternal("rowHeight")&&this.dispatchExternal("rowHeight",this.getComponent()))}getHeight(){return this.outerHeight}getWidth(){return this.element.offsetWidth}deleteCell(a){var b=this.cells.indexOf(a);b>-1&&this.cells.splice(b,1)}setData(a){this.data=this.chain("row-data-init-before",[this,a],void 0,a),this.dispatch("row-data-init-after",this)}updateData(a){var b,c=this.element&&n.elVisible(this.element),d={};return new Promise((e,f)=>{"string"==typeof a&&(a=JSON.parse(a)),this.dispatch("row-data-save-before",this),this.subscribed("row-data-changing")&&(d=Object.assign(d=Object.assign(d,this.data),a)),b=this.chain("row-data-changing",[this,d,a],null,a);let g=[];for(let c in a)this.table.columnManager.getColumnsByFieldRoot(c).forEach(a=>{let c=this.getCell(a.getField());if(c){let d=a.getFieldValue(b);c.getValue()!==d&&g.push([c,d])}});for(let a in b)this.data[a]=b[a];this.dispatch("row-data-save-after",this),g.forEach(([a,b])=>{a.setValueProcessData(b),c&&a.cellRendered()}),c?(this.normalizeHeight(!0),this.table.options.rowFormatter&&this.table.options.rowFormatter(this.getComponent())):(this.initialized=!1,this.height=0,this.heightStyled=""),this.dispatch("row-data-changed",this,c,a),this.dispatchExternal("rowUpdated",this.getComponent()),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.table.rowManager.getData()),e()})}getData(a){return a?this.chain("row-data-retrieve",[this,a],null,this.data):this.data}getCell(a){return a=this.table.columnManager.findColumn(a),this.initialized||0!==this.cells.length||this.generateCells(),this.cells.find(function(b){return b.column===a})}getCellIndex(a){return this.cells.findIndex(function(b){return b===a})}findCell(a){return this.cells.find(b=>b.element===a)}getCells(){return this.initialized||0!==this.cells.length||this.generateCells(),this.cells}nextRow(){return this.table.rowManager.nextDisplayRow(this,!0)||!1}prevRow(){return this.table.rowManager.prevDisplayRow(this,!0)||!1}moveToRow(a,b){var c=this.table.rowManager.findRow(a);c?(this.table.rowManager.moveRowActual(this,c,!b),this.table.rowManager.refreshActiveData("display",!1,!0)):console.warn("Move Error - No matching row found:",a)}delete(){return this.dispatch("row-delete",this),this.deleteActual(),Promise.resolve()}deleteActual(a){this.detachModules(),this.table.rowManager.deleteRow(this,a),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.element=!1,this.dispatch("row-deleted",this)}detachModules(){this.dispatch("row-deleting",this)}deleteCells(){var a=this.cells.length;for(let b=0;b<a;b++)this.cells[0].delete()}wipe(){if(this.detachModules(),this.deleteCells(),this.element){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.parentNode&&this.element.parentNode.removeChild(this.element)}this.element=!1,this.modules={}}isDisplayed(){return this.table.rowManager.getDisplayRows().includes(this)}getPosition(){return!!this.isDisplayed()&&this.position}setPosition(a){a!=this.position&&(this.position=a,this.positionWatchers.forEach(a=>{a(this.position)}))}watchPosition(a){this.positionWatchers.push(a),a(this.position)}getGroup(){return this.modules.group||!1}getComponent(){return this.component||(this.component=new H(this)),this.component}}var J={avg:function(a,b,c){var d=0,e=void 0!==c.precision?c.precision:2;return a.length&&(d=a.reduce(function(a,b){return Number(a)+Number(b)})/a.length,d=!1!==e?d.toFixed(e):d),parseFloat(d).toString()},max:function(a,b,c){var d=null,e=void 0!==c.precision&&c.precision;return a.forEach(function(a){((a=Number(a))>d||null===d)&&(d=a)}),null!==d?!1!==e?d.toFixed(e):d:""},min:function(a,b,c){var d=null,e=void 0!==c.precision&&c.precision;return a.forEach(function(a){((a=Number(a))<d||null===d)&&(d=a)}),null!==d?!1!==e?d.toFixed(e):d:""},sum:function(a,b,c){var d=0,e=void 0!==c.precision&&c.precision;return a.length&&a.forEach(function(a){a=Number(a),d+=isNaN(a)?0:Number(a)}),!1!==e?d.toFixed(e):d},concat:function(a,b,c){var d=0;return a.length&&(d=a.reduce(function(a,b){return String(a)+String(b)})),d},count:function(a,b,c){var d=0;return a.length&&a.forEach(function(a){a&&d++}),d},unique:function(a,b,c){return a.filter((b,c)=>(a||0===b)&&a.indexOf(b)===c).length}};class K extends p{static moduleName="columnCalcs";static calculations=J;constructor(a){super(a),this.topCalcs=[],this.botCalcs=[],this.genColumn=!1,this.topElement=this.createElement(),this.botElement=this.createElement(),this.topRow=!1,this.botRow=!1,this.topInitialized=!1,this.botInitialized=!1,this.blocked=!1,this.recalcAfterBlock=!1,this.registerTableOption("columnCalcs",!0),this.registerColumnOption("topCalc"),this.registerColumnOption("topCalcParams"),this.registerColumnOption("topCalcFormatter"),this.registerColumnOption("topCalcFormatterParams"),this.registerColumnOption("bottomCalc"),this.registerColumnOption("bottomCalcParams"),this.registerColumnOption("bottomCalcFormatter"),this.registerColumnOption("bottomCalcFormatterParams")}createElement(){var a=document.createElement("div");return a.classList.add("tabulator-calcs-holder"),a}initialize(){this.genColumn=new G({field:"value"},this),this.subscribe("cell-value-changed",this.cellValueChanged.bind(this)),this.subscribe("column-init",this.initializeColumnCheck.bind(this)),this.subscribe("row-deleted",this.rowsUpdated.bind(this)),this.subscribe("scroll-horizontal",this.scrollHorizontal.bind(this)),this.subscribe("row-added",this.rowsUpdated.bind(this)),this.subscribe("column-moved",this.recalcActiveRows.bind(this)),this.subscribe("column-add",this.recalcActiveRows.bind(this)),this.subscribe("data-refreshed",this.recalcActiveRowsRefresh.bind(this)),this.subscribe("table-redraw",this.tableRedraw.bind(this)),this.subscribe("rows-visible",this.visibleRows.bind(this)),this.subscribe("scrollbar-vertical",this.adjustForScrollbar.bind(this)),this.subscribe("redraw-blocked",this.blockRedraw.bind(this)),this.subscribe("redraw-restored",this.restoreRedraw.bind(this)),this.subscribe("table-redrawing",this.resizeHolderWidth.bind(this)),this.subscribe("column-resized",this.resizeHolderWidth.bind(this)),this.subscribe("column-show",this.resizeHolderWidth.bind(this)),this.subscribe("column-hide",this.resizeHolderWidth.bind(this)),this.registerTableFunction("getCalcResults",this.getResults.bind(this)),this.registerTableFunction("recalc",this.userRecalc.bind(this)),this.resizeHolderWidth()}resizeHolderWidth(){this.topElement.style.minWidth=this.table.columnManager.headersElement.offsetWidth+"px"}tableRedraw(a){this.recalc(this.table.rowManager.activeRows),a&&this.redraw()}blockRedraw(){this.blocked=!0,this.recalcAfterBlock=!1}restoreRedraw(){this.blocked=!1,this.recalcAfterBlock&&(this.recalcAfterBlock=!1,this.recalcActiveRowsRefresh())}userRecalc(){this.recalc(this.table.rowManager.activeRows)}blockCheck(){return this.blocked&&(this.recalcAfterBlock=!0),this.blocked}visibleRows(a,b){return this.topRow&&b.unshift(this.topRow),this.botRow&&b.push(this.botRow),b}rowsUpdated(a){this.table.options.groupBy?this.recalcRowGroup(a):this.recalcActiveRows()}recalcActiveRowsRefresh(){this.table.options.groupBy&&this.table.options.dataTreeStartExpanded&&this.table.options.dataTree?this.recalcAll():this.recalcActiveRows()}recalcActiveRows(){this.recalc(this.table.rowManager.activeRows)}cellValueChanged(a){(a.column.definition.topCalc||a.column.definition.bottomCalc)&&(this.table.options.groupBy?(("table"==this.table.options.columnCalcs||"both"==this.table.options.columnCalcs)&&this.recalcActiveRows(),"table"!=this.table.options.columnCalcs&&this.recalcRowGroup(a.row)):this.recalcActiveRows())}initializeColumnCheck(a){(a.definition.topCalc||a.definition.bottomCalc)&&this.initializeColumn(a)}initializeColumn(a){var b=a.definition,c={topCalcParams:b.topCalcParams||{},botCalcParams:b.bottomCalcParams||{}};if(b.topCalc){switch(typeof b.topCalc){case"string":K.calculations[b.topCalc]?c.topCalc=K.calculations[b.topCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",b.topCalc);break;case"function":c.topCalc=b.topCalc}c.topCalc&&(a.modules.columnCalcs=c,this.topCalcs.push(a),"group"!=this.table.options.columnCalcs&&this.initializeTopRow())}if(b.bottomCalc){switch(typeof b.bottomCalc){case"string":K.calculations[b.bottomCalc]?c.botCalc=K.calculations[b.bottomCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",b.bottomCalc);break;case"function":c.botCalc=b.bottomCalc}c.botCalc&&(a.modules.columnCalcs=c,this.botCalcs.push(a),"group"!=this.table.options.columnCalcs&&this.initializeBottomRow())}}registerColumnField(){}removeCalcs(){var a=!1;this.topInitialized&&(this.topInitialized=!1,this.topElement.parentNode.removeChild(this.topElement),a=!0),this.botInitialized&&(this.botInitialized=!1,this.footerRemove(this.botElement),a=!0),a&&this.table.rowManager.adjustTableSize()}reinitializeCalcs(){this.topCalcs.length&&this.initializeTopRow(),this.botCalcs.length&&this.initializeBottomRow()}initializeTopRow(){var a=document.createDocumentFragment();this.topInitialized||(a.appendChild(document.createElement("br")),a.appendChild(this.topElement),this.table.columnManager.getContentsElement().insertBefore(a,this.table.columnManager.headersElement.nextSibling),this.topInitialized=!0)}initializeBottomRow(){this.botInitialized||(this.footerPrepend(this.botElement),this.botInitialized=!0)}scrollHorizontal(a){this.botInitialized&&this.botRow&&(this.botElement.scrollLeft=a)}recalc(a){var b,c;if(!this.blockCheck()&&(this.topInitialized||this.botInitialized)){if(b=this.rowsToData(a),this.topInitialized){for(this.topRow&&this.topRow.deleteCells(),c=this.generateRow("top",b),this.topRow=c;this.topElement.firstChild;)this.topElement.removeChild(this.topElement.firstChild);this.topElement.appendChild(c.getElement()),c.initialize(!0)}if(this.botInitialized){for(this.botRow&&this.botRow.deleteCells(),c=this.generateRow("bottom",b),this.botRow=c;this.botElement.firstChild;)this.botElement.removeChild(this.botElement.firstChild);this.botElement.appendChild(c.getElement()),c.initialize(!0)}this.table.rowManager.adjustTableSize(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()}}recalcRowGroup(a){this.recalcGroup(this.table.modules.groupRows.getRowGroup(a))}recalcAll(){(this.topCalcs.length||this.botCalcs.length)&&("group"!==this.table.options.columnCalcs&&this.recalcActiveRows(),this.table.options.groupBy&&"table"!==this.table.options.columnCalcs&&this.table.modules.groupRows.getChildGroups().forEach(a=>{this.recalcGroup(a)}))}recalcGroup(a){var b,c;!this.blockCheck()&&a&&a.calcs&&(a.calcs.bottom&&(b=this.rowsToData(a.rows),c=this.generateRowData("bottom",b),a.calcs.bottom.updateData(c),a.calcs.bottom.reinitialize()),a.calcs.top&&(b=this.rowsToData(a.rows),c=this.generateRowData("top",b),a.calcs.top.updateData(c),a.calcs.top.reinitialize()))}generateTopRow(a){return this.generateRow("top",this.rowsToData(a))}generateBottomRow(a){return this.generateRow("bottom",this.rowsToData(a))}rowsToData(a){var b=[],c=this.table.options.dataTree&&this.table.options.dataTreeChildColumnCalcs,d=this.table.modules.dataTree;return a.forEach(a=>{b.push(a.getData()),c&&a.modules.dataTree?.open&&this.rowsToData(d.getFilteredTreeChildren(a)).forEach(c=>{b.push(a)})}),b}generateRow(a,b){var c,d=this.generateRowData(a,b);return this.table.modExists("mutator")&&this.table.modules.mutator.disable(),c=new I(d,this,"calc"),this.table.modExists("mutator")&&this.table.modules.mutator.enable(),c.getElement().classList.add("tabulator-calcs","tabulator-calcs-"+a),c.component=!1,c.getComponent=()=>(c.component||(c.component=new B(c)),c.component),c.generateCells=()=>{var b=[];this.table.columnManager.columnsByIndex.forEach(d=>{this.genColumn.setField(d.getField()),this.genColumn.hozAlign=d.hozAlign,d.definition[a+"CalcFormatter"]&&this.table.modExists("format")?this.genColumn.modules.format={formatter:this.table.modules.format.lookupFormatter(d.definition[a+"CalcFormatter"]),params:d.definition[a+"CalcFormatterParams"]||{}}:this.genColumn.modules.format={formatter:this.table.modules.format.lookupFormatter("plaintext"),params:{}},this.genColumn.definition.cssClass=d.definition.cssClass;var e=new D(this.genColumn,c);e.getElement(),e.column=d,e.setWidth(),d.cells.push(e),b.push(e),d.visible||e.hide()}),c.cells=b},c}generateRowData(a,b){var c,d,e={},f="top"==a?this.topCalcs:this.botCalcs,g="top"==a?"topCalc":"botCalc";return f.forEach(function(a){var f=[];a.modules.columnCalcs&&a.modules.columnCalcs[g]&&(b.forEach(function(b){f.push(a.getFieldValue(b))}),d=g+"Params",c="function"==typeof a.modules.columnCalcs[d]?a.modules.columnCalcs[d](f,b):a.modules.columnCalcs[d],a.setFieldValue(e,a.modules.columnCalcs[g](f,b,c)))}),e}hasTopCalcs(){return!!this.topCalcs.length}hasBottomCalcs(){return!!this.botCalcs.length}redraw(){this.topRow&&this.topRow.normalizeHeight(!0),this.botRow&&this.botRow.normalizeHeight(!0)}getResults(){var a={};return this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.groupRows.getGroups(!0).forEach(b=>{a[b.getKey()]=this.getGroupResults(b)}):a={top:this.topRow?this.topRow.getData():{},bottom:this.botRow?this.botRow.getData():{}},a}getGroupResults(a){var b=a._getSelf(),c=a.getSubGroups(),d={};return c.forEach(a=>{d[a.getKey()]=this.getGroupResults(a)}),{top:b.calcs.top?b.calcs.top.getData():{},bottom:b.calcs.bottom?b.calcs.bottom.getData():{},groups:d}}adjustForScrollbar(a){this.botRow&&(this.table.rtl?this.botElement.style.paddingLeft=a+"px":this.botElement.style.paddingRight=a+"px")}}var L={csv:function(a,b={},c){var d=b.delimiter?b.delimiter:",",e=[],f=[];a.forEach(a=>{var b=[];switch(a.type){case"group":console.warn("Download Warning - CSV downloader cannot process row groups");break;case"calc":console.warn("Download Warning - CSV downloader cannot process column calculations");break;case"header":a.columns.forEach((a,b)=>{a&&1===a.depth&&(f[b]=void 0===a.value||null===a.value?"":'"'+String(a.value).split('"').join('""')+'"')});break;case"row":a.columns.forEach(a=>{if(a){switch(typeof a.value){case"object":a.value=null!==a.value?JSON.stringify(a.value):"";break;case"undefined":a.value=""}b.push('"'+String(a.value).split('"').join('""')+'"')}}),e.push(b.join(d))}}),f.length&&e.unshift(f.join(d)),e=e.join("\n"),b.bom&&(e="\uFEFF"+e),c(e,"text/csv")},json:function(a,b,c){var d=[];a.forEach(a=>{var b={};switch(a.type){case"header":break;case"group":console.warn("Download Warning - JSON downloader cannot process row groups");break;case"calc":console.warn("Download Warning - JSON downloader cannot process column calculations");break;case"row":a.columns.forEach(a=>{a&&(b[a.component.getTitleDownload()||a.component.getField()]=a.value)}),d.push(b)}}),c(d=JSON.stringify(d,null," "),"application/json")},jsonLines:function(a,b,c){let d=[];a.forEach(a=>{let b={};switch(a.type){case"header":break;case"group":console.warn("Download Warning - JSON downloader cannot process row groups");break;case"calc":console.warn("Download Warning - JSON downloader cannot process column calculations");break;case"row":a.columns.forEach(a=>{a&&(b[a.component.getTitleDownload()||a.component.getField()]=a.value)}),d.push(JSON.stringify(b))}}),c(d.join("\n"),"application/x-ndjson")},pdf:function(a,b={},c){var d,e=[],f=[],g={},h=b.rowGroupStyles||{fontStyle:"bold",fontSize:12,cellPadding:6,fillColor:220},i=b.rowCalcStyles||{fontStyle:"bold",fontSize:10,cellPadding:4,fillColor:232},j=b.jsPDF||{},k=b.title?b.title:"";function l(a,b){var c=[];return a.columns.forEach(a=>{var d;if(a){switch(typeof a.value){case"object":a.value=null!==a.value?JSON.stringify(a.value):"";break;case"undefined":a.value=""}d={content:a.value,colSpan:a.width,rowSpan:a.height},b&&(d.styles=b),c.push(d)}}),c}j.orientation||(j.orientation=b.orientation||"landscape"),j.unit||(j.unit="pt"),a.forEach(a=>{switch(a.type){case"header":e.push(l(a));break;case"group":f.push(l(a,h));break;case"calc":f.push(l(a,i));break;case"row":f.push(l(a))}}),d=new(this.dependencyRegistry.lookup("jspdf","jsPDF"))(j),b.autoTable&&(g="function"==typeof b.autoTable?b.autoTable(d)||{}:b.autoTable),k&&(g.didDrawPage=function(a){d.text(k,40,30)}),g.head=e,g.body=f,d.autoTable(g),b.documentProcessing&&b.documentProcessing(d),c(d.output("arraybuffer"),"application/pdf")},xlsx:function(a,b,c){var d=b.sheetName||"Sheet1",e=this.dependencyRegistry.lookup("XLSX"),f=e.utils.book_new(),g=new m(this),h=!("compress"in b)||b.compress,i=b.writeOptions||{bookType:"xlsx",bookSST:!0,compression:h};function j(){var b=[],c=[],d={},f={s:{c:0,r:0},e:{c:a[0]?a[0].columns.reduce((a,b)=>a+(b&&b.width?b.width:1),0):0,r:a.length}};return a.forEach((a,d)=>{var e=[];a.columns.forEach(function(a,b){a?(e.push(a.value instanceof Date||"object"!=typeof a.value?a.value:JSON.stringify(a.value)),(a.width>1||a.height>-1)&&(a.height>1||a.width>1)&&c.push({s:{r:d,c:b},e:{r:d+a.height-1,c:b+a.width-1}})):e.push("")}),b.push(e)}),e.utils.sheet_add_aoa(d,b),d["!ref"]=e.utils.encode_range(f),c.length&&(d["!merges"]=c),d}if(i.type="binary",f.SheetNames=[],f.Sheets={},b.sheetOnly)return void c(j());if(b.sheets)for(var k in b.sheets)!0===b.sheets[k]?(f.SheetNames.push(k),f.Sheets[k]=j()):(f.SheetNames.push(k),g.commsSend(b.sheets[k],"download","intercept",{type:"xlsx",options:{sheetOnly:!0},active:this.active,intercept:function(a){f.Sheets[k]=a}}));else f.SheetNames.push(d),f.Sheets[d]=j();b.documentProcessing&&(f=b.documentProcessing(f)),c(function(a){for(var b=new ArrayBuffer(a.length),c=new Uint8Array(b),d=0;d!=a.length;++d)c[d]=255&a.charCodeAt(d);return b}(e.write(f,i)),"application/octet-stream")},html:function(a,b,c){this.modExists("export",!0)&&c(this.modules.export.generateHTMLTable(a),"text/html")}};class M extends p{static moduleName="download";static downloaders=L;constructor(a){super(a),this.registerTableOption("downloadEncoder",function(a,b){return new Blob([a],{type:b})}),this.registerTableOption("downloadConfig",{}),this.registerTableOption("downloadRowRange","active"),this.registerColumnOption("download"),this.registerColumnOption("titleDownload")}initialize(){this.deprecatedOptionsCheck(),this.registerTableFunction("download",this.download.bind(this)),this.registerTableFunction("downloadToTab",this.downloadToTab.bind(this))}deprecatedOptionsCheck(){}downloadToTab(a,b,c,d){this.download(a,b,c,d,!0)}download(a,b,c,d,e){var f=!1;if("function"==typeof a?f=a:M.downloaders[a]?f=M.downloaders[a]:console.warn("Download Error - No such download type found: ",a),f){var g=this.generateExportList(d);f.call(this.table,g,c||{},(function(c,d){e?!0===e?this.triggerDownload(c,d,a,b,!0):e(c):this.triggerDownload(c,d,a,b)}).bind(this))}}generateExportList(a){var b=this.table.modules.export.generateExportList(this.table.options.downloadConfig,!1,a||this.table.options.downloadRowRange,"download"),c=this.table.options.groupHeaderDownload;return c&&!Array.isArray(c)&&(c=[c]),b.forEach(a=>{var b;"group"===a.type&&(b=a.columns[0],c&&c[a.indent]&&(b.value=c[a.indent](b.value,a.component._group.getRowCount(),a.component._group.getData(),a.component)))}),b}triggerDownload(a,b,c,d,e){var f=document.createElement("a"),g=this.table.options.downloadEncoder(a,b);g&&(e?window.open(window.URL.createObjectURL(g)):(d=d||"Tabulator."+("function"==typeof c?"txt":c),navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(g,d):(f.setAttribute("href",window.URL.createObjectURL(g)),f.setAttribute("download",d),f.style.display="none",document.body.appendChild(f),f.click(),document.body.removeChild(f))),this.dispatchExternal("downloadComplete"))}commsReceived(a,b,c){"intercept"===b&&this.download(c.type,"",c.options,c.active,c.intercept)}}function N(a,b){var c=b.mask,d=void 0!==b.maskLetterChar?b.maskLetterChar:"A",e=void 0!==b.maskNumberChar?b.maskNumberChar:"9",f=void 0!==b.maskWildcardChar?b.maskWildcardChar:"*";function g(b){var h=c[b];void 0!==h&&h!==f&&h!==d&&h!==e&&(a.value=a.value+""+h,g(b+1))}a.addEventListener("keydown",b=>{var g=a.value.length,h=b.key;if(1===b.key.length&&!b.ctrlKey&&!b.metaKey)if(g>=c.length)return b.preventDefault(),b.stopPropagation(),!1;else switch(c[g]){case d:if(h.toUpperCase()==h.toLowerCase())return b.preventDefault(),b.stopPropagation(),!1;break;case e:if(isNaN(h))return b.preventDefault(),b.stopPropagation(),!1;break;case f:break;default:if(h!==c[g])return b.preventDefault(),b.stopPropagation(),!1}}),a.addEventListener("keyup",c=>{1===c.key.length&&b.maskAutoFill&&g(a.value.length)}),a.placeholder||(a.placeholder=c),b.maskAutoFill&&g(a.value.length)}let O=class{constructor(a,b,c,d,e,f){this.edit=a,this.table=a.table,this.cell=b,this.params=this._initializeParams(f),this.data=[],this.displayItems=[],this.currentItems=[],this.focusedItem=null,this.input=this._createInputElement(),this.listEl=this._createListElement(),this.initialValues=null,this.isFilter="header"===b.getType(),this.filterTimeout=null,this.filtered=!1,this.typing=!1,this.values=[],this.popup=null,this.listIteration=0,this.lastAction="",this.filterTerm="",this.blurable=!0,this.actions={success:d,cancel:e},this._deprecatedOptionsCheck(),this._initializeValue(),c(this._onRendered.bind(this))}_deprecatedOptionsCheck(){}_initializeValue(){var a=this.cell.getValue();void 0===a&&void 0!==this.params.defaultValue&&(a=this.params.defaultValue),this.initialValues=this.params.multiselect?a:[a],this.isFilter&&(this.input.value=this.initialValues?this.initialValues.join(","):"",this.headerFilterInitialListGen())}_onRendered(){var a=this.cell.getElement();function b(a){a.stopPropagation()}this.isFilter||(this.input.style.height="100%",this.input.focus({preventScroll:!0})),a.addEventListener("click",b),setTimeout(()=>{a.removeEventListener("click",b)},1e3),this.input.addEventListener("mousedown",this._preventPopupBlur.bind(this))}_createListElement(){var a=document.createElement("div");return a.classList.add("tabulator-edit-list"),a.addEventListener("mousedown",this._preventBlur.bind(this)),a.addEventListener("keydown",this._inputKeyDown.bind(this)),a}_setListWidth(){var a=this.isFilter?this.input:this.cell.getElement();this.listEl.style.minWidth=a.offsetWidth+"px",this.params.maxWidth&&(!0===this.params.maxWidth?this.listEl.style.maxWidth=a.offsetWidth+"px":"number"==typeof this.params.maxWidth?this.listEl.style.maxWidth=this.params.maxWidth+"px":this.listEl.style.maxWidth=this.params.maxWidth)}_createInputElement(){var a=this.params.elementAttributes,b=document.createElement("input");if(b.setAttribute("type",this.params.clearable?"search":"text"),b.style.padding="4px",b.style.width="100%",b.style.boxSizing="border-box",this.params.autocomplete||(b.style.cursor="default",b.style.caretColor="transparent"),a&&"object"==typeof a)for(let c in a)"+"==c.charAt(0)?(c=c.slice(1),b.setAttribute(c,b.getAttribute(c)+a["+"+c])):b.setAttribute(c,a[c]);return this.params.mask&&N(b,this.params),this._bindInputEvents(b),b}_initializeParams(a){var b,c=["values","valuesURL","valuesLookup"];return(a=Object.assign({},a)).verticalNavigation=a.verticalNavigation||"editor",a.placeholderLoading=void 0===a.placeholderLoading?"Searching ...":a.placeholderLoading,a.placeholderEmpty=void 0===a.placeholderEmpty?"No Results Found":a.placeholderEmpty,a.filterDelay=void 0===a.filterDelay?300:a.filterDelay,a.emptyValue=Object.keys(a).includes("emptyValue")?a.emptyValue:"",(b=Object.keys(a).filter(a=>c.includes(a)).length)?b>1&&console.warn("list editor config error - only one of the values, valuesURL, or valuesLookup options can be set on the same editor"):console.warn("list editor config error - either the values, valuesURL, or valuesLookup option must be set"),a.autocomplete?a.multiselect&&(a.multiselect=!1,console.warn("list editor config error - multiselect option is not available when autocomplete is enabled")):(a.freetext&&(a.freetext=!1,console.warn("list editor config error - freetext option is only available when autocomplete is enabled")),a.filterFunc&&(a.filterFunc=!1,console.warn("list editor config error - filterFunc option is only available when autocomplete is enabled")),a.filterRemote&&(a.filterRemote=!1,console.warn("list editor config error - filterRemote option is only available when autocomplete is enabled")),a.mask&&(a.mask=!1,console.warn("list editor config error - mask option is only available when autocomplete is enabled")),a.allowEmpty&&(a.allowEmpty=!1,console.warn("list editor config error - allowEmpty option is only available when autocomplete is enabled")),a.listOnEmpty&&(a.listOnEmpty=!1,console.warn("list editor config error - listOnEmpty option is only available when autocomplete is enabled"))),a.filterRemote&&!("function"==typeof a.valuesLookup||a.valuesURL)&&(a.filterRemote=!1,console.warn("list editor config error - filterRemote option should only be used when values list is populated from a remote source")),a}_bindInputEvents(a){a.addEventListener("focus",this._inputFocus.bind(this)),a.addEventListener("click",this._inputClick.bind(this)),a.addEventListener("blur",this._inputBlur.bind(this)),a.addEventListener("keydown",this._inputKeyDown.bind(this)),a.addEventListener("search",this._inputSearch.bind(this)),this.params.autocomplete&&a.addEventListener("keyup",this._inputKeyUp.bind(this))}_inputFocus(a){this.rebuildOptionsList()}_filter(){this.params.filterRemote?(clearTimeout(this.filterTimeout),this.filterTimeout=setTimeout(()=>{this.rebuildOptionsList()},this.params.filterDelay)):this._filterList()}_inputClick(a){a.stopPropagation()}_inputBlur(a){this.blurable&&(this.popup?this.popup.hide():this._resolveValue(!0))}_inputSearch(){this._clearChoices()}_inputKeyDown(a){switch(a.key){case"ArrowUp":this._keyUp(a);break;case"ArrowDown":this._keyDown(a);break;case"ArrowLeft":case"ArrowRight":this._keySide(a);break;case"Enter":this._keyEnter();break;case"Escape":this._keyEsc();break;case"Home":case"End":this._keyHomeEnd(a);break;case"Tab":this._keyTab(a);break;default:this._keySelectLetter(a)}}_inputKeyUp(a){switch(a.key){case"ArrowUp":case"ArrowLeft":case"ArrowRight":case"ArrowDown":case"Enter":case"Escape":break;default:this._keyAutoCompLetter(a)}}_preventPopupBlur(){this.popup&&this.popup.blockHide(),setTimeout(()=>{this.popup&&this.popup.restoreHide()},10)}_preventBlur(){this.blurable=!1,setTimeout(()=>{this.blurable=!0},10)}_keyTab(a){this.params.autocomplete&&"typing"===this.lastAction?this._resolveValue(!0):this.focusedItem&&this._chooseItem(this.focusedItem,!0)}_keyUp(a){var b=this.displayItems.indexOf(this.focusedItem);("editor"==this.params.verticalNavigation||"hybrid"==this.params.verticalNavigation&&b)&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault(),b>0&&this._focusItem(this.displayItems[b-1]))}_keyDown(a){var b=this.displayItems.indexOf(this.focusedItem);("editor"==this.params.verticalNavigation||"hybrid"==this.params.verticalNavigation&&b<this.displayItems.length-1)&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault(),b<this.displayItems.length-1&&(-1==b?this._focusItem(this.displayItems[0]):this._focusItem(this.displayItems[b+1])))}_keySide(a){this.params.autocomplete||(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())}_keyEnter(a){this.params.autocomplete&&"typing"===this.lastAction?this._resolveValue(!0):this.focusedItem&&this._chooseItem(this.focusedItem)}_keyEsc(a){this._cancel()}_keyHomeEnd(a){this.params.autocomplete&&a.stopImmediatePropagation()}_keySelectLetter(a){this.params.autocomplete||(a.preventDefault(),1===a.key.length&&this._scrollToValue(a.key.toUpperCase().charCodeAt(0)))}_keyAutoCompLetter(a){this._filter(),this.lastAction="typing",this.typing=!0}_scrollToValue(a){clearTimeout(this.filterTimeout);var b=String.fromCharCode(a).toLowerCase();this.filterTerm+=b.toLowerCase();var c=this.displayItems.find(a=>void 0!==a.label&&a.label.toLowerCase().startsWith(this.filterTerm));c&&this._focusItem(c),this.filterTimeout=setTimeout(()=>{this.filterTerm=""},800)}_focusItem(a){this.lastAction="focus",this.focusedItem&&this.focusedItem.element&&this.focusedItem.element.classList.remove("focused"),this.focusedItem=a,a&&a.element&&(a.element.classList.add("focused"),a.element.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"}))}headerFilterInitialListGen(){this._generateOptions(!0)}rebuildOptionsList(){this._generateOptions().then(this._sortOptions.bind(this)).then(this._buildList.bind(this)).then(this._showList.bind(this)).catch(a=>{Number.isInteger(a)||console.error("List generation error",a)})}_filterList(){this._buildList(this._filterOptions()),this._showList()}_generateOptions(a){var b=[],c=++this.listIteration;return(this.filtered=!1,this.params.values?b=this.params.values:this.params.valuesURL?b=this._ajaxRequest(this.params.valuesURL,this.input.value):"function"==typeof this.params.valuesLookup?b=this.params.valuesLookup(this.cell,this.input.value):this.params.valuesLookup&&(b=this._uniqueColumnValues(this.params.valuesLookupField)),b instanceof Promise)?(a||this._addPlaceholder(this.params.placeholderLoading),b.then().then(a=>this.listIteration===c?this._parseList(a):Promise.reject(c))):Promise.resolve(this._parseList(b))}_addPlaceholder(a){var b=document.createElement("div");"function"==typeof a&&(a=a(this.cell.getComponent(),this.listEl)),a&&(this._clearList(),a instanceof HTMLElement?b=a:(b.classList.add("tabulator-edit-list-placeholder"),b.innerHTML=a),this.listEl.appendChild(b),this._showList())}_ajaxRequest(a,b){var c=this.params.filterRemote?{term:b}:{};return fetch(a=t(a,{},c)).then(a=>a.ok?a.json().catch(a=>(console.warn("List Ajax Load Error - Invalid JSON returned",a),Promise.reject(a))):(console.error("List Ajax Load Error - Connection Error: "+a.status,a.statusText),Promise.reject(a))).catch(a=>(console.error("List Ajax Load Error - Connection Error: ",a),Promise.reject(a)))}_uniqueColumnValues(a){var b,c={},d=this.table.getData(this.params.valuesLookup);return(b=a?this.table.columnManager.getColumnByField(a):this.cell.getColumn()._getSelf())?d.forEach(a=>{var d=b.getFieldValue(a);this._emptyValueCheck(d)||(this.params.multiselect&&Array.isArray(d)?d.forEach(a=>{this._emptyValueCheck(a)||(c[a]=!0)}):c[d]=!0)}):(console.warn("unable to find matching column to create select lookup list:",a),c=[]),Object.keys(c)}_emptyValueCheck(a){return null==a||""===a}_parseList(a){var b=[];return Array.isArray(a)||(a=Object.entries(a).map(([a,b])=>({label:b,value:a}))),a.forEach(a=>{"object"!=typeof a&&(a={label:a,value:a}),this._parseListItem(a,b,0)}),!this.currentItems.length&&this.params.freetext&&(this.input.value=this.initialValues,this.typing=!0,this.lastAction="typing"),this.data=b,b}_parseListItem(a,b,c){var d={};a.options?d=this._parseListGroup(a,c+1):(d={label:a.label,value:a.value,itemParams:a.itemParams,elementAttributes:a.elementAttributes,element:!1,selected:!1,visible:!0,level:c,original:a},this.initialValues&&this.initialValues.indexOf(a.value)>-1&&this._chooseItem(d,!0)),b.push(d)}_parseListGroup(a,b){var c={label:a.label,group:!0,itemParams:a.itemParams,elementAttributes:a.elementAttributes,element:!1,visible:!0,level:b,options:[],original:a};return a.options.forEach(a=>{this._parseListItem(a,c.options,b)}),c}_sortOptions(a){var b;return this.params.sort&&(b="function"==typeof this.params.sort?this.params.sort:this._defaultSortFunction.bind(this),this._sortGroup(b,a)),a}_sortGroup(a,b){b.sort((b,c)=>a(b.label,c.label,b.value,c.value,b.original,c.original)),b.forEach(b=>{b.group&&this._sortGroup(a,b.options)})}_defaultSortFunction(a,b){var c,d,e,f,g,h=0,i=/(\d+)|(\D+)/g,j=/\d/,k=0;if("desc"===this.params.sort&&([a,b]=[b,a]),a||0===a)if(b||0===b){if(isFinite(a)&&isFinite(b))return a-b;if((c=String(a).toLowerCase())===(d=String(b).toLowerCase()))return 0;if(!(j.test(c)&&j.test(d)))return c>d?1:-1;for(c=c.match(i),d=d.match(i),g=c.length>d.length?d.length:c.length;h<g;)if((e=c[h])!==(f=d[h++]))if(isFinite(e)&&isFinite(f))return"0"===e.charAt(0)&&(e="."+e),"0"===f.charAt(0)&&(f="."+f),e-f;else return e>f?1:-1;return c.length>d.length}else k=1;else k=b||0===b?-1:0;return k}_filterOptions(){var a=this.params.filterFunc||this._defaultFilterFunc,b=this.input.value;return b?(this.filtered=!0,this.data.forEach(c=>{this._filterItem(a,b,c)})):this.filtered=!1,this.data}_filterItem(a,b,c){var d=!1;return c.group?(c.options.forEach(c=>{this._filterItem(a,b,c)&&(d=!0)}),c.visible=d):c.visible=a(b,c.label,c.value,c.original),c.visible}_defaultFilterFunc(a,b,c,d){return a=String(a).toLowerCase(),!!(null!=b&&(String(b).toLowerCase().indexOf(a)>-1||String(c).toLowerCase().indexOf(a)>-1))}_clearList(){for(;this.listEl.firstChild;)this.listEl.removeChild(this.listEl.firstChild);this.displayItems=[]}_buildList(a){this._clearList(),a.forEach(a=>{this._buildItem(a)}),this.displayItems.length||this._addPlaceholder(this.params.placeholderEmpty)}_buildItem(a){var b,c=a.element;if(!this.filtered||a.visible){if(!c){if((c=document.createElement("div")).tabIndex=0,(b=this.params.itemFormatter?this.params.itemFormatter(a.label,a.value,a.original,c):a.label)instanceof HTMLElement?c.appendChild(b):c.innerHTML=b,a.group?c.classList.add("tabulator-edit-list-group"):c.classList.add("tabulator-edit-list-item"),c.classList.add("tabulator-edit-list-group-level-"+a.level),a.elementAttributes&&"object"==typeof a.elementAttributes)for(let b in a.elementAttributes)"+"==b.charAt(0)?(b=b.slice(1),c.setAttribute(b,this.input.getAttribute(b)+a.elementAttributes["+"+b])):c.setAttribute(b,a.elementAttributes[b]);a.group?c.addEventListener("click",this._groupClick.bind(this,a)):c.addEventListener("click",this._itemClick.bind(this,a)),c.addEventListener("mousedown",this._preventBlur.bind(this)),a.element=c}this._styleItem(a),this.listEl.appendChild(c),a.group?a.options.forEach(a=>{this._buildItem(a)}):this.displayItems.push(a)}}_showList(){var a=this.popup&&this.popup.isVisible();if(this.input.parentNode){if(this.params.autocomplete&&""===this.input.value&&!this.params.listOnEmpty){this.popup&&this.popup.hide(!0);return}this._setListWidth(),this.popup||(this.popup=this.edit.popup(this.listEl)),this.popup.show(this.cell.getElement(),"bottom"),a||setTimeout(()=>{this.popup.hideOnBlur(this._resolveValue.bind(this,!0))},10)}}_styleItem(a){a&&a.element&&(a.selected?a.element.classList.add("active"):a.element.classList.remove("active"))}_itemClick(a,b){b.stopPropagation(),this._chooseItem(a)}_groupClick(a,b){b.stopPropagation()}_cancel(){this.popup.hide(!0),this.actions.cancel()}_clearChoices(){this.typing=!0,this.currentItems.forEach(a=>{a.selected=!1,this._styleItem(a)}),this.currentItems=[],this.focusedItem=null}_chooseItem(a,b){var c;this.typing=!1,this.params.multiselect?((c=this.currentItems.indexOf(a))>-1?(this.currentItems.splice(c,1),a.selected=!1):(this.currentItems.push(a),a.selected=!0),this.input.value=this.currentItems.map(a=>a.label).join(","),this._styleItem(a)):(this.currentItems=[a],a.selected=!0,this.input.value=a.label,this._styleItem(a),b||this._resolveValue()),this._focusItem(a)}_resolveValue(a){var b,c;if(this.popup&&this.popup.hide(!0),this.params.multiselect)b=this.currentItems.map(a=>a.value);else if(a&&this.params.autocomplete&&this.typing)if(!this.params.freetext&&(!this.params.allowEmpty||""!==this.input.value))return void this.actions.cancel();else b=this.input.value;else b=this.currentItems[0]?this.currentItems[0].value:null==(c=Array.isArray(this.initialValues)?this.initialValues[0]:this.initialValues)||""===c?c:this.params.emptyValue;""===b&&(b=this.params.emptyValue),this.actions.success(b),this.isFilter&&(this.initialValues=b&&!Array.isArray(b)?[b]:b,this.currentItems=[])}};var P={input:function(a,b,c,d,e){var f=a.getValue(),g=document.createElement("input");if(g.setAttribute("type",e.search?"search":"text"),g.style.padding="4px",g.style.width="100%",g.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),g.setAttribute(a,g.getAttribute(a)+e.elementAttributes["+"+a])):g.setAttribute(a,e.elementAttributes[a]);function h(a){null==f&&""!==g.value||g.value!==f?c(g.value)&&(f=g.value):d()}return g.value=void 0!==f?f:"",b(function(){"cell"===a.getType()&&(g.focus({preventScroll:!0}),g.style.height="100%",e.selectContents&&g.select())}),g.addEventListener("change",h),g.addEventListener("blur",h),g.addEventListener("keydown",function(a){switch(a.key){case"Enter":h();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation()}}),e.mask&&N(g,e),g},textarea:function(a,b,c,d,e){var f=a.getValue(),g=e.verticalNavigation||"hybrid",h=String(null!=f?f:""),i=document.createElement("textarea"),j=0;if(i.style.display="block",i.style.padding="2px",i.style.height="100%",i.style.width="100%",i.style.boxSizing="border-box",i.style.whiteSpace="pre-wrap",i.style.resize="none",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),i.setAttribute(a,i.getAttribute(a)+e.elementAttributes["+"+a])):i.setAttribute(a,e.elementAttributes[a]);function k(b){null==f&&""!==i.value||i.value!==f?(c(i.value)&&(f=i.value),setTimeout(function(){a.getRow().normalizeHeight()},300)):d()}return i.value=h,b(function(){"cell"===a.getType()&&(i.focus({preventScroll:!0}),i.style.height="100%",i.scrollHeight,i.style.height=i.scrollHeight+"px",a.getRow().normalizeHeight(),e.selectContents&&i.select())}),i.addEventListener("change",k),i.addEventListener("blur",k),i.addEventListener("keyup",function(){i.style.height="";var b=i.scrollHeight;i.style.height=b+"px",b!=j&&(j=b,a.getRow().normalizeHeight())}),i.addEventListener("keydown",function(a){switch(a.key){case"Enter":a.shiftKey&&e.shiftEnterSubmit&&k();break;case"Escape":d();break;case"ArrowUp":("editor"==g||"hybrid"==g&&i.selectionStart)&&(a.stopImmediatePropagation(),a.stopPropagation());break;case"ArrowDown":("editor"==g||"hybrid"==g&&i.selectionStart!==i.value.length)&&(a.stopImmediatePropagation(),a.stopPropagation());break;case"End":case"Home":a.stopPropagation()}}),e.mask&&N(i,e),i},number:function(a,b,c,d,e){var f=a.getValue(),g=e.verticalNavigation||"editor",h=document.createElement("input");if(h.setAttribute("type","number"),void 0!==e.max&&h.setAttribute("max",e.max),void 0!==e.min&&h.setAttribute("min",e.min),void 0!==e.step&&h.setAttribute("step",e.step),h.style.padding="4px",h.style.width="100%",h.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),h.setAttribute(a,h.getAttribute(a)+e.elementAttributes["+"+a])):h.setAttribute(a,e.elementAttributes[a]);h.value=f;var i=function(a){j()};function j(){var a=h.value;isNaN(a)||""===a||(a=Number(a)),a!==f?c(a)&&(f=a):d()}return b(function(){"cell"===a.getType()&&(h.removeEventListener("blur",i),h.focus({preventScroll:!0}),h.style.height="100%",h.addEventListener("blur",i),e.selectContents&&h.select())}),h.addEventListener("keydown",function(a){switch(a.key){case"Enter":j();break;case"Escape":d();break;case"ArrowUp":case"ArrowDown":"editor"==g&&(a.stopImmediatePropagation(),a.stopPropagation());break;case"End":case"Home":a.stopPropagation()}}),e.mask&&N(h,e),h},range:function(a,b,c,d,e){var f=a.getValue(),g=document.createElement("input");if(g.setAttribute("type","range"),void 0!==e.max&&g.setAttribute("max",e.max),void 0!==e.min&&g.setAttribute("min",e.min),void 0!==e.step&&g.setAttribute("step",e.step),g.style.padding="4px",g.style.width="100%",g.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),g.setAttribute(a,g.getAttribute(a)+e.elementAttributes["+"+a])):g.setAttribute(a,e.elementAttributes[a]);function h(){var a=g.value;isNaN(a)||""===a||(a=Number(a)),a!=f?c(a)&&(f=a):d()}return g.value=f,b(function(){"cell"===a.getType()&&(g.focus({preventScroll:!0}),g.style.height="100%")}),g.addEventListener("blur",function(a){h()}),g.addEventListener("keydown",function(a){switch(a.key){case"Enter":h();break;case"Escape":d()}}),g},date:function(a,b,c,d,e){var f=e.format,g=e.verticalNavigation||"editor",h=f?window.DateTime||luxon.DateTime:null,i=a.getValue(),j=document.createElement("input");function k(a){return(h.isDateTime(a)?a:"iso"===f?h.fromISO(String(a)):h.fromFormat(String(a),f)).toFormat("yyyy-MM-dd")}if(j.type="date",j.style.padding="4px",j.style.width="100%",j.style.boxSizing="border-box",e.max&&j.setAttribute("max",f?k(e.max):e.max),e.min&&j.setAttribute("min",f?k(e.min):e.min),e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),j.setAttribute(a,j.getAttribute(a)+e.elementAttributes["+"+a])):j.setAttribute(a,e.elementAttributes[a]);function l(){var a,b=j.value;if(null==i&&""!==b||b!==i){if(b&&f)switch(a=h.fromFormat(String(b),"yyyy-MM-dd"),f){case!0:b=a;break;case"iso":b=a.toISO();break;default:b=a.toFormat(f)}c(b)&&(i=j.value)}else d()}return i=void 0!==i?i:"",f&&(h?i=k(i):console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js")),j.value=i,b(function(){"cell"===a.getType()&&(j.focus({preventScroll:!0}),j.style.height="100%",e.selectContents&&j.select())}),j.addEventListener("blur",function(a){(a.relatedTarget||a.rangeParent||a.explicitOriginalTarget!==j)&&l()}),j.addEventListener("keydown",function(a){switch(a.key){case"Enter":l();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation();break;case"ArrowUp":case"ArrowDown":"editor"==g&&(a.stopImmediatePropagation(),a.stopPropagation())}}),j},time:function(a,b,c,d,e){var f=e.format,g=e.verticalNavigation||"editor",h=f?window.DateTime||luxon.DateTime:null,i=a.getValue(),j=document.createElement("input");if(j.type="time",j.style.padding="4px",j.style.width="100%",j.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),j.setAttribute(a,j.getAttribute(a)+e.elementAttributes["+"+a])):j.setAttribute(a,e.elementAttributes[a]);function k(){var a,b=j.value;if(null==i&&""!==b||b!==i){if(b&&f)switch(a=h.fromFormat(String(b),"hh:mm"),f){case!0:b=a;break;case"iso":b=a.toISO();break;default:b=a.toFormat(f)}c(b)&&(i=j.value)}else d()}return i=void 0!==i?i:"",f&&(h?i=(h.isDateTime(i)?i:"iso"===f?h.fromISO(String(i)):h.fromFormat(String(i),f)).toFormat("HH:mm"):console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js")),j.value=i,b(function(){"cell"==a.getType()&&(j.focus({preventScroll:!0}),j.style.height="100%",e.selectContents&&j.select())}),j.addEventListener("blur",function(a){(a.relatedTarget||a.rangeParent||a.explicitOriginalTarget!==j)&&k()}),j.addEventListener("keydown",function(a){switch(a.key){case"Enter":k();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation();break;case"ArrowUp":case"ArrowDown":"editor"==g&&(a.stopImmediatePropagation(),a.stopPropagation())}}),j},datetime:function(a,b,c,d,e){var f,g=e.format,h=e.verticalNavigation||"editor",i=g?this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"):null,j=a.getValue(),k=document.createElement("input");if(k.type="datetime-local",k.style.padding="4px",k.style.width="100%",k.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),k.setAttribute(a,k.getAttribute(a)+e.elementAttributes["+"+a])):k.setAttribute(a,e.elementAttributes[a]);function l(){var a,b=k.value;if(null==j&&""!==b||b!==j){if(b&&g)switch(a=i.fromISO(String(b)),g){case!0:b=a;break;case"iso":b=a.toISO();break;default:b=a.toFormat(g)}c(b)&&(j=k.value)}else d()}return j=void 0!==j?j:"",g&&(i?j=(f=i.isDateTime(j)?j:"iso"===g?i.fromISO(String(j)):i.fromFormat(String(j),g)).toFormat("yyyy-MM-dd")+"T"+f.toFormat("HH:mm"):console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js")),k.value=j,b(function(){"cell"===a.getType()&&(k.focus({preventScroll:!0}),k.style.height="100%",e.selectContents&&k.select())}),k.addEventListener("blur",function(a){(a.relatedTarget||a.rangeParent||a.explicitOriginalTarget!==k)&&l()}),k.addEventListener("keydown",function(a){switch(a.key){case"Enter":l();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation();break;case"ArrowUp":case"ArrowDown":"editor"==h&&(a.stopImmediatePropagation(),a.stopPropagation())}}),k},list:function(a,b,c,d,e){return new O(this,a,b,c,d,e).input},star:function(a,b,c,d,e){var f=this,g=a.getElement(),h=a.getValue(),i=g.getElementsByTagName("svg").length||5,j=g.getElementsByTagName("svg")[0]?g.getElementsByTagName("svg")[0].getAttribute("width"):14,k=[],l=document.createElement("div"),m=document.createElementNS("http://www.w3.org/2000/svg","svg");function n(a){k.forEach(function(b,c){c<a?("ie"==f.table.browser?b.setAttribute("class","tabulator-star-active"):b.classList.replace("tabulator-star-inactive","tabulator-star-active"),b.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'):("ie"==f.table.browser?b.setAttribute("class","tabulator-star-inactive"):b.classList.replace("tabulator-star-active","tabulator-star-inactive"),b.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>')})}if(g.style.whiteSpace="nowrap",g.style.overflow="hidden",g.style.textOverflow="ellipsis",l.style.verticalAlign="middle",l.style.display="inline-block",l.style.padding="4px",m.setAttribute("width",j),m.setAttribute("height",j),m.setAttribute("viewBox","0 0 512 512"),m.setAttribute("xml:space","preserve"),m.style.padding="0 1px",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),l.setAttribute(a,l.getAttribute(a)+e.elementAttributes["+"+a])):l.setAttribute(a,e.elementAttributes[a]);for(var o=1;o<=i;o++)!function(a){var b=document.createElement("span"),d=m.cloneNode(!0);k.push(d),b.addEventListener("mouseenter",function(b){b.stopPropagation(),b.stopImmediatePropagation(),n(a)}),b.addEventListener("mousemove",function(a){a.stopPropagation(),a.stopImmediatePropagation()}),b.addEventListener("click",function(b){b.stopPropagation(),b.stopImmediatePropagation(),c(a),g.blur()}),b.appendChild(d),l.appendChild(b)}(o);return n(h=Math.min(parseInt(h),i)),l.addEventListener("mousemove",function(a){n(0)}),l.addEventListener("click",function(a){c(0)}),g.addEventListener("blur",function(a){d()}),g.addEventListener("keydown",function(a){var b,e;switch(a.key){case"ArrowRight":h=b=h+1,n(b);break;case"ArrowLeft":h=e=h-1,n(e);break;case"Enter":c(h);break;case"Escape":d()}}),l},progress:function(a,b,c,d,e){var f,g,h=a.getElement(),i=void 0===e.max?h.getElementsByTagName("div")[0]&&h.getElementsByTagName("div")[0].getAttribute("max")||100:e.max,j=void 0===e.min?h.getElementsByTagName("div")[0]&&h.getElementsByTagName("div")[0].getAttribute("min")||0:e.min,k=(i-j)/100,l=a.getValue()||0,m=document.createElement("div"),n=document.createElement("div");function o(){var a=window.getComputedStyle(h,null),b=k*Math.round(n.offsetWidth/((h.clientWidth-parseInt(a.getPropertyValue("padding-left"))-parseInt(a.getPropertyValue("padding-right")))/100))+j;c(b),h.setAttribute("aria-valuenow",b),h.setAttribute("aria-label",l)}if(m.style.position="absolute",m.style.right="0",m.style.top="0",m.style.bottom="0",m.style.width="5px",m.classList.add("tabulator-progress-handle"),n.style.display="inline-block",n.style.position="relative",n.style.height="100%",n.style.backgroundColor="#488CE9",n.style.maxWidth="100%",n.style.minWidth="0%",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),n.setAttribute(a,n.getAttribute(a)+e.elementAttributes["+"+a])):n.setAttribute(a,e.elementAttributes[a]);return h.style.padding="4px 4px",l=Math.round(((l=Math.max(parseFloat(l=Math.min(parseFloat(l),i)),j))-j)/k),n.style.width=l+"%",h.setAttribute("aria-valuemin",j),h.setAttribute("aria-valuemax",i),n.appendChild(m),m.addEventListener("mousedown",function(a){f=a.screenX,g=n.offsetWidth}),m.addEventListener("mouseover",function(){m.style.cursor="ew-resize"}),h.addEventListener("mousemove",function(a){f&&(n.style.width=g+a.screenX-f+"px")}),h.addEventListener("mouseup",function(a){f&&(a.stopPropagation(),a.stopImmediatePropagation(),f=!1,g=!1,o())}),h.addEventListener("keydown",function(a){switch(a.key){case"ArrowRight":a.preventDefault(),n.style.width=n.clientWidth+h.clientWidth/100+"px";break;case"ArrowLeft":a.preventDefault(),n.style.width=n.clientWidth-h.clientWidth/100+"px";break;case"Tab":case"Enter":o();break;case"Escape":d()}}),h.addEventListener("blur",function(){d()}),n},tickCross:function(a,b,c,d,e){var f=a.getValue(),g=document.createElement("input"),h=e.tristate,i=void 0===e.indeterminateValue?null:e.indeterminateValue,j=!1,k=Object.keys(e).includes("trueValue"),l=Object.keys(e).includes("falseValue");if(g.setAttribute("type","checkbox"),g.style.marginTop="5px",g.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),g.setAttribute(a,g.getAttribute(a)+e.elementAttributes["+"+a])):g.setAttribute(a,e.elementAttributes[a]);function m(a){var b=g.checked;if(k&&b?b=e.trueValue:l&&!b&&(b=e.falseValue),!h)return b;if(a)if(j)return i;else return b;return g.checked&&!j?(g.checked=!1,g.indeterminate=!0,j=!0,i):(j=!1,b)}return g.value=f,h&&(void 0===f||f===i||""===f)&&(j=!0,g.indeterminate=!0),"firefox"!=this.table.browser&&"safari"!=this.table.browser&&b(function(){"cell"===a.getType()&&g.focus({preventScroll:!0})}),g.checked=k?f===e.trueValue:!0===f||"true"===f||"True"===f||1===f,g.addEventListener("change",function(a){c(m())}),g.addEventListener("blur",function(a){c(m(!0))}),g.addEventListener("keydown",function(a){"Enter"==a.key&&c(m()),"Escape"==a.key&&d()}),g},adaptable:function(a,b,c,d,e){var f,g,h=a._getSelf().column;return f=e.editorLookup?e.editorLookup(a):function(a){var b=a.getValue(),c="input";switch(typeof b){case"number":c="number";break;case"boolean":c="tickCross";break;case"string":b.includes("\n")&&(c="textarea")}return c}(a),e.paramsLookup&&(g="function"==typeof e.paramsLookup?e.paramsLookup(f,a):e.paramsLookup[f]),this.table.modules.edit.lookupEditor(f,h).call(this,a,b,c,d,g||{})}};class Q extends p{static moduleName="edit";static editors=P;constructor(a){super(a),this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1,this.editedCells=[],this.convertEmptyValues=!1,this.editors=Q.editors,this.registerTableOption("editTriggerEvent","focus"),this.registerTableOption("editorEmptyValue"),this.registerTableOption("editorEmptyValueFunc",this.emptyValueCheck.bind(this)),this.registerColumnOption("editable"),this.registerColumnOption("editor"),this.registerColumnOption("editorParams"),this.registerColumnOption("editorEmptyValue"),this.registerColumnOption("editorEmptyValueFunc"),this.registerColumnOption("cellEditing"),this.registerColumnOption("cellEdited"),this.registerColumnOption("cellEditCancelled"),this.registerTableFunction("getEditedCells",this.getEditedCells.bind(this)),this.registerTableFunction("clearCellEdited",this.clearCellEdited.bind(this)),this.registerTableFunction("navigatePrev",this.navigatePrev.bind(this)),this.registerTableFunction("navigateNext",this.navigateNext.bind(this)),this.registerTableFunction("navigateLeft",this.navigateLeft.bind(this)),this.registerTableFunction("navigateRight",this.navigateRight.bind(this)),this.registerTableFunction("navigateUp",this.navigateUp.bind(this)),this.registerTableFunction("navigateDown",this.navigateDown.bind(this)),this.registerComponentFunction("cell","isEdited",this.cellIsEdited.bind(this)),this.registerComponentFunction("cell","clearEdited",this.clearEdited.bind(this)),this.registerComponentFunction("cell","edit",this.editCell.bind(this)),this.registerComponentFunction("cell","cancelEdit",this.cellCancelEdit.bind(this)),this.registerComponentFunction("cell","navigatePrev",this.navigatePrev.bind(this)),this.registerComponentFunction("cell","navigateNext",this.navigateNext.bind(this)),this.registerComponentFunction("cell","navigateLeft",this.navigateLeft.bind(this)),this.registerComponentFunction("cell","navigateRight",this.navigateRight.bind(this)),this.registerComponentFunction("cell","navigateUp",this.navigateUp.bind(this)),this.registerComponentFunction("cell","navigateDown",this.navigateDown.bind(this))}initialize(){this.subscribe("cell-init",this.bindEditor.bind(this)),this.subscribe("cell-delete",this.clearEdited.bind(this)),this.subscribe("cell-value-changed",this.updateCellClass.bind(this)),this.subscribe("column-layout",this.initializeColumnCheck.bind(this)),this.subscribe("column-delete",this.columnDeleteCheck.bind(this)),this.subscribe("row-deleting",this.rowDeleteCheck.bind(this)),this.subscribe("row-layout",this.rowEditableCheck.bind(this)),this.subscribe("data-refreshing",this.cancelEdit.bind(this)),this.subscribe("clipboard-paste",this.pasteBlocker.bind(this)),this.confirm("edit-nav-disabled")||(this.subscribe("keybinding-nav-prev",this.navigatePrev.bind(this,void 0)),this.subscribe("keybinding-nav-next",this.keybindingNavigateNext.bind(this)),this.subscribe("keybinding-nav-up",this.navigateUp.bind(this,void 0)),this.subscribe("keybinding-nav-down",this.navigateDown.bind(this,void 0))),this.subscribe("edit-check-editing",this.checkEditing.bind(this)),this.subscribe("edit-cancel-cell",this.cancelEditEvent.bind(this)),Object.keys(this.table.options).includes("editorEmptyValue")&&(this.convertEmptyValues=!0)}pasteBlocker(a){if(this.currentCell)return!0}keybindingNavigateNext(a){var b=this.currentCell,c=this.options("tabEndNewRow");b&&!this.navigateNext(b,a)&&c&&(b.getElement().firstChild.blur(),this.invalidEdit||(c=!0===c?this.table.addRow({}):"function"==typeof c?this.table.addRow(c(b.row.getComponent())):this.table.addRow(Object.assign({},c))).then(()=>{setTimeout(()=>{b.getComponent().navigateNext()})}))}cellIsEdited(a){return!!a.modules.edit&&a.modules.edit.edited}cellCancelEdit(a){a===this.currentCell?this.table.modules.edit.cancelEdit():console.warn("Cancel Editor Error - This cell is not currently being edited ")}updateCellClass(a){this.allowEdit(a)?a.getElement().classList.add("tabulator-editable"):a.getElement().classList.remove("tabulator-editable")}clearCellEdited(a){a||(a=this.table.modules.edit.getEditedCells()),Array.isArray(a)||(a=[a]),a.forEach(a=>{this.table.modules.edit.clearEdited(a._getSelf())})}navigatePrev(a=this.currentCell,b){var c,d;if(a){if(b&&b.preventDefault(),c=this.navigateLeft())return!0;if((d=this.table.rowManager.prevDisplayRow(a.row,!0))&&(c=this.findPrevEditableCell(d,d.cells.length)))return c.getComponent().edit(),!0}return!1}navigateNext(a=this.currentCell,b){var c,d;if(a){if(b&&b.preventDefault(),c=this.navigateRight())return!0;if((d=this.table.rowManager.nextDisplayRow(a.row,!0))&&(c=this.findNextEditableCell(d,-1)))return c.getComponent().edit(),!0}return!1}navigateLeft(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.findPrevEditableCell(a.row,c)))&&(d.getComponent().edit(),!0)}navigateRight(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.findNextEditableCell(a.row,c)))&&(d.getComponent().edit(),!0)}navigateUp(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.table.rowManager.prevDisplayRow(a.row,!0)))&&(d.cells[c].getComponent().edit(),!0)}navigateDown(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.table.rowManager.nextDisplayRow(a.row,!0)))&&(d.cells[c].getComponent().edit(),!0)}findNextEditableCell(a,b){var c=!1;if(b<a.cells.length-1)for(var d=b+1;d<a.cells.length;d++){let b=a.cells[d];if(b.column.modules.edit&&n.elVisible(b.getElement())&&this.allowEdit(b)){c=b;break}}return c}findPrevEditableCell(a,b){var c=!1;if(b>0)for(var d=b-1;d>=0;d--){let b=a.cells[d];if(b.column.modules.edit&&n.elVisible(b.getElement())&&this.allowEdit(b)){c=b;break}}return c}initializeColumnCheck(a){void 0!==a.definition.editor&&this.initializeColumn(a)}columnDeleteCheck(a){this.currentCell&&this.currentCell.column===a&&this.cancelEdit()}rowDeleteCheck(a){this.currentCell&&this.currentCell.row===a&&this.cancelEdit()}rowEditableCheck(a){a.getCells().forEach(a=>{a.column.modules.edit&&"function"==typeof a.column.modules.edit.check&&this.updateCellClass(a)})}initializeColumn(a){var b=Object.keys(a.definition).includes("editorEmptyValue"),c={editor:!1,blocked:!1,check:a.definition.editable,params:a.definition.editorParams||{},convertEmptyValues:b,editorEmptyValue:a.definition.editorEmptyValue,editorEmptyValueFunc:a.definition.editorEmptyValueFunc};c.editor=this.lookupEditor(a.definition.editor,a),c.editor&&(a.modules.edit=c)}lookupEditor(a,b){var c;switch(typeof a){case"string":this.editors[a]?c=this.editors[a]:console.warn("Editor Error - No such editor found: ",a);break;case"function":c=a;break;case"boolean":!0===a&&("function"!=typeof b.definition.formatter?c=this.editors[b.definition.formatter]?this.editors[b.definition.formatter]:this.editors.input:console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",b.definition.formatter))}return c}getCurrentCell(){return!!this.currentCell&&this.currentCell.getComponent()}checkEditing(){return!!this.currentCell}cancelEditEvent(){return!!this.currentCell&&(this.cancelEdit(),!0)}clearEditor(a){var b,c=this.currentCell;if(this.invalidEdit=!1,c){for(this.currentCell=!1,b=c.getElement(),this.dispatch("edit-editor-clear",c,a),b.classList.remove("tabulator-editing");b.firstChild;)b.removeChild(b.firstChild);c.row.getElement().classList.remove("tabulator-editing"),c.table.element.classList.remove("tabulator-editing")}}cancelEdit(){if(this.currentCell){var a=this.currentCell,b=this.currentCell.getComponent();this.clearEditor(!0),a.setValueActual(a.getValue()),a.cellRendered(),("textarea"==a.column.definition.editor||a.column.definition.variableHeight)&&a.row.normalizeHeight(!0),a.column.definition.cellEditCancelled&&a.column.definition.cellEditCancelled.call(this.table,b),this.dispatch("edit-cancelled",a),this.dispatchExternal("cellEditCancelled",b)}}bindEditor(a){if(a.column.modules.edit){var b=this,c=a.getElement(!0);this.updateCellClass(a),c.setAttribute("tabindex",0),c.addEventListener("mousedown",function(a){2===a.button?a.preventDefault():b.mouseClick=!0}),"dblclick"===this.options("editTriggerEvent")&&c.addEventListener("dblclick",function(d){c.classList.contains("tabulator-editing")||(c.focus({preventScroll:!0}),b.edit(a,d,!1))}),("focus"===this.options("editTriggerEvent")||"click"===this.options("editTriggerEvent"))&&c.addEventListener("click",function(d){c.classList.contains("tabulator-editing")||(c.focus({preventScroll:!0}),b.edit(a,d,!1))}),"focus"===this.options("editTriggerEvent")&&c.addEventListener("focus",function(c){b.recursionBlock||b.edit(a,c,!1)})}}focusCellNoEvent(a,b){this.recursionBlock=!0,b&&"ie"===this.table.browser||a.getElement().focus({preventScroll:!0}),this.recursionBlock=!1}editCell(a,b){this.focusCellNoEvent(a),this.edit(a,!1,b)}focusScrollAdjust(a){if("virtual"==this.table.rowManager.getRenderMode()){var b=this.table.rowManager.element.scrollTop,c=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,d=a.row.getElement();d.offsetTop<b?this.table.rowManager.element.scrollTop-=b-d.offsetTop:d.offsetTop+d.offsetHeight>c&&(this.table.rowManager.element.scrollTop+=d.offsetTop+d.offsetHeight-c);var e=this.table.rowManager.element.scrollLeft,f=this.table.rowManager.element.clientWidth+this.table.rowManager.element.scrollLeft,g=a.getElement();this.table.modExists("frozenColumns")&&(e+=parseInt(this.table.modules.frozenColumns.leftMargin||0),f-=parseInt(this.table.modules.frozenColumns.rightMargin||0)),"virtual"===this.table.options.renderHorizontal&&(e-=parseInt(this.table.columnManager.renderer.vDomPadLeft),f-=parseInt(this.table.columnManager.renderer.vDomPadLeft)),g.offsetLeft<e?this.table.rowManager.element.scrollLeft-=e-g.offsetLeft:g.offsetLeft+g.offsetWidth>f&&(this.table.rowManager.element.scrollLeft+=g.offsetLeft+g.offsetWidth-f)}}allowEdit(a){var b=!!a.column.modules.edit;if(a.column.modules.edit)switch(typeof a.column.modules.edit.check){case"function":a.row.initialized&&(b=a.column.modules.edit.check(a.getComponent()));break;case"string":b=!!a.row.data[a.column.modules.edit.check];break;case"boolean":b=a.column.modules.edit.check}return b}edit(a,b,c){var d,e,f,g=this,h=function(){},i=a.getElement(),j=!1;if(this.currentCell){this.invalidEdit||this.currentCell===a||this.cancelEdit();return}if(a.column.modules.edit.blocked||(b&&b.stopPropagation(),!this.allowEdit(a)&&!c))return this.mouseClick=!1,this.blur(i),!1;if(g.cancelEdit(),g.currentCell=a,this.focusScrollAdjust(a),e=a.getComponent(),this.mouseClick&&(this.mouseClick=!1,a.column.definition.cellClick&&a.column.definition.cellClick.call(this.table,b,e)),a.column.definition.cellEditing&&a.column.definition.cellEditing.call(this.table,e),this.dispatch("cell-editing",a),this.dispatchExternal("cellEditing",e),f="function"==typeof a.column.modules.edit.params?a.column.modules.edit.params(e):a.column.modules.edit.params,d=a.column.modules.edit.editor.call(g,e,function(a){h=a},function(b){if(g.currentCell===a&&!j){var c=g.chain("edit-success",[a,b],!0,!0);return!0===c||"highlight"===g.table.options.validationMode?(j=!0,g.clearEditor(),a.modules.edit||(a.modules.edit={}),a.modules.edit.edited=!0,-1==g.editedCells.indexOf(a)&&g.editedCells.push(a),b=g.transformEmptyValues(b,a),a.setValue(b,!0),!0===c):(j=!0,g.invalidEdit=!0,g.focusCellNoEvent(a,!0),h(),setTimeout(()=>{j=!1},10),!1)}},function(){g.currentCell!==a||j||g.cancelEdit()},f),!this.currentCell||!1===d)return this.blur(i),!1;if(!(d instanceof Node))return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",d),this.blur(i),!1;for(i.classList.add("tabulator-editing"),a.row.getElement().classList.add("tabulator-editing"),a.table.element.classList.add("tabulator-editing");i.firstChild;)i.removeChild(i.firstChild);i.appendChild(d),h();for(var k=i.children,l=0;l<k.length;l++)k[l].addEventListener("click",function(a){a.stopPropagation()});return!0}emptyValueCheck(a){return""===a||null==a}transformEmptyValues(a,b){var c,d=b.column.modules.edit;return(d.convertEmptyValues||this.convertEmptyValues)&&(c=d.editorEmptyValueFunc||this.options("editorEmptyValueFunc"))&&c(a)&&(a=d.convertEmptyValues?d.editorEmptyValue:this.options("editorEmptyValue")),a}blur(a){this.confirm("edit-blur",[a])||a.blur()}getEditedCells(){var a=[];return this.editedCells.forEach(b=>{a.push(b.getComponent())}),a}clearEdited(a){var b;a.modules.edit&&a.modules.edit.edited&&(a.modules.edit.edited=!1,this.dispatch("edit-edited-clear",a)),(b=this.editedCells.indexOf(a))>-1&&this.editedCells.splice(b,1)}}class R{constructor(a,b,c,d){this.type=a,this.columns=b,this.component=c||!1,this.indent=d||0}}class S{constructor(a,b,c,d,e){this.value=a,this.component=b||!1,this.width=c,this.height=d,this.depth=e}}var T={},U={visible:function(){return this.rowManager.getVisibleRows(!1,!0)},all:function(){return this.rowManager.rows},selected:function(){return this.modules.selectRow.selectedRows},active:function(){return this.options.pagination?this.rowManager.getDisplayRows(this.rowManager.displayRows.length-2):this.rowManager.getDisplayRows()}};class V extends p{static moduleName="export";static columnLookups=T;static rowLookups=U;constructor(a){super(a),this.config={},this.cloneTableStyle=!0,this.colVisProp="",this.colVisPropAttach="",this.registerTableOption("htmlOutputConfig",!1),this.registerColumnOption("htmlOutput"),this.registerColumnOption("titleHtmlOutput")}initialize(){this.registerTableFunction("getHtml",this.getHtml.bind(this))}generateExportList(a,b,c,d){var e,f,g,h;return this.cloneTableStyle=b,this.config=a||{},this.colVisProp=d,this.colVisPropAttach=this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1),(h=V.columnLookups[c])&&(g=(g=h.call(this.table)).filter(a=>this.columnVisCheck(a))),e=!1!==this.config.columnHeaders?this.headersToExportRows(this.generateColumnGroupHeaders(g)):[],g&&(g=g.map(a=>a.getComponent())),f=this.bodyToExportRows(this.rowLookup(c),g),e.concat(f)}generateTable(a,b,c,d){var e=this.generateExportList(a,b,c,d);return this.generateTableElement(e)}rowLookup(a){var b=[];return"function"==typeof a?a.call(this.table).forEach(a=>{(a=this.table.rowManager.findRow(a))&&b.push(a)}):b=(V.rowLookups[a]||V.rowLookups.active).call(this.table),Object.assign([],b)}generateColumnGroupHeaders(a){var b=[];return a||(a=!1!==this.config.columnGroups?this.table.columnManager.columns:this.table.columnManager.columnsByIndex),a.forEach(a=>{var c=this.processColumnGroup(a);c&&b.push(c)}),b}processColumnGroup(a){var b=a.columns,c=0,d={title:a.definition["title"+this.colVisPropAttach]||a.definition.title,column:a,depth:1};if(b.length){if(d.subGroups=[],d.width=0,b.forEach(a=>{var b=this.processColumnGroup(a);b&&(d.width+=b.width,d.subGroups.push(b),b.depth>c&&(c=b.depth))}),d.depth+=c,!d.width)return!1}else{if(!this.columnVisCheck(a))return!1;d.width=1}return d}columnVisCheck(a){var b=a.definition[this.colVisProp];return(!1!==this.config.rowHeaders||!a.isRowHeader)&&(("function"==typeof b&&(b=b.call(this.table,a.getComponent())),!1===b||!0===b)?b:a.visible&&a.field)}headersToExportRows(a){var b=[],c=0,d=[];return a.forEach(function(a){a.depth>c&&(c=a.depth)}),a.forEach(function(a){!function a(d,e){var f=c-e;if(void 0===b[e]&&(b[e]=[]),d.height=d.subGroups?1:f-d.depth+1,b[e].push(d),d.height>1)for(let a=1;a<d.height;a++)void 0===b[e+a]&&(b[e+a]=[]),b[e+a].push(!1);if(d.width>1)for(let a=1;a<d.width;a++)b[e].push(!1);d.subGroups&&d.subGroups.forEach(function(b){a(b,e+1)})}(a,0)}),b.forEach(a=>{var b=[];a.forEach(a=>{if(a){let c=void 0===a.title?"":a.title;b.push(new S(c,a.column.getComponent(),a.width,a.height,a.depth))}else b.push(null)}),d.push(new R("header",b))}),d}bodyToExportRows(a,b=[]){var c=[];return 0===b.length&&this.table.columnManager.columnsByIndex.forEach(a=>{this.columnVisCheck(a)&&b.push(a.getComponent())}),!1!==this.config.columnCalcs&&this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&a.unshift(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&a.push(this.table.modules.columnCalcs.botRow)),(a=a.filter(a=>{switch(a.type){case"group":return!1!==this.config.rowGroups;case"calc":return!1!==this.config.columnCalcs;case"row":return!(this.table.options.dataTree&&!1===this.config.dataTree&&a.modules.dataTree.parent)}return!0})).forEach((a,d)=>{var e=a.getData(this.colVisProp),f=[],g=0;switch(a.type){case"group":g=a.level,f.push(new S(a.key,a.getComponent(),b.length,1));break;case"calc":case"row":b.forEach(a=>{f.push(new S(a._column.getFieldValue(e),a,1,1))}),this.table.options.dataTree&&!1!==this.config.dataTree&&(g=a.modules.dataTree.index)}c.push(new R(a.type,f,a.getComponent(),g))}),c}generateTableElement(a){var b=document.createElement("table"),c=document.createElement("thead"),d=document.createElement("tbody"),e=this.lookupTableStyles(),f=this.table.options["rowFormatter"+this.colVisPropAttach],g={};return g.rowFormatter=null!==f?f:this.table.options.rowFormatter,this.table.options.dataTree&&!1!==this.config.dataTree&&this.table.modExists("columnCalcs")&&(g.treeElementField=this.table.modules.dataTree.elementField),g.groupHeader=this.table.options["groupHeader"+this.colVisPropAttach],g.groupHeader&&!Array.isArray(g.groupHeader)&&(g.groupHeader=[g.groupHeader]),b.classList.add("tabulator-print-table"),this.mapElementStyles(this.table.columnManager.getHeadersElement(),c,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),a.length>1e3&&console.warn("It may take a long time to render an HTML table with more than 1000 rows"),a.forEach((a,b)=>{let f;switch(a.type){case"header":c.appendChild(this.generateHeaderElement(a,g,e));break;case"group":d.appendChild(this.generateGroupElement(a,g,e));break;case"calc":d.appendChild(this.generateCalcElement(a,g,e));break;case"row":f=this.generateRowElement(a,g,e),this.mapElementStyles(b%2&&e.evenRow?e.evenRow:e.oddRow,f,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),d.appendChild(f)}}),c.innerHTML&&b.appendChild(c),b.appendChild(d),this.mapElementStyles(this.table.element,b,["border-top","border-left","border-right","border-bottom"]),b}lookupTableStyles(){var a={};return this.cloneTableStyle&&window.getComputedStyle&&(a.oddRow=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),a.evenRow=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),a.calcRow=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),a.firstRow=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),a.firstGroup=this.table.element.getElementsByClassName("tabulator-group")[0],a.firstRow&&(a.styleCells=a.firstRow.getElementsByClassName("tabulator-cell"),a.styleRowHeader=a.firstRow.getElementsByClassName("tabulator-row-header")[0],a.firstCell=a.styleCells[0],a.lastCell=a.styleCells[a.styleCells.length-1])),a}generateHeaderElement(a,b,c){var d=document.createElement("tr");return a.columns.forEach(a=>{if(a){var b=document.createElement("th"),c=a.component._column.definition.cssClass?a.component._column.definition.cssClass.split(" "):[];b.colSpan=a.width,b.rowSpan=a.height,b.innerHTML=a.value,this.cloneTableStyle&&(b.style.boxSizing="border-box"),c.forEach(function(a){b.classList.add(a)}),this.mapElementStyles(a.component.getElement(),b,["text-align","border-left","border-right","background-color","color","font-weight","font-family","font-size"]),this.mapElementStyles(a.component._column.contentElement,b,["padding-top","padding-left","padding-right","padding-bottom"]),a.component._column.visible?this.mapElementStyles(a.component.getElement(),b,["width"]):a.component._column.definition.width&&(b.style.width=a.component._column.definition.width+"px"),a.component._column.parent&&a.component._column.parent.isGroup?this.mapElementStyles(a.component._column.parent.groupElement,b,["border-top"]):this.mapElementStyles(a.component.getElement(),b,["border-top"]),a.component._column.isGroup?this.mapElementStyles(a.component.getElement(),b,["border-bottom"]):this.mapElementStyles(this.table.columnManager.getElement(),b,["border-bottom"]),d.appendChild(b)}}),d}generateGroupElement(a,b,c){var d=document.createElement("tr"),e=document.createElement("td"),f=a.columns[0];return d.classList.add("tabulator-print-table-row"),b.groupHeader&&b.groupHeader[a.indent]?f.value=b.groupHeader[a.indent](f.value,a.component._group.getRowCount(),a.component._group.getData(),a.component):!1!==b.groupHeader&&(f.value=a.component._group.generator(f.value,a.component._group.getRowCount(),a.component._group.getData(),a.component)),e.colSpan=f.width,e.innerHTML=f.value,d.classList.add("tabulator-print-table-group"),d.classList.add("tabulator-group-level-"+a.indent),f.component.isVisible()&&d.classList.add("tabulator-group-visible"),this.mapElementStyles(c.firstGroup,d,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),this.mapElementStyles(c.firstGroup,e,["padding-top","padding-left","padding-right","padding-bottom"]),d.appendChild(e),d}generateCalcElement(a,b,c){var d=this.generateRowElement(a,b,c);return d.classList.add("tabulator-print-table-calcs"),this.mapElementStyles(c.calcRow,d,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),d}generateRowElement(a,b,c){var d=document.createElement("tr");return d.classList.add("tabulator-print-table-row"),a.columns.forEach((e,f)=>{if(e){var g,h,i=document.createElement("td"),j=e.component._column,k=this.table,l=k.columnManager.findColumnIndex(j),m=e.value,n={modules:{},getValue:function(){return m},getField:function(){return j.definition.field},getElement:function(){return i},getType:function(){return"cell"},getColumn:function(){return j.getComponent()},getData:function(){return a.component.getData()},getRow:function(){return a.component},getTable:function(){return k},getComponent:function(){return n},column:j};if((j.definition.cssClass?j.definition.cssClass.split(" "):[]).forEach(function(a){i.classList.add(a)}),this.table.modExists("format")&&!1!==this.config.formatCells)m=this.table.modules.format.formatExportValue(n,this.colVisProp);else switch(typeof m){case"object":m=null!==m?JSON.stringify(m):"";break;case"undefined":m=""}m instanceof Node?i.appendChild(m):i.innerHTML=m,h=["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","text-align"],j.isRowHeader?(g=c.styleRowHeader,h.push("background-color")):g=c.styleCells&&c.styleCells[l]?c.styleCells[l]:c.firstCell,g&&(this.mapElementStyles(g,i,h),j.definition.align&&(i.style.textAlign=j.definition.align)),this.table.options.dataTree&&!1!==this.config.dataTree&&(b.treeElementField&&b.treeElementField==j.field||!b.treeElementField&&0==f)&&(a.component._row.modules.dataTree.controlEl&&i.insertBefore(a.component._row.modules.dataTree.controlEl.cloneNode(!0),i.firstChild),a.component._row.modules.dataTree.branchEl&&i.insertBefore(a.component._row.modules.dataTree.branchEl.cloneNode(!0),i.firstChild)),d.appendChild(i),n.modules.format&&n.modules.format.renderedCallback&&n.modules.format.renderedCallback()}}),b.rowFormatter&&"row"===a.type&&!1!==this.config.formatCells&&(Object.assign(a.component).getElement=function(){return d},b.rowFormatter(a.component)),d}generateHTMLTable(a){var b=document.createElement("div");return b.appendChild(this.generateTableElement(a)),b.innerHTML}getHtml(a,b,c,d){var e=this.generateExportList(c||this.table.options.htmlOutputConfig,b,a,d||"htmlOutput");return this.generateHTMLTable(e)}mapElementStyles(a,b,c){if(this.cloneTableStyle&&a&&b){var d={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var e=window.getComputedStyle(a);c.forEach(function(a){b.style[d[a]]||(b.style[d[a]]=e.getPropertyValue(a))})}}}}var W={"=":function(a,b,c,d){return b==a},"<":function(a,b,c,d){return b<a},"<=":function(a,b,c,d){return b<=a},">":function(a,b,c,d){return b>a},">=":function(a,b,c,d){return b>=a},"!=":function(a,b,c,d){return b!=a},regex:function(a,b,c,d){return"string"==typeof a&&(a=new RegExp(a)),a.test(b)},like:function(a,b,c,d){return null==a?b===a:null!=b&&String(b).toLowerCase().indexOf(a.toLowerCase())>-1},keywords:function(a,b,c,d){var e=a.toLowerCase().split(void 0===d.separator?" ":d.separator),f=String(null==b?"":b).toLowerCase(),g=[];return e.forEach(a=>{f.includes(a)&&g.push(!0)}),d.matchAll?g.length===e.length:!!g.length},starts:function(a,b,c,d){return null==a?b===a:null!=b&&String(b).toLowerCase().startsWith(a.toLowerCase())},ends:function(a,b,c,d){return null==a?b===a:null!=b&&String(b).toLowerCase().endsWith(a.toLowerCase())},in:function(a,b,c,d){return Array.isArray(a)?!a.length||a.indexOf(b)>-1:(console.warn("Filter Error - filter value is not an array:",a),!1)}};class X extends p{static moduleName="filter";static filters=W;constructor(a){super(a),this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1,this.tableInitialized=!1,this.registerTableOption("filterMode","local"),this.registerTableOption("initialFilter",!1),this.registerTableOption("initialHeaderFilter",!1),this.registerTableOption("headerFilterLiveFilterDelay",300),this.registerTableOption("placeholderHeaderFilter",!1),this.registerColumnOption("headerFilter"),this.registerColumnOption("headerFilterPlaceholder"),this.registerColumnOption("headerFilterParams"),this.registerColumnOption("headerFilterEmptyCheck"),this.registerColumnOption("headerFilterFunc"),this.registerColumnOption("headerFilterFuncParams"),this.registerColumnOption("headerFilterLiveFilter"),this.registerTableFunction("searchRows",this.searchRows.bind(this)),this.registerTableFunction("searchData",this.searchData.bind(this)),this.registerTableFunction("setFilter",this.userSetFilter.bind(this)),this.registerTableFunction("refreshFilter",this.userRefreshFilter.bind(this)),this.registerTableFunction("addFilter",this.userAddFilter.bind(this)),this.registerTableFunction("getFilters",this.getFilters.bind(this)),this.registerTableFunction("setHeaderFilterFocus",this.userSetHeaderFilterFocus.bind(this)),this.registerTableFunction("getHeaderFilterValue",this.userGetHeaderFilterValue.bind(this)),this.registerTableFunction("setHeaderFilterValue",this.userSetHeaderFilterValue.bind(this)),this.registerTableFunction("getHeaderFilters",this.getHeaderFilters.bind(this)),this.registerTableFunction("removeFilter",this.userRemoveFilter.bind(this)),this.registerTableFunction("clearFilter",this.userClearFilter.bind(this)),this.registerTableFunction("clearHeaderFilter",this.userClearHeaderFilter.bind(this)),this.registerComponentFunction("column","headerFilterFocus",this.setHeaderFilterFocus.bind(this)),this.registerComponentFunction("column","reloadHeaderFilter",this.reloadHeaderFilter.bind(this)),this.registerComponentFunction("column","getHeaderFilterValue",this.getHeaderFilterValue.bind(this)),this.registerComponentFunction("column","setHeaderFilterValue",this.setHeaderFilterValue.bind(this))}initialize(){this.subscribe("column-init",this.initializeColumnHeaderFilter.bind(this)),this.subscribe("column-width-fit-before",this.hideHeaderFilterElements.bind(this)),this.subscribe("column-width-fit-after",this.showHeaderFilterElements.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.subscribe("placeholder",this.generatePlaceholder.bind(this)),"remote"===this.table.options.filterMode&&this.subscribe("data-params",this.remoteFilterParams.bind(this)),this.registerDataHandler(this.filter.bind(this),10)}tableBuilt(){this.table.options.initialFilter&&this.setFilter(this.table.options.initialFilter),this.table.options.initialHeaderFilter&&this.table.options.initialHeaderFilter.forEach(a=>{var b=this.table.columnManager.findColumn(a.field);if(!b)return console.warn("Column Filter Error - No matching column found:",a.field),!1;this.setHeaderFilterValue(b,a.value)}),this.tableInitialized=!0}remoteFilterParams(a,b,c,d){return d.filter=this.getFilters(!0,!0),d}generatePlaceholder(a){if(this.table.options.placeholderHeaderFilter&&Object.keys(this.headerFilters).length)return this.table.options.placeholderHeaderFilter}userSetFilter(a,b,c,d){this.setFilter(a,b,c,d),this.refreshFilter()}userRefreshFilter(){this.refreshFilter()}userAddFilter(a,b,c,d){this.addFilter(a,b,c,d),this.refreshFilter()}userSetHeaderFilterFocus(a){var b=this.table.columnManager.findColumn(a);if(!b)return console.warn("Column Filter Focus Error - No matching column found:",a),!1;this.setHeaderFilterFocus(b)}userGetHeaderFilterValue(a){var b=this.table.columnManager.findColumn(a);if(b)return this.getHeaderFilterValue(b);console.warn("Column Filter Error - No matching column found:",a)}userSetHeaderFilterValue(a,b){var c=this.table.columnManager.findColumn(a);if(!c)return console.warn("Column Filter Error - No matching column found:",a),!1;this.setHeaderFilterValue(c,b)}userRemoveFilter(a,b,c){this.removeFilter(a,b,c),this.refreshFilter()}userClearFilter(a){this.clearFilter(a),this.refreshFilter()}userClearHeaderFilter(){this.clearHeaderFilter(),this.refreshFilter()}searchRows(a,b,c){return this.search("rows",a,b,c)}searchData(a,b,c){return this.search("data",a,b,c)}initializeColumnHeaderFilter(a){a.definition.headerFilter&&this.initializeColumn(a)}initializeColumn(a,b){var c=this,d=a.getField();a.modules.filter={success:function(b){var e,f="input"==a.modules.filter.tagType&&"text"==a.modules.filter.attrType||"textarea"==a.modules.filter.tagType?"partial":"match",g="",h="";if(void 0===a.modules.filter.prevSuccess||a.modules.filter.prevSuccess!==b){if(a.modules.filter.prevSuccess=b,a.modules.filter.emptyFunc(b))delete c.headerFilters[d];else{switch(a.modules.filter.value=b,typeof a.definition.headerFilterFunc){case"string":X.filters[a.definition.headerFilterFunc]?(g=a.definition.headerFilterFunc,e=function(c){var d=a.definition.headerFilterFuncParams||{},e=a.getFieldValue(c);return d="function"==typeof d?d(b,e,c):d,X.filters[a.definition.headerFilterFunc](b,e,c,d)}):console.warn("Header Filter Error - Matching filter function not found: ",a.definition.headerFilterFunc);break;case"function":g=e=function(c){var d=a.definition.headerFilterFuncParams||{},e=a.getFieldValue(c);return d="function"==typeof d?d(b,e,c):d,a.definition.headerFilterFunc(b,e,c,d)}}e||("partial"===f?(e=function(c){var d=a.getFieldValue(c);return null!=d&&String(d).toLowerCase().indexOf(String(b).toLowerCase())>-1},g="like"):(e=function(c){return a.getFieldValue(c)==b},g="=")),c.headerFilters[d]={value:b,func:e,type:g}}a.modules.filter.value=b,h=JSON.stringify(c.headerFilters),c.prevHeaderFilterChangeCheck!==h&&(c.prevHeaderFilterChangeCheck=h,c.trackChanges(),c.refreshFilter())}return!0},attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(a)}generateHeaderFilterElement(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.modules.filter.success,n=a.getField();if(a.modules.filter.value=b,a.modules.filter.headerElement&&a.modules.filter.headerElement.parentNode&&a.contentElement.removeChild(a.modules.filter.headerElement.parentNode),n){switch(a.modules.filter.emptyFunc=a.definition.headerFilterEmptyCheck||function(a){return!a&&0!==a},(d=document.createElement("div")).classList.add("tabulator-header-filter"),typeof a.definition.headerFilter){case"string":l.table.modules.edit.editors[a.definition.headerFilter]?(e=l.table.modules.edit.editors[a.definition.headerFilter],"tick"!==a.definition.headerFilter&&"tickCross"!==a.definition.headerFilter||a.definition.headerFilterEmptyCheck||(a.modules.filter.emptyFunc=function(a){return!0!==a&&!1!==a})):console.warn("Filter Error - Cannot build header filter, No such editor found: ",a.definition.editor);break;case"function":e=a.definition.headerFilter;break;case"boolean":a.modules.edit&&a.modules.edit.editor?e=a.modules.edit.editor:a.definition.formatter&&l.table.modules.edit.editors[a.definition.formatter]?(e=l.table.modules.edit.editors[a.definition.formatter],"tick"!==a.definition.formatter&&"tickCross"!==a.definition.formatter||a.definition.headerFilterEmptyCheck||(a.modules.filter.emptyFunc=function(a){return!0!==a&&!1!==a})):e=l.table.modules.edit.editors.input}if(e){if(g={getValue:function(){return void 0!==b?b:""},getField:function(){return a.definition.field},getElement:function(){return d},getColumn:function(){return a.getComponent()},getTable:()=>this.table,getType:()=>"header",getRow:function(){return{normalizeHeight:function(){}}}},j="function"==typeof(j=a.definition.headerFilterParams||{})?j.call(l.table,g):j,!(f=e.call(this.table.modules.edit,g,function(a){k=a},m,function(){},j)))return void console.warn("Filter Error - Cannot add filter to "+n+" column, editor returned a value of false");if(!(f instanceof Node))return void console.warn("Filter Error - Cannot add filter to "+n+" column, editor should return an instance of Node, the editor returned:",f);l.langBind("headerFilters|columns|"+a.definition.field,function(b){f.setAttribute("placeholder",void 0!==b&&b?b:a.definition.headerFilterPlaceholder||l.langText("headerFilters|default"))}),f.addEventListener("click",function(a){a.stopPropagation(),f.focus()}),f.addEventListener("focus",a=>{var b=this.table.columnManager.contentsElement.scrollLeft;b!==this.table.rowManager.element.scrollLeft&&(this.table.rowManager.scrollHorizontal(b),this.table.columnManager.scrollHorizontal(b))}),h=!1,i=function(a){h&&clearTimeout(h),h=setTimeout(function(){m(f.value)},l.table.options.headerFilterLiveFilterDelay)},a.modules.filter.headerElement=f,a.modules.filter.attrType=f.hasAttribute("type")?f.getAttribute("type").toLowerCase():"",a.modules.filter.tagType=f.tagName.toLowerCase(),!1!==a.definition.headerFilterLiveFilter&&("autocomplete"!==a.definition.headerFilter&&"tickCross"!==a.definition.headerFilter&&("autocomplete"!==a.definition.editor&&"tickCross"!==a.definition.editor||!0!==a.definition.headerFilter)&&(f.addEventListener("keyup",i),f.addEventListener("search",i),"number"==a.modules.filter.attrType&&f.addEventListener("change",function(a){m(f.value)}),"text"==a.modules.filter.attrType&&"ie"!==this.table.browser&&f.setAttribute("type","search")),("input"==a.modules.filter.tagType||"select"==a.modules.filter.tagType||"textarea"==a.modules.filter.tagType)&&f.addEventListener("mousedown",function(a){a.stopPropagation()})),d.appendChild(f),a.contentElement.appendChild(d),c||l.headerFilterColumns.push(a),k&&k()}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",a.definition.title)}hideHeaderFilterElements(){this.headerFilterColumns.forEach(function(a){a.modules.filter&&a.modules.filter.headerElement&&(a.modules.filter.headerElement.style.display="none")})}showHeaderFilterElements(){this.headerFilterColumns.forEach(function(a){a.modules.filter&&a.modules.filter.headerElement&&(a.modules.filter.headerElement.style.display="")})}setHeaderFilterFocus(a){a.modules.filter&&a.modules.filter.headerElement?a.modules.filter.headerElement.focus():console.warn("Column Filter Focus Error - No header filter set on column:",a.getField())}getHeaderFilterValue(a){if(a.modules.filter&&a.modules.filter.headerElement)return a.modules.filter.value;console.warn("Column Filter Error - No header filter set on column:",a.getField())}setHeaderFilterValue(a,b){a&&(a.modules.filter&&a.modules.filter.headerElement?(this.generateHeaderFilterElement(a,b,!0),a.modules.filter.success(b)):console.warn("Column Filter Error - No header filter set on column:",a.getField()))}reloadHeaderFilter(a){a&&(a.modules.filter&&a.modules.filter.headerElement?this.generateHeaderFilterElement(a,a.modules.filter.value,!0):console.warn("Column Filter Error - No header filter set on column:",a.getField()))}refreshFilter(){this.tableInitialized&&("remote"===this.table.options.filterMode?this.reloadData(null,!1,!1):this.refreshData(!0))}trackChanges(){this.changed=!0,this.dispatch("filter-changed")}hasChanged(){var a=this.changed;return this.changed=!1,a}setFilter(a,b,c,d){this.filterList=[],Array.isArray(a)||(a=[{field:a,type:b,value:c,params:d}]),this.addFilter(a)}addFilter(a,b,c,d){var e=!1;Array.isArray(a)||(a=[{field:a,type:b,value:c,params:d}]),a.forEach(a=>{(a=this.findFilter(a))&&(this.filterList.push(a),e=!0)}),e&&this.trackChanges()}findFilter(a){if(Array.isArray(a))return this.findSubFilters(a);var b,c=!1;return"function"==typeof a.field?c=function(b){return a.field(b,a.type||{})}:X.filters[a.type]?c=(b=this.table.columnManager.getColumnByField(a.field))?function(c){return X.filters[a.type](a.value,b.getFieldValue(c),c,a.params||{})}:function(b){return X.filters[a.type](a.value,b[a.field],b,a.params||{})}:console.warn("Filter Error - No such filter type found, ignoring: ",a.type),a.func=c,!!a.func&&a}findSubFilters(a){var b=[];return a.forEach(a=>{(a=this.findFilter(a))&&b.push(a)}),!!b.length&&b}getFilters(a,b){var c=[];return a&&(c=this.getHeaderFilters()),b&&c.forEach(function(a){"function"==typeof a.type&&(a.type="function")}),c=c.concat(this.filtersToArray(this.filterList,b))}filtersToArray(a,b){var c=[];return a.forEach(a=>{var d;Array.isArray(a)?c.push(this.filtersToArray(a,b)):(d={field:a.field,type:a.type,value:a.value},b&&"function"==typeof d.type&&(d.type="function"),c.push(d))}),c}getHeaderFilters(){var a=[];for(var b in this.headerFilters)a.push({field:b,type:this.headerFilters[b].type,value:this.headerFilters[b].value});return a}removeFilter(a,b,c){Array.isArray(a)||(a=[{field:a,type:b,value:c}]),a.forEach(a=>{var b=-1;(b="object"==typeof a.field?this.filterList.findIndex(b=>a===b):this.filterList.findIndex(b=>a.field===b.field&&a.type===b.type&&a.value===b.value))>-1?this.filterList.splice(b,1):console.warn("Filter Error - No matching filter type found, ignoring: ",a.type)}),this.trackChanges()}clearFilter(a){this.filterList=[],a&&this.clearHeaderFilter(),this.trackChanges()}clearHeaderFilter(){this.headerFilters={},this.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach(a=>{void 0!==a.modules.filter.value&&delete a.modules.filter.value,a.modules.filter.prevSuccess=void 0,this.reloadHeaderFilter(a)}),this.trackChanges()}search(a,b,c,d){var e=[],f=[];return Array.isArray(b)||(b=[{field:b,type:c,value:d}]),b.forEach(a=>{(a=this.findFilter(a))&&f.push(a)}),this.table.rowManager.rows.forEach(b=>{var c=!0;f.forEach(a=>{this.filterRecurse(a,b.getData())||(c=!1)}),c&&e.push("data"===a?b.getData("data"):b.getComponent())}),e}filter(a,b){var c=[],d=[];return this.subscribedExternal("dataFiltering")&&this.dispatchExternal("dataFiltering",this.getFilters(!0)),"remote"!==this.table.options.filterMode&&(this.filterList.length||Object.keys(this.headerFilters).length)?a.forEach(a=>{this.filterRow(a)&&c.push(a)}):c=a.slice(0),this.subscribedExternal("dataFiltered")&&(c.forEach(a=>{d.push(a.getComponent())}),this.dispatchExternal("dataFiltered",this.getFilters(!0),d)),c}filterRow(a,b){var c=!0,d=a.getData();for(var e in this.filterList.forEach(a=>{this.filterRecurse(a,d)||(c=!1)}),this.headerFilters)this.headerFilters[e].func(d)||(c=!1);return c}filterRecurse(a,b){var c=!1;return Array.isArray(a)?a.forEach(a=>{this.filterRecurse(a,b)&&(c=!0)}):c=a.func(b),c}}var Y={plaintext:function(a,b,c){return this.emptyToSpace(this.sanitizeHTML(a.getValue()))},html:function(a,b,c){return a.getValue()},textarea:function(a,b,c){return a.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(a.getValue()))},money:function(a,b,c){var d,e,f,g,h,i=parseFloat(a.getValue()),j="",k=b.decimal||".",l=b.thousand||",",m=b.negativeSign||"-",n=b.symbol||"",o=!!b.symbolAfter,p=void 0!==b.precision?b.precision:2;if(isNaN(i))return this.emptyToSpace(this.sanitizeHTML(a.getValue()));if(i<0&&(i=Math.abs(i),j=m),e=(d=String(d=!1!==p?i.toFixed(p):i).split("."))[0],f=d.length>1?k+d[1]:"",!1!==b.thousand)for(g=/(\d+)(\d{3})/;g.test(e);)e=e.replace(g,"$1"+l+"$2");return(h=e+f,!0===j)?(h="("+h+")",o?h+n:n+h):o?j+h+n:j+n+h},link:function(a,b,c){var d,e=a.getValue(),f=b.urlPrefix||"",g=b.download,h=e,i=document.createElement("a");if(b.labelField&&(d=a.getData(),h=function a(b,c){var d=c[b.shift()];return b.length&&"object"==typeof d?a(b,d):d}(b.labelField.split(this.table.options.nestedFieldSeparator),d)),b.label)switch(typeof b.label){case"string":h=b.label;break;case"function":h=b.label(a)}if(!h)return"&nbsp;";if(b.urlField&&(d=a.getData(),e=n.retrieveNestedData(this.table.options.nestedFieldSeparator,b.urlField,d)),b.url)switch(typeof b.url){case"string":e=b.url;break;case"function":e=b.url(a)}return i.setAttribute("href",f+e),b.target&&i.setAttribute("target",b.target),b.download&&(g="function"==typeof g?g(a):!0===g?"":g,i.setAttribute("download",g)),i.innerHTML=this.emptyToSpace(this.sanitizeHTML(h)),i},image:function(a,b,c){var d=document.createElement("img"),e=a.getValue();switch(b.urlPrefix&&(e=b.urlPrefix+a.getValue()),b.urlSuffix&&(e+=b.urlSuffix),d.setAttribute("src",e),typeof b.height){case"number":d.style.height=b.height+"px";break;case"string":d.style.height=b.height}switch(typeof b.width){case"number":d.style.width=b.width+"px";break;case"string":d.style.width=b.width}return d.addEventListener("load",function(){a.getRow().normalizeHeight()}),d},tickCross:function(a,b,c){var d=a.getValue(),e=a.getElement(),f=b.allowEmpty,g=b.allowTruthy,h=Object.keys(b).includes("trueValue"),i=void 0!==b.tickElement?b.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',j=void 0!==b.crossElement?b.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';return h&&d===b.trueValue||!h&&(g&&d||!0===d||"true"===d||"True"===d||1===d||"1"===d)?(e.setAttribute("aria-checked",!0),i||""):f&&("null"===d||""===d||null==d)?(e.setAttribute("aria-checked","mixed"),""):(e.setAttribute("aria-checked",!1),j||"")},datetime:function(a,b,c){var d,e=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),f=b.inputFormat||"yyyy-MM-dd HH:mm:ss",g=b.outputFormat||"dd/MM/yyyy HH:mm:ss",h=void 0!==b.invalidPlaceholder?b.invalidPlaceholder:"",i=a.getValue();if(void 0!==e)return(d=e.isDateTime(i)?i:"iso"===f?e.fromISO(String(i)):e.fromFormat(String(i),f)).isValid?(b.timezone&&(d=d.setZone(b.timezone)),d.toFormat(g)):!0!==h&&i?"function"==typeof h?h(i):h:i;console.error("Format Error - 'datetime' formatter is dependant on luxon.js")},datetimediff:function(a,b,c){var d,e=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),f=b.inputFormat||"yyyy-MM-dd HH:mm:ss",g=void 0!==b.invalidPlaceholder?b.invalidPlaceholder:"",h=void 0!==b.suffix&&b.suffix,i=void 0!==b.unit?b.unit:"days",j=void 0!==b.humanize&&b.humanize,k=void 0!==b.date?b.date:e.now(),l=a.getValue();if(void 0!==e){if((d=e.isDateTime(l)?l:"iso"===f?e.fromISO(String(l)):e.fromFormat(String(l),f)).isValid)if(j)return d.diff(k,i).toHuman()+(h?" "+h:"");else return parseInt(d.diff(k,i)[i])+(h?" "+h:"");return!0===g?l:"function"==typeof g?g(l):g}console.error("Format Error - 'datetimediff' formatter is dependant on luxon.js")},lookup:function(a,b,c){var d=a.getValue();return void 0===b[d]?(console.warn("Missing display value for "+d),d):b[d]},star:function(a,b,c){var d=a.getValue(),e=a.getElement(),f=b&&b.stars?b.stars:5,g=document.createElement("span"),h=document.createElementNS("http://www.w3.org/2000/svg","svg");g.style.verticalAlign="middle",h.setAttribute("width","14"),h.setAttribute("height","14"),h.setAttribute("viewBox","0 0 512 512"),h.setAttribute("xml:space","preserve"),h.style.padding="0 1px",d=Math.max(0,Math.min(d=d&&!isNaN(d)?parseInt(d):0,f));for(var i=1;i<=f;i++){var j=h.cloneNode(!0);j.innerHTML=i<=d?'<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>':'<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',g.appendChild(j)}return e.style.whiteSpace="nowrap",e.style.overflow="hidden",e.style.textOverflow="ellipsis",e.setAttribute("aria-label",d),g},traffic:function(a,b,c){var d,e=this.sanitizeHTML(a.getValue())||0,f=document.createElement("span"),g=b&&b.max?b.max:100,h=b&&b.min?b.min:0,i=b&&void 0!==b.color?b.color:["red","orange","green"],j="#666666";if(!isNaN(e)&&void 0!==a.getValue()){switch(f.classList.add("tabulator-traffic-light"),d=Math.round(((d=parseFloat(d=parseFloat(e)<=g?parseFloat(e):g)>=h?parseFloat(d):h)-h)/((g-h)/100)),typeof i){case"string":j=i;break;case"function":j=i(e);break;case"object":if(Array.isArray(i)){var k=Math.floor(d/(100/i.length));k=Math.max(k=Math.min(k,i.length-1),0),j=i[k]}}return f.style.backgroundColor=j,f}},progress:function(a,b={},c){var d,e,f,g,h,i=this.sanitizeHTML(a.getValue())||0,j=a.getElement(),k=b.max?b.max:100,l=b.min?b.min:0,m=b.legendAlign?b.legendAlign:"center";switch(e=parseFloat(e=parseFloat(i)<=k?parseFloat(i):k)>=l?parseFloat(e):l,d=(k-l)/100,e=Math.round((e-l)/d),typeof b.color){case"string":f=b.color;break;case"function":f=b.color(i);break;case"object":if(Array.isArray(b.color)){let a=Math.floor(e/(100/b.color.length));a=Math.max(a=Math.min(a,b.color.length-1),0),f=b.color[a];break}default:f="#2DC214"}switch(typeof b.legend){case"string":g=b.legend;break;case"function":g=b.legend(i);break;case"boolean":g=i;break;default:g=!1}switch(typeof b.legendColor){case"string":h=b.legendColor;break;case"function":h=b.legendColor(i);break;case"object":if(Array.isArray(b.legendColor)){let a=Math.floor(e/(100/b.legendColor.length));a=Math.max(a=Math.min(a,b.legendColor.length-1),0),h=b.legendColor[a]}break;default:h="#000"}j.style.minWidth="30px",j.style.position="relative",j.setAttribute("aria-label",e);var n=document.createElement("div");n.style.display="inline-block",n.style.width=e+"%",n.style.backgroundColor=f,n.style.height="100%",n.setAttribute("data-max",k),n.setAttribute("data-min",l);var o=document.createElement("div");if(o.style.position="relative",o.style.width="100%",o.style.height="100%",g){var p=document.createElement("div");p.style.position="absolute",p.style.top=0,p.style.left=0,p.style.textAlign=m,p.style.width="100%",p.style.color=h,p.innerHTML=g}return c(function(){if(!(a instanceof C)){var b=document.createElement("div");b.style.position="absolute",b.style.top="4px",b.style.bottom="4px",b.style.left="4px",b.style.right="4px",j.appendChild(b),j=b}j.appendChild(o),o.appendChild(n),g&&o.appendChild(p)}),""},color:function(a,b,c){return a.getElement().style.backgroundColor=this.sanitizeHTML(a.getValue()),""},buttonTick:function(a,b,c){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'},buttonCross:function(a,b,c){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'},toggle:function(a,b,c){var d,e,f=a.getValue(),g=b.size||15,h=g+"px",i=!b.hasOwnProperty("onValue")||b.onValue,j=!!b.hasOwnProperty("offValue")&&b.offValue,k=b.onTruthy?f:f===i;return(d=document.createElement("div")).classList.add("tabulator-toggle"),k?(d.classList.add("tabulator-toggle-on"),d.style.flexDirection="row-reverse",b.onColor&&(d.style.background=b.onColor)):b.offColor&&(d.style.background=b.offColor),d.style.width=2.5*g+"px",d.style.borderRadius=h,b.clickable&&d.addEventListener("click",b=>{a.setValue(k?j:i)}),(e=document.createElement("div")).classList.add("tabulator-toggle-switch"),e.style.height=h,e.style.width=h,e.style.borderRadius=h,d.appendChild(e),d},rownum:function(a,b,c){var d=document.createElement("span"),e=a.getRow(),f=a.getTable();return e.watchPosition(a=>{b.relativeToPage&&(a+=f.modules.page.getPageSize()*(f.modules.page.getPage()-1)),d.innerText=a}),d},handle:function(a,b,c){return a.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"},adaptable:function(a,b,c){var d,e;return d=b.formatterLookup?b.formatterLookup(a):function(a){var b=a.getValue(),c="plaintext";switch(typeof b){case"boolean":c="tickCross";break;case"string":b.includes("\n")&&(c="textarea")}return c}(a),b.paramsLookup&&(e="function"==typeof b.paramsLookup?b.paramsLookup(d,a):b.paramsLookup[d]),this.table.modules.format.lookupFormatter(d).call(this,a,e||{},c)},array:function(a,b,c){var d,e=b.delimiter||",",f=a.getValue(),g=this.table;return(b.valueMap&&(d="string"==typeof b.valueMap?function(a){return a.map(a=>n.retrieveNestedData(g.options.nestedFieldSeparator,b.valueMap,a))}:b.valueMap),Array.isArray(f))?(d&&(f=d(f)),f.join(e)):f},json:function(a,b,c){var d=b.indent||" ",e=void 0===b.multiline||b.multiline,f=b.replacer||null,g=a.getValue();return e&&(a.getElement().style.whiteSpace="pre-wrap"),JSON.stringify(g,f,d)}};class Z extends p{static moduleName="format";static formatters=Y;constructor(a){super(a),this.registerColumnOption("formatter"),this.registerColumnOption("formatterParams"),this.registerColumnOption("formatterPrint"),this.registerColumnOption("formatterPrintParams"),this.registerColumnOption("formatterClipboard"),this.registerColumnOption("formatterClipboardParams"),this.registerColumnOption("formatterHtmlOutput"),this.registerColumnOption("formatterHtmlOutputParams"),this.registerColumnOption("titleFormatter"),this.registerColumnOption("titleFormatterParams")}initialize(){this.subscribe("cell-format",this.formatValue.bind(this)),this.subscribe("cell-rendered",this.cellRendered.bind(this)),this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("column-format",this.formatHeader.bind(this))}initializeColumn(a){a.modules.format=this.lookupTypeFormatter(a,""),void 0!==a.definition.formatterPrint&&(a.modules.format.print=this.lookupTypeFormatter(a,"Print")),void 0!==a.definition.formatterClipboard&&(a.modules.format.clipboard=this.lookupTypeFormatter(a,"Clipboard")),void 0!==a.definition.formatterHtmlOutput&&(a.modules.format.htmlOutput=this.lookupTypeFormatter(a,"HtmlOutput"))}lookupTypeFormatter(a,b){var c={params:a.definition["formatter"+b+"Params"]||{}},d=a.definition["formatter"+b];return c.formatter=this.lookupFormatter(d),c}lookupFormatter(a){var b;switch(typeof a){case"string":Z.formatters[a]?b=Z.formatters[a]:(console.warn("Formatter Error - No such formatter found: ",a),b=Z.formatters.plaintext);break;case"function":b=a;break;default:b=Z.formatters.plaintext}return b}cellRendered(a){a.modules.format&&a.modules.format.renderedCallback&&!a.modules.format.rendered&&(a.modules.format.renderedCallback(),a.modules.format.rendered=!0)}formatHeader(a,b,c){var d,e;return a.definition.titleFormatter?(d=this.lookupFormatter(a.definition.titleFormatter),e="function"==typeof(e=a.definition.titleFormatterParams||{})?e():e,d.call(this,{getValue:function(){return b},getElement:function(){return c},getType:function(){return"header"},getColumn:function(){return a.getComponent()},getTable:()=>this.table},e,b=>{a.titleFormatterRendered=b})):b}formatValue(a){var b=a.getComponent(),c="function"==typeof a.column.modules.format.params?a.column.modules.format.params(b):a.column.modules.format.params;return a.column.modules.format.formatter.call(this,b,c,function(b){a.modules.format||(a.modules.format={}),a.modules.format.renderedCallback=b,a.modules.format.rendered=!1})}formatExportValue(a,b){var c,d=a.column.modules.format[b];return d?(c="function"==typeof d.params?d.params(a.getComponent()):d.params,d.formatter.call(this,a.getComponent(),c,function(b){a.modules.format||(a.modules.format={}),a.modules.format.renderedCallback=b,a.modules.format.rendered=!1})):this.formatValue(a)}sanitizeHTML(a){if(!a)return a;var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};return String(a).replace(/[&<>"'`=/]/g,function(a){return b[a]})}emptyToSpace(a){return null==a||""===a?"&nbsp;":a}}class ${constructor(a){return this._group=a,this.type="GroupComponent",new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._group.groupManager.table.componentFunctionBinder.handle("group",a._group,b)}})}getKey(){return this._group.key}getField(){return this._group.field}getElement(){return this._group.element}getRows(){return this._group.getRows(!0)}getSubGroups(){return this._group.getSubGroups(!0)}getParentGroup(){return!!this._group.parent&&this._group.parent.getComponent()}isVisible(){return this._group.visible}show(){this._group.show()}hide(){this._group.hide()}toggle(){this._group.toggleVisibility()}scrollTo(a,b){return this._group.groupManager.table.rowManager.scrollToRow(this._group,a,b)}_getSelf(){return this._group}getTable(){return this._group.groupManager.table}}class _{constructor(a,b,c,d,e,f,g){this.groupManager=a,this.parent=b,this.key=d,this.level=c,this.field=e,this.hasSubGroups=c<a.groupIDLookups.length-1,this.addRow=this.hasSubGroups?this._addRowToGroup:this._addRow,this.type="group",this.old=g,this.rows=[],this.groups=[],this.groupList=[],this.generator=f,this.element=!1,this.elementContents=!1,this.height=0,this.outerHeight=0,this.initialized=!1,this.calcs={},this.initialized=!1,this.modules={},this.arrowElement=!1,this.visible=g?g.visible:void 0!==a.startOpen[c]?a.startOpen[c]:a.startOpen[0],this.component=null,this.createElements(),this.addBindings(),this.createValueGroups()}wipe(a){a||(this.groupList.length?this.groupList.forEach(function(a){a.wipe()}):this.rows.forEach(a=>{a.modules&&delete a.modules.group})),this.element=!1,this.arrowElement=!1,this.elementContents=!1}createElements(){var a=document.createElement("div");a.classList.add("tabulator-arrow"),this.element=document.createElement("div"),this.element.classList.add("tabulator-row"),this.element.classList.add("tabulator-group"),this.element.classList.add("tabulator-group-level-"+this.level),this.element.setAttribute("role","rowgroup"),this.arrowElement=document.createElement("div"),this.arrowElement.classList.add("tabulator-group-toggle"),this.arrowElement.appendChild(a),!1!==this.groupManager.table.options.movableRows&&this.groupManager.table.modExists("moveRow")&&this.groupManager.table.modules.moveRow.initializeGroupHeader(this)}createValueGroups(){var a=this.level+1;this.groupManager.allowedValues&&this.groupManager.allowedValues[a]&&this.groupManager.allowedValues[a].forEach(b=>{this._createGroup(b,a)})}addBindings(){this.groupManager.table.options.groupToggleElement&&("arrow"==this.groupManager.table.options.groupToggleElement?this.arrowElement:this.element).addEventListener("click",a=>{"arrow"===this.groupManager.table.options.groupToggleElement&&(a.stopPropagation(),a.stopImmediatePropagation()),setTimeout(()=>{this.toggleVisibility()})})}_createGroup(a,b){var c=b+"_"+a,d=new _(this.groupManager,this,b,a,this.groupManager.groupIDLookups[b].field,this.groupManager.headerGenerator[b]||this.groupManager.headerGenerator[0],!!this.old&&this.old.groups[c]);this.groups[c]=d,this.groupList.push(d)}_addRowToGroup(a){var b=this.level+1;if(this.hasSubGroups){var c=this.groupManager.groupIDLookups[b].func(a.getData()),d=b+"_"+c;this.groupManager.allowedValues&&this.groupManager.allowedValues[b]?this.groups[d]&&this.groups[d].addRow(a):(this.groups[d]||this._createGroup(c,b),this.groups[d].addRow(a))}}_addRow(a){this.rows.push(a),a.modules.group=this}insertRow(a,b,c){var d=this.conformRowData({});a.updateData(d);var e=this.rows.indexOf(b);e>-1?c?this.rows.splice(e+1,0,a):this.rows.splice(e,0,a):c?this.rows.push(a):this.rows.unshift(a),a.modules.group=this,this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this),this.groupManager.updateGroupRows(!0)}scrollHeader(a){this.arrowElement&&(this.arrowElement.style.marginLeft=a,this.groupList.forEach(function(b){b.scrollHeader(a)}))}getRowIndex(a){}conformRowData(a){return this.field?a[this.field]=this.key:console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"),this.parent&&(a=this.parent.conformRowData(a)),a}removeRow(a){var b=this.rows.indexOf(a),c=a.getElement();b>-1&&this.rows.splice(b,1),this.groupManager.table.options.groupValues||this.rows.length?(c.parentNode&&c.parentNode.removeChild(c),!this.groupManager.blockRedraw&&(this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this))):(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this),this.groupManager.updateGroupRows(!0))}removeGroup(a){var b,c=a.level+"_"+a.key;this.groups[c]&&(delete this.groups[c],(b=this.groupList.indexOf(a))>-1&&this.groupList.splice(b,1),this.groupList.length||(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this)))}getHeadersAndRows(){var a=[];return a.push(this),this._visSet(),this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.visible?this.groupList.length?this.groupList.forEach(function(b){a=a.concat(b.getHeadersAndRows())}):("table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),a.push(this.calcs.top)),a=a.concat(this.rows),"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),a.push(this.calcs.bottom))):!this.groupList.length&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&(this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),a.push(this.calcs.top)),this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),a.push(this.calcs.bottom))),a}getData(a,b){var c=[];return this._visSet(),(!a||a&&this.visible)&&this.rows.forEach(a=>{c.push(a.getData(b||"data"))}),c}getRowCount(){var a=0;return this.groupList.length?this.groupList.forEach(b=>{a+=b.getRowCount()}):a=this.rows.length,a}toggleVisibility(){this.visible?this.hide():this.show()}hide(){this.visible=!1,"basic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination||(this.element.classList.remove("tabulator-group-visible"),this.groupList.length?this.groupList.forEach(a=>{a.getHeadersAndRows().forEach(a=>{a.detachElement()})}):this.rows.forEach(a=>{var b=a.getElement();b.parentNode.removeChild(b)})),this.groupManager.updateGroupRows(!0),this.groupManager.table.externalEvents.dispatch("groupVisibilityChanged",this.getComponent(),!1)}show(){if(this.visible=!0,"basic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination)this.groupManager.updateGroupRows(!0);else{this.element.classList.add("tabulator-group-visible");var a=this.generateElement();this.groupList.length?this.groupList.forEach(b=>{b.getHeadersAndRows().forEach(b=>{var c=b.getElement();a.parentNode.insertBefore(c,a.nextSibling),b.initialize(),a=c})}):this.rows.forEach(b=>{var c=b.getElement();a.parentNode.insertBefore(c,a.nextSibling),b.initialize(),a=c}),this.groupManager.updateGroupRows(!0)}this.groupManager.table.externalEvents.dispatch("groupVisibilityChanged",this.getComponent(),!0)}_visSet(){var a=[];"function"==typeof this.visible&&(this.rows.forEach(function(b){a.push(b.getData())}),this.visible=this.visible(this.key,this.getRowCount(),a,this.getComponent()))}getRowGroup(a){var b=!1;return this.groupList.length?this.groupList.forEach(function(c){var d=c.getRowGroup(a);d&&(b=d)}):this.rows.find(function(b){return b===a})&&(b=this),b}getSubGroups(a){var b=[];return this.groupList.forEach(function(c){b.push(a?c.getComponent():c)}),b}getRows(a,b){var c=[];return b&&this.groupList.length?this.groupList.forEach(d=>{c=c.concat(d.getRows(a,b))}):this.rows.forEach(function(b){c.push(a?b.getComponent():b)}),c}generateGroupHeaderContents(){var a=[];for(this.getRows(!1,!0).forEach(function(b){a.push(b.getData())}),this.elementContents=this.generator(this.key,this.getRowCount(),a,this.getComponent());this.element.firstChild;)this.element.removeChild(this.element.firstChild);"string"==typeof this.elementContents?this.element.innerHTML=this.elementContents:this.element.appendChild(this.elementContents),this.element.insertBefore(this.arrowElement,this.element.firstChild)}getPath(a=[]){return a.unshift(this.key),this.parent&&this.parent.getPath(a),a}getElement(){return this.elementContents?this.element:this.generateElement()}generateElement(){this.addBindings=!1,this._visSet(),this.visible?this.element.classList.add("tabulator-group-visible"):this.element.classList.remove("tabulator-group-visible");for(var a=0;a<this.element.childNodes.length;++a)this.element.childNodes[a].parentNode.removeChild(this.element.childNodes[a]);return this.generateGroupHeaderContents(),this.element}detachElement(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}normalizeHeight(){this.setHeight(this.element.clientHeight)}initialize(a){(!this.initialized||a)&&(this.normalizeHeight(),this.initialized=!0)}reinitialize(){this.initialized=!1,this.height=0,n.elVisible(this.element)&&this.initialize(!0)}setHeight(a){this.height!=a&&(this.height=a,this.outerHeight=this.element.offsetHeight)}getHeight(){return this.outerHeight}getGroup(){return this}reinitializeHeight(){}calcHeight(){}setCellHeight(){}clearCellHeight(){}deinitializeHeight(){}rendered(){}getComponent(){return this.component||(this.component=new $(this)),this.component}}var aa={cellEdit:function(a){a.component.setValueProcessData(a.data.oldValue),a.component.cellRendered()},rowAdd:function(a){a.component.deleteActual(),this.table.rowManager.checkPlaceholder()},rowDelete:function(a){var b=this.table.rowManager.addRowActual(a.data.data,a.data.pos,a.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(a.component,b),this.table.rowManager.checkPlaceholder()},rowMove:function(a){var b=a.data.posFrom-a.data.posTo>0;this.table.rowManager.moveRowActual(a.component,this.table.rowManager.getRowFromPosition(a.data.posFrom),b),this.table.rowManager.regenerateRowPositions(),this.table.rowManager.reRenderInPosition()}},ab={cellEdit:function(a){a.component.setValueProcessData(a.data.newValue),a.component.cellRendered()},rowAdd:function(a){var b=this.table.rowManager.addRowActual(a.data.data,a.data.pos,a.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(a.component,b),this.table.rowManager.checkPlaceholder()},rowDelete:function(a){a.component.deleteActual(),this.table.rowManager.checkPlaceholder()},rowMove:function(a){this.table.rowManager.moveRowActual(a.component,this.table.rowManager.getRowFromPosition(a.data.posTo),a.data.after),this.table.rowManager.regenerateRowPositions(),this.table.rowManager.reRenderInPosition()}},ac={keybindings:{bindings:{undo:["ctrl + 90","meta + 90"],redo:["ctrl + 89","meta + 89"]},actions:{undo:function(a){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(a.preventDefault(),this.table.modules.history.undo()))},redo:function(a){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(a.preventDefault(),this.table.modules.history.redo()))}}}};class ad extends p{static moduleName="history";static moduleExtensions=ac;static undoers=aa;static redoers=ab;constructor(a){super(a),this.history=[],this.index=-1,this.registerTableOption("history",!1)}initialize(){this.table.options.history&&(this.subscribe("cell-value-updated",this.cellUpdated.bind(this)),this.subscribe("cell-delete",this.clearComponentHistory.bind(this)),this.subscribe("row-delete",this.rowDeleted.bind(this)),this.subscribe("rows-wipe",this.clear.bind(this)),this.subscribe("row-added",this.rowAdded.bind(this)),this.subscribe("row-move",this.rowMoved.bind(this))),this.registerTableFunction("undo",this.undo.bind(this)),this.registerTableFunction("redo",this.redo.bind(this)),this.registerTableFunction("getHistoryUndoSize",this.getHistoryUndoSize.bind(this)),this.registerTableFunction("getHistoryRedoSize",this.getHistoryRedoSize.bind(this)),this.registerTableFunction("clearHistory",this.clear.bind(this))}rowMoved(a,b,c){this.action("rowMove",a,{posFrom:a.getPosition(),posTo:b.getPosition(),to:b,after:c})}rowAdded(a,b,c,d){this.action("rowAdd",a,{data:b,pos:c,index:d})}rowDeleted(a){var b,c;this.table.options.groupBy?(b=(c=a.getComponent().getGroup()._getSelf().rows).indexOf(a))&&(b=c[b-1]):(b=a.table.rowManager.getRowIndex(a))&&(b=a.table.rowManager.rows[b-1]),this.action("rowDelete",a,{data:a.getData(),pos:!b,index:b})}cellUpdated(a){this.action("cellEdit",a,{oldValue:a.oldValue,newValue:a.value})}clear(){this.history=[],this.index=-1}action(a,b,c){this.history=this.history.slice(0,this.index+1),this.history.push({type:a,component:b,data:c}),this.index++}getHistoryUndoSize(){return this.index+1}getHistoryRedoSize(){return this.history.length-(this.index+1)}clearComponentHistory(a){var b=this.history.findIndex(function(b){return b.component===a});b>-1&&(this.history.splice(b,1),b<=this.index&&this.index--,this.clearComponentHistory(a))}undo(){if(!(this.index>-1))return console.warn(this.options("history")?"History Undo Error - No more history to undo":"History module not enabled"),!1;{let a=this.history[this.index];return ad.undoers[a.type].call(this,a),this.index--,this.dispatchExternal("historyUndo",a.type,a.component.getComponent(),a.data),!0}}redo(){if(!(this.history.length-1>this.index))return console.warn(this.options("history")?"History Redo Error - No more history to redo":"History module not enabled"),!1;{this.index++;let a=this.history[this.index];return ad.redoers[a.type].call(this,a),this.dispatchExternal("historyRedo",a.type,a.component.getComponent(),a.data),!0}}_rebindRow(a,b){this.history.forEach(function(c){if(c.component instanceof I)c.component===a&&(c.component=b);else if(c.component instanceof D&&c.component.row===a){var d=c.component.column.getField();d&&(c.component=b.getCell(d))}})}}var ae={csv:function(a){var b=[],c=0,d=0,e=!1;for(let f=0;f<a.length;f++){let g=a[f],h=a[f+1];if(b[c]||(b[c]=[]),b[c][d]||(b[c][d]=""),'"'==g&&e&&'"'==h){b[c][d]+=g,f++;continue}if('"'==g){e=!e;continue}if(","==g&&!e){d++;continue}if("\r"==g&&"\n"==h&&!e){d=0,c++,f++;continue}if(("\r"==g||"\n"==g)&&!e){d=0,c++;continue}b[c][d]+=g}return b},json:function(a){try{return JSON.parse(a)}catch(a){return console.warn("JSON Import Error - File contents is invalid JSON",a),Promise.reject()}},array:function(a){return a},xlsx:function(a){var b=this.dependencyRegistry.lookup("XLSX"),c=b.read(a),d=c.Sheets[c.SheetNames[0]];return b.utils.sheet_to_json(d,{header:1})}};class af extends p{static moduleName="import";static importers=ae;constructor(a){super(a),this.registerTableOption("importFormat"),this.registerTableOption("importReader","text"),this.registerTableOption("importHeaderTransform"),this.registerTableOption("importValueTransform"),this.registerTableOption("importDataValidator"),this.registerTableOption("importFileValidator")}initialize(){this.registerTableFunction("import",this.importFromFile.bind(this)),this.table.options.importFormat&&(this.subscribe("data-loading",this.loadDataCheck.bind(this),10),this.subscribe("data-load",this.loadData.bind(this),10))}loadDataCheck(a){return this.table.options.importFormat&&("string"==typeof a||Array.isArray(a)&&a.length&&Array.isArray(a))}loadData(a,b,c,d,e){return this.importData(this.lookupImporter(),a).then(this.structureData.bind(this)).catch(a=>(console.error("Import Error:",a||"Unable to import data"),Promise.reject(a)))}lookupImporter(a){var b;return a||(a=this.table.options.importFormat),(b="string"==typeof a?af.importers[a]:a)||console.error("Import Error - Importer not found:",a),b}importFromFile(a,b,c){var d=this.lookupImporter(a);if(d)return this.pickFile(b,c).then(this.importData.bind(this,d)).then(this.structureData.bind(this)).then(this.mutateData.bind(this)).then(this.validateData.bind(this)).then(this.setData.bind(this)).catch(a=>(this.dispatch("import-error",a),this.dispatchExternal("importError",a),console.error("Import Error:",a||"Unable to import file"),this.table.dataLoader.alertError(),setTimeout(()=>{this.table.dataLoader.clearAlert()},3e3),Promise.reject(a)))}pickFile(a,b){return new Promise((c,d)=>{var e=document.createElement("input");e.type="file",e.accept=a,e.addEventListener("change",a=>{var f=e.files[0],g=new FileReader,h=this.validateFile(f);if(!0===h){switch(this.dispatch("import-importing",e.files),this.dispatchExternal("importImporting",e.files),b||this.table.options.importReader){case"buffer":g.readAsArrayBuffer(f);break;case"binary":g.readAsBinaryString(f);break;case"url":g.readAsDataURL(f);break;default:g.readAsText(f)}g.onload=a=>{c(g.result)},g.onerror=a=>{console.warn("File Load Error - Unable to read file"),d(a)}}else d(h)}),this.dispatch("import-choose"),this.dispatchExternal("importChoose"),e.click()})}importData(a,b){var c;return this.table.dataLoader.alertLoader(),new Promise((d,e)=>{setTimeout(()=>{(c=a.call(this.table,b))instanceof Promise||c?d(c):e()},10)})}structureData(a){return Array.isArray(a)&&a.length&&Array.isArray(a[0])?this.table.options.autoColumns?this.structureArrayToObject(a):this.structureArrayToColumns(a):a}mutateData(a){var b=[];return Array.isArray(a)?a.forEach(a=>{b.push(this.table.modules.mutator.transformRow(a,"import"))}):b=a,b}transformHeader(a){var b=[];return this.table.options.importHeaderTransform?(a.forEach(c=>{b.push(this.table.options.importHeaderTransform.call(this.table,c,a))}),b):a}transformData(a){var b=[];return this.table.options.importValueTransform?(a.forEach(c=>{b.push(this.table.options.importValueTransform.call(this.table,c,a))}),b):a}structureArrayToObject(a){var b=this.transformHeader(a.shift());return a.map(a=>{var c={};return a=this.transformData(a),b.forEach((b,d)=>{c[b]=a[d]}),c})}structureArrayToColumns(a){var b=[],c=this.transformHeader(a[0]),d=this.table.getColumns();return d[0]&&c[0]&&d[0].getDefinition().title===c[0]&&a.shift(),a.forEach(a=>{var c={};(a=this.transformData(a)).forEach((a,b)=>{var e=d[b];e&&(c[e.getField()]=a)}),b.push(c)}),b}validateFile(a){return!this.table.options.importFileValidator||this.table.options.importFileValidator.call(this.table,a)}validateData(a){var b;return this.table.options.importDataValidator&&!0!==(b=this.table.options.importDataValidator.call(this.table,a))?Promise.reject(b):a}setData(a){return this.dispatch("import-imported",a),this.dispatchExternal("importImported",a),this.table.dataLoader.clearAlert(),this.table.setData(a)}}var ag={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,navLeft:37,navRight:39,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35},ah={keyBlock:function(a){a.stopPropagation(),a.preventDefault()},scrollPageUp:function(a){var b=this.table.rowManager,c=b.scrollTop-b.element.clientHeight;a.preventDefault(),b.displayRowsCount&&(c>=0?b.element.scrollTop=c:b.scrollToRow(b.getDisplayRows()[0])),this.table.element.focus()},scrollPageDown:function(a){var b=this.table.rowManager,c=b.scrollTop+b.element.clientHeight,d=b.element.scrollHeight;a.preventDefault(),b.displayRowsCount&&(c<=d?b.element.scrollTop=c:b.scrollToRow(b.getDisplayRows()[b.displayRowsCount-1])),this.table.element.focus()},scrollToStart:function(a){var b=this.table.rowManager;a.preventDefault(),b.displayRowsCount&&b.scrollToRow(b.getDisplayRows()[0]),this.table.element.focus()},scrollToEnd:function(a){var b=this.table.rowManager;a.preventDefault(),b.displayRowsCount&&b.scrollToRow(b.getDisplayRows()[b.displayRowsCount-1]),this.table.element.focus()},navPrev:function(a){this.dispatch("keybinding-nav-prev",a)},navNext:function(a){this.dispatch("keybinding-nav-next",a)},navLeft:function(a){this.dispatch("keybinding-nav-left",a)},navRight:function(a){this.dispatch("keybinding-nav-right",a)},navUp:function(a){this.dispatch("keybinding-nav-up",a)},navDown:function(a){this.dispatch("keybinding-nav-down",a)}};class ai extends p{static moduleName="keybindings";static bindings=ag;static actions=ah;constructor(a){super(a),this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1,this.registerTableOption("keybindings",{}),this.registerTableOption("tabEndNewRow",!1)}initialize(){var a=this.table.options.keybindings,b={};this.watchKeys={},this.pressedKeys=[],!1!==a&&(Object.assign(b,ai.bindings),Object.assign(b,a),this.mapBindings(b),this.bindEvents()),this.subscribe("table-destroy",this.clearBindings.bind(this))}mapBindings(a){for(let b in a)ai.actions[b]?a[b]&&("object"!=typeof a[b]&&(a[b]=[a[b]]),a[b].forEach(a=>{(Array.isArray(a)?a:[a]).forEach(a=>{this.mapBinding(b,a)})})):console.warn("Key Binding Error - no such action:",b)}getKeyCode(a){return 1===a.key.length?a.key.toUpperCase().charCodeAt(0):({Enter:13,Escape:27,Tab:9,Backspace:8,Delete:46,ArrowUp:38,ArrowDown:40,ArrowLeft:37,ArrowRight:39,Home:36,End:35,PageUp:33,PageDown:34,Insert:45})[a.key]||a.keyCode||0}mapBinding(a,b){var c={action:ai.actions[a],keys:[],ctrl:!1,shift:!1,meta:!1};b.toString().toLowerCase().split(" ").join("").split("+").forEach(a=>{switch(a){case"ctrl":c.ctrl=!0;break;case"shift":c.shift=!0;break;case"meta":c.meta=!0;break;default:a=isNaN(a)?a.toUpperCase().charCodeAt(0):parseInt(a),c.keys.push(a),this.watchKeys[a]||(this.watchKeys[a]=[]),this.watchKeys[a].push(c)}})}bindEvents(){var a=this;this.keyupBinding=function(b){var c=a.getKeyCode(b),d=a.watchKeys[c];d&&(a.pressedKeys.push(c),d.forEach(function(c){a.checkBinding(b,c)}))},this.keydownBinding=function(b){var c=a.getKeyCode(b);if(a.watchKeys[c]){var d=a.pressedKeys.indexOf(c);d>-1&&a.pressedKeys.splice(d,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)}clearBindings(){this.keyupBinding&&this.table.element.removeEventListener("keydown",this.keyupBinding),this.keydownBinding&&this.table.element.removeEventListener("keyup",this.keydownBinding)}checkBinding(a,b){var c=!0;return a.ctrlKey==b.ctrl&&a.shiftKey==b.shift&&a.metaKey==b.meta&&(b.keys.forEach(a=>{-1==this.pressedKeys.indexOf(a)&&(c=!1)}),c&&b.action.call(this,a),!0)}}var aj={delete:function(a,b,c){a.delete()}},ak={insert:function(a,b,c){return this.table.addRow(a.getData(),void 0,b),!0},add:function(a,b,c){return this.table.addRow(a.getData()),!0},update:function(a,b,c){return!!b&&(b.update(a.getData()),!0)},replace:function(a,b,c){return!!b&&(this.table.addRow(a.getData(),void 0,b),b.delete(),!0)}};class al extends p{static moduleName="moveRow";static senders=aj;static receivers=ak;constructor(a){super(a),this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=150,this.moving=!1,this.toRow=!1,this.toRowAfter=!1,this.hasHandle=!1,this.startY=0,this.startX=0,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.tableRowDropEvent=!1,this.touchMove=!1,this.connection=!1,this.connectionSelectorsTables=!1,this.connectionSelectorsElements=!1,this.connectionElements=[],this.connections=[],this.connectedTable=!1,this.connectedRow=!1,this.registerTableOption("movableRows",!1),this.registerTableOption("movableRowsConnectedTables",!1),this.registerTableOption("movableRowsConnectedElements",!1),this.registerTableOption("movableRowsSender",!1),this.registerTableOption("movableRowsReceiver","insert"),this.registerColumnOption("rowHandle")}createPlaceholderElement(){var a=document.createElement("div");return a.classList.add("tabulator-row"),a.classList.add("tabulator-row-placeholder"),a}initialize(){this.table.options.movableRows&&(this.connectionSelectorsTables=this.table.options.movableRowsConnectedTables,this.connectionSelectorsElements=this.table.options.movableRowsConnectedElements,this.connection=this.connectionSelectorsTables||this.connectionSelectorsElements,this.subscribe("cell-init",this.initializeCell.bind(this)),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("row-init",this.initializeRow.bind(this)))}initializeGroupHeader(a){var b=this,c={};c.mouseup=(function(c){b.tableRowDrop(c,a)}).bind(b),c.mousemove=(function(c){var d;c.pageY-n.elOffset(a.element).top+b.table.rowManager.element.scrollTop>a.getHeight()/2?b.toRow===a&&b.toRowAfter||((d=a.getElement()).parentNode.insertBefore(b.placeholderElement,d.nextSibling),b.moveRow(a,!0)):(b.toRow!==a||b.toRowAfter)&&(d=a.getElement()).previousSibling&&(d.parentNode.insertBefore(b.placeholderElement,d),b.moveRow(a,!1))}).bind(b),a.modules.moveRow=c}initializeRow(a){var b,c=this,d={};d.mouseup=(function(b){c.tableRowDrop(b,a)}).bind(c),d.mousemove=(function(b){var d=a.getElement();b.pageY-n.elOffset(d).top+c.table.rowManager.element.scrollTop>a.getHeight()/2?c.toRow===a&&c.toRowAfter||(d.parentNode.insertBefore(c.placeholderElement,d.nextSibling),c.moveRow(a,!0)):(c.toRow!==a||c.toRowAfter)&&(d.parentNode.insertBefore(c.placeholderElement,d),c.moveRow(a,!1))}).bind(c),this.hasHandle||((b=a.getElement()).addEventListener("mousedown",function(b){1===b.which&&(c.checkTimeout=setTimeout(function(){c.startMove(b,a)},c.checkPeriod))}),b.addEventListener("mouseup",function(a){1===a.which&&c.checkTimeout&&clearTimeout(c.checkTimeout)}),this.bindTouchEvents(a,a.getElement())),a.modules.moveRow=d}initializeColumn(a){a.definition.rowHandle&&!1!==this.table.options.movableRows&&(this.hasHandle=!0)}initializeCell(a){if(a.column.definition.rowHandle&&!1!==this.table.options.movableRows){var b=this,c=a.getElement(!0);c.addEventListener("mousedown",function(c){1===c.which&&(b.checkTimeout=setTimeout(function(){b.startMove(c,a.row)},b.checkPeriod))}),c.addEventListener("mouseup",function(a){1===a.which&&b.checkTimeout&&clearTimeout(b.checkTimeout)}),this.bindTouchEvents(a.row,c)}}bindTouchEvents(a,b){var c,d,e,f,g,h,i=!1;b.addEventListener("touchstart",b=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,e=(c=a.nextRow())?c.getHeight()/2:0,f=(d=a.prevRow())?d.getHeight()/2:0,g=0,h=0,i=!1,this.startMove(b,a)},this.checkPeriod)},{passive:!0}),this.moving,this.toRow,this.toRowAfter,b.addEventListener("touchmove",b=>{var j,k;this.moving&&(b.preventDefault(),this.moveHover(b),i||(i=b.touches[0].pageY),(j=b.touches[0].pageY-i)>0?c&&j-g>e&&(k=c)!==a&&(i=b.touches[0].pageY,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement().nextSibling),this.moveRow(k,!0)):d&&-j-h>f&&(k=d)!==a&&(i=b.touches[0].pageY,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement()),this.moveRow(k,!1)),k&&(c=k.nextRow(),g=e,e=c?c.getHeight()/2:0,d=k.prevRow(),h=f,f=d?d.getHeight()/2:0))}),b.addEventListener("touchend",a=>{this.checkTimeout&&clearTimeout(this.checkTimeout),this.moving&&(this.endMove(a),this.touchMove=!1)})}_bindMouseMove(){this.table.rowManager.getDisplayRows().forEach(a=>{("row"===a.type||"group"===a.type)&&a.modules.moveRow&&a.modules.moveRow.mousemove&&a.getElement().addEventListener("mousemove",a.modules.moveRow.mousemove)})}_unbindMouseMove(){this.table.rowManager.getDisplayRows().forEach(a=>{("row"===a.type||"group"===a.type)&&a.modules.moveRow&&a.modules.moveRow.mousemove&&a.getElement().removeEventListener("mousemove",a.modules.moveRow.mousemove)})}startMove(a,b){var c=b.getElement();this.setStartPosition(a,b),this.moving=b,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=b.getWidth()+"px",this.placeholderElement.style.height=b.getHeight()+"px",this.connection?(this.table.element.classList.add("tabulator-movingrow-sending"),this.connectToTables(b)):(c.parentNode.insertBefore(this.placeholderElement,c),c.parentNode.removeChild(c)),this.hoverElement=c.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.connection?(document.body.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this.hoverElement.style.width=this.table.element.clientWidth+"px",this.hoverElement.style.whiteSpace="nowrap",this.hoverElement.style.overflow="hidden",this.hoverElement.style.pointerEvents="none"):(this.table.rowManager.getTableElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this._bindMouseMove()),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove),this.dispatchExternal("rowMoving",b.getComponent()),this.moveHover(a)}setStartPosition(a,b){var c,d,e=this.touchMove?a.touches[0].pageX:a.pageX,f=this.touchMove?a.touches[0].pageY:a.pageY;c=b.getElement(),this.connection?(d=c.getBoundingClientRect(),this.startX=d.left-e+window.pageXOffset,this.startY=d.top-f+window.pageYOffset):this.startY=f-c.getBoundingClientRect().top}endMove(a){(!a||1===a.which||this.touchMove)&&(this._unbindMouseMove(),this.connection||(this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement)),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toRow?this.table.rowManager.moveRow(this.moving,this.toRow,this.toRowAfter):this.dispatchExternal("rowMoveCancelled",this.moving.getComponent()),this.moving=!1,this.toRow=!1,this.toRowAfter=!1,document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove),this.connection&&(this.table.element.classList.remove("tabulator-movingrow-sending"),this.disconnectFromTables()))}moveRow(a,b){this.toRow=a,this.toRowAfter=b}moveHover(a){this.connection?this.moveHoverConnections.call(this,a):this.moveHoverTable.call(this,a)}moveHoverTable(a){var b=this.table.rowManager.getElement(),c=b.scrollTop,d=(this.touchMove?a.touches[0].pageY:a.pageY)-b.getBoundingClientRect().top+c;this.hoverElement.style.top=Math.min(d-this.startY,this.table.rowManager.element.scrollHeight-this.hoverElement.offsetHeight)+"px"}moveHoverConnections(a){this.hoverElement.style.left=this.startX+(this.touchMove?a.touches[0].pageX:a.pageX)+"px",this.hoverElement.style.top=this.startY+(this.touchMove?a.touches[0].pageY:a.pageY)+"px"}elementRowDrop(a,b,c){this.dispatchExternal("movableRowsElementDrop",a,b,!!c&&c.getComponent())}connectToTables(a){var b;this.connectionSelectorsTables&&(b=this.commsConnections(this.connectionSelectorsTables),this.dispatchExternal("movableRowsSendingStart",b),this.commsSend(this.connectionSelectorsTables,"moveRow","connect",{row:a})),this.connectionSelectorsElements&&(this.connectionElements=[],Array.isArray(this.connectionSelectorsElements)||(this.connectionSelectorsElements=[this.connectionSelectorsElements]),this.connectionSelectorsElements.forEach(a=>{"string"==typeof a?this.connectionElements=this.connectionElements.concat(Array.prototype.slice.call(document.querySelectorAll(a))):this.connectionElements.push(a)}),this.connectionElements.forEach(a=>{var b=b=>{this.elementRowDrop(b,a,this.moving)};a.addEventListener("mouseup",b),a.tabulatorElementDropEvent=b,a.classList.add("tabulator-movingrow-receiving")}))}disconnectFromTables(){var a;this.connectionSelectorsTables&&(a=this.commsConnections(this.connectionSelectorsTables),this.dispatchExternal("movableRowsSendingStop",a),this.commsSend(this.connectionSelectorsTables,"moveRow","disconnect")),this.connectionElements.forEach(a=>{a.classList.remove("tabulator-movingrow-receiving"),a.removeEventListener("mouseup",a.tabulatorElementDropEvent),delete a.tabulatorElementDropEvent})}connect(a,b){return this.connectedTable?(console.warn("Move Row Error - Table cannot accept connection, already connected to table:",this.connectedTable),!1):(this.connectedTable=a,this.connectedRow=b,this.table.element.classList.add("tabulator-movingrow-receiving"),this.table.rowManager.getDisplayRows().forEach(a=>{"row"===a.type&&a.modules.moveRow&&a.modules.moveRow.mouseup&&a.getElement().addEventListener("mouseup",a.modules.moveRow.mouseup)}),this.tableRowDropEvent=this.tableRowDrop.bind(this),this.table.element.addEventListener("mouseup",this.tableRowDropEvent),this.dispatchExternal("movableRowsReceivingStart",b,a),!0)}disconnect(a){a===this.connectedTable?(this.connectedTable=!1,this.connectedRow=!1,this.table.element.classList.remove("tabulator-movingrow-receiving"),this.table.rowManager.getDisplayRows().forEach(a=>{"row"===a.type&&a.modules.moveRow&&a.modules.moveRow.mouseup&&a.getElement().removeEventListener("mouseup",a.modules.moveRow.mouseup)}),this.table.element.removeEventListener("mouseup",this.tableRowDropEvent),this.dispatchExternal("movableRowsReceivingStop",a)):console.warn("Move Row Error - trying to disconnect from non connected table")}dropComplete(a,b,c){var d=!1;if(c){switch(typeof this.table.options.movableRowsSender){case"string":d=al.senders[this.table.options.movableRowsSender];break;case"function":d=this.table.options.movableRowsSender}d?d.call(this,this.moving?this.moving.getComponent():void 0,b?b.getComponent():void 0,a):this.table.options.movableRowsSender&&console.warn("Mover Row Error - no matching sender found:",this.table.options.movableRowsSender),this.dispatchExternal("movableRowsSent",this.moving.getComponent(),b?b.getComponent():void 0,a)}else this.dispatchExternal("movableRowsSentFailed",this.moving.getComponent(),b?b.getComponent():void 0,a);this.endMove()}tableRowDrop(a,b){var c=!1,d=!1;switch(a.stopImmediatePropagation(),typeof this.table.options.movableRowsReceiver){case"string":c=al.receivers[this.table.options.movableRowsReceiver];break;case"function":c=this.table.options.movableRowsReceiver}c?d=c.call(this,this.connectedRow.getComponent(),b?b.getComponent():void 0,this.connectedTable):console.warn("Mover Row Error - no matching receiver found:",this.table.options.movableRowsReceiver),d?this.dispatchExternal("movableRowsReceived",this.connectedRow.getComponent(),b?b.getComponent():void 0,this.connectedTable):this.dispatchExternal("movableRowsReceivedFailed",this.connectedRow.getComponent(),b?b.getComponent():void 0,this.connectedTable),this.commsSend(this.connectedTable,"moveRow","dropcomplete",{row:b,success:d})}commsReceived(a,b,c){switch(b){case"connect":return this.connect(a,c.row);case"disconnect":return this.disconnect(a);case"dropcomplete":return this.dropComplete(a,c.row,c.success)}}}var am={};class an extends p{static moduleName="mutator";static mutators=am;constructor(a){super(a),this.allowedTypes=["","data","edit","clipboard","import"],this.enabled=!0,this.registerColumnOption("mutator"),this.registerColumnOption("mutatorParams"),this.registerColumnOption("mutatorData"),this.registerColumnOption("mutatorDataParams"),this.registerColumnOption("mutatorEdit"),this.registerColumnOption("mutatorEditParams"),this.registerColumnOption("mutatorClipboard"),this.registerColumnOption("mutatorClipboardParams"),this.registerColumnOption("mutatorImport"),this.registerColumnOption("mutatorImportParams"),this.registerColumnOption("mutateLink")}initialize(){this.subscribe("cell-value-changing",this.transformCell.bind(this)),this.subscribe("cell-value-changed",this.mutateLink.bind(this)),this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("row-data-init-before",this.rowDataChanged.bind(this)),this.subscribe("row-data-changing",this.rowDataChanged.bind(this))}rowDataChanged(a,b,c){return this.transformRow(b,"data",c)}initializeColumn(a){var b=!1,c={};this.allowedTypes.forEach(d=>{var e,f="mutator"+(d.charAt(0).toUpperCase()+d.slice(1));a.definition[f]&&(e=this.lookupMutator(a.definition[f]))&&(b=!0,c[f]={mutator:e,params:a.definition[f+"Params"]||{}})}),b&&(a.modules.mutate=c)}lookupMutator(a){var b=!1;switch(typeof a){case"string":an.mutators[a]?b=an.mutators[a]:console.warn("Mutator Error - No such mutator found, ignoring: ",a);break;case"function":b=a}return b}transformRow(a,b,c){var d,e="mutator"+(b.charAt(0).toUpperCase()+b.slice(1));return this.enabled&&this.table.columnManager.traverse(f=>{var g,h,i;f.modules.mutate&&(g=f.modules.mutate[e]||f.modules.mutate.mutator||!1)&&(d=f.getFieldValue(void 0!==c?c:a),("data"!=b||c)&&void 0===d||(i=f.getComponent(),h="function"==typeof g.params?g.params(d,a,b,i):g.params,f.setFieldValue(a,g.mutator(d,a,b,h,i))))}),a}transformCell(a,b){if(a.column.modules.mutate){var c=a.column.modules.mutate.mutatorEdit||a.column.modules.mutate.mutator||!1,d={};if(c)return d=Object.assign(d,a.row.getData()),a.column.setFieldValue(d,b),c.mutator(b,d,"edit",c.params,a.getComponent())}return b}mutateLink(a){var b=a.column.definition.mutateLink;b&&(Array.isArray(b)||(b=[b]),b.forEach(b=>{var c=a.row.getCell(b);c&&c.setValue(c.getValue(),!0,!0)}))}enable(){this.enabled=!0}disable(){this.enabled=!1}}var ao={rows:function(a,b,c,d,e){var f=document.createElement("span"),g=document.createElement("span"),h=document.createElement("span"),i=document.createElement("span"),j=document.createElement("span"),k=document.createElement("span");return this.table.modules.localize.langBind("pagination|counter|showing",a=>{g.innerHTML=a}),this.table.modules.localize.langBind("pagination|counter|of",a=>{i.innerHTML=a}),this.table.modules.localize.langBind("pagination|counter|rows",a=>{k.innerHTML=a}),d?(h.innerHTML=" "+b+"-"+Math.min(b+a-1,d)+" ",j.innerHTML=" "+d+" ",f.appendChild(g),f.appendChild(h),f.appendChild(i),f.appendChild(j)):(h.innerHTML=" 0 ",f.appendChild(g),f.appendChild(h)),f.appendChild(k),f},pages:function(a,b,c,d,e){var f=document.createElement("span"),g=document.createElement("span"),h=document.createElement("span"),i=document.createElement("span"),j=document.createElement("span"),k=document.createElement("span");return this.table.modules.localize.langBind("pagination|counter|showing",a=>{g.innerHTML=a}),h.innerHTML=" "+c+" ",this.table.modules.localize.langBind("pagination|counter|of",a=>{i.innerHTML=a}),j.innerHTML=" "+e+" ",this.table.modules.localize.langBind("pagination|counter|pages",a=>{k.innerHTML=a}),f.appendChild(g),f.appendChild(h),f.appendChild(i),f.appendChild(j),f.appendChild(k),f}};class ap extends p{static moduleName="page";static pageCounters=ao;constructor(a){super(a),this.mode="local",this.progressiveLoad=!1,this.element=null,this.pageCounterElement=null,this.pageCounter=null,this.size=0,this.page=1,this.count=5,this.max=1,this.remoteRowCountEstimate=null,this.initialLoad=!0,this.dataChanging=!1,this.pageSizes=[],this.registerTableOption("pagination",!1),this.registerTableOption("paginationMode","local"),this.registerTableOption("paginationSize",!1),this.registerTableOption("paginationInitialPage",1),this.registerTableOption("paginationCounter",!1),this.registerTableOption("paginationCounterElement",!1),this.registerTableOption("paginationButtonCount",5),this.registerTableOption("paginationSizeSelector",!1),this.registerTableOption("paginationElement",!1),this.registerTableOption("paginationAddRow","page"),this.registerTableOption("paginationOutOfRange",!1),this.registerTableOption("progressiveLoad",!1),this.registerTableOption("progressiveLoadDelay",0),this.registerTableOption("progressiveLoadScrollMargin",0),this.registerTableFunction("setMaxPage",this.setMaxPage.bind(this)),this.registerTableFunction("setPage",this.setPage.bind(this)),this.registerTableFunction("setPageToRow",this.userSetPageToRow.bind(this)),this.registerTableFunction("setPageSize",this.userSetPageSize.bind(this)),this.registerTableFunction("getPageSize",this.getPageSize.bind(this)),this.registerTableFunction("previousPage",this.previousPage.bind(this)),this.registerTableFunction("nextPage",this.nextPage.bind(this)),this.registerTableFunction("getPage",this.getPage.bind(this)),this.registerTableFunction("getPageMax",this.getPageMax.bind(this)),this.registerComponentFunction("row","pageTo",this.setPageToRow.bind(this))}initialize(){this.table.options.pagination?(this.subscribe("row-deleted",this.rowsUpdated.bind(this)),this.subscribe("row-added",this.rowsUpdated.bind(this)),this.subscribe("data-processed",this.initialLoadComplete.bind(this)),this.subscribe("table-built",this.calculatePageSizes.bind(this)),this.subscribe("footer-redraw",this.footerRedraw.bind(this)),"page"==this.table.options.paginationAddRow&&this.subscribe("row-adding-position",this.rowAddingPosition.bind(this)),"remote"===this.table.options.paginationMode&&(this.subscribe("data-params",this.remotePageParams.bind(this)),this.subscribe("data-loaded",this._parseRemoteData.bind(this))),this.table.options.progressiveLoad&&console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time"),this.registerDisplayHandler(this.restOnRenderBefore.bind(this),40),this.registerDisplayHandler(this.getRows.bind(this),50),this.createElements(),this.initializePageCounter(),this.initializePaginator()):this.table.options.progressiveLoad&&(this.subscribe("data-params",this.remotePageParams.bind(this)),this.subscribe("data-loaded",this._parseRemoteData.bind(this)),this.subscribe("table-built",this.calculatePageSizes.bind(this)),this.subscribe("data-processed",this.initialLoadComplete.bind(this)),this.initializeProgressive(this.table.options.progressiveLoad),"scroll"===this.table.options.progressiveLoad&&this.subscribe("scroll-vertical",this.scrollVertical.bind(this)))}rowAddingPosition(a,b){var c,d=this.table.rowManager,e=d.getDisplayRows();return b?e.length?c=e[0]:d.activeRows.length&&(c=d.activeRows[d.activeRows.length-1],b=!1):e.length&&(c=e[e.length-1],b=!(e.length<this.size)),{index:c,top:b}}calculatePageSizes(){var a,b;this.table.options.paginationSize?this.size=this.table.options.paginationSize:((a=document.createElement("div")).classList.add("tabulator-row"),a.style.visibility="hidden",(b=document.createElement("div")).classList.add("tabulator-cell"),b.innerHTML="Page Row Test",a.appendChild(b),this.table.rowManager.getTableElement().appendChild(a),this.size=Math.floor(this.table.rowManager.getElement().clientHeight/a.offsetHeight),this.table.rowManager.getTableElement().removeChild(a)),this.dispatchExternal("pageSizeChanged",this.size),this.generatePageSizeSelectList()}initialLoadComplete(){this.initialLoad=!1}remotePageParams(a,b,c,d){return this.initialLoad||(!this.progressiveLoad||c)&&(this.progressiveLoad||this.dataChanging)||this.reset(!0),d.page=this.page,this.size&&(d.size=this.size),d}userSetPageToRow(a){return this.table.options.pagination&&(a=this.table.rowManager.findRow(a))?this.setPageToRow(a):Promise.reject()}userSetPageSize(a){return!!this.table.options.pagination&&(this.setPageSize(a),this.setPage(1))}scrollVertical(a,b){var c;b||this.table.dataLoader.loading||(c=this.table.rowManager.getElement()).scrollHeight-c.clientHeight-a<(this.table.options.progressiveLoadScrollMargin||2*c.clientHeight)&&this.nextPage().catch(()=>{})}restOnRenderBefore(a,b){return b||"local"!==this.mode||this.reset(),a}rowsUpdated(){this.refreshData(!0,"all")}createElements(){var a;this.element=document.createElement("span"),this.element.classList.add("tabulator-paginator"),this.pagesElement=document.createElement("span"),this.pagesElement.classList.add("tabulator-pages"),(a=document.createElement("button")).classList.add("tabulator-page"),a.setAttribute("type","button"),a.setAttribute("role","button"),a.setAttribute("aria-label",""),a.setAttribute("title",""),this.firstBut=a.cloneNode(!0),this.firstBut.setAttribute("data-page","first"),this.prevBut=a.cloneNode(!0),this.prevBut.setAttribute("data-page","prev"),this.nextBut=a.cloneNode(!0),this.nextBut.setAttribute("data-page","next"),this.lastBut=a.cloneNode(!0),this.lastBut.setAttribute("data-page","last"),this.table.options.paginationSizeSelector&&(this.pageSizeSelect=document.createElement("select"),this.pageSizeSelect.classList.add("tabulator-page-size"))}generatePageSizeSelectList(){var a=[];if(this.pageSizeSelect){if(Array.isArray(this.table.options.paginationSizeSelector))a=this.table.options.paginationSizeSelector,this.pageSizes=a,-1==this.pageSizes.indexOf(this.size)&&a.unshift(this.size);else if(-1==this.pageSizes.indexOf(this.size)){a=[];for(let b=1;b<5;b++)a.push(this.size*b);this.pageSizes=a}else a=this.pageSizes;for(;this.pageSizeSelect.firstChild;)this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);a.forEach(a=>{var b=document.createElement("option");b.value=a,!0===a?this.langBind("pagination|all",function(a){b.innerHTML=a}):b.innerHTML=a,this.pageSizeSelect.appendChild(b)}),this.pageSizeSelect.value=this.size}}initializePageCounter(){var a=this.table.options.paginationCounter,b=null;a&&((b="function"==typeof a?a:ap.pageCounters[a])?(this.pageCounter=b,this.pageCounterElement=document.createElement("span"),this.pageCounterElement.classList.add("tabulator-page-counter")):console.warn("Pagination Error - No such page counter found: ",a))}initializePaginator(a){var b,c;a||(this.langBind("pagination|first",a=>{this.firstBut.innerHTML=a}),this.langBind("pagination|first_title",a=>{this.firstBut.setAttribute("aria-label",a),this.firstBut.setAttribute("title",a)}),this.langBind("pagination|prev",a=>{this.prevBut.innerHTML=a}),this.langBind("pagination|prev_title",a=>{this.prevBut.setAttribute("aria-label",a),this.prevBut.setAttribute("title",a)}),this.langBind("pagination|next",a=>{this.nextBut.innerHTML=a}),this.langBind("pagination|next_title",a=>{this.nextBut.setAttribute("aria-label",a),this.nextBut.setAttribute("title",a)}),this.langBind("pagination|last",a=>{this.lastBut.innerHTML=a}),this.langBind("pagination|last_title",a=>{this.lastBut.setAttribute("aria-label",a),this.lastBut.setAttribute("title",a)}),this.firstBut.addEventListener("click",()=>{this.setPage(1)}),this.prevBut.addEventListener("click",()=>{this.previousPage()}),this.nextBut.addEventListener("click",()=>{this.nextPage()}),this.lastBut.addEventListener("click",()=>{this.setPage(this.max)}),this.table.options.paginationElement&&(this.element=this.table.options.paginationElement),this.pageSizeSelect&&(b=document.createElement("label"),this.langBind("pagination|page_size",a=>{this.pageSizeSelect.setAttribute("aria-label",a),this.pageSizeSelect.setAttribute("title",a),b.innerHTML=a}),this.element.appendChild(b),this.element.appendChild(this.pageSizeSelect),this.pageSizeSelect.addEventListener("change",a=>{this.setPageSize("true"==this.pageSizeSelect.value||this.pageSizeSelect.value),this.setPage(1)})),this.element.appendChild(this.firstBut),this.element.appendChild(this.prevBut),this.element.appendChild(this.pagesElement),this.element.appendChild(this.nextBut),this.element.appendChild(this.lastBut),this.table.options.paginationElement||(this.table.options.paginationCounter&&(this.table.options.paginationCounterElement?this.table.options.paginationCounterElement instanceof HTMLElement?this.table.options.paginationCounterElement.appendChild(this.pageCounterElement):"string"==typeof this.table.options.paginationCounterElement&&((c=document.querySelector(this.table.options.paginationCounterElement))?c.appendChild(this.pageCounterElement):console.warn("Pagination Error - Unable to find element matching paginationCounterElement selector:",this.table.options.paginationCounterElement)):this.footerAppend(this.pageCounterElement)),this.footerAppend(this.element)),this.page=this.table.options.paginationInitialPage,this.count=this.table.options.paginationButtonCount),this.mode=this.table.options.paginationMode}initializeProgressive(a){this.initializePaginator(!0),this.mode="progressive_"+a,this.progressiveLoad=!0}trackChanges(){this.dispatch("page-changed")}setMaxRows(a){a?this.max=!0===this.size?1:Math.ceil(a/this.size):this.max=1,this.page>this.max&&(this.page=this.max)}reset(a){!this.initialLoad&&("local"==this.mode||a)&&(this.page=1,this.trackChanges())}setMaxPage(a){a=parseInt(a),this.max=a||1,this.page>this.max&&(this.page=this.max,this.trigger())}setPage(a){switch(a){case"first":return this.setPage(1);case"prev":return this.previousPage();case"next":return this.nextPage();case"last":return this.setPage(this.max)}return(a=parseInt(a))>0&&a<=this.max||"local"!==this.mode?(this.page=a,this.trackChanges(),this.trigger()):(console.warn("Pagination Error - Requested page is out of range of 1 - "+this.max+":",a),Promise.reject())}setPageToRow(a){var b=this.displayRows(-1).indexOf(a);if(!(b>-1))return console.warn("Pagination Error - Requested row is not visible"),Promise.reject();var c=!0===this.size?1:Math.ceil((b+1)/this.size);return this.setPage(c)}setPageSize(a){!0!==a&&(a=parseInt(a)),a>0&&(this.size=a,this.dispatchExternal("pageSizeChanged",a)),this.pageSizeSelect&&this.generatePageSizeSelectList(),this.trackChanges()}_setPageCounter(a,b,c){var d;if(this.pageCounter)switch("remote"===this.mode&&(b=this.size,c=(this.page-1)*this.size+1,a=this.remoteRowCountEstimate),typeof(d=this.pageCounter.call(this,b,c,this.page,a,this.max))){case"object":if(d instanceof Node){for(;this.pageCounterElement.firstChild;)this.pageCounterElement.removeChild(this.pageCounterElement.firstChild);this.pageCounterElement.appendChild(d)}else this.pageCounterElement.innerHTML="",null!=d&&console.warn("Page Counter Error - Page Counter has returned a type of object, the only valid page counter object return is an instance of Node, the page counter returned:",d);break;case"undefined":this.pageCounterElement.innerHTML="";break;default:this.pageCounterElement.innerHTML=d}}_setPageButtons(){let a=Math.floor((this.count-1)/2),b=Math.ceil((this.count-1)/2),c=this.max-this.page+a+1<this.count?this.max-this.count+1:Math.max(this.page-a,1),d=this.page<=b?Math.min(this.count,this.max):Math.min(this.page+b,this.max);for(;this.pagesElement.firstChild;)this.pagesElement.removeChild(this.pagesElement.firstChild);1==this.page?(this.firstBut.disabled=!0,this.prevBut.disabled=!0):(this.firstBut.disabled=!1,this.prevBut.disabled=!1),this.page==this.max?(this.lastBut.disabled=!0,this.nextBut.disabled=!0):(this.lastBut.disabled=!1,this.nextBut.disabled=!1);for(let a=c;a<=d;a++)a>0&&a<=this.max&&this.pagesElement.appendChild(this._generatePageButton(a));this.footerRedraw()}_generatePageButton(a){var b=document.createElement("button");return b.classList.add("tabulator-page"),a==this.page&&b.classList.add("active"),b.setAttribute("type","button"),b.setAttribute("role","button"),this.langBind("pagination|page_title",c=>{b.setAttribute("aria-label",c+" "+a),b.setAttribute("title",c+" "+a)}),b.setAttribute("data-page",a),b.textContent=a,b.addEventListener("click",b=>{this.setPage(a)}),b}previousPage(){return this.page>1?(this.page--,this.trackChanges(),this.trigger()):(console.warn("Pagination Error - Previous page would be less than page 1:",0),Promise.reject())}nextPage(){return this.page<this.max?(this.page++,this.trackChanges(),this.trigger()):(this.progressiveLoad||console.warn("Pagination Error - Next page would be greater than maximum page of "+this.max+":",this.max+1),Promise.reject())}getPage(){return this.page}getPageMax(){return this.max}getPageSize(a){return this.size}getMode(){return this.mode}getRows(a){var b,c,d,e,f=0,g=a.filter(a=>"row"===a.type);if("local"!=this.mode)return this._setPageButtons(),this._setPageCounter(g.length),a.slice(0);b=[],this.setMaxRows(a.length),!0===this.size?(c=0,d=a.length):d=(c=this.size*(this.page-1))+parseInt(this.size),this._setPageButtons();for(let g=c;g<d;g++){let c=a[g];c&&(b.push(c),"row"===c.type&&(e||(e=c),f++))}return this._setPageCounter(g.length,f,e?g.indexOf(e)+1:0),b}trigger(){var a;switch(this.mode){case"local":return a=this.table.rowManager.scrollLeft,this.refreshData(),this.table.rowManager.scrollHorizontal(a),this.dispatchExternal("pageLoaded",this.getPage()),Promise.resolve();case"remote":return this.dataChanging=!0,this.reloadData(null).finally(()=>{this.dataChanging=!1});case"progressive_load":case"progressive_scroll":return this.reloadData(null,!0);default:return console.warn("Pagination Error - no such pagination mode:",this.mode),Promise.reject()}}_parseRemoteData(a){var b,c;if(void 0===a.last_page&&console.warn("Remote Pagination Error - Server response missing '"+(this.options("dataReceiveParams").last_page||"last_page")+"' property"),a.data){if(this.max=parseInt(a.last_page)||1,this.remoteRowCountEstimate=void 0!==a.last_row?a.last_row:a.last_page*this.size-(this.page==a.last_page?this.size-a.data.length:0),this.progressiveLoad){switch(this.mode){case"progressive_load":1==this.page?this.table.rowManager.setData(a.data,!1,1==this.page):this.table.rowManager.addRows(a.data),this.page<this.max&&setTimeout(()=>{this.nextPage()},this.table.options.progressiveLoadDelay);break;case"progressive_scroll":a=1===this.page?a.data:this.table.rowManager.getData().concat(a.data),this.table.rowManager.setData(a,1!==this.page,1==this.page),b=this.table.options.progressiveLoadScrollMargin||2*this.table.rowManager.element.clientHeight,this.table.rowManager.element.scrollHeight<=this.table.rowManager.element.clientHeight+b&&this.page<this.max&&setTimeout(()=>{this.nextPage()})}return!1}if(this.page>this.max&&(console.warn("Remote Pagination Error - Server returned last page value lower than the current page"),c=this.options("paginationOutOfRange")))return this.setPage("function"==typeof c?c.call(this,this.page,this.max):c);this.dispatchExternal("pageLoaded",this.getPage())}else console.warn("Remote Pagination Error - Server response missing '"+(this.options("dataReceiveParams").data||"data")+"' property");return a.data}footerRedraw(){var a=this.table.footerManager.containerElement;Math.ceil(a.clientWidth)-a.scrollWidth<0?this.pagesElement.style.display="none":(this.pagesElement.style.display="",Math.ceil(a.clientWidth)-a.scrollWidth<0&&(this.pagesElement.style.display="none"))}}var aq={local:function(a,b){var c=localStorage.getItem(a+"-"+b);return!!c&&JSON.parse(c)},cookie:function(a,b){var c,d,e=document.cookie,f=a+"-"+b,g=e.indexOf(f+"=");return g>-1&&((c=(e=e.slice(g)).indexOf(";"))>-1&&(e=e.slice(0,c)),d=e.replace(f+"=","")),!!d&&JSON.parse(d)}},ar={local:function(a,b,c){localStorage.setItem(a+"-"+b,JSON.stringify(c))},cookie:function(a,b,c){var d=new Date;d.setDate(d.getDate()+1e4),document.cookie=a+"-"+b+"="+JSON.stringify(c)+"; expires="+d.toUTCString()}};class as extends p{static moduleName="persistence";static moduleInitOrder=-10;static readers=aq;static writers=ar;constructor(a){super(a),this.mode="",this.id="",this.defWatcherBlock=!1,this.config={},this.readFunc=!1,this.writeFunc=!1,this.registerTableOption("persistence",!1),this.registerTableOption("persistenceID",""),this.registerTableOption("persistenceMode",!0),this.registerTableOption("persistenceReaderFunc",!1),this.registerTableOption("persistenceWriterFunc",!1)}localStorageTest(){var a="_tabulator_test";try{return window.localStorage.setItem(a,a),window.localStorage.removeItem(a),!0}catch(a){return!1}}initialize(){if(this.table.options.persistence){var a,b=this.table.options.persistenceMode,c=this.table.options.persistenceID;this.mode=!0!==b?b:this.localStorageTest()?"local":"cookie",this.table.options.persistenceReaderFunc?"function"==typeof this.table.options.persistenceReaderFunc?this.readFunc=this.table.options.persistenceReaderFunc:as.readers[this.table.options.persistenceReaderFunc]?this.readFunc=as.readers[this.table.options.persistenceReaderFunc]:console.warn("Persistence Read Error - invalid reader set",this.table.options.persistenceReaderFunc):as.readers[this.mode]?this.readFunc=as.readers[this.mode]:console.warn("Persistence Read Error - invalid reader set",this.mode),this.table.options.persistenceWriterFunc?"function"==typeof this.table.options.persistenceWriterFunc?this.writeFunc=this.table.options.persistenceWriterFunc:as.writers[this.table.options.persistenceWriterFunc]?this.writeFunc=as.writers[this.table.options.persistenceWriterFunc]:console.warn("Persistence Write Error - invalid reader set",this.table.options.persistenceWriterFunc):as.writers[this.mode]?this.writeFunc=as.writers[this.mode]:console.warn("Persistence Write Error - invalid writer set",this.mode),this.id="tabulator-"+(c||this.table.element.getAttribute("id")||""),this.config={sort:!0===this.table.options.persistence||this.table.options.persistence.sort,filter:!0===this.table.options.persistence||this.table.options.persistence.filter,headerFilter:!0===this.table.options.persistence||this.table.options.persistence.headerFilter,group:!0===this.table.options.persistence||this.table.options.persistence.group,page:!0===this.table.options.persistence||this.table.options.persistence.page,columns:!0===this.table.options.persistence?["title","width","visible"]:this.table.options.persistence.columns},this.config.page&&(a=this.retrieveData("page"))&&(void 0!==a.paginationSize&&(!0===this.config.page||this.config.page.size)&&(this.table.options.paginationSize=a.paginationSize),void 0!==a.paginationInitialPage&&(!0===this.config.page||this.config.page.page)&&(this.table.options.paginationInitialPage=a.paginationInitialPage)),this.config.group&&(a=this.retrieveData("group"))&&(void 0!==a.groupBy&&(!0===this.config.group||this.config.group.groupBy)&&(this.table.options.groupBy=a.groupBy),void 0!==a.groupStartOpen&&(!0===this.config.group||this.config.group.groupStartOpen)&&(this.table.options.groupStartOpen=a.groupStartOpen),void 0!==a.groupHeader&&(!0===this.config.group||this.config.group.groupHeader)&&(this.table.options.groupHeader=a.groupHeader)),this.config.columns&&(this.table.options.columns=this.load("columns",this.table.options.columns),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-show",this.save.bind(this,"columns")),this.subscribe("column-hide",this.save.bind(this,"columns")),this.subscribe("column-moved",this.save.bind(this,"columns"))),this.subscribe("table-built",this.tableBuilt.bind(this),0),this.subscribe("table-redraw",this.tableRedraw.bind(this)),this.subscribe("filter-changed",this.eventSave.bind(this,"filter")),this.subscribe("filter-changed",this.eventSave.bind(this,"headerFilter")),this.subscribe("sort-changed",this.eventSave.bind(this,"sort")),this.subscribe("group-changed",this.eventSave.bind(this,"group")),this.subscribe("page-changed",this.eventSave.bind(this,"page")),this.subscribe("column-resized",this.eventSave.bind(this,"columns")),this.subscribe("column-width",this.eventSave.bind(this,"columns")),this.subscribe("layout-refreshed",this.eventSave.bind(this,"columns"))}this.registerTableFunction("getColumnLayout",this.getColumnLayout.bind(this)),this.registerTableFunction("setColumnLayout",this.setColumnLayout.bind(this))}eventSave(a){this.config[a]&&this.save(a)}tableBuilt(){var a,b,c;this.config.sort&&!1==!(a=this.load("sort"))&&(this.table.options.initialSort=a),this.config.filter&&!1==!(b=this.load("filter"))&&(this.table.options.initialFilter=b),this.config.headerFilter&&!1==!(c=this.load("headerFilter"))&&(this.table.options.initialHeaderFilter=c)}tableRedraw(a){a&&this.config.columns&&this.save("columns")}getColumnLayout(){return this.parseColumns(this.table.columnManager.getColumns())}setColumnLayout(a){return this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns,a,!0)),!0}initializeColumn(a){var b;this.config.columns&&(this.defWatcherBlock=!0,b=a.getDefinition(),(!0===this.config.columns?Object.keys(b):this.config.columns).forEach(a=>{var c=Object.getOwnPropertyDescriptor(b,a),d=b[a];c&&Object.defineProperty(b,a,{set:a=>{d=a,this.defWatcherBlock||this.save("columns"),c.set&&c.set(a)},get:()=>(c.get&&c.get(),d)})}),this.defWatcherBlock=!1)}load(a,b){var c=this.retrieveData(a);return b&&(c=c?this.mergeDefinition(b,c):b),c}retrieveData(a){return!!this.readFunc&&this.readFunc(this.id,a)}mergeDefinition(a,b,c){var d=[];return(b=b||[]).forEach((b,e)=>{var f,g=this._findColumn(a,b);g&&(c?f=Object.keys(b):!0===this.config.columns||void 0==this.config.columns?(f=Object.keys(g)).push("width"):f=this.config.columns,f.forEach(a=>{"columns"!==a&&void 0!==b[a]&&(g[a]=b[a])}),g.columns&&(g.columns=this.mergeDefinition(g.columns,b.columns)),d.push(g))}),a.forEach((a,c)=>{this._findColumn(b,a)||(d.length>c?d.splice(c,0,a):d.push(a))}),d}_findColumn(a,b){var c=b.columns?"group":b.field?"field":"object";return a.find(function(a){switch(c){case"group":return a.title===b.title&&a.columns.length===b.columns.length;case"field":return a.field===b.field;case"object":return a===b}})}save(a){var b={};switch(a){case"columns":b=this.parseColumns(this.table.columnManager.getColumns());break;case"filter":b=this.table.modules.filter.getFilters();break;case"headerFilter":b=this.table.modules.filter.getHeaderFilters();break;case"sort":b=this.validateSorters(this.table.modules.sort.getSort());break;case"group":b=this.getGroupConfig();break;case"page":b=this.getPageConfig()}this.writeFunc&&this.writeFunc(this.id,a,b)}validateSorters(a){return a.forEach(function(a){a.column=a.field,delete a.field}),a}getGroupConfig(){var a={};return this.config.group&&((!0===this.config.group||this.config.group.groupBy)&&(a.groupBy=this.table.options.groupBy),(!0===this.config.group||this.config.group.groupStartOpen)&&(a.groupStartOpen=this.table.options.groupStartOpen),(!0===this.config.group||this.config.group.groupHeader)&&(a.groupHeader=this.table.options.groupHeader)),a}getPageConfig(){var a={};return this.config.page&&((!0===this.config.page||this.config.page.size)&&(a.paginationSize=this.table.modules.page.getPageSize()),(!0===this.config.page||this.config.page.page)&&(a.paginationInitialPage=this.table.modules.page.getPage())),a}parseColumns(a){var b=[],c=["headerContextMenu","headerMenu","contextMenu","clickMenu"];return a.forEach(a=>{var d,e={},f=a.getDefinition();a.isGroup?(e.title=f.title,e.columns=this.parseColumns(a.getColumns())):(e.field=a.getField(),!0===this.config.columns||void 0==this.config.columns?((d=Object.keys(f)).push("width"),d.push("visible")):d=this.config.columns,d.forEach(b=>{switch(b){case"width":e.width=a.getWidth();break;case"visible":e.visible=a.visible;break;default:"function"!=typeof f[b]&&-1===c.indexOf(b)&&(e[b]=f[b])}})),b.push(e)}),b}}var at={format:{formatters:{responsiveCollapse:function(a,b,c){var d=document.createElement("div"),e=a.getRow()._row.modules.responsiveLayout;function f(a){var b=e.element;e.open=a,b&&(e.open?(d.classList.add("open"),b.style.display=""):(d.classList.remove("open"),b.style.display="none"))}return d.classList.add("tabulator-responsive-collapse-toggle"),d.innerHTML=`<svg class='tabulator-responsive-collapse-toggle-open' viewbox="0 0 24 24">
1
+ module.exports=[71185,a=>{"use strict";var b=a.i(12656),c=a.i(69845),d=a.i(96960),e=a.i(31378),f=a.i(79794),g=a.i(33511),h=a.i(25700);let i=(0,h.default)("inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var j=a.i(2807);let k=(0,h.default)("arrow-down-a-z",[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]),l=(0,h.default)("arrow-up-a-z",[["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}],["path",{d:"M20 8h-5",key:"1vsyxs"}],["path",{d:"M15 10V6.5a2.5 2.5 0 0 1 5 0V10",key:"ag13bf"}],["path",{d:"M15 14h5l-5 6h5",key:"ur5jdg"}]]);class m{constructor(a){this.table=a}reloadData(a,b,c){return this.table.dataLoader.load(a,void 0,void 0,void 0,b,c)}langText(){return this.table.modules.localize.getText(...arguments)}langBind(){return this.table.modules.localize.bind(...arguments)}langLocale(){return this.table.modules.localize.getLocale(...arguments)}commsConnections(){return this.table.modules.comms.getConnections(...arguments)}commsSend(){return this.table.modules.comms.send(...arguments)}layoutMode(){return this.table.modules.layout.getMode()}layoutRefresh(a){return this.table.modules.layout.layout(a)}subscribe(){return this.table.eventBus.subscribe(...arguments)}unsubscribe(){return this.table.eventBus.unsubscribe(...arguments)}subscribed(a){return this.table.eventBus.subscribed(a)}subscriptionChange(){return this.table.eventBus.subscriptionChange(...arguments)}dispatch(){return this.table.eventBus.dispatch(...arguments)}chain(){return this.table.eventBus.chain(...arguments)}confirm(){return this.table.eventBus.confirm(...arguments)}dispatchExternal(){return this.table.externalEvents.dispatch(...arguments)}subscribedExternal(a){return this.table.externalEvents.subscribed(a)}subscriptionChangeExternal(){return this.table.externalEvents.subscriptionChange(...arguments)}options(a){return this.table.options[a]}setOption(a,b){return void 0!==b&&(this.table.options[a]=b),this.table.options[a]}deprecationCheck(a,b,c){return this.table.deprecationAdvisor.check(a,b,c)}deprecationCheckMsg(a,b){return this.table.deprecationAdvisor.checkMsg(a,b)}deprecationMsg(a){return this.table.deprecationAdvisor.msg(a)}module(a){return this.table.module(a)}}class n{static elVisible(a){return!(a.offsetWidth<=0&&a.offsetHeight<=0)}static elOffset(a){var b=a.getBoundingClientRect();return{top:b.top+window.pageYOffset-document.documentElement.clientTop,left:b.left+window.pageXOffset-document.documentElement.clientLeft}}static retrieveNestedData(a,b,c){var d,e=a?b.split(a):[b],f=e.length;for(let a=0;a<f&&(d=c=c[e[a]],c);a++);return d}static deepClone(a,b,c=[]){var d={}.__proto__,e=[].__proto__;for(var f in b||(b=Object.assign(Array.isArray(a)?[]:{},a)),a){let g=a[f],h,i;null!=g&&"object"==typeof g&&(g.__proto__===d||g.__proto__===e)&&((h=c.findIndex(a=>a.subject===g))>-1?b[f]=c[h].copy:(i=Object.assign(Array.isArray(g)?[]:{},g),c.unshift({subject:g,copy:i}),b[f]=this.deepClone(g,i,c)))}return b}}let o=class a extends m{constructor(a,b,c){super(a),this.element=b,this.container=this._lookupContainer(),this.parent=c,this.reversedX=!1,this.childPopup=null,this.blurable=!1,this.blurCallback=null,this.blurEventsBound=!1,this.renderedCallback=null,this.visible=!1,this.hideable=!0,this.element.classList.add("tabulator-popup-container"),this.blurEvent=this.hide.bind(this,!1),this.escEvent=this._escapeCheck.bind(this),this.destroyBinding=this.tableDestroyed.bind(this),this.destroyed=!1}tableDestroyed(){this.destroyed=!0,this.hide(!0)}_lookupContainer(){var a=this.table.options.popupContainer;return"string"==typeof a?(a=document.querySelector(a))||console.warn("Menu Error - no container element found matching selector:",this.table.options.popupContainer,"(defaulting to document body)"):!0===a&&(a=this.table.element),a&&!this._checkContainerIsParent(a)&&(a=!1,console.warn("Menu Error - container element does not contain this table:",this.table.options.popupContainer,"(defaulting to document body)")),a||(a=document.body),a}_checkContainerIsParent(a,b=this.table.element){return a===b||!!b.parentNode&&this._checkContainerIsParent(a,b.parentNode)}renderCallback(a){this.renderedCallback=a}containerEventCoords(a){var b=!(a instanceof MouseEvent),c=b?a.touches[0].pageX:a.pageX,d=b?a.touches[0].pageY:a.pageY;if(this.container!==document.body){let a=n.elOffset(this.container);c-=a.left,d-=a.top}return{x:c,y:d}}elementPositionCoords(a,b="right"){var c,d,e,f=n.elOffset(a);switch(this.container!==document.body&&(c=n.elOffset(this.container),f.left-=c.left,f.top-=c.top),b){case"right":d=f.left+a.offsetWidth,e=f.top-1;break;case"bottom":d=f.left,e=f.top+a.offsetHeight;break;case"left":d=f.left,e=f.top-1;break;case"top":d=f.left,e=f.top;break;case"center":d=f.left+a.offsetWidth/2,e=f.top+a.offsetHeight/2}return{x:d,y:e,offset:f}}show(a,b){var c,d,e,f,g;return this.destroyed||this.table.destroyed||(a instanceof HTMLElement?(e=a,f=(g=this.elementPositionCoords(a,b)).offset,c=g.x,d=g.y):"number"==typeof a?(f={top:0,left:0},c=a,d=b):(c=(g=this.containerEventCoords(a)).x,d=g.y,this.reversedX=!1),this.element.style.top=d+"px",this.element.style.left=c+"px",this.container.appendChild(this.element),"function"==typeof this.renderedCallback&&this.renderedCallback(),this._fitToScreen(c,d,e,f,b),this.visible=!0,this.subscribe("table-destroy",this.destroyBinding),this.element.addEventListener("mousedown",a=>{a.stopPropagation()})),this}_fitToScreen(a,b,c,d,e){var f=this.container===document.body?document.documentElement.scrollTop:this.container.scrollTop;(a+this.element.offsetWidth>=this.container.offsetWidth||this.reversedX)&&(this.element.style.left="",c?this.element.style.right=this.container.offsetWidth-d.left+"px":this.element.style.right=this.container.offsetWidth-a+"px",this.reversedX=!0);let g=Math.max(this.container.offsetHeight,f?this.container.scrollHeight:0);b+this.element.offsetHeight>g&&(c?"bottom"===e?this.element.style.top=parseInt(this.element.style.top)-this.element.offsetHeight-c.offsetHeight-1+"px":this.element.style.top=parseInt(this.element.style.top)-this.element.offsetHeight+c.offsetHeight+1+"px":this.element.style.height=g+"px")}isVisible(){return this.visible}hideOnBlur(a){return this.blurable=!0,this.visible&&(setTimeout(()=>{this.visible&&(this.table.rowManager.element.addEventListener("scroll",this.blurEvent),this.subscribe("cell-editing",this.blurEvent),document.body.addEventListener("click",this.blurEvent),document.body.addEventListener("contextmenu",this.blurEvent),document.body.addEventListener("mousedown",this.blurEvent),window.addEventListener("resize",this.blurEvent),document.body.addEventListener("keydown",this.escEvent),this.blurEventsBound=!0)},100),this.blurCallback=a),this}_escapeCheck(a){27==a.key&&this.hide()}blockHide(){this.hideable=!1}restoreHide(){this.hideable=!0}hide(a=!1){return this.visible&&this.hideable&&(this.blurable&&this.blurEventsBound&&(document.body.removeEventListener("keydown",this.escEvent),document.body.removeEventListener("click",this.blurEvent),document.body.removeEventListener("contextmenu",this.blurEvent),document.body.removeEventListener("mousedown",this.blurEvent),window.removeEventListener("resize",this.blurEvent),this.table.rowManager.element.removeEventListener("scroll",this.blurEvent),this.unsubscribe("cell-editing",this.blurEvent),this.blurEventsBound=!1),this.childPopup&&this.childPopup.hide(),this.parent&&(this.parent.childPopup=null),this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.visible=!1,this.blurCallback&&!a&&this.blurCallback(),this.unsubscribe("table-destroy",this.destroyBinding)),this}child(b){return this.childPopup&&this.childPopup.hide(),this.childPopup=new a(this.table,b,this),this.childPopup}};class p extends m{constructor(a,b){super(a),this._handler=null}initialize(){}registerTableOption(a,b){this.table.optionsList.register(a,b)}registerColumnOption(a,b){this.table.columnManager.optionsList.register(a,b)}registerTableFunction(a,b){void 0===this.table[a]?this.table[a]=(...c)=>(this.table.initGuard(a),b(...c)):console.warn("Unable to bind table function, name already in use",a)}registerComponentFunction(a,b,c){return this.table.componentFunctionBinder.bind(a,b,c)}registerDataHandler(a,b){this.table.rowManager.registerDataPipelineHandler(a,b),this._handler=a}registerDisplayHandler(a,b){this.table.rowManager.registerDisplayPipelineHandler(a,b),this._handler=a}displayRows(a){var b,c=this.table.rowManager.displayRows.length-1;if(this._handler&&(b=this.table.rowManager.displayPipeline.findIndex(a=>a.handler===this._handler))>-1&&(c=b),a&&(c+=a),this._handler)if(c>-1)return this.table.rowManager.getDisplayRows(c);else return this.activeRows()}activeRows(){return this.table.rowManager.activeRows}refreshData(a,b){b||(b=this._handler),b&&this.table.rowManager.refreshActiveData(b,!1,a)}footerAppend(a){return this.table.footerManager.append(a)}footerPrepend(a){return this.table.footerManager.prepend(a)}footerRemove(a){return this.table.footerManager.remove(a)}popup(a,b){return new o(this.table,a,b)}alert(a,b){return this.table.alertManager.alert(a,b)}clearAlert(){return this.table.alertManager.clear()}}var q={rownum:function(a,b,c,d,e,f){return f.getPosition()}};class r extends p{static moduleName="accessor";static accessors=q;constructor(a){super(a),this.allowedTypes=["","data","download","clipboard","print","htmlOutput"],this.registerColumnOption("accessor"),this.registerColumnOption("accessorParams"),this.registerColumnOption("accessorData"),this.registerColumnOption("accessorDataParams"),this.registerColumnOption("accessorDownload"),this.registerColumnOption("accessorDownloadParams"),this.registerColumnOption("accessorClipboard"),this.registerColumnOption("accessorClipboardParams"),this.registerColumnOption("accessorPrint"),this.registerColumnOption("accessorPrintParams"),this.registerColumnOption("accessorHtmlOutput"),this.registerColumnOption("accessorHtmlOutputParams")}initialize(){this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("row-data-retrieve",this.transformRow.bind(this))}initializeColumn(a){var b=!1,c={};this.allowedTypes.forEach(d=>{var e,f="accessor"+(d.charAt(0).toUpperCase()+d.slice(1));a.definition[f]&&(e=this.lookupAccessor(a.definition[f]))&&(b=!0,c[f]={accessor:e,params:a.definition[f+"Params"]||{}})}),b&&(a.modules.accessor=c)}lookupAccessor(a){var b=!1;switch(typeof a){case"string":r.accessors[a]?b=r.accessors[a]:console.warn("Accessor Error - No such accessor found, ignoring: ",a);break;case"function":b=a}return b}transformRow(a,b){var c="accessor"+(b.charAt(0).toUpperCase()+b.slice(1)),d=a.getComponent(),e=n.deepClone(a.data||{});return this.table.columnManager.traverse(function(a){var f,g,h,i;a.modules.accessor&&(g=a.modules.accessor[c]||a.modules.accessor.accessor||!1)&&"undefined"!=(f=a.getFieldValue(e))&&(i=a.getComponent(),h="function"==typeof g.params?g.params(f,e,b,i,d):g.params,a.setFieldValue(e,g.accessor(f,e,b,h,i,d)))}),e}}var s={method:"GET"};function t(a,b,c){if(a&&c&&Object.keys(c).length&&(!b.method||"get"==b.method.toLowerCase())){var d,e;b.method="get",a+=(a.includes("?")?"&":"?")+(d=function a(b,c){var d=[];if(c=c||"",Array.isArray(b))b.forEach((b,e)=>{d=d.concat(a(b,c?c+"["+e+"]":e))});else if("object"==typeof b)for(var e in b)d=d.concat(a(b[e],c?c+"["+e+"]":e));else d.push({key:c,value:b});return d}(c),e=[],d.forEach(function(a){e.push(encodeURIComponent(a.key)+"="+encodeURIComponent(a.value))}),e.join("&"))}return a}function u(a,b,c){var d;return new Promise((e,f)=>{if(a=this.urlGenerator.call(this.table,a,b,c),"GET"!=b.method.toUpperCase())if(d="object"==typeof this.table.options.ajaxContentType?this.table.options.ajaxContentType:this.contentTypeFormatters[this.table.options.ajaxContentType]){for(var g in d.headers)b.headers||(b.headers={}),void 0===b.headers[g]&&(b.headers[g]=d.headers[g]);b.body=d.body.call(this,a,b,c)}else console.warn("Ajax Error - Invalid ajaxContentType value:",this.table.options.ajaxContentType);a?(void 0===b.headers&&(b.headers={}),void 0===b.headers.Accept&&(b.headers.Accept="application/json"),void 0===b.headers["X-Requested-With"]&&(b.headers["X-Requested-With"]="XMLHttpRequest"),void 0===b.mode&&(b.mode="cors"),"cors"==b.mode?(void 0===b.headers.Origin&&(b.headers.Origin=window.location.origin),void 0===b.credentials&&(b.credentials="same-origin")):void 0===b.credentials&&(b.credentials="include"),fetch(a,b).then(a=>{a.ok?a.json().then(a=>{e(a)}).catch(a=>{f(a),console.warn("Ajax Load Error - Invalid JSON returned",a)}):(console.error("Ajax Load Error - Connection Error: "+a.status,a.statusText),f(a))}).catch(a=>{console.error("Ajax Load Error - Connection Error: ",a),f(a)})):(console.warn("Ajax Load Error - No URL Set"),e([]))})}var v={json:{headers:{"Content-Type":"application/json"},body:function(a,b,c){return JSON.stringify(c)}},form:{headers:{},body:function(a,b,c){var d=function a(b,c){var d=[];if(c=c||"",Array.isArray(b))b.forEach((b,e)=>{d=d.concat(a(b,c?c+"["+e+"]":e))});else if("object"==typeof b)for(var e in b)d=d.concat(a(b[e],c?c+"["+e+"]":e));else d.push({key:c,value:b});return d}(c),e=new FormData;return d.forEach(function(a){e.append(a.key,a.value)}),e}}};class w extends p{static moduleName="ajax";static defaultConfig=s;static defaultURLGenerator=t;static defaultLoaderPromise=u;static contentTypeFormatters=v;constructor(a){super(a),this.config={},this.url="",this.urlGenerator=!1,this.params=!1,this.loaderPromise=!1,this.registerTableOption("ajaxURL",!1),this.registerTableOption("ajaxURLGenerator",!1),this.registerTableOption("ajaxParams",{}),this.registerTableOption("ajaxConfig","get"),this.registerTableOption("ajaxContentType","form"),this.registerTableOption("ajaxRequestFunc",!1),this.registerTableOption("ajaxRequesting",function(){}),this.registerTableOption("ajaxResponse",!1),this.contentTypeFormatters=w.contentTypeFormatters}initialize(){this.loaderPromise=this.table.options.ajaxRequestFunc||w.defaultLoaderPromise,this.urlGenerator=this.table.options.ajaxURLGenerator||w.defaultURLGenerator,this.table.options.ajaxURL&&this.setUrl(this.table.options.ajaxURL),this.setDefaultConfig(this.table.options.ajaxConfig),this.registerTableFunction("getAjaxUrl",this.getUrl.bind(this)),this.subscribe("data-loading",this.requestDataCheck.bind(this)),this.subscribe("data-params",this.requestParams.bind(this)),this.subscribe("data-load",this.requestData.bind(this))}requestParams(a,b,c,d){var e=this.table.options.ajaxParams;return e&&("function"==typeof e&&(e=e.call(this.table)),d=Object.assign(Object.assign({},e),d)),d}requestDataCheck(a,b,c,d){return!!(!a&&this.url||"string"==typeof a)}requestData(a,b,c,d,e){var f;return!e&&this.requestDataCheck(a)?(a&&this.setUrl(a),f=this.generateConfig(c),this.sendRequest(this.url,b,f)):e}setDefaultConfig(a={}){this.config=Object.assign({},w.defaultConfig),"string"==typeof a?this.config.method=a:Object.assign(this.config,a)}generateConfig(a={}){var b=Object.assign({},this.config);return"string"==typeof a?b.method=a:Object.assign(b,a),b}setUrl(a){this.url=a}getUrl(){return this.url}sendRequest(a,b,c){return!1!==this.table.options.ajaxRequesting.call(this.table,a,b)?this.loaderPromise(a,c,b).then(c=>(this.table.options.ajaxResponse&&(c=this.table.options.ajaxResponse.call(this.table,a,b,c)),c)):Promise.reject()}}var x={replace:function(a){return this.table.setData(a)},update:function(a){return this.table.updateOrAddData(a)},insert:function(a){return this.table.addData(a)}},y={table:function(a){var b=[],c=!0,d=this.table.columnManager.columns,e=[],f=[];return(a=a.split("\n")).forEach(function(a){b.push(a.split(" "))}),!!b.length&&(1!==b.length||!(b[0].length<2))&&(b[0].forEach(function(a){var b=d.find(function(b){return a&&b.definition.title&&a.trim()&&b.definition.title.trim()===a.trim()});b?e.push(b):c=!1}),!c&&(c=!0,e=[],b[0].forEach(function(a){var b=d.find(function(b){return a&&b.field&&a.trim()&&b.field.trim()===a.trim()});b?e.push(b):c=!1}),c||(e=this.table.columnManager.columnsByIndex)),c&&b.shift(),b.forEach(function(a){var b={};a.forEach(function(a,c){e[c]&&(b[e[c].field]=a)}),f.push(b)}),f)}},z={keybindings:{bindings:{copyToClipboard:["ctrl + 67","meta + 67"]},actions:{copyToClipboard:function(a){!this.table.modules.edit.currentCell&&this.table.modExists("clipboard",!0)&&this.table.modules.clipboard.copy(!1,!0)}}}};class A extends p{static moduleName="clipboard";static moduleExtensions=z;static pasteActions=x;static pasteParsers=y;constructor(a){super(a),this.mode=!0,this.pasteParser=function(){},this.pasteAction=function(){},this.customSelection=!1,this.rowRange=!1,this.blocked=!0,this.registerTableOption("clipboard",!1),this.registerTableOption("clipboardCopyStyled",!0),this.registerTableOption("clipboardCopyConfig",!1),this.registerTableOption("clipboardCopyFormatter",!1),this.registerTableOption("clipboardCopyRowRange","active"),this.registerTableOption("clipboardPasteParser","table"),this.registerTableOption("clipboardPasteAction","insert"),this.registerColumnOption("clipboard"),this.registerColumnOption("titleClipboard")}initialize(){this.mode=this.table.options.clipboard,this.rowRange=this.table.options.clipboardCopyRowRange,(!0===this.mode||"copy"===this.mode)&&this.table.element.addEventListener("copy",a=>{var b,c,d;this.blocked||(a.preventDefault(),this.customSelection?(b=this.customSelection,this.table.options.clipboardCopyFormatter&&(b=this.table.options.clipboardCopyFormatter("plain",b))):(d=this.table.modules.export.generateExportList(this.table.options.clipboardCopyConfig,this.table.options.clipboardCopyStyled,this.rowRange,"clipboard"),b=(c=this.table.modules.export.generateHTMLTable(d))?this.generatePlainContent(d):"",this.table.options.clipboardCopyFormatter&&(b=this.table.options.clipboardCopyFormatter("plain",b),c=this.table.options.clipboardCopyFormatter("html",c))),window.clipboardData&&window.clipboardData.setData?window.clipboardData.setData("Text",b):a.clipboardData&&a.clipboardData.setData?(a.clipboardData.setData("text/plain",b),c&&a.clipboardData.setData("text/html",c)):a.originalEvent&&a.originalEvent.clipboardData.setData&&(a.originalEvent.clipboardData.setData("text/plain",b),c&&a.originalEvent.clipboardData.setData("text/html",c)),this.dispatchExternal("clipboardCopied",b,c),this.reset())}),(!0===this.mode||"paste"===this.mode)&&this.table.element.addEventListener("paste",a=>{this.paste(a)}),this.setPasteParser(this.table.options.clipboardPasteParser),this.setPasteAction(this.table.options.clipboardPasteAction),this.registerTableFunction("copyToClipboard",this.copy.bind(this))}reset(){this.blocked=!0,this.customSelection=!1}generatePlainContent(a){var b=[];return a.forEach(a=>{var c=[];a.columns.forEach(b=>{var d="";if(b)if("group"===a.type&&(b.value=b.component.getKey()),null===b.value)d="";else switch(typeof b.value){case"object":d=JSON.stringify(b.value);break;case"undefined":d="";break;default:d=b.value}c.push(d)}),b.push(c.join(" "))}),b.join("\n")}copy(a,b){var c,d;this.blocked=!1,this.customSelection=!1,(!0===this.mode||"copy"===this.mode)&&(this.rowRange=a||this.table.options.clipboardCopyRowRange,void 0!==window.getSelection&&void 0!==document.createRange?((a=document.createRange()).selectNodeContents(this.table.element),(c=window.getSelection()).toString()&&b&&(this.customSelection=c.toString()),c.removeAllRanges(),c.addRange(a)):void 0!==document.selection&&void 0!==document.body.createTextRange&&((d=document.body.createTextRange()).moveToElementText(this.table.element),d.select()),document.execCommand("copy"),c&&c.removeAllRanges())}setPasteAction(a){switch(typeof a){case"string":this.pasteAction=A.pasteActions[a],this.pasteAction||console.warn("Clipboard Error - No such paste action found:",a);break;case"function":this.pasteAction=a}}setPasteParser(a){switch(typeof a){case"string":this.pasteParser=A.pasteParsers[a],this.pasteParser||console.warn("Clipboard Error - No such paste parser found:",a);break;case"function":this.pasteParser=a}}paste(a){var b,c,d;this.checkPasteOrigin(a)&&(b=this.getPasteData(a),(c=this.pasteParser.call(this,b))?(a.preventDefault(),this.table.modExists("mutator")&&(c=this.mutateData(c)),d=this.pasteAction.call(this,c),this.dispatchExternal("clipboardPasted",b,c,d)):this.dispatchExternal("clipboardPasteError",b))}mutateData(a){var b=[];return Array.isArray(a)?a.forEach(a=>{b.push(this.table.modules.mutator.transformRow(a,"clipboard"))}):b=a,b}checkPasteOrigin(a){var b=!0;return(this.confirm("clipboard-paste",[a])||!["DIV","SPAN"].includes(a.target.tagName))&&(b=!1),b}getPasteData(a){var b;return window.clipboardData&&window.clipboardData.getData?b=window.clipboardData.getData("Text"):a.clipboardData&&a.clipboardData.getData?b=a.clipboardData.getData("text/plain"):a.originalEvent&&a.originalEvent.clipboardData.getData&&(b=a.originalEvent.clipboardData.getData("text/plain")),b}}class B{constructor(a){return this._row=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._row.table.componentFunctionBinder.handle("row",a._row,b)}})}getData(a){return this._row.getData(a)}getElement(){return this._row.getElement()}getTable(){return this._row.table}getCells(){var a=[];return this._row.getCells().forEach(function(b){a.push(b.getComponent())}),a}getCell(a){var b=this._row.getCell(a);return!!b&&b.getComponent()}_getSelf(){return this._row}}class C{constructor(a){return this._cell=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._cell.table.componentFunctionBinder.handle("cell",a._cell,b)}})}getValue(){return this._cell.getValue()}getOldValue(){return this._cell.getOldValue()}getInitialValue(){return this._cell.initialValue}getElement(){return this._cell.getElement()}getRow(){return this._cell.row.getComponent()}getData(a){return this._cell.row.getData(a)}getType(){return"cell"}getField(){return this._cell.column.getField()}getColumn(){return this._cell.column.getComponent()}setValue(a,b){void 0===b&&(b=!0),this._cell.setValue(a,b)}restoreOldValue(){this._cell.setValueActual(this._cell.getOldValue())}restoreInitialValue(){this._cell.setValueActual(this._cell.initialValue)}checkHeight(){this._cell.checkHeight()}getTable(){return this._cell.table}_getSelf(){return this._cell}}class D extends m{constructor(a,b){super(a.table),this.table=a.table,this.column=a,this.row=b,this.element=null,this.value=null,this.initialValue,this.oldValue=null,this.modules={},this.height=null,this.width=null,this.minWidth=null,this.component=null,this.loaded=!1,this.build()}build(){this.generateElement(),this.setWidth(),this._configureCell(),this.setValueActual(this.column.getFieldValue(this.row.data)),this.initialValue=this.value}generateElement(){this.element=document.createElement("div"),this.element.className="tabulator-cell",this.element.setAttribute("role","gridcell"),this.column.isRowHeader&&this.element.classList.add("tabulator-row-header")}_configureCell(){var a=this.element,b=this.column.getField();a.style.textAlign=this.column.hozAlign,this.column.vertAlign&&(a.style.display="inline-flex",a.style.alignItems=({top:"flex-start",bottom:"flex-end",middle:"center"})[this.column.vertAlign]||"",this.column.hozAlign&&(a.style.justifyContent=({left:"flex-start",right:"flex-end",center:"center"})[this.column.hozAlign]||"")),b&&a.setAttribute("tabulator-field",b),this.column.definition.cssClass&&this.column.definition.cssClass.split(" ").forEach(b=>{a.classList.add(b)}),this.dispatch("cell-init",this),this.column.visible||this.hide()}_generateContents(){var a;switch(typeof(a=this.chain("cell-format",this,null,()=>this.element.innerHTML=this.value))){case"object":if(a instanceof Node){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.appendChild(a)}else this.element.innerHTML="",null!=a&&console.warn("Format Error - Formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",a);break;case"undefined":this.element.innerHTML="";break;default:this.element.innerHTML=a}}cellRendered(){this.dispatch("cell-rendered",this)}getElement(a){return!this.loaded&&(this.loaded=!0,a||this.layoutElement()),this.element}getValue(){return this.value}getOldValue(){return this.oldValue}setValue(a,b,c){this.setValueProcessData(a,b,c)&&(this.dispatch("cell-value-updated",this),this.cellRendered(),this.column.definition.cellEdited&&this.column.definition.cellEdited.call(this.table,this.getComponent()),this.dispatchExternal("cellEdited",this.getComponent()),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.table.rowManager.getData()))}setValueProcessData(a,b,c){var d=!1;return(this.value!==a||c)&&(d=!0,b&&(a=this.chain("cell-value-changing",[this,a],null,a))),this.setValueActual(a),d&&this.dispatch("cell-value-changed",this),d}setValueActual(a){this.oldValue=this.value,this.value=a,this.dispatch("cell-value-save-before",this),this.column.setFieldValue(this.row.data,a),this.dispatch("cell-value-save-after",this),this.loaded&&this.layoutElement()}layoutElement(){this._generateContents(),this.dispatch("cell-layout",this)}setWidth(){this.width=this.column.width,this.element.style.width=this.column.widthStyled}clearWidth(){this.width="",this.element.style.width=""}getWidth(){return this.width||this.element.offsetWidth}setMinWidth(){this.minWidth=this.column.minWidth,this.element.style.minWidth=this.column.minWidthStyled}setMaxWidth(){this.maxWidth=this.column.maxWidth,this.element.style.maxWidth=this.column.maxWidthStyled}checkHeight(){this.row.reinitializeHeight()}clearHeight(){this.element.style.height="",this.height=null,this.dispatch("cell-height",this,"")}setHeight(){this.height=this.row.height,this.element.style.height=this.row.heightStyled,this.dispatch("cell-height",this,this.row.heightStyled)}getHeight(){return this.height||this.element.offsetHeight}show(){this.element.style.display=this.column.vertAlign?"inline-flex":""}hide(){this.element.style.display="none"}delete(){this.dispatch("cell-delete",this),!this.table.rowManager.redrawBlock&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=!1,this.column.deleteCell(this),this.row.deleteCell(this),this.calcs={}}getIndex(){return this.row.getCellIndex(this)}getComponent(){return this.component||(this.component=new C(this)),this.component}}class E{constructor(a){return this._column=a,this.type="ColumnComponent",new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._column.table.componentFunctionBinder.handle("column",a._column,b)}})}getElement(){return this._column.getElement()}getDefinition(){return this._column.getDefinition()}getField(){return this._column.getField()}getTitleDownload(){return this._column.getTitleDownload()}getCells(){var a=[];return this._column.cells.forEach(function(b){a.push(b.getComponent())}),a}isVisible(){return this._column.visible}show(){this._column.isGroup?this._column.columns.forEach(function(a){a.show()}):this._column.show()}hide(){this._column.isGroup?this._column.columns.forEach(function(a){a.hide()}):this._column.hide()}toggle(){this._column.visible?this.hide():this.show()}delete(){return this._column.delete()}getSubColumns(){var a=[];return this._column.columns.length&&this._column.columns.forEach(function(b){a.push(b.getComponent())}),a}getParentColumn(){return this._column.getParentComponent()}_getSelf(){return this._column}scrollTo(a,b){return this._column.table.columnManager.scrollToColumn(this._column,a,b)}getTable(){return this._column.table}move(a,b){var c=this._column.table.columnManager.findColumn(a);c?this._column.table.columnManager.moveColumn(this._column,c,b):console.warn("Move Error - No matching column found:",c)}getNextColumn(){var a=this._column.nextColumn();return!!a&&a.getComponent()}getPrevColumn(){var a=this._column.prevColumn();return!!a&&a.getComponent()}updateDefinition(a){return this._column.updateDefinition(a)}getWidth(){return this._column.getWidth()}setWidth(a){var b;return b=!0===a?this._column.reinitializeWidth(!0):this._column.setWidth(a),this._column.table.columnManager.rerenderColumns(!0),b}}var F={title:void 0,field:void 0,columns:void 0,visible:void 0,hozAlign:void 0,vertAlign:void 0,width:void 0,minWidth:40,maxWidth:void 0,maxInitialWidth:void 0,cssClass:void 0,variableHeight:void 0,headerVertical:void 0,headerHozAlign:void 0,headerWordWrap:!1,editableTitle:void 0};class G extends m{static defaultOptionList=F;constructor(a,b,c){super(b.table),this.definition=a,this.parent=b,this.type="column",this.columns=[],this.cells=[],this.isGroup=!1,this.isRowHeader=c,this.element=this.createElement(),this.contentElement=!1,this.titleHolderElement=!1,this.titleElement=!1,this.groupElement=this.createGroupElement(),this.hozAlign="",this.vertAlign="",this.field="",this.fieldStructure="",this.getFieldValue="",this.setFieldValue="",this.titleDownload=null,this.titleFormatterRendered=!1,this.mapDefinitions(),this.setField(this.definition.field),this.modules={},this.width=null,this.widthStyled="",this.maxWidth=null,this.maxWidthStyled="",this.maxInitialWidth=null,this.minWidth=null,this.minWidthStyled="",this.widthFixed=!1,this.visible=!0,this.component=null,this.definition.columns?(this.isGroup=!0,this.definition.columns.forEach((a,b)=>{var c=new G(a,this);this.attachColumn(c)}),this.checkColumnVisibility()):b.registerColumnField(this),this._initialize()}createElement(){var a=document.createElement("div");switch(a.classList.add("tabulator-col"),a.setAttribute("role","columnheader"),a.setAttribute("aria-sort","none"),this.isRowHeader&&a.classList.add("tabulator-row-header"),this.table.options.columnHeaderVertAlign){case"middle":a.style.justifyContent="center";break;case"bottom":a.style.justifyContent="flex-end"}return a}createGroupElement(){var a=document.createElement("div");return a.classList.add("tabulator-col-group-cols"),a}mapDefinitions(){var a=this.table.options.columnDefaults;if(a)for(let b in a)void 0===this.definition[b]&&(this.definition[b]=a[b]);this.definition=this.table.columnManager.optionsList.generate(G.defaultOptionList,this.definition)}checkDefinition(){Object.keys(this.definition).forEach(a=>{-1===G.defaultOptionList.indexOf(a)&&console.warn("Invalid column definition option in '"+(this.field||this.definition.title)+"' column:",a)})}setField(a){this.field=a,this.fieldStructure=a?this.table.options.nestedFieldSeparator?a.split(this.table.options.nestedFieldSeparator):[a]:[],this.getFieldValue=this.fieldStructure.length>1?this._getNestedData:this._getFlatData,this.setFieldValue=this.fieldStructure.length>1?this._setNestedData:this._setFlatData}registerColumnPosition(a){this.parent.registerColumnPosition(a)}registerColumnField(a){this.parent.registerColumnField(a)}reRegisterPosition(){this.isGroup?this.columns.forEach(function(a){a.reRegisterPosition()}):this.registerColumnPosition(this)}_initialize(){for(var a=this.definition;this.element.firstChild;)this.element.removeChild(this.element.firstChild);a.headerVertical&&(this.element.classList.add("tabulator-col-vertical"),"flip"===a.headerVertical&&this.element.classList.add("tabulator-col-vertical-flip")),this.contentElement=this._buildColumnHeaderContent(),this.element.appendChild(this.contentElement),this.isGroup?this._buildGroupHeader():this._buildColumnHeader(),this.dispatch("column-init",this)}_buildColumnHeader(){var a=this.definition;this.dispatch("column-layout",this),void 0!==a.visible&&(a.visible?this.show(!0):this.hide(!0)),a.cssClass&&a.cssClass.split(" ").forEach(a=>{this.element.classList.add(a)}),a.field&&this.element.setAttribute("tabulator-field",a.field),this.setMinWidth(parseInt(a.minWidth)),a.maxInitialWidth&&(this.maxInitialWidth=parseInt(a.maxInitialWidth)),a.maxWidth&&this.setMaxWidth(parseInt(a.maxWidth)),this.reinitializeWidth(),this.hozAlign=this.definition.hozAlign,this.vertAlign=this.definition.vertAlign,this.titleElement.style.textAlign=this.definition.headerHozAlign}_buildColumnHeaderContent(){var a=document.createElement("div");return a.classList.add("tabulator-col-content"),this.titleHolderElement=document.createElement("div"),this.titleHolderElement.classList.add("tabulator-col-title-holder"),a.appendChild(this.titleHolderElement),this.titleElement=this._buildColumnHeaderTitle(),this.titleHolderElement.appendChild(this.titleElement),a}_buildColumnHeaderTitle(){var a=this.definition,b=document.createElement("div");if(b.classList.add("tabulator-col-title"),a.headerWordWrap&&b.classList.add("tabulator-col-title-wrap"),a.editableTitle){var c=document.createElement("input");c.classList.add("tabulator-title-editor"),c.addEventListener("click",a=>{a.stopPropagation(),c.focus()}),c.addEventListener("mousedown",a=>{a.stopPropagation()}),c.addEventListener("change",()=>{a.title=c.value,this.dispatchExternal("columnTitleChanged",this.getComponent())}),b.appendChild(c),a.field?this.langBind("columns|"+a.field,b=>{c.value=b||a.title||"&nbsp;"}):c.value=a.title||"&nbsp;"}else a.field?this.langBind("columns|"+a.field,c=>{this._formatColumnHeaderTitle(b,c||a.title||"&nbsp;")}):this._formatColumnHeaderTitle(b,a.title||"&nbsp;");return b}_formatColumnHeaderTitle(a,b){var c=this.chain("column-format",[this,b,a],null,()=>b);switch(typeof c){case"object":c instanceof Node?a.appendChild(c):(a.innerHTML="",console.warn("Format Error - Title formatter has returned a type of object, the only valid formatter object return is an instance of Node, the formatter returned:",c));break;case"undefined":a.innerHTML="";break;default:a.innerHTML=c}}_buildGroupHeader(){this.element.classList.add("tabulator-col-group"),this.element.setAttribute("role","columngroup"),this.element.setAttribute("aria-title",this.definition.title),this.definition.cssClass&&this.definition.cssClass.split(" ").forEach(a=>{this.element.classList.add(a)}),this.titleElement.style.textAlign=this.definition.headerHozAlign,this.element.appendChild(this.groupElement)}_getFlatData(a){return a[this.field]}_getNestedData(a){var b,c=a,d=this.fieldStructure,e=d.length;for(let a=0;a<e&&(b=c=c[d[a]],c);a++);return b}_setFlatData(a,b){this.field&&(a[this.field]=b)}_setNestedData(a,b){var c=a,d=this.fieldStructure,e=d.length;for(let a=0;a<e;a++)if(a==e-1)c[d[a]]=b;else{if(!c[d[a]])if(void 0!==b)c[d[a]]={};else break;c=c[d[a]]}}attachColumn(a){this.groupElement?(this.columns.push(a),this.groupElement.appendChild(a.getElement()),a.columnRendered()):console.warn("Column Warning - Column being attached to another column instead of column group")}verticalAlign(a,b){var c=this.parent.isGroup?this.parent.getGroupElement().clientHeight:b||this.parent.getHeadersElement().clientHeight;this.element.style.height=c+"px",this.dispatch("column-height",this,this.element.style.height),this.isGroup&&(this.groupElement.style.minHeight=c-this.contentElement.offsetHeight+"px"),this.columns.forEach(function(b){b.verticalAlign(a)})}clearVerticalAlign(){this.element.style.paddingTop="",this.element.style.height="",this.element.style.minHeight="",this.groupElement.style.minHeight="",this.columns.forEach(function(a){a.clearVerticalAlign()}),this.dispatch("column-height",this,"")}getElement(){return this.element}getGroupElement(){return this.groupElement}getField(){return this.field}getTitleDownload(){return this.titleDownload}getFirstColumn(){return this.isGroup?!!this.columns.length&&this.columns[0].getFirstColumn():this}getLastColumn(){return this.isGroup?!!this.columns.length&&this.columns[this.columns.length-1].getLastColumn():this}getColumns(a){var b=[];return a?this.columns.forEach(a=>{b.push(a),b=b.concat(a.getColumns(!0))}):b=this.columns,b}getCells(){return this.cells}getTopColumn(){return this.parent.isGroup?this.parent.getTopColumn():this}getDefinition(a){var b=[];return this.isGroup&&a&&(this.columns.forEach(function(a){b.push(a.getDefinition(!0))}),this.definition.columns=b),this.definition}checkColumnVisibility(){var a=!1;this.columns.forEach(function(b){b.visible&&(a=!0)}),a?(this.show(),this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1)):this.hide()}show(a,b){!this.visible&&(this.visible=!0,this.element.style.display="",this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(a){a.show()}),this.isGroup||null!==this.width||this.reinitializeWidth(),this.table.columnManager.verticalAlignHeaders(),this.dispatch("column-show",this,b),a||this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!0),this.parent.isGroup&&this.parent.matchChildWidths(),this.silent||this.table.columnManager.rerenderColumns())}hide(a,b){this.visible&&(this.visible=!1,this.element.style.display="none",this.table.columnManager.verticalAlignHeaders(),this.parent.isGroup&&this.parent.checkColumnVisibility(),this.cells.forEach(function(a){a.hide()}),this.dispatch("column-hide",this,b),a||this.dispatchExternal("columnVisibilityChanged",this.getComponent(),!1),this.parent.isGroup&&this.parent.matchChildWidths(),this.silent||this.table.columnManager.rerenderColumns())}matchChildWidths(){var a=0;this.contentElement&&this.columns.length&&(this.columns.forEach(function(b){b.visible&&(a+=b.getWidth())}),this.contentElement.style.maxWidth=a-1+"px",this.table.initialized&&(this.element.style.width=a+"px"),this.parent.isGroup&&this.parent.matchChildWidths())}removeChild(a){var b=this.columns.indexOf(a);b>-1&&this.columns.splice(b,1),this.columns.length||this.delete()}setWidth(a){this.widthFixed=!0,this.setWidthActual(a)}setWidthActual(a){isNaN(a)&&(a=Math.floor(this.table.element.clientWidth/100*parseInt(a))),a=Math.max(this.minWidth,a),this.maxWidth&&(a=Math.min(this.maxWidth,a)),this.width=a,this.widthStyled=a?a+"px":"",this.element.style.width=this.widthStyled,this.isGroup||this.cells.forEach(function(a){a.setWidth()}),this.parent.isGroup&&this.parent.matchChildWidths(),this.dispatch("column-width",this),this.subscribedExternal("columnWidth")&&this.dispatchExternal("columnWidth",this.getComponent())}checkCellHeights(){var a=[];this.cells.forEach(function(b){b.row.heightInitialized&&(null!==b.row.getElement().offsetParent?(a.push(b.row),b.row.clearCellHeight()):b.row.heightInitialized=!1)}),a.forEach(function(a){a.calcHeight()}),a.forEach(function(a){a.setCellHeight()})}getWidth(){var a=0;return this.isGroup?this.columns.forEach(function(b){b.visible&&(a+=b.getWidth())}):a=this.width,a}getLeftOffset(){var a=this.element.offsetLeft;return this.parent.isGroup&&(a+=this.parent.getLeftOffset()),a}getHeight(){return Math.ceil(this.element.getBoundingClientRect().height)}setMinWidth(a){this.maxWidth&&a>this.maxWidth&&console.warn("the minWidth ("+(a=this.maxWidth)+"px) for column '"+this.field+"' cannot be bigger that its maxWidth ("+this.maxWidthStyled+")"),this.minWidth=a,this.minWidthStyled=a?a+"px":"",this.element.style.minWidth=this.minWidthStyled,this.cells.forEach(function(a){a.setMinWidth()})}setMaxWidth(a){this.minWidth&&a<this.minWidth&&console.warn("the maxWidth ("+(a=this.minWidth)+"px) for column '"+this.field+"' cannot be smaller that its minWidth ("+this.minWidthStyled+")"),this.maxWidth=a,this.maxWidthStyled=a?a+"px":"",this.element.style.maxWidth=this.maxWidthStyled,this.cells.forEach(function(a){a.setMaxWidth()})}delete(){return new Promise((a,b)=>{this.isGroup&&this.columns.forEach(function(a){a.delete()}),this.dispatch("column-delete",this);var c=this.cells.length;for(let a=0;a<c;a++)this.cells[0].delete();this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=!1,this.contentElement=!1,this.titleElement=!1,this.groupElement=!1,this.parent.isGroup&&this.parent.removeChild(this),this.table.columnManager.deregisterColumn(this),this.table.columnManager.rerenderColumns(!0),this.dispatch("column-deleted",this),a()})}columnRendered(){this.titleFormatterRendered&&this.titleFormatterRendered(),this.dispatch("column-rendered",this)}generateCell(a){var b=new D(this,a);return this.cells.push(b),b}nextColumn(){var a=this.table.columnManager.findColumnIndex(this);return a>-1&&this._nextVisibleColumn(a+1)}_nextVisibleColumn(a){var b=this.table.columnManager.getColumnByIndex(a);return!b||b.visible?b:this._nextVisibleColumn(a+1)}prevColumn(){var a=this.table.columnManager.findColumnIndex(this);return a>-1&&this._prevVisibleColumn(a-1)}_prevVisibleColumn(a){var b=this.table.columnManager.getColumnByIndex(a);return!b||b.visible?b:this._prevVisibleColumn(a-1)}reinitializeWidth(a){this.widthFixed=!1,void 0===this.definition.width||a||this.setWidth(this.definition.width),this.dispatch("column-width-fit-before",this),this.fitToData(a),this.dispatch("column-width-fit-after",this)}fitToData(a){if(!this.isGroup){this.widthFixed||(this.element.style.width="",this.cells.forEach(a=>{a.clearWidth()}));var b=this.element.offsetWidth;if((!this.width||!this.widthFixed)&&(this.cells.forEach(a=>{var c=a.getWidth();c>b&&(b=c)}),b)){var c=b+1;a?this.setWidth(c):(this.maxInitialWidth&&!a&&(c=Math.min(c,this.maxInitialWidth)),this.setWidthActual(c))}}}updateDefinition(a){var b;return this.isGroup||this.parent.isGroup?(console.error("Column Update Error - The updateDefinition function is only available on ungrouped columns"),Promise.reject("Column Update Error - The updateDefinition function is only available on columns, not column groups")):(b=Object.assign(b=Object.assign({},this.getDefinition()),a),this.table.columnManager.addColumn(b,!1,this).then(a=>(b.field==this.field&&(this.field=!1),this.delete().then(()=>a.getComponent()))))}deleteCell(a){var b=this.cells.indexOf(a);b>-1&&this.cells.splice(b,1)}getComponent(){return this.component||(this.component=new E(this)),this.component}getPosition(){return this.table.columnManager.getVisibleColumnsByIndex().indexOf(this)+1}getParentComponent(){return this.parent instanceof G&&this.parent.getComponent()}}class H{constructor(a){return this._row=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._row.table.componentFunctionBinder.handle("row",a._row,b)}})}getData(a){return this._row.getData(a)}getElement(){return this._row.getElement()}getCells(){var a=[];return this._row.getCells().forEach(function(b){a.push(b.getComponent())}),a}getCell(a){var b=this._row.getCell(a);return!!b&&b.getComponent()}getIndex(){return this._row.getData("data")[this._row.table.options.index]}getPosition(){return this._row.getPosition()}watchPosition(a){return this._row.watchPosition(a)}delete(){return this._row.delete()}scrollTo(a,b){return this._row.table.rowManager.scrollToRow(this._row,a,b)}move(a,b){this._row.moveToRow(a,b)}update(a){return this._row.updateData(a)}normalizeHeight(){this._row.normalizeHeight(!0)}_getSelf(){return this._row}reformat(){return this._row.reinitialize()}getTable(){return this._row.table}getNextRow(){var a=this._row.nextRow();return a?a.getComponent():a}getPrevRow(){var a=this._row.prevRow();return a?a.getComponent():a}}class I extends m{constructor(a,b,c="row"){super(b.table),this.parent=b,this.data={},this.type=c,this.element=!1,this.modules={},this.cells=[],this.height=0,this.heightStyled="",this.manualHeight=!1,this.outerHeight=0,this.initialized=!1,this.heightInitialized=!1,this.position=0,this.positionWatchers=[],this.component=null,this.created=!1,this.setData(a)}create(){this.created||(this.created=!0,this.generateElement())}createElement(){var a=document.createElement("div");a.classList.add("tabulator-row"),a.setAttribute("role","row"),this.element=a}getElement(){return this.create(),this.element}detachElement(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}generateElement(){this.createElement(),this.dispatch("row-init",this)}generateCells(){this.cells=this.table.columnManager.generateCells(this)}initialize(a,b){if(this.create(),!this.initialized||a){for(this.deleteCells();this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.dispatch("row-layout-before",this),this.generateCells(),this.initialized=!0,this.table.columnManager.renderer.renderRowCells(this,b),a&&this.normalizeHeight(),this.dispatch("row-layout",this),this.table.options.rowFormatter&&this.table.options.rowFormatter(this.getComponent()),this.dispatch("row-layout-after",this)}else this.table.columnManager.renderer.rerenderRowCells(this,b)}rendered(){this.cells.forEach(a=>{a.cellRendered()})}reinitializeHeight(){this.heightInitialized=!1,this.element&&null!==this.element.offsetParent&&this.normalizeHeight(!0)}deinitialize(){this.initialized=!1}deinitializeHeight(){this.heightInitialized=!1}reinitialize(a){this.initialized=!1,this.heightInitialized=!1,this.manualHeight||(this.height=0,this.heightStyled=""),this.element&&null!==this.element.offsetParent&&this.initialize(!0),this.dispatch("row-relayout",this)}calcHeight(a){var b=0,c=0;this.table.options.rowHeight?this.height=this.table.options.rowHeight:(c=this.calcMinHeight(),b=this.calcMaxHeight(),a?this.height=Math.max(b,c):this.height=this.manualHeight?this.height:Math.max(b,c)),this.heightStyled=this.height?this.height+"px":"",this.outerHeight=this.element.offsetHeight}calcMinHeight(){return this.table.options.resizableRows?this.element.clientHeight:0}calcMaxHeight(){var a=0;return this.cells.forEach(function(b){var c=b.getHeight();c>a&&(a=c)}),a}setCellHeight(){this.cells.forEach(function(a){a.setHeight()}),this.heightInitialized=!0}clearCellHeight(){this.cells.forEach(function(a){a.clearHeight()})}normalizeHeight(a){a&&!this.table.options.rowHeight&&this.clearCellHeight(),this.calcHeight(a),this.setCellHeight()}setHeight(a,b){(this.height!=a||b)&&(this.manualHeight=!0,this.height=a,this.heightStyled=a?a+"px":"",this.setCellHeight(),this.outerHeight=this.element.offsetHeight,this.subscribedExternal("rowHeight")&&this.dispatchExternal("rowHeight",this.getComponent()))}getHeight(){return this.outerHeight}getWidth(){return this.element.offsetWidth}deleteCell(a){var b=this.cells.indexOf(a);b>-1&&this.cells.splice(b,1)}setData(a){this.data=this.chain("row-data-init-before",[this,a],void 0,a),this.dispatch("row-data-init-after",this)}updateData(a){var b,c=this.element&&n.elVisible(this.element),d={};return new Promise((e,f)=>{"string"==typeof a&&(a=JSON.parse(a)),this.dispatch("row-data-save-before",this),this.subscribed("row-data-changing")&&(d=Object.assign(d=Object.assign(d,this.data),a)),b=this.chain("row-data-changing",[this,d,a],null,a);let g=[];for(let c in a)this.table.columnManager.getColumnsByFieldRoot(c).forEach(a=>{let c=this.getCell(a.getField());if(c){let d=a.getFieldValue(b);c.getValue()!==d&&g.push([c,d])}});for(let a in b)this.data[a]=b[a];this.dispatch("row-data-save-after",this),g.forEach(([a,b])=>{a.setValueProcessData(b),c&&a.cellRendered()}),c?(this.normalizeHeight(!0),this.table.options.rowFormatter&&this.table.options.rowFormatter(this.getComponent())):(this.initialized=!1,this.height=0,this.heightStyled=""),this.dispatch("row-data-changed",this,c,a),this.dispatchExternal("rowUpdated",this.getComponent()),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.table.rowManager.getData()),e()})}getData(a){return a?this.chain("row-data-retrieve",[this,a],null,this.data):this.data}getCell(a){return a=this.table.columnManager.findColumn(a),this.initialized||0!==this.cells.length||this.generateCells(),this.cells.find(function(b){return b.column===a})}getCellIndex(a){return this.cells.findIndex(function(b){return b===a})}findCell(a){return this.cells.find(b=>b.element===a)}getCells(){return this.initialized||0!==this.cells.length||this.generateCells(),this.cells}nextRow(){return this.table.rowManager.nextDisplayRow(this,!0)||!1}prevRow(){return this.table.rowManager.prevDisplayRow(this,!0)||!1}moveToRow(a,b){var c=this.table.rowManager.findRow(a);c?(this.table.rowManager.moveRowActual(this,c,!b),this.table.rowManager.refreshActiveData("display",!1,!0)):console.warn("Move Error - No matching row found:",a)}delete(){return this.dispatch("row-delete",this),this.deleteActual(),Promise.resolve()}deleteActual(a){this.detachModules(),this.table.rowManager.deleteRow(this,a),this.deleteCells(),this.initialized=!1,this.heightInitialized=!1,this.element=!1,this.dispatch("row-deleted",this)}detachModules(){this.dispatch("row-deleting",this)}deleteCells(){var a=this.cells.length;for(let b=0;b<a;b++)this.cells[0].delete()}wipe(){if(this.detachModules(),this.deleteCells(),this.element){for(;this.element.firstChild;)this.element.removeChild(this.element.firstChild);this.element.parentNode&&this.element.parentNode.removeChild(this.element)}this.element=!1,this.modules={}}isDisplayed(){return this.table.rowManager.getDisplayRows().includes(this)}getPosition(){return!!this.isDisplayed()&&this.position}setPosition(a){a!=this.position&&(this.position=a,this.positionWatchers.forEach(a=>{a(this.position)}))}watchPosition(a){this.positionWatchers.push(a),a(this.position)}getGroup(){return this.modules.group||!1}getComponent(){return this.component||(this.component=new H(this)),this.component}}var J={avg:function(a,b,c){var d=0,e=void 0!==c.precision?c.precision:2;return a.length&&(d=a.reduce(function(a,b){return Number(a)+Number(b)})/a.length,d=!1!==e?d.toFixed(e):d),parseFloat(d).toString()},max:function(a,b,c){var d=null,e=void 0!==c.precision&&c.precision;return a.forEach(function(a){((a=Number(a))>d||null===d)&&(d=a)}),null!==d?!1!==e?d.toFixed(e):d:""},min:function(a,b,c){var d=null,e=void 0!==c.precision&&c.precision;return a.forEach(function(a){((a=Number(a))<d||null===d)&&(d=a)}),null!==d?!1!==e?d.toFixed(e):d:""},sum:function(a,b,c){var d=0,e=void 0!==c.precision&&c.precision;return a.length&&a.forEach(function(a){a=Number(a),d+=isNaN(a)?0:Number(a)}),!1!==e?d.toFixed(e):d},concat:function(a,b,c){var d=0;return a.length&&(d=a.reduce(function(a,b){return String(a)+String(b)})),d},count:function(a,b,c){var d=0;return a.length&&a.forEach(function(a){a&&d++}),d},unique:function(a,b,c){return a.filter((b,c)=>(a||0===b)&&a.indexOf(b)===c).length}};class K extends p{static moduleName="columnCalcs";static calculations=J;constructor(a){super(a),this.topCalcs=[],this.botCalcs=[],this.genColumn=!1,this.topElement=this.createElement(),this.botElement=this.createElement(),this.topRow=!1,this.botRow=!1,this.topInitialized=!1,this.botInitialized=!1,this.blocked=!1,this.recalcAfterBlock=!1,this.registerTableOption("columnCalcs",!0),this.registerColumnOption("topCalc"),this.registerColumnOption("topCalcParams"),this.registerColumnOption("topCalcFormatter"),this.registerColumnOption("topCalcFormatterParams"),this.registerColumnOption("bottomCalc"),this.registerColumnOption("bottomCalcParams"),this.registerColumnOption("bottomCalcFormatter"),this.registerColumnOption("bottomCalcFormatterParams")}createElement(){var a=document.createElement("div");return a.classList.add("tabulator-calcs-holder"),a}initialize(){this.genColumn=new G({field:"value"},this),this.subscribe("cell-value-changed",this.cellValueChanged.bind(this)),this.subscribe("column-init",this.initializeColumnCheck.bind(this)),this.subscribe("row-deleted",this.rowsUpdated.bind(this)),this.subscribe("scroll-horizontal",this.scrollHorizontal.bind(this)),this.subscribe("row-added",this.rowsUpdated.bind(this)),this.subscribe("column-moved",this.recalcActiveRows.bind(this)),this.subscribe("column-add",this.recalcActiveRows.bind(this)),this.subscribe("data-refreshed",this.recalcActiveRowsRefresh.bind(this)),this.subscribe("table-redraw",this.tableRedraw.bind(this)),this.subscribe("rows-visible",this.visibleRows.bind(this)),this.subscribe("scrollbar-vertical",this.adjustForScrollbar.bind(this)),this.subscribe("redraw-blocked",this.blockRedraw.bind(this)),this.subscribe("redraw-restored",this.restoreRedraw.bind(this)),this.subscribe("table-redrawing",this.resizeHolderWidth.bind(this)),this.subscribe("column-resized",this.resizeHolderWidth.bind(this)),this.subscribe("column-show",this.resizeHolderWidth.bind(this)),this.subscribe("column-hide",this.resizeHolderWidth.bind(this)),this.registerTableFunction("getCalcResults",this.getResults.bind(this)),this.registerTableFunction("recalc",this.userRecalc.bind(this)),this.resizeHolderWidth()}resizeHolderWidth(){this.topElement.style.minWidth=this.table.columnManager.headersElement.offsetWidth+"px"}tableRedraw(a){this.recalc(this.table.rowManager.activeRows),a&&this.redraw()}blockRedraw(){this.blocked=!0,this.recalcAfterBlock=!1}restoreRedraw(){this.blocked=!1,this.recalcAfterBlock&&(this.recalcAfterBlock=!1,this.recalcActiveRowsRefresh())}userRecalc(){this.recalc(this.table.rowManager.activeRows)}blockCheck(){return this.blocked&&(this.recalcAfterBlock=!0),this.blocked}visibleRows(a,b){return this.topRow&&b.unshift(this.topRow),this.botRow&&b.push(this.botRow),b}rowsUpdated(a){this.table.options.groupBy?this.recalcRowGroup(a):this.recalcActiveRows()}recalcActiveRowsRefresh(){this.table.options.groupBy&&this.table.options.dataTreeStartExpanded&&this.table.options.dataTree?this.recalcAll():this.recalcActiveRows()}recalcActiveRows(){this.recalc(this.table.rowManager.activeRows)}cellValueChanged(a){(a.column.definition.topCalc||a.column.definition.bottomCalc)&&(this.table.options.groupBy?(("table"==this.table.options.columnCalcs||"both"==this.table.options.columnCalcs)&&this.recalcActiveRows(),"table"!=this.table.options.columnCalcs&&this.recalcRowGroup(a.row)):this.recalcActiveRows())}initializeColumnCheck(a){(a.definition.topCalc||a.definition.bottomCalc)&&this.initializeColumn(a)}initializeColumn(a){var b=a.definition,c={topCalcParams:b.topCalcParams||{},botCalcParams:b.bottomCalcParams||{}};if(b.topCalc){switch(typeof b.topCalc){case"string":K.calculations[b.topCalc]?c.topCalc=K.calculations[b.topCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",b.topCalc);break;case"function":c.topCalc=b.topCalc}c.topCalc&&(a.modules.columnCalcs=c,this.topCalcs.push(a),"group"!=this.table.options.columnCalcs&&this.initializeTopRow())}if(b.bottomCalc){switch(typeof b.bottomCalc){case"string":K.calculations[b.bottomCalc]?c.botCalc=K.calculations[b.bottomCalc]:console.warn("Column Calc Error - No such calculation found, ignoring: ",b.bottomCalc);break;case"function":c.botCalc=b.bottomCalc}c.botCalc&&(a.modules.columnCalcs=c,this.botCalcs.push(a),"group"!=this.table.options.columnCalcs&&this.initializeBottomRow())}}registerColumnField(){}removeCalcs(){var a=!1;this.topInitialized&&(this.topInitialized=!1,this.topElement.parentNode.removeChild(this.topElement),a=!0),this.botInitialized&&(this.botInitialized=!1,this.footerRemove(this.botElement),a=!0),a&&this.table.rowManager.adjustTableSize()}reinitializeCalcs(){this.topCalcs.length&&this.initializeTopRow(),this.botCalcs.length&&this.initializeBottomRow()}initializeTopRow(){var a=document.createDocumentFragment();this.topInitialized||(a.appendChild(document.createElement("br")),a.appendChild(this.topElement),this.table.columnManager.getContentsElement().insertBefore(a,this.table.columnManager.headersElement.nextSibling),this.topInitialized=!0)}initializeBottomRow(){this.botInitialized||(this.footerPrepend(this.botElement),this.botInitialized=!0)}scrollHorizontal(a){this.botInitialized&&this.botRow&&(this.botElement.scrollLeft=a)}recalc(a){var b,c;if(!this.blockCheck()&&(this.topInitialized||this.botInitialized)){if(b=this.rowsToData(a),this.topInitialized){for(this.topRow&&this.topRow.deleteCells(),c=this.generateRow("top",b),this.topRow=c;this.topElement.firstChild;)this.topElement.removeChild(this.topElement.firstChild);this.topElement.appendChild(c.getElement()),c.initialize(!0)}if(this.botInitialized){for(this.botRow&&this.botRow.deleteCells(),c=this.generateRow("bottom",b),this.botRow=c;this.botElement.firstChild;)this.botElement.removeChild(this.botElement.firstChild);this.botElement.appendChild(c.getElement()),c.initialize(!0)}this.table.rowManager.adjustTableSize(),this.table.modExists("frozenColumns")&&this.table.modules.frozenColumns.layout()}}recalcRowGroup(a){this.recalcGroup(this.table.modules.groupRows.getRowGroup(a))}recalcAll(){(this.topCalcs.length||this.botCalcs.length)&&("group"!==this.table.options.columnCalcs&&this.recalcActiveRows(),this.table.options.groupBy&&"table"!==this.table.options.columnCalcs&&this.table.modules.groupRows.getChildGroups().forEach(a=>{this.recalcGroup(a)}))}recalcGroup(a){var b,c;!this.blockCheck()&&a&&a.calcs&&(a.calcs.bottom&&(b=this.rowsToData(a.rows),c=this.generateRowData("bottom",b),a.calcs.bottom.updateData(c),a.calcs.bottom.reinitialize()),a.calcs.top&&(b=this.rowsToData(a.rows),c=this.generateRowData("top",b),a.calcs.top.updateData(c),a.calcs.top.reinitialize()))}generateTopRow(a){return this.generateRow("top",this.rowsToData(a))}generateBottomRow(a){return this.generateRow("bottom",this.rowsToData(a))}rowsToData(a){var b=[],c=this.table.options.dataTree&&this.table.options.dataTreeChildColumnCalcs,d=this.table.modules.dataTree;return a.forEach(a=>{b.push(a.getData()),c&&a.modules.dataTree?.open&&this.rowsToData(d.getFilteredTreeChildren(a)).forEach(c=>{b.push(a)})}),b}generateRow(a,b){var c,d=this.generateRowData(a,b);return this.table.modExists("mutator")&&this.table.modules.mutator.disable(),c=new I(d,this,"calc"),this.table.modExists("mutator")&&this.table.modules.mutator.enable(),c.getElement().classList.add("tabulator-calcs","tabulator-calcs-"+a),c.component=!1,c.getComponent=()=>(c.component||(c.component=new B(c)),c.component),c.generateCells=()=>{var b=[];this.table.columnManager.columnsByIndex.forEach(d=>{this.genColumn.setField(d.getField()),this.genColumn.hozAlign=d.hozAlign,d.definition[a+"CalcFormatter"]&&this.table.modExists("format")?this.genColumn.modules.format={formatter:this.table.modules.format.lookupFormatter(d.definition[a+"CalcFormatter"]),params:d.definition[a+"CalcFormatterParams"]||{}}:this.genColumn.modules.format={formatter:this.table.modules.format.lookupFormatter("plaintext"),params:{}},this.genColumn.definition.cssClass=d.definition.cssClass;var e=new D(this.genColumn,c);e.getElement(),e.column=d,e.setWidth(),d.cells.push(e),b.push(e),d.visible||e.hide()}),c.cells=b},c}generateRowData(a,b){var c,d,e={},f="top"==a?this.topCalcs:this.botCalcs,g="top"==a?"topCalc":"botCalc";return f.forEach(function(a){var f=[];a.modules.columnCalcs&&a.modules.columnCalcs[g]&&(b.forEach(function(b){f.push(a.getFieldValue(b))}),d=g+"Params",c="function"==typeof a.modules.columnCalcs[d]?a.modules.columnCalcs[d](f,b):a.modules.columnCalcs[d],a.setFieldValue(e,a.modules.columnCalcs[g](f,b,c)))}),e}hasTopCalcs(){return!!this.topCalcs.length}hasBottomCalcs(){return!!this.botCalcs.length}redraw(){this.topRow&&this.topRow.normalizeHeight(!0),this.botRow&&this.botRow.normalizeHeight(!0)}getResults(){var a={};return this.table.options.groupBy&&this.table.modExists("groupRows")?this.table.modules.groupRows.getGroups(!0).forEach(b=>{a[b.getKey()]=this.getGroupResults(b)}):a={top:this.topRow?this.topRow.getData():{},bottom:this.botRow?this.botRow.getData():{}},a}getGroupResults(a){var b=a._getSelf(),c=a.getSubGroups(),d={};return c.forEach(a=>{d[a.getKey()]=this.getGroupResults(a)}),{top:b.calcs.top?b.calcs.top.getData():{},bottom:b.calcs.bottom?b.calcs.bottom.getData():{},groups:d}}adjustForScrollbar(a){this.botRow&&(this.table.rtl?this.botElement.style.paddingLeft=a+"px":this.botElement.style.paddingRight=a+"px")}}var L={csv:function(a,b={},c){var d=b.delimiter?b.delimiter:",",e=[],f=[];a.forEach(a=>{var b=[];switch(a.type){case"group":console.warn("Download Warning - CSV downloader cannot process row groups");break;case"calc":console.warn("Download Warning - CSV downloader cannot process column calculations");break;case"header":a.columns.forEach((a,b)=>{a&&1===a.depth&&(f[b]=void 0===a.value||null===a.value?"":'"'+String(a.value).split('"').join('""')+'"')});break;case"row":a.columns.forEach(a=>{if(a){switch(typeof a.value){case"object":a.value=null!==a.value?JSON.stringify(a.value):"";break;case"undefined":a.value=""}b.push('"'+String(a.value).split('"').join('""')+'"')}}),e.push(b.join(d))}}),f.length&&e.unshift(f.join(d)),e=e.join("\n"),b.bom&&(e="\uFEFF"+e),c(e,"text/csv")},json:function(a,b,c){var d=[];a.forEach(a=>{var b={};switch(a.type){case"header":break;case"group":console.warn("Download Warning - JSON downloader cannot process row groups");break;case"calc":console.warn("Download Warning - JSON downloader cannot process column calculations");break;case"row":a.columns.forEach(a=>{a&&(b[a.component.getTitleDownload()||a.component.getField()]=a.value)}),d.push(b)}}),c(d=JSON.stringify(d,null," "),"application/json")},jsonLines:function(a,b,c){let d=[];a.forEach(a=>{let b={};switch(a.type){case"header":break;case"group":console.warn("Download Warning - JSON downloader cannot process row groups");break;case"calc":console.warn("Download Warning - JSON downloader cannot process column calculations");break;case"row":a.columns.forEach(a=>{a&&(b[a.component.getTitleDownload()||a.component.getField()]=a.value)}),d.push(JSON.stringify(b))}}),c(d.join("\n"),"application/x-ndjson")},pdf:function(a,b={},c){var d,e=[],f=[],g={},h=b.rowGroupStyles||{fontStyle:"bold",fontSize:12,cellPadding:6,fillColor:220},i=b.rowCalcStyles||{fontStyle:"bold",fontSize:10,cellPadding:4,fillColor:232},j=b.jsPDF||{},k=b.title?b.title:"";function l(a,b){var c=[];return a.columns.forEach(a=>{var d;if(a){switch(typeof a.value){case"object":a.value=null!==a.value?JSON.stringify(a.value):"";break;case"undefined":a.value=""}d={content:a.value,colSpan:a.width,rowSpan:a.height},b&&(d.styles=b),c.push(d)}}),c}j.orientation||(j.orientation=b.orientation||"landscape"),j.unit||(j.unit="pt"),a.forEach(a=>{switch(a.type){case"header":e.push(l(a));break;case"group":f.push(l(a,h));break;case"calc":f.push(l(a,i));break;case"row":f.push(l(a))}}),d=new(this.dependencyRegistry.lookup("jspdf","jsPDF"))(j),b.autoTable&&(g="function"==typeof b.autoTable?b.autoTable(d)||{}:b.autoTable),k&&(g.didDrawPage=function(a){d.text(k,40,30)}),g.head=e,g.body=f,d.autoTable(g),b.documentProcessing&&b.documentProcessing(d),c(d.output("arraybuffer"),"application/pdf")},xlsx:function(a,b,c){var d=b.sheetName||"Sheet1",e=this.dependencyRegistry.lookup("XLSX"),f=e.utils.book_new(),g=new m(this),h=!("compress"in b)||b.compress,i=b.writeOptions||{bookType:"xlsx",bookSST:!0,compression:h};function j(){var b=[],c=[],d={},f={s:{c:0,r:0},e:{c:a[0]?a[0].columns.reduce((a,b)=>a+(b&&b.width?b.width:1),0):0,r:a.length}};return a.forEach((a,d)=>{var e=[];a.columns.forEach(function(a,b){a?(e.push(a.value instanceof Date||"object"!=typeof a.value?a.value:JSON.stringify(a.value)),(a.width>1||a.height>-1)&&(a.height>1||a.width>1)&&c.push({s:{r:d,c:b},e:{r:d+a.height-1,c:b+a.width-1}})):e.push("")}),b.push(e)}),e.utils.sheet_add_aoa(d,b),d["!ref"]=e.utils.encode_range(f),c.length&&(d["!merges"]=c),d}if(i.type="binary",f.SheetNames=[],f.Sheets={},b.sheetOnly)return void c(j());if(b.sheets)for(var k in b.sheets)!0===b.sheets[k]?(f.SheetNames.push(k),f.Sheets[k]=j()):(f.SheetNames.push(k),g.commsSend(b.sheets[k],"download","intercept",{type:"xlsx",options:{sheetOnly:!0},active:this.active,intercept:function(a){f.Sheets[k]=a}}));else f.SheetNames.push(d),f.Sheets[d]=j();b.documentProcessing&&(f=b.documentProcessing(f)),c(function(a){for(var b=new ArrayBuffer(a.length),c=new Uint8Array(b),d=0;d!=a.length;++d)c[d]=255&a.charCodeAt(d);return b}(e.write(f,i)),"application/octet-stream")},html:function(a,b,c){this.modExists("export",!0)&&c(this.modules.export.generateHTMLTable(a),"text/html")}};class M extends p{static moduleName="download";static downloaders=L;constructor(a){super(a),this.registerTableOption("downloadEncoder",function(a,b){return new Blob([a],{type:b})}),this.registerTableOption("downloadConfig",{}),this.registerTableOption("downloadRowRange","active"),this.registerColumnOption("download"),this.registerColumnOption("titleDownload")}initialize(){this.deprecatedOptionsCheck(),this.registerTableFunction("download",this.download.bind(this)),this.registerTableFunction("downloadToTab",this.downloadToTab.bind(this))}deprecatedOptionsCheck(){}downloadToTab(a,b,c,d){this.download(a,b,c,d,!0)}download(a,b,c,d,e){var f=!1;if("function"==typeof a?f=a:M.downloaders[a]?f=M.downloaders[a]:console.warn("Download Error - No such download type found: ",a),f){var g=this.generateExportList(d);f.call(this.table,g,c||{},(function(c,d){e?!0===e?this.triggerDownload(c,d,a,b,!0):e(c):this.triggerDownload(c,d,a,b)}).bind(this))}}generateExportList(a){var b=this.table.modules.export.generateExportList(this.table.options.downloadConfig,!1,a||this.table.options.downloadRowRange,"download"),c=this.table.options.groupHeaderDownload;return c&&!Array.isArray(c)&&(c=[c]),b.forEach(a=>{var b;"group"===a.type&&(b=a.columns[0],c&&c[a.indent]&&(b.value=c[a.indent](b.value,a.component._group.getRowCount(),a.component._group.getData(),a.component)))}),b}triggerDownload(a,b,c,d,e){var f=document.createElement("a"),g=this.table.options.downloadEncoder(a,b);g&&(e?window.open(window.URL.createObjectURL(g)):(d=d||"Tabulator."+("function"==typeof c?"txt":c),navigator.msSaveOrOpenBlob?navigator.msSaveOrOpenBlob(g,d):(f.setAttribute("href",window.URL.createObjectURL(g)),f.setAttribute("download",d),f.style.display="none",document.body.appendChild(f),f.click(),document.body.removeChild(f))),this.dispatchExternal("downloadComplete"))}commsReceived(a,b,c){"intercept"===b&&this.download(c.type,"",c.options,c.active,c.intercept)}}function N(a,b){var c=b.mask,d=void 0!==b.maskLetterChar?b.maskLetterChar:"A",e=void 0!==b.maskNumberChar?b.maskNumberChar:"9",f=void 0!==b.maskWildcardChar?b.maskWildcardChar:"*";function g(b){var h=c[b];void 0!==h&&h!==f&&h!==d&&h!==e&&(a.value=a.value+""+h,g(b+1))}a.addEventListener("keydown",b=>{var g=a.value.length,h=b.key;if(1===b.key.length&&!b.ctrlKey&&!b.metaKey)if(g>=c.length)return b.preventDefault(),b.stopPropagation(),!1;else switch(c[g]){case d:if(h.toUpperCase()==h.toLowerCase())return b.preventDefault(),b.stopPropagation(),!1;break;case e:if(isNaN(h))return b.preventDefault(),b.stopPropagation(),!1;break;case f:break;default:if(h!==c[g])return b.preventDefault(),b.stopPropagation(),!1}}),a.addEventListener("keyup",c=>{1===c.key.length&&b.maskAutoFill&&g(a.value.length)}),a.placeholder||(a.placeholder=c),b.maskAutoFill&&g(a.value.length)}let O=class{constructor(a,b,c,d,e,f){this.edit=a,this.table=a.table,this.cell=b,this.params=this._initializeParams(f),this.data=[],this.displayItems=[],this.currentItems=[],this.focusedItem=null,this.input=this._createInputElement(),this.listEl=this._createListElement(),this.initialValues=null,this.isFilter="header"===b.getType(),this.filterTimeout=null,this.filtered=!1,this.typing=!1,this.values=[],this.popup=null,this.listIteration=0,this.lastAction="",this.filterTerm="",this.blurable=!0,this.actions={success:d,cancel:e},this._deprecatedOptionsCheck(),this._initializeValue(),c(this._onRendered.bind(this))}_deprecatedOptionsCheck(){}_initializeValue(){var a=this.cell.getValue();void 0===a&&void 0!==this.params.defaultValue&&(a=this.params.defaultValue),this.initialValues=this.params.multiselect?a:[a],this.isFilter&&(this.input.value=this.initialValues?this.initialValues.join(","):"",this.headerFilterInitialListGen())}_onRendered(){var a=this.cell.getElement();function b(a){a.stopPropagation()}this.isFilter||(this.input.style.height="100%",this.input.focus({preventScroll:!0})),a.addEventListener("click",b),setTimeout(()=>{a.removeEventListener("click",b)},1e3),this.input.addEventListener("mousedown",this._preventPopupBlur.bind(this))}_createListElement(){var a=document.createElement("div");return a.classList.add("tabulator-edit-list"),a.addEventListener("mousedown",this._preventBlur.bind(this)),a.addEventListener("keydown",this._inputKeyDown.bind(this)),a}_setListWidth(){var a=this.isFilter?this.input:this.cell.getElement();this.listEl.style.minWidth=a.offsetWidth+"px",this.params.maxWidth&&(!0===this.params.maxWidth?this.listEl.style.maxWidth=a.offsetWidth+"px":"number"==typeof this.params.maxWidth?this.listEl.style.maxWidth=this.params.maxWidth+"px":this.listEl.style.maxWidth=this.params.maxWidth)}_createInputElement(){var a=this.params.elementAttributes,b=document.createElement("input");if(b.setAttribute("type",this.params.clearable?"search":"text"),b.style.padding="4px",b.style.width="100%",b.style.boxSizing="border-box",this.params.autocomplete||(b.style.cursor="default",b.style.caretColor="transparent"),a&&"object"==typeof a)for(let c in a)"+"==c.charAt(0)?(c=c.slice(1),b.setAttribute(c,b.getAttribute(c)+a["+"+c])):b.setAttribute(c,a[c]);return this.params.mask&&N(b,this.params),this._bindInputEvents(b),b}_initializeParams(a){var b,c=["values","valuesURL","valuesLookup"];return(a=Object.assign({},a)).verticalNavigation=a.verticalNavigation||"editor",a.placeholderLoading=void 0===a.placeholderLoading?"Searching ...":a.placeholderLoading,a.placeholderEmpty=void 0===a.placeholderEmpty?"No Results Found":a.placeholderEmpty,a.filterDelay=void 0===a.filterDelay?300:a.filterDelay,a.emptyValue=Object.keys(a).includes("emptyValue")?a.emptyValue:"",(b=Object.keys(a).filter(a=>c.includes(a)).length)?b>1&&console.warn("list editor config error - only one of the values, valuesURL, or valuesLookup options can be set on the same editor"):console.warn("list editor config error - either the values, valuesURL, or valuesLookup option must be set"),a.autocomplete?a.multiselect&&(a.multiselect=!1,console.warn("list editor config error - multiselect option is not available when autocomplete is enabled")):(a.freetext&&(a.freetext=!1,console.warn("list editor config error - freetext option is only available when autocomplete is enabled")),a.filterFunc&&(a.filterFunc=!1,console.warn("list editor config error - filterFunc option is only available when autocomplete is enabled")),a.filterRemote&&(a.filterRemote=!1,console.warn("list editor config error - filterRemote option is only available when autocomplete is enabled")),a.mask&&(a.mask=!1,console.warn("list editor config error - mask option is only available when autocomplete is enabled")),a.allowEmpty&&(a.allowEmpty=!1,console.warn("list editor config error - allowEmpty option is only available when autocomplete is enabled")),a.listOnEmpty&&(a.listOnEmpty=!1,console.warn("list editor config error - listOnEmpty option is only available when autocomplete is enabled"))),a.filterRemote&&!("function"==typeof a.valuesLookup||a.valuesURL)&&(a.filterRemote=!1,console.warn("list editor config error - filterRemote option should only be used when values list is populated from a remote source")),a}_bindInputEvents(a){a.addEventListener("focus",this._inputFocus.bind(this)),a.addEventListener("click",this._inputClick.bind(this)),a.addEventListener("blur",this._inputBlur.bind(this)),a.addEventListener("keydown",this._inputKeyDown.bind(this)),a.addEventListener("search",this._inputSearch.bind(this)),this.params.autocomplete&&a.addEventListener("keyup",this._inputKeyUp.bind(this))}_inputFocus(a){this.rebuildOptionsList()}_filter(){this.params.filterRemote?(clearTimeout(this.filterTimeout),this.filterTimeout=setTimeout(()=>{this.rebuildOptionsList()},this.params.filterDelay)):this._filterList()}_inputClick(a){a.stopPropagation()}_inputBlur(a){this.blurable&&(this.popup?this.popup.hide():this._resolveValue(!0))}_inputSearch(){this._clearChoices()}_inputKeyDown(a){switch(a.key){case"ArrowUp":this._keyUp(a);break;case"ArrowDown":this._keyDown(a);break;case"ArrowLeft":case"ArrowRight":this._keySide(a);break;case"Enter":this._keyEnter();break;case"Escape":this._keyEsc();break;case"Home":case"End":this._keyHomeEnd(a);break;case"Tab":this._keyTab(a);break;default:this._keySelectLetter(a)}}_inputKeyUp(a){switch(a.key){case"ArrowUp":case"ArrowLeft":case"ArrowRight":case"ArrowDown":case"Enter":case"Escape":break;default:this._keyAutoCompLetter(a)}}_preventPopupBlur(){this.popup&&this.popup.blockHide(),setTimeout(()=>{this.popup&&this.popup.restoreHide()},10)}_preventBlur(){this.blurable=!1,setTimeout(()=>{this.blurable=!0},10)}_keyTab(a){this.params.autocomplete&&"typing"===this.lastAction?this._resolveValue(!0):this.focusedItem&&this._chooseItem(this.focusedItem,!0)}_keyUp(a){var b=this.displayItems.indexOf(this.focusedItem);("editor"==this.params.verticalNavigation||"hybrid"==this.params.verticalNavigation&&b)&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault(),b>0&&this._focusItem(this.displayItems[b-1]))}_keyDown(a){var b=this.displayItems.indexOf(this.focusedItem);("editor"==this.params.verticalNavigation||"hybrid"==this.params.verticalNavigation&&b<this.displayItems.length-1)&&(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault(),b<this.displayItems.length-1&&(-1==b?this._focusItem(this.displayItems[0]):this._focusItem(this.displayItems[b+1])))}_keySide(a){this.params.autocomplete||(a.stopImmediatePropagation(),a.stopPropagation(),a.preventDefault())}_keyEnter(a){this.params.autocomplete&&"typing"===this.lastAction?this._resolveValue(!0):this.focusedItem&&this._chooseItem(this.focusedItem)}_keyEsc(a){this._cancel()}_keyHomeEnd(a){this.params.autocomplete&&a.stopImmediatePropagation()}_keySelectLetter(a){this.params.autocomplete||(a.preventDefault(),1===a.key.length&&this._scrollToValue(a.key.toUpperCase().charCodeAt(0)))}_keyAutoCompLetter(a){this._filter(),this.lastAction="typing",this.typing=!0}_scrollToValue(a){clearTimeout(this.filterTimeout);var b=String.fromCharCode(a).toLowerCase();this.filterTerm+=b.toLowerCase();var c=this.displayItems.find(a=>void 0!==a.label&&a.label.toLowerCase().startsWith(this.filterTerm));c&&this._focusItem(c),this.filterTimeout=setTimeout(()=>{this.filterTerm=""},800)}_focusItem(a){this.lastAction="focus",this.focusedItem&&this.focusedItem.element&&this.focusedItem.element.classList.remove("focused"),this.focusedItem=a,a&&a.element&&(a.element.classList.add("focused"),a.element.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"}))}headerFilterInitialListGen(){this._generateOptions(!0)}rebuildOptionsList(){this._generateOptions().then(this._sortOptions.bind(this)).then(this._buildList.bind(this)).then(this._showList.bind(this)).catch(a=>{Number.isInteger(a)||console.error("List generation error",a)})}_filterList(){this._buildList(this._filterOptions()),this._showList()}_generateOptions(a){var b=[],c=++this.listIteration;return(this.filtered=!1,this.params.values?b=this.params.values:this.params.valuesURL?b=this._ajaxRequest(this.params.valuesURL,this.input.value):"function"==typeof this.params.valuesLookup?b=this.params.valuesLookup(this.cell,this.input.value):this.params.valuesLookup&&(b=this._uniqueColumnValues(this.params.valuesLookupField)),b instanceof Promise)?(a||this._addPlaceholder(this.params.placeholderLoading),b.then().then(a=>this.listIteration===c?this._parseList(a):Promise.reject(c))):Promise.resolve(this._parseList(b))}_addPlaceholder(a){var b=document.createElement("div");"function"==typeof a&&(a=a(this.cell.getComponent(),this.listEl)),a&&(this._clearList(),a instanceof HTMLElement?b=a:(b.classList.add("tabulator-edit-list-placeholder"),b.innerHTML=a),this.listEl.appendChild(b),this._showList())}_ajaxRequest(a,b){var c=this.params.filterRemote?{term:b}:{};return fetch(a=t(a,{},c)).then(a=>a.ok?a.json().catch(a=>(console.warn("List Ajax Load Error - Invalid JSON returned",a),Promise.reject(a))):(console.error("List Ajax Load Error - Connection Error: "+a.status,a.statusText),Promise.reject(a))).catch(a=>(console.error("List Ajax Load Error - Connection Error: ",a),Promise.reject(a)))}_uniqueColumnValues(a){var b,c={},d=this.table.getData(this.params.valuesLookup);return(b=a?this.table.columnManager.getColumnByField(a):this.cell.getColumn()._getSelf())?d.forEach(a=>{var d=b.getFieldValue(a);this._emptyValueCheck(d)||(this.params.multiselect&&Array.isArray(d)?d.forEach(a=>{this._emptyValueCheck(a)||(c[a]=!0)}):c[d]=!0)}):(console.warn("unable to find matching column to create select lookup list:",a),c=[]),Object.keys(c)}_emptyValueCheck(a){return null==a||""===a}_parseList(a){var b=[];return Array.isArray(a)||(a=Object.entries(a).map(([a,b])=>({label:b,value:a}))),a.forEach(a=>{"object"!=typeof a&&(a={label:a,value:a}),this._parseListItem(a,b,0)}),!this.currentItems.length&&this.params.freetext&&(this.input.value=this.initialValues,this.typing=!0,this.lastAction="typing"),this.data=b,b}_parseListItem(a,b,c){var d={};a.options?d=this._parseListGroup(a,c+1):(d={label:a.label,value:a.value,itemParams:a.itemParams,elementAttributes:a.elementAttributes,element:!1,selected:!1,visible:!0,level:c,original:a},this.initialValues&&this.initialValues.indexOf(a.value)>-1&&this._chooseItem(d,!0)),b.push(d)}_parseListGroup(a,b){var c={label:a.label,group:!0,itemParams:a.itemParams,elementAttributes:a.elementAttributes,element:!1,visible:!0,level:b,options:[],original:a};return a.options.forEach(a=>{this._parseListItem(a,c.options,b)}),c}_sortOptions(a){var b;return this.params.sort&&(b="function"==typeof this.params.sort?this.params.sort:this._defaultSortFunction.bind(this),this._sortGroup(b,a)),a}_sortGroup(a,b){b.sort((b,c)=>a(b.label,c.label,b.value,c.value,b.original,c.original)),b.forEach(b=>{b.group&&this._sortGroup(a,b.options)})}_defaultSortFunction(a,b){var c,d,e,f,g,h=0,i=/(\d+)|(\D+)/g,j=/\d/,k=0;if("desc"===this.params.sort&&([a,b]=[b,a]),a||0===a)if(b||0===b){if(isFinite(a)&&isFinite(b))return a-b;if((c=String(a).toLowerCase())===(d=String(b).toLowerCase()))return 0;if(!(j.test(c)&&j.test(d)))return c>d?1:-1;for(c=c.match(i),d=d.match(i),g=c.length>d.length?d.length:c.length;h<g;)if((e=c[h])!==(f=d[h++]))if(isFinite(e)&&isFinite(f))return"0"===e.charAt(0)&&(e="."+e),"0"===f.charAt(0)&&(f="."+f),e-f;else return e>f?1:-1;return c.length>d.length}else k=1;else k=b||0===b?-1:0;return k}_filterOptions(){var a=this.params.filterFunc||this._defaultFilterFunc,b=this.input.value;return b?(this.filtered=!0,this.data.forEach(c=>{this._filterItem(a,b,c)})):this.filtered=!1,this.data}_filterItem(a,b,c){var d=!1;return c.group?(c.options.forEach(c=>{this._filterItem(a,b,c)&&(d=!0)}),c.visible=d):c.visible=a(b,c.label,c.value,c.original),c.visible}_defaultFilterFunc(a,b,c,d){return a=String(a).toLowerCase(),!!(null!=b&&(String(b).toLowerCase().indexOf(a)>-1||String(c).toLowerCase().indexOf(a)>-1))}_clearList(){for(;this.listEl.firstChild;)this.listEl.removeChild(this.listEl.firstChild);this.displayItems=[]}_buildList(a){this._clearList(),a.forEach(a=>{this._buildItem(a)}),this.displayItems.length||this._addPlaceholder(this.params.placeholderEmpty)}_buildItem(a){var b,c=a.element;if(!this.filtered||a.visible){if(!c){if((c=document.createElement("div")).tabIndex=0,(b=this.params.itemFormatter?this.params.itemFormatter(a.label,a.value,a.original,c):a.label)instanceof HTMLElement?c.appendChild(b):c.innerHTML=b,a.group?c.classList.add("tabulator-edit-list-group"):c.classList.add("tabulator-edit-list-item"),c.classList.add("tabulator-edit-list-group-level-"+a.level),a.elementAttributes&&"object"==typeof a.elementAttributes)for(let b in a.elementAttributes)"+"==b.charAt(0)?(b=b.slice(1),c.setAttribute(b,this.input.getAttribute(b)+a.elementAttributes["+"+b])):c.setAttribute(b,a.elementAttributes[b]);a.group?c.addEventListener("click",this._groupClick.bind(this,a)):c.addEventListener("click",this._itemClick.bind(this,a)),c.addEventListener("mousedown",this._preventBlur.bind(this)),a.element=c}this._styleItem(a),this.listEl.appendChild(c),a.group?a.options.forEach(a=>{this._buildItem(a)}):this.displayItems.push(a)}}_showList(){var a=this.popup&&this.popup.isVisible();if(this.input.parentNode){if(this.params.autocomplete&&""===this.input.value&&!this.params.listOnEmpty){this.popup&&this.popup.hide(!0);return}this._setListWidth(),this.popup||(this.popup=this.edit.popup(this.listEl)),this.popup.show(this.cell.getElement(),"bottom"),a||setTimeout(()=>{this.popup.hideOnBlur(this._resolveValue.bind(this,!0))},10)}}_styleItem(a){a&&a.element&&(a.selected?a.element.classList.add("active"):a.element.classList.remove("active"))}_itemClick(a,b){b.stopPropagation(),this._chooseItem(a)}_groupClick(a,b){b.stopPropagation()}_cancel(){this.popup.hide(!0),this.actions.cancel()}_clearChoices(){this.typing=!0,this.currentItems.forEach(a=>{a.selected=!1,this._styleItem(a)}),this.currentItems=[],this.focusedItem=null}_chooseItem(a,b){var c;this.typing=!1,this.params.multiselect?((c=this.currentItems.indexOf(a))>-1?(this.currentItems.splice(c,1),a.selected=!1):(this.currentItems.push(a),a.selected=!0),this.input.value=this.currentItems.map(a=>a.label).join(","),this._styleItem(a)):(this.currentItems=[a],a.selected=!0,this.input.value=a.label,this._styleItem(a),b||this._resolveValue()),this._focusItem(a)}_resolveValue(a){var b,c;if(this.popup&&this.popup.hide(!0),this.params.multiselect)b=this.currentItems.map(a=>a.value);else if(a&&this.params.autocomplete&&this.typing)if(!this.params.freetext&&(!this.params.allowEmpty||""!==this.input.value))return void this.actions.cancel();else b=this.input.value;else b=this.currentItems[0]?this.currentItems[0].value:null==(c=Array.isArray(this.initialValues)?this.initialValues[0]:this.initialValues)||""===c?c:this.params.emptyValue;""===b&&(b=this.params.emptyValue),this.actions.success(b),this.isFilter&&(this.initialValues=b&&!Array.isArray(b)?[b]:b,this.currentItems=[])}};var P={input:function(a,b,c,d,e){var f=a.getValue(),g=document.createElement("input");if(g.setAttribute("type",e.search?"search":"text"),g.style.padding="4px",g.style.width="100%",g.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),g.setAttribute(a,g.getAttribute(a)+e.elementAttributes["+"+a])):g.setAttribute(a,e.elementAttributes[a]);function h(a){null==f&&""!==g.value||g.value!==f?c(g.value)&&(f=g.value):d()}return g.value=void 0!==f?f:"",b(function(){"cell"===a.getType()&&(g.focus({preventScroll:!0}),g.style.height="100%",e.selectContents&&g.select())}),g.addEventListener("change",h),g.addEventListener("blur",h),g.addEventListener("keydown",function(a){switch(a.key){case"Enter":h();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation()}}),e.mask&&N(g,e),g},textarea:function(a,b,c,d,e){var f=a.getValue(),g=e.verticalNavigation||"hybrid",h=String(null!=f?f:""),i=document.createElement("textarea"),j=0;if(i.style.display="block",i.style.padding="2px",i.style.height="100%",i.style.width="100%",i.style.boxSizing="border-box",i.style.whiteSpace="pre-wrap",i.style.resize="none",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),i.setAttribute(a,i.getAttribute(a)+e.elementAttributes["+"+a])):i.setAttribute(a,e.elementAttributes[a]);function k(b){null==f&&""!==i.value||i.value!==f?(c(i.value)&&(f=i.value),setTimeout(function(){a.getRow().normalizeHeight()},300)):d()}return i.value=h,b(function(){"cell"===a.getType()&&(i.focus({preventScroll:!0}),i.style.height="100%",i.scrollHeight,i.style.height=i.scrollHeight+"px",a.getRow().normalizeHeight(),e.selectContents&&i.select())}),i.addEventListener("change",k),i.addEventListener("blur",k),i.addEventListener("keyup",function(){i.style.height="";var b=i.scrollHeight;i.style.height=b+"px",b!=j&&(j=b,a.getRow().normalizeHeight())}),i.addEventListener("keydown",function(a){switch(a.key){case"Enter":a.shiftKey&&e.shiftEnterSubmit&&k();break;case"Escape":d();break;case"ArrowUp":("editor"==g||"hybrid"==g&&i.selectionStart)&&(a.stopImmediatePropagation(),a.stopPropagation());break;case"ArrowDown":("editor"==g||"hybrid"==g&&i.selectionStart!==i.value.length)&&(a.stopImmediatePropagation(),a.stopPropagation());break;case"End":case"Home":a.stopPropagation()}}),e.mask&&N(i,e),i},number:function(a,b,c,d,e){var f=a.getValue(),g=e.verticalNavigation||"editor",h=document.createElement("input");if(h.setAttribute("type","number"),void 0!==e.max&&h.setAttribute("max",e.max),void 0!==e.min&&h.setAttribute("min",e.min),void 0!==e.step&&h.setAttribute("step",e.step),h.style.padding="4px",h.style.width="100%",h.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),h.setAttribute(a,h.getAttribute(a)+e.elementAttributes["+"+a])):h.setAttribute(a,e.elementAttributes[a]);h.value=f;var i=function(a){j()};function j(){var a=h.value;isNaN(a)||""===a||(a=Number(a)),a!==f?c(a)&&(f=a):d()}return b(function(){"cell"===a.getType()&&(h.removeEventListener("blur",i),h.focus({preventScroll:!0}),h.style.height="100%",h.addEventListener("blur",i),e.selectContents&&h.select())}),h.addEventListener("keydown",function(a){switch(a.key){case"Enter":j();break;case"Escape":d();break;case"ArrowUp":case"ArrowDown":"editor"==g&&(a.stopImmediatePropagation(),a.stopPropagation());break;case"End":case"Home":a.stopPropagation()}}),e.mask&&N(h,e),h},range:function(a,b,c,d,e){var f=a.getValue(),g=document.createElement("input");if(g.setAttribute("type","range"),void 0!==e.max&&g.setAttribute("max",e.max),void 0!==e.min&&g.setAttribute("min",e.min),void 0!==e.step&&g.setAttribute("step",e.step),g.style.padding="4px",g.style.width="100%",g.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),g.setAttribute(a,g.getAttribute(a)+e.elementAttributes["+"+a])):g.setAttribute(a,e.elementAttributes[a]);function h(){var a=g.value;isNaN(a)||""===a||(a=Number(a)),a!=f?c(a)&&(f=a):d()}return g.value=f,b(function(){"cell"===a.getType()&&(g.focus({preventScroll:!0}),g.style.height="100%")}),g.addEventListener("blur",function(a){h()}),g.addEventListener("keydown",function(a){switch(a.key){case"Enter":h();break;case"Escape":d()}}),g},date:function(a,b,c,d,e){var f=e.format,g=e.verticalNavigation||"editor",h=f?window.DateTime||luxon.DateTime:null,i=a.getValue(),j=document.createElement("input");function k(a){return(h.isDateTime(a)?a:"iso"===f?h.fromISO(String(a)):h.fromFormat(String(a),f)).toFormat("yyyy-MM-dd")}if(j.type="date",j.style.padding="4px",j.style.width="100%",j.style.boxSizing="border-box",e.max&&j.setAttribute("max",f?k(e.max):e.max),e.min&&j.setAttribute("min",f?k(e.min):e.min),e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),j.setAttribute(a,j.getAttribute(a)+e.elementAttributes["+"+a])):j.setAttribute(a,e.elementAttributes[a]);function l(){var a,b=j.value;if(null==i&&""!==b||b!==i){if(b&&f)switch(a=h.fromFormat(String(b),"yyyy-MM-dd"),f){case!0:b=a;break;case"iso":b=a.toISO();break;default:b=a.toFormat(f)}c(b)&&(i=j.value)}else d()}return i=void 0!==i?i:"",f&&(h?i=k(i):console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js")),j.value=i,b(function(){"cell"===a.getType()&&(j.focus({preventScroll:!0}),j.style.height="100%",e.selectContents&&j.select())}),j.addEventListener("blur",function(a){(a.relatedTarget||a.rangeParent||a.explicitOriginalTarget!==j)&&l()}),j.addEventListener("keydown",function(a){switch(a.key){case"Enter":l();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation();break;case"ArrowUp":case"ArrowDown":"editor"==g&&(a.stopImmediatePropagation(),a.stopPropagation())}}),j},time:function(a,b,c,d,e){var f=e.format,g=e.verticalNavigation||"editor",h=f?window.DateTime||luxon.DateTime:null,i=a.getValue(),j=document.createElement("input");if(j.type="time",j.style.padding="4px",j.style.width="100%",j.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),j.setAttribute(a,j.getAttribute(a)+e.elementAttributes["+"+a])):j.setAttribute(a,e.elementAttributes[a]);function k(){var a,b=j.value;if(null==i&&""!==b||b!==i){if(b&&f)switch(a=h.fromFormat(String(b),"hh:mm"),f){case!0:b=a;break;case"iso":b=a.toISO();break;default:b=a.toFormat(f)}c(b)&&(i=j.value)}else d()}return i=void 0!==i?i:"",f&&(h?i=(h.isDateTime(i)?i:"iso"===f?h.fromISO(String(i)):h.fromFormat(String(i),f)).toFormat("HH:mm"):console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js")),j.value=i,b(function(){"cell"==a.getType()&&(j.focus({preventScroll:!0}),j.style.height="100%",e.selectContents&&j.select())}),j.addEventListener("blur",function(a){(a.relatedTarget||a.rangeParent||a.explicitOriginalTarget!==j)&&k()}),j.addEventListener("keydown",function(a){switch(a.key){case"Enter":k();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation();break;case"ArrowUp":case"ArrowDown":"editor"==g&&(a.stopImmediatePropagation(),a.stopPropagation())}}),j},datetime:function(a,b,c,d,e){var f,g=e.format,h=e.verticalNavigation||"editor",i=g?this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"):null,j=a.getValue(),k=document.createElement("input");if(k.type="datetime-local",k.style.padding="4px",k.style.width="100%",k.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),k.setAttribute(a,k.getAttribute(a)+e.elementAttributes["+"+a])):k.setAttribute(a,e.elementAttributes[a]);function l(){var a,b=k.value;if(null==j&&""!==b||b!==j){if(b&&g)switch(a=i.fromISO(String(b)),g){case!0:b=a;break;case"iso":b=a.toISO();break;default:b=a.toFormat(g)}c(b)&&(j=k.value)}else d()}return j=void 0!==j?j:"",g&&(i?j=(f=i.isDateTime(j)?j:"iso"===g?i.fromISO(String(j)):i.fromFormat(String(j),g)).toFormat("yyyy-MM-dd")+"T"+f.toFormat("HH:mm"):console.error("Editor Error - 'date' editor 'format' param is dependant on luxon.js")),k.value=j,b(function(){"cell"===a.getType()&&(k.focus({preventScroll:!0}),k.style.height="100%",e.selectContents&&k.select())}),k.addEventListener("blur",function(a){(a.relatedTarget||a.rangeParent||a.explicitOriginalTarget!==k)&&l()}),k.addEventListener("keydown",function(a){switch(a.key){case"Enter":l();break;case"Escape":d();break;case"End":case"Home":a.stopPropagation();break;case"ArrowUp":case"ArrowDown":"editor"==h&&(a.stopImmediatePropagation(),a.stopPropagation())}}),k},list:function(a,b,c,d,e){return new O(this,a,b,c,d,e).input},star:function(a,b,c,d,e){var f=this,g=a.getElement(),h=a.getValue(),i=g.getElementsByTagName("svg").length||5,j=g.getElementsByTagName("svg")[0]?g.getElementsByTagName("svg")[0].getAttribute("width"):14,k=[],l=document.createElement("div"),m=document.createElementNS("http://www.w3.org/2000/svg","svg");function n(a){k.forEach(function(b,c){c<a?("ie"==f.table.browser?b.setAttribute("class","tabulator-star-active"):b.classList.replace("tabulator-star-inactive","tabulator-star-active"),b.innerHTML='<polygon fill="#488CE9" stroke="#014AAE" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>'):("ie"==f.table.browser?b.setAttribute("class","tabulator-star-inactive"):b.classList.replace("tabulator-star-active","tabulator-star-inactive"),b.innerHTML='<polygon fill="#010155" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>')})}if(g.style.whiteSpace="nowrap",g.style.overflow="hidden",g.style.textOverflow="ellipsis",l.style.verticalAlign="middle",l.style.display="inline-block",l.style.padding="4px",m.setAttribute("width",j),m.setAttribute("height",j),m.setAttribute("viewBox","0 0 512 512"),m.setAttribute("xml:space","preserve"),m.style.padding="0 1px",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),l.setAttribute(a,l.getAttribute(a)+e.elementAttributes["+"+a])):l.setAttribute(a,e.elementAttributes[a]);for(var o=1;o<=i;o++)!function(a){var b=document.createElement("span"),d=m.cloneNode(!0);k.push(d),b.addEventListener("mouseenter",function(b){b.stopPropagation(),b.stopImmediatePropagation(),n(a)}),b.addEventListener("mousemove",function(a){a.stopPropagation(),a.stopImmediatePropagation()}),b.addEventListener("click",function(b){b.stopPropagation(),b.stopImmediatePropagation(),c(a),g.blur()}),b.appendChild(d),l.appendChild(b)}(o);return n(h=Math.min(parseInt(h),i)),l.addEventListener("mousemove",function(a){n(0)}),l.addEventListener("click",function(a){c(0)}),g.addEventListener("blur",function(a){d()}),g.addEventListener("keydown",function(a){var b,e;switch(a.key){case"ArrowRight":h=b=h+1,n(b);break;case"ArrowLeft":h=e=h-1,n(e);break;case"Enter":c(h);break;case"Escape":d()}}),l},progress:function(a,b,c,d,e){var f,g,h=a.getElement(),i=void 0===e.max?h.getElementsByTagName("div")[0]&&h.getElementsByTagName("div")[0].getAttribute("max")||100:e.max,j=void 0===e.min?h.getElementsByTagName("div")[0]&&h.getElementsByTagName("div")[0].getAttribute("min")||0:e.min,k=(i-j)/100,l=a.getValue()||0,m=document.createElement("div"),n=document.createElement("div");function o(){var a=window.getComputedStyle(h,null),b=k*Math.round(n.offsetWidth/((h.clientWidth-parseInt(a.getPropertyValue("padding-left"))-parseInt(a.getPropertyValue("padding-right")))/100))+j;c(b),h.setAttribute("aria-valuenow",b),h.setAttribute("aria-label",l)}if(m.style.position="absolute",m.style.right="0",m.style.top="0",m.style.bottom="0",m.style.width="5px",m.classList.add("tabulator-progress-handle"),n.style.display="inline-block",n.style.position="relative",n.style.height="100%",n.style.backgroundColor="#488CE9",n.style.maxWidth="100%",n.style.minWidth="0%",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),n.setAttribute(a,n.getAttribute(a)+e.elementAttributes["+"+a])):n.setAttribute(a,e.elementAttributes[a]);return h.style.padding="4px 4px",l=Math.round(((l=Math.max(parseFloat(l=Math.min(parseFloat(l),i)),j))-j)/k),n.style.width=l+"%",h.setAttribute("aria-valuemin",j),h.setAttribute("aria-valuemax",i),n.appendChild(m),m.addEventListener("mousedown",function(a){f=a.screenX,g=n.offsetWidth}),m.addEventListener("mouseover",function(){m.style.cursor="ew-resize"}),h.addEventListener("mousemove",function(a){f&&(n.style.width=g+a.screenX-f+"px")}),h.addEventListener("mouseup",function(a){f&&(a.stopPropagation(),a.stopImmediatePropagation(),f=!1,g=!1,o())}),h.addEventListener("keydown",function(a){switch(a.key){case"ArrowRight":a.preventDefault(),n.style.width=n.clientWidth+h.clientWidth/100+"px";break;case"ArrowLeft":a.preventDefault(),n.style.width=n.clientWidth-h.clientWidth/100+"px";break;case"Tab":case"Enter":o();break;case"Escape":d()}}),h.addEventListener("blur",function(){d()}),n},tickCross:function(a,b,c,d,e){var f=a.getValue(),g=document.createElement("input"),h=e.tristate,i=void 0===e.indeterminateValue?null:e.indeterminateValue,j=!1,k=Object.keys(e).includes("trueValue"),l=Object.keys(e).includes("falseValue");if(g.setAttribute("type","checkbox"),g.style.marginTop="5px",g.style.boxSizing="border-box",e.elementAttributes&&"object"==typeof e.elementAttributes)for(let a in e.elementAttributes)"+"==a.charAt(0)?(a=a.slice(1),g.setAttribute(a,g.getAttribute(a)+e.elementAttributes["+"+a])):g.setAttribute(a,e.elementAttributes[a]);function m(a){var b=g.checked;if(k&&b?b=e.trueValue:l&&!b&&(b=e.falseValue),!h)return b;if(a)if(j)return i;else return b;return g.checked&&!j?(g.checked=!1,g.indeterminate=!0,j=!0,i):(j=!1,b)}return g.value=f,h&&(void 0===f||f===i||""===f)&&(j=!0,g.indeterminate=!0),"firefox"!=this.table.browser&&"safari"!=this.table.browser&&b(function(){"cell"===a.getType()&&g.focus({preventScroll:!0})}),g.checked=k?f===e.trueValue:!0===f||"true"===f||"True"===f||1===f,g.addEventListener("change",function(a){c(m())}),g.addEventListener("blur",function(a){c(m(!0))}),g.addEventListener("keydown",function(a){"Enter"==a.key&&c(m()),"Escape"==a.key&&d()}),g},adaptable:function(a,b,c,d,e){var f,g,h=a._getSelf().column;return f=e.editorLookup?e.editorLookup(a):function(a){var b=a.getValue(),c="input";switch(typeof b){case"number":c="number";break;case"boolean":c="tickCross";break;case"string":b.includes("\n")&&(c="textarea")}return c}(a),e.paramsLookup&&(g="function"==typeof e.paramsLookup?e.paramsLookup(f,a):e.paramsLookup[f]),this.table.modules.edit.lookupEditor(f,h).call(this,a,b,c,d,g||{})}};class Q extends p{static moduleName="edit";static editors=P;constructor(a){super(a),this.currentCell=!1,this.mouseClick=!1,this.recursionBlock=!1,this.invalidEdit=!1,this.editedCells=[],this.convertEmptyValues=!1,this.editors=Q.editors,this.registerTableOption("editTriggerEvent","focus"),this.registerTableOption("editorEmptyValue"),this.registerTableOption("editorEmptyValueFunc",this.emptyValueCheck.bind(this)),this.registerColumnOption("editable"),this.registerColumnOption("editor"),this.registerColumnOption("editorParams"),this.registerColumnOption("editorEmptyValue"),this.registerColumnOption("editorEmptyValueFunc"),this.registerColumnOption("cellEditing"),this.registerColumnOption("cellEdited"),this.registerColumnOption("cellEditCancelled"),this.registerTableFunction("getEditedCells",this.getEditedCells.bind(this)),this.registerTableFunction("clearCellEdited",this.clearCellEdited.bind(this)),this.registerTableFunction("navigatePrev",this.navigatePrev.bind(this)),this.registerTableFunction("navigateNext",this.navigateNext.bind(this)),this.registerTableFunction("navigateLeft",this.navigateLeft.bind(this)),this.registerTableFunction("navigateRight",this.navigateRight.bind(this)),this.registerTableFunction("navigateUp",this.navigateUp.bind(this)),this.registerTableFunction("navigateDown",this.navigateDown.bind(this)),this.registerComponentFunction("cell","isEdited",this.cellIsEdited.bind(this)),this.registerComponentFunction("cell","clearEdited",this.clearEdited.bind(this)),this.registerComponentFunction("cell","edit",this.editCell.bind(this)),this.registerComponentFunction("cell","cancelEdit",this.cellCancelEdit.bind(this)),this.registerComponentFunction("cell","navigatePrev",this.navigatePrev.bind(this)),this.registerComponentFunction("cell","navigateNext",this.navigateNext.bind(this)),this.registerComponentFunction("cell","navigateLeft",this.navigateLeft.bind(this)),this.registerComponentFunction("cell","navigateRight",this.navigateRight.bind(this)),this.registerComponentFunction("cell","navigateUp",this.navigateUp.bind(this)),this.registerComponentFunction("cell","navigateDown",this.navigateDown.bind(this))}initialize(){this.subscribe("cell-init",this.bindEditor.bind(this)),this.subscribe("cell-delete",this.clearEdited.bind(this)),this.subscribe("cell-value-changed",this.updateCellClass.bind(this)),this.subscribe("column-layout",this.initializeColumnCheck.bind(this)),this.subscribe("column-delete",this.columnDeleteCheck.bind(this)),this.subscribe("row-deleting",this.rowDeleteCheck.bind(this)),this.subscribe("row-layout",this.rowEditableCheck.bind(this)),this.subscribe("data-refreshing",this.cancelEdit.bind(this)),this.subscribe("clipboard-paste",this.pasteBlocker.bind(this)),this.confirm("edit-nav-disabled")||(this.subscribe("keybinding-nav-prev",this.navigatePrev.bind(this,void 0)),this.subscribe("keybinding-nav-next",this.keybindingNavigateNext.bind(this)),this.subscribe("keybinding-nav-up",this.navigateUp.bind(this,void 0)),this.subscribe("keybinding-nav-down",this.navigateDown.bind(this,void 0))),this.subscribe("edit-check-editing",this.checkEditing.bind(this)),this.subscribe("edit-cancel-cell",this.cancelEditEvent.bind(this)),Object.keys(this.table.options).includes("editorEmptyValue")&&(this.convertEmptyValues=!0)}pasteBlocker(a){if(this.currentCell)return!0}keybindingNavigateNext(a){var b=this.currentCell,c=this.options("tabEndNewRow");b&&!this.navigateNext(b,a)&&c&&(b.getElement().firstChild.blur(),this.invalidEdit||(c=!0===c?this.table.addRow({}):"function"==typeof c?this.table.addRow(c(b.row.getComponent())):this.table.addRow(Object.assign({},c))).then(()=>{setTimeout(()=>{b.getComponent().navigateNext()})}))}cellIsEdited(a){return!!a.modules.edit&&a.modules.edit.edited}cellCancelEdit(a){a===this.currentCell?this.table.modules.edit.cancelEdit():console.warn("Cancel Editor Error - This cell is not currently being edited ")}updateCellClass(a){this.allowEdit(a)?a.getElement().classList.add("tabulator-editable"):a.getElement().classList.remove("tabulator-editable")}clearCellEdited(a){a||(a=this.table.modules.edit.getEditedCells()),Array.isArray(a)||(a=[a]),a.forEach(a=>{this.table.modules.edit.clearEdited(a._getSelf())})}navigatePrev(a=this.currentCell,b){var c,d;if(a){if(b&&b.preventDefault(),c=this.navigateLeft())return!0;if((d=this.table.rowManager.prevDisplayRow(a.row,!0))&&(c=this.findPrevEditableCell(d,d.cells.length)))return c.getComponent().edit(),!0}return!1}navigateNext(a=this.currentCell,b){var c,d;if(a){if(b&&b.preventDefault(),c=this.navigateRight())return!0;if((d=this.table.rowManager.nextDisplayRow(a.row,!0))&&(c=this.findNextEditableCell(d,-1)))return c.getComponent().edit(),!0}return!1}navigateLeft(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.findPrevEditableCell(a.row,c)))&&(d.getComponent().edit(),!0)}navigateRight(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.findNextEditableCell(a.row,c)))&&(d.getComponent().edit(),!0)}navigateUp(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.table.rowManager.prevDisplayRow(a.row,!0)))&&(d.cells[c].getComponent().edit(),!0)}navigateDown(a=this.currentCell,b){var c,d;return!!(a&&(b&&b.preventDefault(),c=a.getIndex(),d=this.table.rowManager.nextDisplayRow(a.row,!0)))&&(d.cells[c].getComponent().edit(),!0)}findNextEditableCell(a,b){var c=!1;if(b<a.cells.length-1)for(var d=b+1;d<a.cells.length;d++){let b=a.cells[d];if(b.column.modules.edit&&n.elVisible(b.getElement())&&this.allowEdit(b)){c=b;break}}return c}findPrevEditableCell(a,b){var c=!1;if(b>0)for(var d=b-1;d>=0;d--){let b=a.cells[d];if(b.column.modules.edit&&n.elVisible(b.getElement())&&this.allowEdit(b)){c=b;break}}return c}initializeColumnCheck(a){void 0!==a.definition.editor&&this.initializeColumn(a)}columnDeleteCheck(a){this.currentCell&&this.currentCell.column===a&&this.cancelEdit()}rowDeleteCheck(a){this.currentCell&&this.currentCell.row===a&&this.cancelEdit()}rowEditableCheck(a){a.getCells().forEach(a=>{a.column.modules.edit&&"function"==typeof a.column.modules.edit.check&&this.updateCellClass(a)})}initializeColumn(a){var b=Object.keys(a.definition).includes("editorEmptyValue"),c={editor:!1,blocked:!1,check:a.definition.editable,params:a.definition.editorParams||{},convertEmptyValues:b,editorEmptyValue:a.definition.editorEmptyValue,editorEmptyValueFunc:a.definition.editorEmptyValueFunc};c.editor=this.lookupEditor(a.definition.editor,a),c.editor&&(a.modules.edit=c)}lookupEditor(a,b){var c;switch(typeof a){case"string":this.editors[a]?c=this.editors[a]:console.warn("Editor Error - No such editor found: ",a);break;case"function":c=a;break;case"boolean":!0===a&&("function"!=typeof b.definition.formatter?c=this.editors[b.definition.formatter]?this.editors[b.definition.formatter]:this.editors.input:console.warn("Editor Error - Cannot auto lookup editor for a custom formatter: ",b.definition.formatter))}return c}getCurrentCell(){return!!this.currentCell&&this.currentCell.getComponent()}checkEditing(){return!!this.currentCell}cancelEditEvent(){return!!this.currentCell&&(this.cancelEdit(),!0)}clearEditor(a){var b,c=this.currentCell;if(this.invalidEdit=!1,c){for(this.currentCell=!1,b=c.getElement(),this.dispatch("edit-editor-clear",c,a),b.classList.remove("tabulator-editing");b.firstChild;)b.removeChild(b.firstChild);c.row.getElement().classList.remove("tabulator-editing"),c.table.element.classList.remove("tabulator-editing")}}cancelEdit(){if(this.currentCell){var a=this.currentCell,b=this.currentCell.getComponent();this.clearEditor(!0),a.setValueActual(a.getValue()),a.cellRendered(),("textarea"==a.column.definition.editor||a.column.definition.variableHeight)&&a.row.normalizeHeight(!0),a.column.definition.cellEditCancelled&&a.column.definition.cellEditCancelled.call(this.table,b),this.dispatch("edit-cancelled",a),this.dispatchExternal("cellEditCancelled",b)}}bindEditor(a){if(a.column.modules.edit){var b=this,c=a.getElement(!0);this.updateCellClass(a),c.setAttribute("tabindex",0),c.addEventListener("mousedown",function(a){2===a.button?a.preventDefault():b.mouseClick=!0}),"dblclick"===this.options("editTriggerEvent")&&c.addEventListener("dblclick",function(d){c.classList.contains("tabulator-editing")||(c.focus({preventScroll:!0}),b.edit(a,d,!1))}),("focus"===this.options("editTriggerEvent")||"click"===this.options("editTriggerEvent"))&&c.addEventListener("click",function(d){c.classList.contains("tabulator-editing")||(c.focus({preventScroll:!0}),b.edit(a,d,!1))}),"focus"===this.options("editTriggerEvent")&&c.addEventListener("focus",function(c){b.recursionBlock||b.edit(a,c,!1)})}}focusCellNoEvent(a,b){this.recursionBlock=!0,b&&"ie"===this.table.browser||a.getElement().focus({preventScroll:!0}),this.recursionBlock=!1}editCell(a,b){this.focusCellNoEvent(a),this.edit(a,!1,b)}focusScrollAdjust(a){if("virtual"==this.table.rowManager.getRenderMode()){var b=this.table.rowManager.element.scrollTop,c=this.table.rowManager.element.clientHeight+this.table.rowManager.element.scrollTop,d=a.row.getElement();d.offsetTop<b?this.table.rowManager.element.scrollTop-=b-d.offsetTop:d.offsetTop+d.offsetHeight>c&&(this.table.rowManager.element.scrollTop+=d.offsetTop+d.offsetHeight-c);var e=this.table.rowManager.element.scrollLeft,f=this.table.rowManager.element.clientWidth+this.table.rowManager.element.scrollLeft,g=a.getElement();this.table.modExists("frozenColumns")&&(e+=parseInt(this.table.modules.frozenColumns.leftMargin||0),f-=parseInt(this.table.modules.frozenColumns.rightMargin||0)),"virtual"===this.table.options.renderHorizontal&&(e-=parseInt(this.table.columnManager.renderer.vDomPadLeft),f-=parseInt(this.table.columnManager.renderer.vDomPadLeft)),g.offsetLeft<e?this.table.rowManager.element.scrollLeft-=e-g.offsetLeft:g.offsetLeft+g.offsetWidth>f&&(this.table.rowManager.element.scrollLeft+=g.offsetLeft+g.offsetWidth-f)}}allowEdit(a){var b=!!a.column.modules.edit;if(a.column.modules.edit)switch(typeof a.column.modules.edit.check){case"function":a.row.initialized&&(b=a.column.modules.edit.check(a.getComponent()));break;case"string":b=!!a.row.data[a.column.modules.edit.check];break;case"boolean":b=a.column.modules.edit.check}return b}edit(a,b,c){var d,e,f,g=this,h=function(){},i=a.getElement(),j=!1;if(this.currentCell){this.invalidEdit||this.currentCell===a||this.cancelEdit();return}if(a.column.modules.edit.blocked||(b&&b.stopPropagation(),!this.allowEdit(a)&&!c))return this.mouseClick=!1,this.blur(i),!1;if(g.cancelEdit(),g.currentCell=a,this.focusScrollAdjust(a),e=a.getComponent(),this.mouseClick&&(this.mouseClick=!1,a.column.definition.cellClick&&a.column.definition.cellClick.call(this.table,b,e)),a.column.definition.cellEditing&&a.column.definition.cellEditing.call(this.table,e),this.dispatch("cell-editing",a),this.dispatchExternal("cellEditing",e),f="function"==typeof a.column.modules.edit.params?a.column.modules.edit.params(e):a.column.modules.edit.params,d=a.column.modules.edit.editor.call(g,e,function(a){h=a},function(b){if(g.currentCell===a&&!j){var c=g.chain("edit-success",[a,b],!0,!0);return!0===c||"highlight"===g.table.options.validationMode?(j=!0,g.clearEditor(),a.modules.edit||(a.modules.edit={}),a.modules.edit.edited=!0,-1==g.editedCells.indexOf(a)&&g.editedCells.push(a),b=g.transformEmptyValues(b,a),a.setValue(b,!0),!0===c):(j=!0,g.invalidEdit=!0,g.focusCellNoEvent(a,!0),h(),setTimeout(()=>{j=!1},10),!1)}},function(){g.currentCell!==a||j||g.cancelEdit()},f),!this.currentCell||!1===d)return this.blur(i),!1;if(!(d instanceof Node))return console.warn("Edit Error - Editor should return an instance of Node, the editor returned:",d),this.blur(i),!1;for(i.classList.add("tabulator-editing"),a.row.getElement().classList.add("tabulator-editing"),a.table.element.classList.add("tabulator-editing");i.firstChild;)i.removeChild(i.firstChild);i.appendChild(d),h();for(var k=i.children,l=0;l<k.length;l++)k[l].addEventListener("click",function(a){a.stopPropagation()});return!0}emptyValueCheck(a){return""===a||null==a}transformEmptyValues(a,b){var c,d=b.column.modules.edit;return(d.convertEmptyValues||this.convertEmptyValues)&&(c=d.editorEmptyValueFunc||this.options("editorEmptyValueFunc"))&&c(a)&&(a=d.convertEmptyValues?d.editorEmptyValue:this.options("editorEmptyValue")),a}blur(a){this.confirm("edit-blur",[a])||a.blur()}getEditedCells(){var a=[];return this.editedCells.forEach(b=>{a.push(b.getComponent())}),a}clearEdited(a){var b;a.modules.edit&&a.modules.edit.edited&&(a.modules.edit.edited=!1,this.dispatch("edit-edited-clear",a)),(b=this.editedCells.indexOf(a))>-1&&this.editedCells.splice(b,1)}}class R{constructor(a,b,c,d){this.type=a,this.columns=b,this.component=c||!1,this.indent=d||0}}class S{constructor(a,b,c,d,e){this.value=a,this.component=b||!1,this.width=c,this.height=d,this.depth=e}}var T={},U={visible:function(){return this.rowManager.getVisibleRows(!1,!0)},all:function(){return this.rowManager.rows},selected:function(){return this.modules.selectRow.selectedRows},active:function(){return this.options.pagination?this.rowManager.getDisplayRows(this.rowManager.displayRows.length-2):this.rowManager.getDisplayRows()}};class V extends p{static moduleName="export";static columnLookups=T;static rowLookups=U;constructor(a){super(a),this.config={},this.cloneTableStyle=!0,this.colVisProp="",this.colVisPropAttach="",this.registerTableOption("htmlOutputConfig",!1),this.registerColumnOption("htmlOutput"),this.registerColumnOption("titleHtmlOutput")}initialize(){this.registerTableFunction("getHtml",this.getHtml.bind(this))}generateExportList(a,b,c,d){var e,f,g,h;return this.cloneTableStyle=b,this.config=a||{},this.colVisProp=d,this.colVisPropAttach=this.colVisProp.charAt(0).toUpperCase()+this.colVisProp.slice(1),(h=V.columnLookups[c])&&(g=(g=h.call(this.table)).filter(a=>this.columnVisCheck(a))),e=!1!==this.config.columnHeaders?this.headersToExportRows(this.generateColumnGroupHeaders(g)):[],g&&(g=g.map(a=>a.getComponent())),f=this.bodyToExportRows(this.rowLookup(c),g),e.concat(f)}generateTable(a,b,c,d){var e=this.generateExportList(a,b,c,d);return this.generateTableElement(e)}rowLookup(a){var b=[];return"function"==typeof a?a.call(this.table).forEach(a=>{(a=this.table.rowManager.findRow(a))&&b.push(a)}):b=(V.rowLookups[a]||V.rowLookups.active).call(this.table),Object.assign([],b)}generateColumnGroupHeaders(a){var b=[];return a||(a=!1!==this.config.columnGroups?this.table.columnManager.columns:this.table.columnManager.columnsByIndex),a.forEach(a=>{var c=this.processColumnGroup(a);c&&b.push(c)}),b}processColumnGroup(a){var b=a.columns,c=0,d={title:a.definition["title"+this.colVisPropAttach]||a.definition.title,column:a,depth:1};if(b.length){if(d.subGroups=[],d.width=0,b.forEach(a=>{var b=this.processColumnGroup(a);b&&(d.width+=b.width,d.subGroups.push(b),b.depth>c&&(c=b.depth))}),d.depth+=c,!d.width)return!1}else{if(!this.columnVisCheck(a))return!1;d.width=1}return d}columnVisCheck(a){var b=a.definition[this.colVisProp];return(!1!==this.config.rowHeaders||!a.isRowHeader)&&(("function"==typeof b&&(b=b.call(this.table,a.getComponent())),!1===b||!0===b)?b:a.visible&&a.field)}headersToExportRows(a){var b=[],c=0,d=[];return a.forEach(function(a){a.depth>c&&(c=a.depth)}),a.forEach(function(a){!function a(d,e){var f=c-e;if(void 0===b[e]&&(b[e]=[]),d.height=d.subGroups?1:f-d.depth+1,b[e].push(d),d.height>1)for(let a=1;a<d.height;a++)void 0===b[e+a]&&(b[e+a]=[]),b[e+a].push(!1);if(d.width>1)for(let a=1;a<d.width;a++)b[e].push(!1);d.subGroups&&d.subGroups.forEach(function(b){a(b,e+1)})}(a,0)}),b.forEach(a=>{var b=[];a.forEach(a=>{if(a){let c=void 0===a.title?"":a.title;b.push(new S(c,a.column.getComponent(),a.width,a.height,a.depth))}else b.push(null)}),d.push(new R("header",b))}),d}bodyToExportRows(a,b=[]){var c=[];return 0===b.length&&this.table.columnManager.columnsByIndex.forEach(a=>{this.columnVisCheck(a)&&b.push(a.getComponent())}),!1!==this.config.columnCalcs&&this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&a.unshift(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&a.push(this.table.modules.columnCalcs.botRow)),(a=a.filter(a=>{switch(a.type){case"group":return!1!==this.config.rowGroups;case"calc":return!1!==this.config.columnCalcs;case"row":return!(this.table.options.dataTree&&!1===this.config.dataTree&&a.modules.dataTree.parent)}return!0})).forEach((a,d)=>{var e=a.getData(this.colVisProp),f=[],g=0;switch(a.type){case"group":g=a.level,f.push(new S(a.key,a.getComponent(),b.length,1));break;case"calc":case"row":b.forEach(a=>{f.push(new S(a._column.getFieldValue(e),a,1,1))}),this.table.options.dataTree&&!1!==this.config.dataTree&&(g=a.modules.dataTree.index)}c.push(new R(a.type,f,a.getComponent(),g))}),c}generateTableElement(a){var b=document.createElement("table"),c=document.createElement("thead"),d=document.createElement("tbody"),e=this.lookupTableStyles(),f=this.table.options["rowFormatter"+this.colVisPropAttach],g={};return g.rowFormatter=null!==f?f:this.table.options.rowFormatter,this.table.options.dataTree&&!1!==this.config.dataTree&&this.table.modExists("columnCalcs")&&(g.treeElementField=this.table.modules.dataTree.elementField),g.groupHeader=this.table.options["groupHeader"+this.colVisPropAttach],g.groupHeader&&!Array.isArray(g.groupHeader)&&(g.groupHeader=[g.groupHeader]),b.classList.add("tabulator-print-table"),this.mapElementStyles(this.table.columnManager.getHeadersElement(),c,["border-top","border-left","border-right","border-bottom","background-color","color","font-weight","font-family","font-size"]),a.length>1e3&&console.warn("It may take a long time to render an HTML table with more than 1000 rows"),a.forEach((a,b)=>{let f;switch(a.type){case"header":c.appendChild(this.generateHeaderElement(a,g,e));break;case"group":d.appendChild(this.generateGroupElement(a,g,e));break;case"calc":d.appendChild(this.generateCalcElement(a,g,e));break;case"row":f=this.generateRowElement(a,g,e),this.mapElementStyles(b%2&&e.evenRow?e.evenRow:e.oddRow,f,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),d.appendChild(f)}}),c.innerHTML&&b.appendChild(c),b.appendChild(d),this.mapElementStyles(this.table.element,b,["border-top","border-left","border-right","border-bottom"]),b}lookupTableStyles(){var a={};return this.cloneTableStyle&&window.getComputedStyle&&(a.oddRow=this.table.element.querySelector(".tabulator-row-odd:not(.tabulator-group):not(.tabulator-calcs)"),a.evenRow=this.table.element.querySelector(".tabulator-row-even:not(.tabulator-group):not(.tabulator-calcs)"),a.calcRow=this.table.element.querySelector(".tabulator-row.tabulator-calcs"),a.firstRow=this.table.element.querySelector(".tabulator-row:not(.tabulator-group):not(.tabulator-calcs)"),a.firstGroup=this.table.element.getElementsByClassName("tabulator-group")[0],a.firstRow&&(a.styleCells=a.firstRow.getElementsByClassName("tabulator-cell"),a.styleRowHeader=a.firstRow.getElementsByClassName("tabulator-row-header")[0],a.firstCell=a.styleCells[0],a.lastCell=a.styleCells[a.styleCells.length-1])),a}generateHeaderElement(a,b,c){var d=document.createElement("tr");return a.columns.forEach(a=>{if(a){var b=document.createElement("th"),c=a.component._column.definition.cssClass?a.component._column.definition.cssClass.split(" "):[];b.colSpan=a.width,b.rowSpan=a.height,b.innerHTML=a.value,this.cloneTableStyle&&(b.style.boxSizing="border-box"),c.forEach(function(a){b.classList.add(a)}),this.mapElementStyles(a.component.getElement(),b,["text-align","border-left","border-right","background-color","color","font-weight","font-family","font-size"]),this.mapElementStyles(a.component._column.contentElement,b,["padding-top","padding-left","padding-right","padding-bottom"]),a.component._column.visible?this.mapElementStyles(a.component.getElement(),b,["width"]):a.component._column.definition.width&&(b.style.width=a.component._column.definition.width+"px"),a.component._column.parent&&a.component._column.parent.isGroup?this.mapElementStyles(a.component._column.parent.groupElement,b,["border-top"]):this.mapElementStyles(a.component.getElement(),b,["border-top"]),a.component._column.isGroup?this.mapElementStyles(a.component.getElement(),b,["border-bottom"]):this.mapElementStyles(this.table.columnManager.getElement(),b,["border-bottom"]),d.appendChild(b)}}),d}generateGroupElement(a,b,c){var d=document.createElement("tr"),e=document.createElement("td"),f=a.columns[0];return d.classList.add("tabulator-print-table-row"),b.groupHeader&&b.groupHeader[a.indent]?f.value=b.groupHeader[a.indent](f.value,a.component._group.getRowCount(),a.component._group.getData(),a.component):!1!==b.groupHeader&&(f.value=a.component._group.generator(f.value,a.component._group.getRowCount(),a.component._group.getData(),a.component)),e.colSpan=f.width,e.innerHTML=f.value,d.classList.add("tabulator-print-table-group"),d.classList.add("tabulator-group-level-"+a.indent),f.component.isVisible()&&d.classList.add("tabulator-group-visible"),this.mapElementStyles(c.firstGroup,d,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),this.mapElementStyles(c.firstGroup,e,["padding-top","padding-left","padding-right","padding-bottom"]),d.appendChild(e),d}generateCalcElement(a,b,c){var d=this.generateRowElement(a,b,c);return d.classList.add("tabulator-print-table-calcs"),this.mapElementStyles(c.calcRow,d,["border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","background-color"]),d}generateRowElement(a,b,c){var d=document.createElement("tr");return d.classList.add("tabulator-print-table-row"),a.columns.forEach((e,f)=>{if(e){var g,h,i=document.createElement("td"),j=e.component._column,k=this.table,l=k.columnManager.findColumnIndex(j),m=e.value,n={modules:{},getValue:function(){return m},getField:function(){return j.definition.field},getElement:function(){return i},getType:function(){return"cell"},getColumn:function(){return j.getComponent()},getData:function(){return a.component.getData()},getRow:function(){return a.component},getTable:function(){return k},getComponent:function(){return n},column:j};if((j.definition.cssClass?j.definition.cssClass.split(" "):[]).forEach(function(a){i.classList.add(a)}),this.table.modExists("format")&&!1!==this.config.formatCells)m=this.table.modules.format.formatExportValue(n,this.colVisProp);else switch(typeof m){case"object":m=null!==m?JSON.stringify(m):"";break;case"undefined":m=""}m instanceof Node?i.appendChild(m):i.innerHTML=m,h=["padding-top","padding-left","padding-right","padding-bottom","border-top","border-left","border-right","border-bottom","color","font-weight","font-family","font-size","text-align"],j.isRowHeader?(g=c.styleRowHeader,h.push("background-color")):g=c.styleCells&&c.styleCells[l]?c.styleCells[l]:c.firstCell,g&&(this.mapElementStyles(g,i,h),j.definition.align&&(i.style.textAlign=j.definition.align)),this.table.options.dataTree&&!1!==this.config.dataTree&&(b.treeElementField&&b.treeElementField==j.field||!b.treeElementField&&0==f)&&(a.component._row.modules.dataTree.controlEl&&i.insertBefore(a.component._row.modules.dataTree.controlEl.cloneNode(!0),i.firstChild),a.component._row.modules.dataTree.branchEl&&i.insertBefore(a.component._row.modules.dataTree.branchEl.cloneNode(!0),i.firstChild)),d.appendChild(i),n.modules.format&&n.modules.format.renderedCallback&&n.modules.format.renderedCallback()}}),b.rowFormatter&&"row"===a.type&&!1!==this.config.formatCells&&(Object.assign(a.component).getElement=function(){return d},b.rowFormatter(a.component)),d}generateHTMLTable(a){var b=document.createElement("div");return b.appendChild(this.generateTableElement(a)),b.innerHTML}getHtml(a,b,c,d){var e=this.generateExportList(c||this.table.options.htmlOutputConfig,b,a,d||"htmlOutput");return this.generateHTMLTable(e)}mapElementStyles(a,b,c){if(this.cloneTableStyle&&a&&b){var d={"background-color":"backgroundColor",color:"fontColor",width:"width","font-weight":"fontWeight","font-family":"fontFamily","font-size":"fontSize","text-align":"textAlign","border-top":"borderTop","border-left":"borderLeft","border-right":"borderRight","border-bottom":"borderBottom","padding-top":"paddingTop","padding-left":"paddingLeft","padding-right":"paddingRight","padding-bottom":"paddingBottom"};if(window.getComputedStyle){var e=window.getComputedStyle(a);c.forEach(function(a){b.style[d[a]]||(b.style[d[a]]=e.getPropertyValue(a))})}}}}var W={"=":function(a,b,c,d){return b==a},"<":function(a,b,c,d){return b<a},"<=":function(a,b,c,d){return b<=a},">":function(a,b,c,d){return b>a},">=":function(a,b,c,d){return b>=a},"!=":function(a,b,c,d){return b!=a},regex:function(a,b,c,d){return"string"==typeof a&&(a=new RegExp(a)),a.test(b)},like:function(a,b,c,d){return null==a?b===a:null!=b&&String(b).toLowerCase().indexOf(a.toLowerCase())>-1},keywords:function(a,b,c,d){var e=a.toLowerCase().split(void 0===d.separator?" ":d.separator),f=String(null==b?"":b).toLowerCase(),g=[];return e.forEach(a=>{f.includes(a)&&g.push(!0)}),d.matchAll?g.length===e.length:!!g.length},starts:function(a,b,c,d){return null==a?b===a:null!=b&&String(b).toLowerCase().startsWith(a.toLowerCase())},ends:function(a,b,c,d){return null==a?b===a:null!=b&&String(b).toLowerCase().endsWith(a.toLowerCase())},in:function(a,b,c,d){return Array.isArray(a)?!a.length||a.indexOf(b)>-1:(console.warn("Filter Error - filter value is not an array:",a),!1)}};class X extends p{static moduleName="filter";static filters=W;constructor(a){super(a),this.filterList=[],this.headerFilters={},this.headerFilterColumns=[],this.prevHeaderFilterChangeCheck="",this.prevHeaderFilterChangeCheck="{}",this.changed=!1,this.tableInitialized=!1,this.registerTableOption("filterMode","local"),this.registerTableOption("initialFilter",!1),this.registerTableOption("initialHeaderFilter",!1),this.registerTableOption("headerFilterLiveFilterDelay",300),this.registerTableOption("placeholderHeaderFilter",!1),this.registerColumnOption("headerFilter"),this.registerColumnOption("headerFilterPlaceholder"),this.registerColumnOption("headerFilterParams"),this.registerColumnOption("headerFilterEmptyCheck"),this.registerColumnOption("headerFilterFunc"),this.registerColumnOption("headerFilterFuncParams"),this.registerColumnOption("headerFilterLiveFilter"),this.registerTableFunction("searchRows",this.searchRows.bind(this)),this.registerTableFunction("searchData",this.searchData.bind(this)),this.registerTableFunction("setFilter",this.userSetFilter.bind(this)),this.registerTableFunction("refreshFilter",this.userRefreshFilter.bind(this)),this.registerTableFunction("addFilter",this.userAddFilter.bind(this)),this.registerTableFunction("getFilters",this.getFilters.bind(this)),this.registerTableFunction("setHeaderFilterFocus",this.userSetHeaderFilterFocus.bind(this)),this.registerTableFunction("getHeaderFilterValue",this.userGetHeaderFilterValue.bind(this)),this.registerTableFunction("setHeaderFilterValue",this.userSetHeaderFilterValue.bind(this)),this.registerTableFunction("getHeaderFilters",this.getHeaderFilters.bind(this)),this.registerTableFunction("removeFilter",this.userRemoveFilter.bind(this)),this.registerTableFunction("clearFilter",this.userClearFilter.bind(this)),this.registerTableFunction("clearHeaderFilter",this.userClearHeaderFilter.bind(this)),this.registerComponentFunction("column","headerFilterFocus",this.setHeaderFilterFocus.bind(this)),this.registerComponentFunction("column","reloadHeaderFilter",this.reloadHeaderFilter.bind(this)),this.registerComponentFunction("column","getHeaderFilterValue",this.getHeaderFilterValue.bind(this)),this.registerComponentFunction("column","setHeaderFilterValue",this.setHeaderFilterValue.bind(this))}initialize(){this.subscribe("column-init",this.initializeColumnHeaderFilter.bind(this)),this.subscribe("column-width-fit-before",this.hideHeaderFilterElements.bind(this)),this.subscribe("column-width-fit-after",this.showHeaderFilterElements.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.subscribe("placeholder",this.generatePlaceholder.bind(this)),"remote"===this.table.options.filterMode&&this.subscribe("data-params",this.remoteFilterParams.bind(this)),this.registerDataHandler(this.filter.bind(this),10)}tableBuilt(){this.table.options.initialFilter&&this.setFilter(this.table.options.initialFilter),this.table.options.initialHeaderFilter&&this.table.options.initialHeaderFilter.forEach(a=>{var b=this.table.columnManager.findColumn(a.field);if(!b)return console.warn("Column Filter Error - No matching column found:",a.field),!1;this.setHeaderFilterValue(b,a.value)}),this.tableInitialized=!0}remoteFilterParams(a,b,c,d){return d.filter=this.getFilters(!0,!0),d}generatePlaceholder(a){if(this.table.options.placeholderHeaderFilter&&Object.keys(this.headerFilters).length)return this.table.options.placeholderHeaderFilter}userSetFilter(a,b,c,d){this.setFilter(a,b,c,d),this.refreshFilter()}userRefreshFilter(){this.refreshFilter()}userAddFilter(a,b,c,d){this.addFilter(a,b,c,d),this.refreshFilter()}userSetHeaderFilterFocus(a){var b=this.table.columnManager.findColumn(a);if(!b)return console.warn("Column Filter Focus Error - No matching column found:",a),!1;this.setHeaderFilterFocus(b)}userGetHeaderFilterValue(a){var b=this.table.columnManager.findColumn(a);if(b)return this.getHeaderFilterValue(b);console.warn("Column Filter Error - No matching column found:",a)}userSetHeaderFilterValue(a,b){var c=this.table.columnManager.findColumn(a);if(!c)return console.warn("Column Filter Error - No matching column found:",a),!1;this.setHeaderFilterValue(c,b)}userRemoveFilter(a,b,c){this.removeFilter(a,b,c),this.refreshFilter()}userClearFilter(a){this.clearFilter(a),this.refreshFilter()}userClearHeaderFilter(){this.clearHeaderFilter(),this.refreshFilter()}searchRows(a,b,c){return this.search("rows",a,b,c)}searchData(a,b,c){return this.search("data",a,b,c)}initializeColumnHeaderFilter(a){a.definition.headerFilter&&this.initializeColumn(a)}initializeColumn(a,b){var c=this,d=a.getField();a.modules.filter={success:function(b){var e,f="input"==a.modules.filter.tagType&&"text"==a.modules.filter.attrType||"textarea"==a.modules.filter.tagType?"partial":"match",g="",h="";if(void 0===a.modules.filter.prevSuccess||a.modules.filter.prevSuccess!==b){if(a.modules.filter.prevSuccess=b,a.modules.filter.emptyFunc(b))delete c.headerFilters[d];else{switch(a.modules.filter.value=b,typeof a.definition.headerFilterFunc){case"string":X.filters[a.definition.headerFilterFunc]?(g=a.definition.headerFilterFunc,e=function(c){var d=a.definition.headerFilterFuncParams||{},e=a.getFieldValue(c);return d="function"==typeof d?d(b,e,c):d,X.filters[a.definition.headerFilterFunc](b,e,c,d)}):console.warn("Header Filter Error - Matching filter function not found: ",a.definition.headerFilterFunc);break;case"function":g=e=function(c){var d=a.definition.headerFilterFuncParams||{},e=a.getFieldValue(c);return d="function"==typeof d?d(b,e,c):d,a.definition.headerFilterFunc(b,e,c,d)}}e||("partial"===f?(e=function(c){var d=a.getFieldValue(c);return null!=d&&String(d).toLowerCase().indexOf(String(b).toLowerCase())>-1},g="like"):(e=function(c){return a.getFieldValue(c)==b},g="=")),c.headerFilters[d]={value:b,func:e,type:g}}a.modules.filter.value=b,h=JSON.stringify(c.headerFilters),c.prevHeaderFilterChangeCheck!==h&&(c.prevHeaderFilterChangeCheck=h,c.trackChanges(),c.refreshFilter())}return!0},attrType:!1,tagType:!1,emptyFunc:!1},this.generateHeaderFilterElement(a)}generateHeaderFilterElement(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.modules.filter.success,n=a.getField();if(a.modules.filter.value=b,a.modules.filter.headerElement&&a.modules.filter.headerElement.parentNode&&a.contentElement.removeChild(a.modules.filter.headerElement.parentNode),n){switch(a.modules.filter.emptyFunc=a.definition.headerFilterEmptyCheck||function(a){return!a&&0!==a},(d=document.createElement("div")).classList.add("tabulator-header-filter"),typeof a.definition.headerFilter){case"string":l.table.modules.edit.editors[a.definition.headerFilter]?(e=l.table.modules.edit.editors[a.definition.headerFilter],"tick"!==a.definition.headerFilter&&"tickCross"!==a.definition.headerFilter||a.definition.headerFilterEmptyCheck||(a.modules.filter.emptyFunc=function(a){return!0!==a&&!1!==a})):console.warn("Filter Error - Cannot build header filter, No such editor found: ",a.definition.editor);break;case"function":e=a.definition.headerFilter;break;case"boolean":a.modules.edit&&a.modules.edit.editor?e=a.modules.edit.editor:a.definition.formatter&&l.table.modules.edit.editors[a.definition.formatter]?(e=l.table.modules.edit.editors[a.definition.formatter],"tick"!==a.definition.formatter&&"tickCross"!==a.definition.formatter||a.definition.headerFilterEmptyCheck||(a.modules.filter.emptyFunc=function(a){return!0!==a&&!1!==a})):e=l.table.modules.edit.editors.input}if(e){if(g={getValue:function(){return void 0!==b?b:""},getField:function(){return a.definition.field},getElement:function(){return d},getColumn:function(){return a.getComponent()},getTable:()=>this.table,getType:()=>"header",getRow:function(){return{normalizeHeight:function(){}}}},j="function"==typeof(j=a.definition.headerFilterParams||{})?j.call(l.table,g):j,!(f=e.call(this.table.modules.edit,g,function(a){k=a},m,function(){},j)))return void console.warn("Filter Error - Cannot add filter to "+n+" column, editor returned a value of false");if(!(f instanceof Node))return void console.warn("Filter Error - Cannot add filter to "+n+" column, editor should return an instance of Node, the editor returned:",f);l.langBind("headerFilters|columns|"+a.definition.field,function(b){f.setAttribute("placeholder",void 0!==b&&b?b:a.definition.headerFilterPlaceholder||l.langText("headerFilters|default"))}),f.addEventListener("click",function(a){a.stopPropagation(),f.focus()}),f.addEventListener("focus",a=>{var b=this.table.columnManager.contentsElement.scrollLeft;b!==this.table.rowManager.element.scrollLeft&&(this.table.rowManager.scrollHorizontal(b),this.table.columnManager.scrollHorizontal(b))}),h=!1,i=function(a){h&&clearTimeout(h),h=setTimeout(function(){m(f.value)},l.table.options.headerFilterLiveFilterDelay)},a.modules.filter.headerElement=f,a.modules.filter.attrType=f.hasAttribute("type")?f.getAttribute("type").toLowerCase():"",a.modules.filter.tagType=f.tagName.toLowerCase(),!1!==a.definition.headerFilterLiveFilter&&("autocomplete"!==a.definition.headerFilter&&"tickCross"!==a.definition.headerFilter&&("autocomplete"!==a.definition.editor&&"tickCross"!==a.definition.editor||!0!==a.definition.headerFilter)&&(f.addEventListener("keyup",i),f.addEventListener("search",i),"number"==a.modules.filter.attrType&&f.addEventListener("change",function(a){m(f.value)}),"text"==a.modules.filter.attrType&&"ie"!==this.table.browser&&f.setAttribute("type","search")),("input"==a.modules.filter.tagType||"select"==a.modules.filter.tagType||"textarea"==a.modules.filter.tagType)&&f.addEventListener("mousedown",function(a){a.stopPropagation()})),d.appendChild(f),a.contentElement.appendChild(d),c||l.headerFilterColumns.push(a),k&&k()}}else console.warn("Filter Error - Cannot add header filter, column has no field set:",a.definition.title)}hideHeaderFilterElements(){this.headerFilterColumns.forEach(function(a){a.modules.filter&&a.modules.filter.headerElement&&(a.modules.filter.headerElement.style.display="none")})}showHeaderFilterElements(){this.headerFilterColumns.forEach(function(a){a.modules.filter&&a.modules.filter.headerElement&&(a.modules.filter.headerElement.style.display="")})}setHeaderFilterFocus(a){a.modules.filter&&a.modules.filter.headerElement?a.modules.filter.headerElement.focus():console.warn("Column Filter Focus Error - No header filter set on column:",a.getField())}getHeaderFilterValue(a){if(a.modules.filter&&a.modules.filter.headerElement)return a.modules.filter.value;console.warn("Column Filter Error - No header filter set on column:",a.getField())}setHeaderFilterValue(a,b){a&&(a.modules.filter&&a.modules.filter.headerElement?(this.generateHeaderFilterElement(a,b,!0),a.modules.filter.success(b)):console.warn("Column Filter Error - No header filter set on column:",a.getField()))}reloadHeaderFilter(a){a&&(a.modules.filter&&a.modules.filter.headerElement?this.generateHeaderFilterElement(a,a.modules.filter.value,!0):console.warn("Column Filter Error - No header filter set on column:",a.getField()))}refreshFilter(){this.tableInitialized&&("remote"===this.table.options.filterMode?this.reloadData(null,!1,!1):this.refreshData(!0))}trackChanges(){this.changed=!0,this.dispatch("filter-changed")}hasChanged(){var a=this.changed;return this.changed=!1,a}setFilter(a,b,c,d){this.filterList=[],Array.isArray(a)||(a=[{field:a,type:b,value:c,params:d}]),this.addFilter(a)}addFilter(a,b,c,d){var e=!1;Array.isArray(a)||(a=[{field:a,type:b,value:c,params:d}]),a.forEach(a=>{(a=this.findFilter(a))&&(this.filterList.push(a),e=!0)}),e&&this.trackChanges()}findFilter(a){if(Array.isArray(a))return this.findSubFilters(a);var b,c=!1;return"function"==typeof a.field?c=function(b){return a.field(b,a.type||{})}:X.filters[a.type]?c=(b=this.table.columnManager.getColumnByField(a.field))?function(c){return X.filters[a.type](a.value,b.getFieldValue(c),c,a.params||{})}:function(b){return X.filters[a.type](a.value,b[a.field],b,a.params||{})}:console.warn("Filter Error - No such filter type found, ignoring: ",a.type),a.func=c,!!a.func&&a}findSubFilters(a){var b=[];return a.forEach(a=>{(a=this.findFilter(a))&&b.push(a)}),!!b.length&&b}getFilters(a,b){var c=[];return a&&(c=this.getHeaderFilters()),b&&c.forEach(function(a){"function"==typeof a.type&&(a.type="function")}),c=c.concat(this.filtersToArray(this.filterList,b))}filtersToArray(a,b){var c=[];return a.forEach(a=>{var d;Array.isArray(a)?c.push(this.filtersToArray(a,b)):(d={field:a.field,type:a.type,value:a.value},b&&"function"==typeof d.type&&(d.type="function"),c.push(d))}),c}getHeaderFilters(){var a=[];for(var b in this.headerFilters)a.push({field:b,type:this.headerFilters[b].type,value:this.headerFilters[b].value});return a}removeFilter(a,b,c){Array.isArray(a)||(a=[{field:a,type:b,value:c}]),a.forEach(a=>{var b=-1;(b="object"==typeof a.field?this.filterList.findIndex(b=>a===b):this.filterList.findIndex(b=>a.field===b.field&&a.type===b.type&&a.value===b.value))>-1?this.filterList.splice(b,1):console.warn("Filter Error - No matching filter type found, ignoring: ",a.type)}),this.trackChanges()}clearFilter(a){this.filterList=[],a&&this.clearHeaderFilter(),this.trackChanges()}clearHeaderFilter(){this.headerFilters={},this.prevHeaderFilterChangeCheck="{}",this.headerFilterColumns.forEach(a=>{void 0!==a.modules.filter.value&&delete a.modules.filter.value,a.modules.filter.prevSuccess=void 0,this.reloadHeaderFilter(a)}),this.trackChanges()}search(a,b,c,d){var e=[],f=[];return Array.isArray(b)||(b=[{field:b,type:c,value:d}]),b.forEach(a=>{(a=this.findFilter(a))&&f.push(a)}),this.table.rowManager.rows.forEach(b=>{var c=!0;f.forEach(a=>{this.filterRecurse(a,b.getData())||(c=!1)}),c&&e.push("data"===a?b.getData("data"):b.getComponent())}),e}filter(a,b){var c=[],d=[];return this.subscribedExternal("dataFiltering")&&this.dispatchExternal("dataFiltering",this.getFilters(!0)),"remote"!==this.table.options.filterMode&&(this.filterList.length||Object.keys(this.headerFilters).length)?a.forEach(a=>{this.filterRow(a)&&c.push(a)}):c=a.slice(0),this.subscribedExternal("dataFiltered")&&(c.forEach(a=>{d.push(a.getComponent())}),this.dispatchExternal("dataFiltered",this.getFilters(!0),d)),c}filterRow(a,b){var c=!0,d=a.getData();for(var e in this.filterList.forEach(a=>{this.filterRecurse(a,d)||(c=!1)}),this.headerFilters)this.headerFilters[e].func(d)||(c=!1);return c}filterRecurse(a,b){var c=!1;return Array.isArray(a)?a.forEach(a=>{this.filterRecurse(a,b)&&(c=!0)}):c=a.func(b),c}}var Y={plaintext:function(a,b,c){return this.emptyToSpace(this.sanitizeHTML(a.getValue()))},html:function(a,b,c){return a.getValue()},textarea:function(a,b,c){return a.getElement().style.whiteSpace="pre-wrap",this.emptyToSpace(this.sanitizeHTML(a.getValue()))},money:function(a,b,c){var d,e,f,g,h,i=parseFloat(a.getValue()),j="",k=b.decimal||".",l=b.thousand||",",m=b.negativeSign||"-",n=b.symbol||"",o=!!b.symbolAfter,p=void 0!==b.precision?b.precision:2;if(isNaN(i))return this.emptyToSpace(this.sanitizeHTML(a.getValue()));if(i<0&&(i=Math.abs(i),j=m),e=(d=String(d=!1!==p?i.toFixed(p):i).split("."))[0],f=d.length>1?k+d[1]:"",!1!==b.thousand)for(g=/(\d+)(\d{3})/;g.test(e);)e=e.replace(g,"$1"+l+"$2");return(h=e+f,!0===j)?(h="("+h+")",o?h+n:n+h):o?j+h+n:j+n+h},link:function(a,b,c){var d,e=a.getValue(),f=b.urlPrefix||"",g=b.download,h=e,i=document.createElement("a");if(b.labelField&&(d=a.getData(),h=function a(b,c){var d=c[b.shift()];return b.length&&"object"==typeof d?a(b,d):d}(b.labelField.split(this.table.options.nestedFieldSeparator),d)),b.label)switch(typeof b.label){case"string":h=b.label;break;case"function":h=b.label(a)}if(!h)return"&nbsp;";if(b.urlField&&(d=a.getData(),e=n.retrieveNestedData(this.table.options.nestedFieldSeparator,b.urlField,d)),b.url)switch(typeof b.url){case"string":e=b.url;break;case"function":e=b.url(a)}return i.setAttribute("href",f+e),b.target&&i.setAttribute("target",b.target),b.download&&(g="function"==typeof g?g(a):!0===g?"":g,i.setAttribute("download",g)),i.innerHTML=this.emptyToSpace(this.sanitizeHTML(h)),i},image:function(a,b,c){var d=document.createElement("img"),e=a.getValue();switch(b.urlPrefix&&(e=b.urlPrefix+a.getValue()),b.urlSuffix&&(e+=b.urlSuffix),d.setAttribute("src",e),typeof b.height){case"number":d.style.height=b.height+"px";break;case"string":d.style.height=b.height}switch(typeof b.width){case"number":d.style.width=b.width+"px";break;case"string":d.style.width=b.width}return d.addEventListener("load",function(){a.getRow().normalizeHeight()}),d},tickCross:function(a,b,c){var d=a.getValue(),e=a.getElement(),f=b.allowEmpty,g=b.allowTruthy,h=Object.keys(b).includes("trueValue"),i=void 0!==b.tickElement?b.tickElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>',j=void 0!==b.crossElement?b.crossElement:'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>';return h&&d===b.trueValue||!h&&(g&&d||!0===d||"true"===d||"True"===d||1===d||"1"===d)?(e.setAttribute("aria-checked",!0),i||""):f&&("null"===d||""===d||null==d)?(e.setAttribute("aria-checked","mixed"),""):(e.setAttribute("aria-checked",!1),j||"")},datetime:function(a,b,c){var d,e=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),f=b.inputFormat||"yyyy-MM-dd HH:mm:ss",g=b.outputFormat||"dd/MM/yyyy HH:mm:ss",h=void 0!==b.invalidPlaceholder?b.invalidPlaceholder:"",i=a.getValue();if(void 0!==e)return(d=e.isDateTime(i)?i:"iso"===f?e.fromISO(String(i)):e.fromFormat(String(i),f)).isValid?(b.timezone&&(d=d.setZone(b.timezone)),d.toFormat(g)):!0!==h&&i?"function"==typeof h?h(i):h:i;console.error("Format Error - 'datetime' formatter is dependant on luxon.js")},datetimediff:function(a,b,c){var d,e=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),f=b.inputFormat||"yyyy-MM-dd HH:mm:ss",g=void 0!==b.invalidPlaceholder?b.invalidPlaceholder:"",h=void 0!==b.suffix&&b.suffix,i=void 0!==b.unit?b.unit:"days",j=void 0!==b.humanize&&b.humanize,k=void 0!==b.date?b.date:e.now(),l=a.getValue();if(void 0!==e){if((d=e.isDateTime(l)?l:"iso"===f?e.fromISO(String(l)):e.fromFormat(String(l),f)).isValid)if(j)return d.diff(k,i).toHuman()+(h?" "+h:"");else return parseInt(d.diff(k,i)[i])+(h?" "+h:"");return!0===g?l:"function"==typeof g?g(l):g}console.error("Format Error - 'datetimediff' formatter is dependant on luxon.js")},lookup:function(a,b,c){var d=a.getValue();return void 0===b[d]?(console.warn("Missing display value for "+d),d):b[d]},star:function(a,b,c){var d=a.getValue(),e=a.getElement(),f=b&&b.stars?b.stars:5,g=document.createElement("span"),h=document.createElementNS("http://www.w3.org/2000/svg","svg");g.style.verticalAlign="middle",h.setAttribute("width","14"),h.setAttribute("height","14"),h.setAttribute("viewBox","0 0 512 512"),h.setAttribute("xml:space","preserve"),h.style.padding="0 1px",d=Math.max(0,Math.min(d=d&&!isNaN(d)?parseInt(d):0,f));for(var i=1;i<=f;i++){var j=h.cloneNode(!0);j.innerHTML=i<=d?'<polygon fill="#FFEA00" stroke="#C1AB60" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>':'<polygon fill="#D2D2D2" stroke="#686868" stroke-width="37.6152" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="259.216,29.942 330.27,173.919 489.16,197.007 374.185,309.08 401.33,467.31 259.216,392.612 117.104,467.31 144.25,309.08 29.274,197.007 188.165,173.919 "/>',g.appendChild(j)}return e.style.whiteSpace="nowrap",e.style.overflow="hidden",e.style.textOverflow="ellipsis",e.setAttribute("aria-label",d),g},traffic:function(a,b,c){var d,e=this.sanitizeHTML(a.getValue())||0,f=document.createElement("span"),g=b&&b.max?b.max:100,h=b&&b.min?b.min:0,i=b&&void 0!==b.color?b.color:["red","orange","green"],j="#666666";if(!isNaN(e)&&void 0!==a.getValue()){switch(f.classList.add("tabulator-traffic-light"),d=Math.round(((d=parseFloat(d=parseFloat(e)<=g?parseFloat(e):g)>=h?parseFloat(d):h)-h)/((g-h)/100)),typeof i){case"string":j=i;break;case"function":j=i(e);break;case"object":if(Array.isArray(i)){var k=Math.floor(d/(100/i.length));k=Math.max(k=Math.min(k,i.length-1),0),j=i[k]}}return f.style.backgroundColor=j,f}},progress:function(a,b={},c){var d,e,f,g,h,i=this.sanitizeHTML(a.getValue())||0,j=a.getElement(),k=b.max?b.max:100,l=b.min?b.min:0,m=b.legendAlign?b.legendAlign:"center";switch(e=parseFloat(e=parseFloat(i)<=k?parseFloat(i):k)>=l?parseFloat(e):l,d=(k-l)/100,e=Math.round((e-l)/d),typeof b.color){case"string":f=b.color;break;case"function":f=b.color(i);break;case"object":if(Array.isArray(b.color)){let a=Math.floor(e/(100/b.color.length));a=Math.max(a=Math.min(a,b.color.length-1),0),f=b.color[a];break}default:f="#2DC214"}switch(typeof b.legend){case"string":g=b.legend;break;case"function":g=b.legend(i);break;case"boolean":g=i;break;default:g=!1}switch(typeof b.legendColor){case"string":h=b.legendColor;break;case"function":h=b.legendColor(i);break;case"object":if(Array.isArray(b.legendColor)){let a=Math.floor(e/(100/b.legendColor.length));a=Math.max(a=Math.min(a,b.legendColor.length-1),0),h=b.legendColor[a]}break;default:h="#000"}j.style.minWidth="30px",j.style.position="relative",j.setAttribute("aria-label",e);var n=document.createElement("div");n.style.display="inline-block",n.style.width=e+"%",n.style.backgroundColor=f,n.style.height="100%",n.setAttribute("data-max",k),n.setAttribute("data-min",l);var o=document.createElement("div");if(o.style.position="relative",o.style.width="100%",o.style.height="100%",g){var p=document.createElement("div");p.style.position="absolute",p.style.top=0,p.style.left=0,p.style.textAlign=m,p.style.width="100%",p.style.color=h,p.innerHTML=g}return c(function(){if(!(a instanceof C)){var b=document.createElement("div");b.style.position="absolute",b.style.top="4px",b.style.bottom="4px",b.style.left="4px",b.style.right="4px",j.appendChild(b),j=b}j.appendChild(o),o.appendChild(n),g&&o.appendChild(p)}),""},color:function(a,b,c){return a.getElement().style.backgroundColor=this.sanitizeHTML(a.getValue()),""},buttonTick:function(a,b,c){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#2DC214" clip-rule="evenodd" d="M21.652,3.211c-0.293-0.295-0.77-0.295-1.061,0L9.41,14.34 c-0.293,0.297-0.771,0.297-1.062,0L3.449,9.351C3.304,9.203,3.114,9.13,2.923,9.129C2.73,9.128,2.534,9.201,2.387,9.351 l-2.165,1.946C0.078,11.445,0,11.63,0,11.823c0,0.194,0.078,0.397,0.223,0.544l4.94,5.184c0.292,0.296,0.771,0.776,1.062,1.07 l2.124,2.141c0.292,0.293,0.769,0.293,1.062,0l14.366-14.34c0.293-0.294,0.293-0.777,0-1.071L21.652,3.211z" fill-rule="evenodd"/></svg>'},buttonCross:function(a,b,c){return'<svg enable-background="new 0 0 24 24" height="14" width="14" viewBox="0 0 24 24" xml:space="preserve" ><path fill="#CE1515" d="M22.245,4.015c0.313,0.313,0.313,0.826,0,1.139l-6.276,6.27c-0.313,0.312-0.313,0.826,0,1.14l6.273,6.272 c0.313,0.313,0.313,0.826,0,1.14l-2.285,2.277c-0.314,0.312-0.828,0.312-1.142,0l-6.271-6.271c-0.313-0.313-0.828-0.313-1.141,0 l-6.276,6.267c-0.313,0.313-0.828,0.313-1.141,0l-2.282-2.28c-0.313-0.313-0.313-0.826,0-1.14l6.278-6.269 c0.313-0.312,0.313-0.826,0-1.14L1.709,5.147c-0.314-0.313-0.314-0.827,0-1.14l2.284-2.278C4.308,1.417,4.821,1.417,5.135,1.73 L11.405,8c0.314,0.314,0.828,0.314,1.141,0.001l6.276-6.267c0.312-0.312,0.826-0.312,1.141,0L22.245,4.015z"/></svg>'},toggle:function(a,b,c){var d,e,f=a.getValue(),g=b.size||15,h=g+"px",i=!b.hasOwnProperty("onValue")||b.onValue,j=!!b.hasOwnProperty("offValue")&&b.offValue,k=b.onTruthy?f:f===i;return(d=document.createElement("div")).classList.add("tabulator-toggle"),k?(d.classList.add("tabulator-toggle-on"),d.style.flexDirection="row-reverse",b.onColor&&(d.style.background=b.onColor)):b.offColor&&(d.style.background=b.offColor),d.style.width=2.5*g+"px",d.style.borderRadius=h,b.clickable&&d.addEventListener("click",b=>{a.setValue(k?j:i)}),(e=document.createElement("div")).classList.add("tabulator-toggle-switch"),e.style.height=h,e.style.width=h,e.style.borderRadius=h,d.appendChild(e),d},rownum:function(a,b,c){var d=document.createElement("span"),e=a.getRow(),f=a.getTable();return e.watchPosition(a=>{b.relativeToPage&&(a+=f.modules.page.getPageSize()*(f.modules.page.getPage()-1)),d.innerText=a}),d},handle:function(a,b,c){return a.getElement().classList.add("tabulator-row-handle"),"<div class='tabulator-row-handle-box'><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div><div class='tabulator-row-handle-bar'></div></div>"},adaptable:function(a,b,c){var d,e;return d=b.formatterLookup?b.formatterLookup(a):function(a){var b=a.getValue(),c="plaintext";switch(typeof b){case"boolean":c="tickCross";break;case"string":b.includes("\n")&&(c="textarea")}return c}(a),b.paramsLookup&&(e="function"==typeof b.paramsLookup?b.paramsLookup(d,a):b.paramsLookup[d]),this.table.modules.format.lookupFormatter(d).call(this,a,e||{},c)},array:function(a,b,c){var d,e=b.delimiter||",",f=a.getValue(),g=this.table;return(b.valueMap&&(d="string"==typeof b.valueMap?function(a){return a.map(a=>n.retrieveNestedData(g.options.nestedFieldSeparator,b.valueMap,a))}:b.valueMap),Array.isArray(f))?(d&&(f=d(f)),f.join(e)):f},json:function(a,b,c){var d=b.indent||" ",e=void 0===b.multiline||b.multiline,f=b.replacer||null,g=a.getValue();return e&&(a.getElement().style.whiteSpace="pre-wrap"),JSON.stringify(g,f,d)}};class Z extends p{static moduleName="format";static formatters=Y;constructor(a){super(a),this.registerColumnOption("formatter"),this.registerColumnOption("formatterParams"),this.registerColumnOption("formatterPrint"),this.registerColumnOption("formatterPrintParams"),this.registerColumnOption("formatterClipboard"),this.registerColumnOption("formatterClipboardParams"),this.registerColumnOption("formatterHtmlOutput"),this.registerColumnOption("formatterHtmlOutputParams"),this.registerColumnOption("titleFormatter"),this.registerColumnOption("titleFormatterParams")}initialize(){this.subscribe("cell-format",this.formatValue.bind(this)),this.subscribe("cell-rendered",this.cellRendered.bind(this)),this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("column-format",this.formatHeader.bind(this))}initializeColumn(a){a.modules.format=this.lookupTypeFormatter(a,""),void 0!==a.definition.formatterPrint&&(a.modules.format.print=this.lookupTypeFormatter(a,"Print")),void 0!==a.definition.formatterClipboard&&(a.modules.format.clipboard=this.lookupTypeFormatter(a,"Clipboard")),void 0!==a.definition.formatterHtmlOutput&&(a.modules.format.htmlOutput=this.lookupTypeFormatter(a,"HtmlOutput"))}lookupTypeFormatter(a,b){var c={params:a.definition["formatter"+b+"Params"]||{}},d=a.definition["formatter"+b];return c.formatter=this.lookupFormatter(d),c}lookupFormatter(a){var b;switch(typeof a){case"string":Z.formatters[a]?b=Z.formatters[a]:(console.warn("Formatter Error - No such formatter found: ",a),b=Z.formatters.plaintext);break;case"function":b=a;break;default:b=Z.formatters.plaintext}return b}cellRendered(a){a.modules.format&&a.modules.format.renderedCallback&&!a.modules.format.rendered&&(a.modules.format.renderedCallback(),a.modules.format.rendered=!0)}formatHeader(a,b,c){var d,e;return a.definition.titleFormatter?(d=this.lookupFormatter(a.definition.titleFormatter),e="function"==typeof(e=a.definition.titleFormatterParams||{})?e():e,d.call(this,{getValue:function(){return b},getElement:function(){return c},getType:function(){return"header"},getColumn:function(){return a.getComponent()},getTable:()=>this.table},e,b=>{a.titleFormatterRendered=b})):b}formatValue(a){var b=a.getComponent(),c="function"==typeof a.column.modules.format.params?a.column.modules.format.params(b):a.column.modules.format.params;return a.column.modules.format.formatter.call(this,b,c,function(b){a.modules.format||(a.modules.format={}),a.modules.format.renderedCallback=b,a.modules.format.rendered=!1})}formatExportValue(a,b){var c,d=a.column.modules.format[b];return d?(c="function"==typeof d.params?d.params(a.getComponent()):d.params,d.formatter.call(this,a.getComponent(),c,function(b){a.modules.format||(a.modules.format={}),a.modules.format.renderedCallback=b,a.modules.format.rendered=!1})):this.formatValue(a)}sanitizeHTML(a){if(!a)return a;var b={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"};return String(a).replace(/[&<>"'`=/]/g,function(a){return b[a]})}emptyToSpace(a){return null==a||""===a?"&nbsp;":a}}class ${constructor(a){return this._group=a,this.type="GroupComponent",new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._group.groupManager.table.componentFunctionBinder.handle("group",a._group,b)}})}getKey(){return this._group.key}getField(){return this._group.field}getElement(){return this._group.element}getRows(){return this._group.getRows(!0)}getSubGroups(){return this._group.getSubGroups(!0)}getParentGroup(){return!!this._group.parent&&this._group.parent.getComponent()}isVisible(){return this._group.visible}show(){this._group.show()}hide(){this._group.hide()}toggle(){this._group.toggleVisibility()}scrollTo(a,b){return this._group.groupManager.table.rowManager.scrollToRow(this._group,a,b)}_getSelf(){return this._group}getTable(){return this._group.groupManager.table}}class _{constructor(a,b,c,d,e,f,g){this.groupManager=a,this.parent=b,this.key=d,this.level=c,this.field=e,this.hasSubGroups=c<a.groupIDLookups.length-1,this.addRow=this.hasSubGroups?this._addRowToGroup:this._addRow,this.type="group",this.old=g,this.rows=[],this.groups=[],this.groupList=[],this.generator=f,this.element=!1,this.elementContents=!1,this.height=0,this.outerHeight=0,this.initialized=!1,this.calcs={},this.initialized=!1,this.modules={},this.arrowElement=!1,this.visible=g?g.visible:void 0!==a.startOpen[c]?a.startOpen[c]:a.startOpen[0],this.component=null,this.createElements(),this.addBindings(),this.createValueGroups()}wipe(a){a||(this.groupList.length?this.groupList.forEach(function(a){a.wipe()}):this.rows.forEach(a=>{a.modules&&delete a.modules.group})),this.element=!1,this.arrowElement=!1,this.elementContents=!1}createElements(){var a=document.createElement("div");a.classList.add("tabulator-arrow"),this.element=document.createElement("div"),this.element.classList.add("tabulator-row"),this.element.classList.add("tabulator-group"),this.element.classList.add("tabulator-group-level-"+this.level),this.element.setAttribute("role","rowgroup"),this.arrowElement=document.createElement("div"),this.arrowElement.classList.add("tabulator-group-toggle"),this.arrowElement.appendChild(a),!1!==this.groupManager.table.options.movableRows&&this.groupManager.table.modExists("moveRow")&&this.groupManager.table.modules.moveRow.initializeGroupHeader(this)}createValueGroups(){var a=this.level+1;this.groupManager.allowedValues&&this.groupManager.allowedValues[a]&&this.groupManager.allowedValues[a].forEach(b=>{this._createGroup(b,a)})}addBindings(){this.groupManager.table.options.groupToggleElement&&("arrow"==this.groupManager.table.options.groupToggleElement?this.arrowElement:this.element).addEventListener("click",a=>{"arrow"===this.groupManager.table.options.groupToggleElement&&(a.stopPropagation(),a.stopImmediatePropagation()),setTimeout(()=>{this.toggleVisibility()})})}_createGroup(a,b){var c=b+"_"+a,d=new _(this.groupManager,this,b,a,this.groupManager.groupIDLookups[b].field,this.groupManager.headerGenerator[b]||this.groupManager.headerGenerator[0],!!this.old&&this.old.groups[c]);this.groups[c]=d,this.groupList.push(d)}_addRowToGroup(a){var b=this.level+1;if(this.hasSubGroups){var c=this.groupManager.groupIDLookups[b].func(a.getData()),d=b+"_"+c;this.groupManager.allowedValues&&this.groupManager.allowedValues[b]?this.groups[d]&&this.groups[d].addRow(a):(this.groups[d]||this._createGroup(c,b),this.groups[d].addRow(a))}}_addRow(a){this.rows.push(a),a.modules.group=this}insertRow(a,b,c){var d=this.conformRowData({});a.updateData(d);var e=this.rows.indexOf(b);e>-1?c?this.rows.splice(e+1,0,a):this.rows.splice(e,0,a):c?this.rows.push(a):this.rows.unshift(a),a.modules.group=this,this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this),this.groupManager.updateGroupRows(!0)}scrollHeader(a){this.arrowElement&&(this.arrowElement.style.marginLeft=a,this.groupList.forEach(function(b){b.scrollHeader(a)}))}getRowIndex(a){}conformRowData(a){return this.field?a[this.field]=this.key:console.warn("Data Conforming Error - Cannot conform row data to match new group as groupBy is a function"),this.parent&&(a=this.parent.conformRowData(a)),a}removeRow(a){var b=this.rows.indexOf(a),c=a.getElement();b>-1&&this.rows.splice(b,1),this.groupManager.table.options.groupValues||this.rows.length?(c.parentNode&&c.parentNode.removeChild(c),!this.groupManager.blockRedraw&&(this.generateGroupHeaderContents(),this.groupManager.table.modExists("columnCalcs")&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modules.columnCalcs.recalcGroup(this))):(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this),this.groupManager.updateGroupRows(!0))}removeGroup(a){var b,c=a.level+"_"+a.key;this.groups[c]&&(delete this.groups[c],(b=this.groupList.indexOf(a))>-1&&this.groupList.splice(b,1),this.groupList.length||(this.parent?this.parent.removeGroup(this):this.groupManager.removeGroup(this)))}getHeadersAndRows(){var a=[];return a.push(this),this._visSet(),this.calcs.top&&(this.calcs.top.detachElement(),this.calcs.top.deleteCells()),this.calcs.bottom&&(this.calcs.bottom.detachElement(),this.calcs.bottom.deleteCells()),this.visible?this.groupList.length?this.groupList.forEach(function(b){a=a.concat(b.getHeadersAndRows())}):("table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),a.push(this.calcs.top)),a=a.concat(this.rows),"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),a.push(this.calcs.bottom))):!this.groupList.length&&"table"!=this.groupManager.table.options.columnCalcs&&this.groupManager.table.modExists("columnCalcs")&&(this.groupManager.table.modules.columnCalcs.hasTopCalcs()&&this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.top=this.groupManager.table.modules.columnCalcs.generateTopRow(this.rows),a.push(this.calcs.top)),this.groupManager.table.modules.columnCalcs.hasBottomCalcs()&&this.groupManager.table.options.groupClosedShowCalcs&&(this.calcs.bottom=this.groupManager.table.modules.columnCalcs.generateBottomRow(this.rows),a.push(this.calcs.bottom))),a}getData(a,b){var c=[];return this._visSet(),(!a||a&&this.visible)&&this.rows.forEach(a=>{c.push(a.getData(b||"data"))}),c}getRowCount(){var a=0;return this.groupList.length?this.groupList.forEach(b=>{a+=b.getRowCount()}):a=this.rows.length,a}toggleVisibility(){this.visible?this.hide():this.show()}hide(){this.visible=!1,"basic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination||(this.element.classList.remove("tabulator-group-visible"),this.groupList.length?this.groupList.forEach(a=>{a.getHeadersAndRows().forEach(a=>{a.detachElement()})}):this.rows.forEach(a=>{var b=a.getElement();b.parentNode.removeChild(b)})),this.groupManager.updateGroupRows(!0),this.groupManager.table.externalEvents.dispatch("groupVisibilityChanged",this.getComponent(),!1)}show(){if(this.visible=!0,"basic"!=this.groupManager.table.rowManager.getRenderMode()||this.groupManager.table.options.pagination)this.groupManager.updateGroupRows(!0);else{this.element.classList.add("tabulator-group-visible");var a=this.generateElement();this.groupList.length?this.groupList.forEach(b=>{b.getHeadersAndRows().forEach(b=>{var c=b.getElement();a.parentNode.insertBefore(c,a.nextSibling),b.initialize(),a=c})}):this.rows.forEach(b=>{var c=b.getElement();a.parentNode.insertBefore(c,a.nextSibling),b.initialize(),a=c}),this.groupManager.updateGroupRows(!0)}this.groupManager.table.externalEvents.dispatch("groupVisibilityChanged",this.getComponent(),!0)}_visSet(){var a=[];"function"==typeof this.visible&&(this.rows.forEach(function(b){a.push(b.getData())}),this.visible=this.visible(this.key,this.getRowCount(),a,this.getComponent()))}getRowGroup(a){var b=!1;return this.groupList.length?this.groupList.forEach(function(c){var d=c.getRowGroup(a);d&&(b=d)}):this.rows.find(function(b){return b===a})&&(b=this),b}getSubGroups(a){var b=[];return this.groupList.forEach(function(c){b.push(a?c.getComponent():c)}),b}getRows(a,b){var c=[];return b&&this.groupList.length?this.groupList.forEach(d=>{c=c.concat(d.getRows(a,b))}):this.rows.forEach(function(b){c.push(a?b.getComponent():b)}),c}generateGroupHeaderContents(){var a=[];for(this.getRows(!1,!0).forEach(function(b){a.push(b.getData())}),this.elementContents=this.generator(this.key,this.getRowCount(),a,this.getComponent());this.element.firstChild;)this.element.removeChild(this.element.firstChild);"string"==typeof this.elementContents?this.element.innerHTML=this.elementContents:this.element.appendChild(this.elementContents),this.element.insertBefore(this.arrowElement,this.element.firstChild)}getPath(a=[]){return a.unshift(this.key),this.parent&&this.parent.getPath(a),a}getElement(){return this.elementContents?this.element:this.generateElement()}generateElement(){this.addBindings=!1,this._visSet(),this.visible?this.element.classList.add("tabulator-group-visible"):this.element.classList.remove("tabulator-group-visible");for(var a=0;a<this.element.childNodes.length;++a)this.element.childNodes[a].parentNode.removeChild(this.element.childNodes[a]);return this.generateGroupHeaderContents(),this.element}detachElement(){this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element)}normalizeHeight(){this.setHeight(this.element.clientHeight)}initialize(a){(!this.initialized||a)&&(this.normalizeHeight(),this.initialized=!0)}reinitialize(){this.initialized=!1,this.height=0,n.elVisible(this.element)&&this.initialize(!0)}setHeight(a){this.height!=a&&(this.height=a,this.outerHeight=this.element.offsetHeight)}getHeight(){return this.outerHeight}getGroup(){return this}reinitializeHeight(){}calcHeight(){}setCellHeight(){}clearCellHeight(){}deinitializeHeight(){}rendered(){}getComponent(){return this.component||(this.component=new $(this)),this.component}}var aa={cellEdit:function(a){a.component.setValueProcessData(a.data.oldValue),a.component.cellRendered()},rowAdd:function(a){a.component.deleteActual(),this.table.rowManager.checkPlaceholder()},rowDelete:function(a){var b=this.table.rowManager.addRowActual(a.data.data,a.data.pos,a.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(a.component,b),this.table.rowManager.checkPlaceholder()},rowMove:function(a){var b=a.data.posFrom-a.data.posTo>0;this.table.rowManager.moveRowActual(a.component,this.table.rowManager.getRowFromPosition(a.data.posFrom),b),this.table.rowManager.regenerateRowPositions(),this.table.rowManager.reRenderInPosition()}},ab={cellEdit:function(a){a.component.setValueProcessData(a.data.newValue),a.component.cellRendered()},rowAdd:function(a){var b=this.table.rowManager.addRowActual(a.data.data,a.data.pos,a.data.index);this.table.options.groupBy&&this.table.modExists("groupRows")&&this.table.modules.groupRows.updateGroupRows(!0),this._rebindRow(a.component,b),this.table.rowManager.checkPlaceholder()},rowDelete:function(a){a.component.deleteActual(),this.table.rowManager.checkPlaceholder()},rowMove:function(a){this.table.rowManager.moveRowActual(a.component,this.table.rowManager.getRowFromPosition(a.data.posTo),a.data.after),this.table.rowManager.regenerateRowPositions(),this.table.rowManager.reRenderInPosition()}},ac={keybindings:{bindings:{undo:["ctrl + 90","meta + 90"],redo:["ctrl + 89","meta + 89"]},actions:{undo:function(a){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(a.preventDefault(),this.table.modules.history.undo()))},redo:function(a){this.table.options.history&&this.table.modExists("history")&&this.table.modExists("edit")&&(this.table.modules.edit.currentCell||(a.preventDefault(),this.table.modules.history.redo()))}}}};class ad extends p{static moduleName="history";static moduleExtensions=ac;static undoers=aa;static redoers=ab;constructor(a){super(a),this.history=[],this.index=-1,this.registerTableOption("history",!1)}initialize(){this.table.options.history&&(this.subscribe("cell-value-updated",this.cellUpdated.bind(this)),this.subscribe("cell-delete",this.clearComponentHistory.bind(this)),this.subscribe("row-delete",this.rowDeleted.bind(this)),this.subscribe("rows-wipe",this.clear.bind(this)),this.subscribe("row-added",this.rowAdded.bind(this)),this.subscribe("row-move",this.rowMoved.bind(this))),this.registerTableFunction("undo",this.undo.bind(this)),this.registerTableFunction("redo",this.redo.bind(this)),this.registerTableFunction("getHistoryUndoSize",this.getHistoryUndoSize.bind(this)),this.registerTableFunction("getHistoryRedoSize",this.getHistoryRedoSize.bind(this)),this.registerTableFunction("clearHistory",this.clear.bind(this))}rowMoved(a,b,c){this.action("rowMove",a,{posFrom:a.getPosition(),posTo:b.getPosition(),to:b,after:c})}rowAdded(a,b,c,d){this.action("rowAdd",a,{data:b,pos:c,index:d})}rowDeleted(a){var b,c;this.table.options.groupBy?(b=(c=a.getComponent().getGroup()._getSelf().rows).indexOf(a))&&(b=c[b-1]):(b=a.table.rowManager.getRowIndex(a))&&(b=a.table.rowManager.rows[b-1]),this.action("rowDelete",a,{data:a.getData(),pos:!b,index:b})}cellUpdated(a){this.action("cellEdit",a,{oldValue:a.oldValue,newValue:a.value})}clear(){this.history=[],this.index=-1}action(a,b,c){this.history=this.history.slice(0,this.index+1),this.history.push({type:a,component:b,data:c}),this.index++}getHistoryUndoSize(){return this.index+1}getHistoryRedoSize(){return this.history.length-(this.index+1)}clearComponentHistory(a){var b=this.history.findIndex(function(b){return b.component===a});b>-1&&(this.history.splice(b,1),b<=this.index&&this.index--,this.clearComponentHistory(a))}undo(){if(!(this.index>-1))return console.warn(this.options("history")?"History Undo Error - No more history to undo":"History module not enabled"),!1;{let a=this.history[this.index];return ad.undoers[a.type].call(this,a),this.index--,this.dispatchExternal("historyUndo",a.type,a.component.getComponent(),a.data),!0}}redo(){if(!(this.history.length-1>this.index))return console.warn(this.options("history")?"History Redo Error - No more history to redo":"History module not enabled"),!1;{this.index++;let a=this.history[this.index];return ad.redoers[a.type].call(this,a),this.dispatchExternal("historyRedo",a.type,a.component.getComponent(),a.data),!0}}_rebindRow(a,b){this.history.forEach(function(c){if(c.component instanceof I)c.component===a&&(c.component=b);else if(c.component instanceof D&&c.component.row===a){var d=c.component.column.getField();d&&(c.component=b.getCell(d))}})}}var ae={csv:function(a){var b=[],c=0,d=0,e=!1;for(let f=0;f<a.length;f++){let g=a[f],h=a[f+1];if(b[c]||(b[c]=[]),b[c][d]||(b[c][d]=""),'"'==g&&e&&'"'==h){b[c][d]+=g,f++;continue}if('"'==g){e=!e;continue}if(","==g&&!e){d++;continue}if("\r"==g&&"\n"==h&&!e){d=0,c++,f++;continue}if(("\r"==g||"\n"==g)&&!e){d=0,c++;continue}b[c][d]+=g}return b},json:function(a){try{return JSON.parse(a)}catch(a){return console.warn("JSON Import Error - File contents is invalid JSON",a),Promise.reject()}},array:function(a){return a},xlsx:function(a){var b=this.dependencyRegistry.lookup("XLSX"),c=b.read(a),d=c.Sheets[c.SheetNames[0]];return b.utils.sheet_to_json(d,{header:1})}};class af extends p{static moduleName="import";static importers=ae;constructor(a){super(a),this.registerTableOption("importFormat"),this.registerTableOption("importReader","text"),this.registerTableOption("importHeaderTransform"),this.registerTableOption("importValueTransform"),this.registerTableOption("importDataValidator"),this.registerTableOption("importFileValidator")}initialize(){this.registerTableFunction("import",this.importFromFile.bind(this)),this.table.options.importFormat&&(this.subscribe("data-loading",this.loadDataCheck.bind(this),10),this.subscribe("data-load",this.loadData.bind(this),10))}loadDataCheck(a){return this.table.options.importFormat&&("string"==typeof a||Array.isArray(a)&&a.length&&Array.isArray(a))}loadData(a,b,c,d,e){return this.importData(this.lookupImporter(),a).then(this.structureData.bind(this)).catch(a=>(console.error("Import Error:",a||"Unable to import data"),Promise.reject(a)))}lookupImporter(a){var b;return a||(a=this.table.options.importFormat),(b="string"==typeof a?af.importers[a]:a)||console.error("Import Error - Importer not found:",a),b}importFromFile(a,b,c){var d=this.lookupImporter(a);if(d)return this.pickFile(b,c).then(this.importData.bind(this,d)).then(this.structureData.bind(this)).then(this.mutateData.bind(this)).then(this.validateData.bind(this)).then(this.setData.bind(this)).catch(a=>(this.dispatch("import-error",a),this.dispatchExternal("importError",a),console.error("Import Error:",a||"Unable to import file"),this.table.dataLoader.alertError(),setTimeout(()=>{this.table.dataLoader.clearAlert()},3e3),Promise.reject(a)))}pickFile(a,b){return new Promise((c,d)=>{var e=document.createElement("input");e.type="file",e.accept=a,e.addEventListener("change",a=>{var f=e.files[0],g=new FileReader,h=this.validateFile(f);if(!0===h){switch(this.dispatch("import-importing",e.files),this.dispatchExternal("importImporting",e.files),b||this.table.options.importReader){case"buffer":g.readAsArrayBuffer(f);break;case"binary":g.readAsBinaryString(f);break;case"url":g.readAsDataURL(f);break;default:g.readAsText(f)}g.onload=a=>{c(g.result)},g.onerror=a=>{console.warn("File Load Error - Unable to read file"),d(a)}}else d(h)}),this.dispatch("import-choose"),this.dispatchExternal("importChoose"),e.click()})}importData(a,b){var c;return this.table.dataLoader.alertLoader(),new Promise((d,e)=>{setTimeout(()=>{(c=a.call(this.table,b))instanceof Promise||c?d(c):e()},10)})}structureData(a){return Array.isArray(a)&&a.length&&Array.isArray(a[0])?this.table.options.autoColumns?this.structureArrayToObject(a):this.structureArrayToColumns(a):a}mutateData(a){var b=[];return Array.isArray(a)?a.forEach(a=>{b.push(this.table.modules.mutator.transformRow(a,"import"))}):b=a,b}transformHeader(a){var b=[];return this.table.options.importHeaderTransform?(a.forEach(c=>{b.push(this.table.options.importHeaderTransform.call(this.table,c,a))}),b):a}transformData(a){var b=[];return this.table.options.importValueTransform?(a.forEach(c=>{b.push(this.table.options.importValueTransform.call(this.table,c,a))}),b):a}structureArrayToObject(a){var b=this.transformHeader(a.shift());return a.map(a=>{var c={};return a=this.transformData(a),b.forEach((b,d)=>{c[b]=a[d]}),c})}structureArrayToColumns(a){var b=[],c=this.transformHeader(a[0]),d=this.table.getColumns();return d[0]&&c[0]&&d[0].getDefinition().title===c[0]&&a.shift(),a.forEach(a=>{var c={};(a=this.transformData(a)).forEach((a,b)=>{var e=d[b];e&&(c[e.getField()]=a)}),b.push(c)}),b}validateFile(a){return!this.table.options.importFileValidator||this.table.options.importFileValidator.call(this.table,a)}validateData(a){var b;return this.table.options.importDataValidator&&!0!==(b=this.table.options.importDataValidator.call(this.table,a))?Promise.reject(b):a}setData(a){return this.dispatch("import-imported",a),this.dispatchExternal("importImported",a),this.table.dataLoader.clearAlert(),this.table.setData(a)}}var ag={navPrev:"shift + 9",navNext:9,navUp:38,navDown:40,navLeft:37,navRight:39,scrollPageUp:33,scrollPageDown:34,scrollToStart:36,scrollToEnd:35},ah={keyBlock:function(a){a.stopPropagation(),a.preventDefault()},scrollPageUp:function(a){var b=this.table.rowManager,c=b.scrollTop-b.element.clientHeight;a.preventDefault(),b.displayRowsCount&&(c>=0?b.element.scrollTop=c:b.scrollToRow(b.getDisplayRows()[0])),this.table.element.focus()},scrollPageDown:function(a){var b=this.table.rowManager,c=b.scrollTop+b.element.clientHeight,d=b.element.scrollHeight;a.preventDefault(),b.displayRowsCount&&(c<=d?b.element.scrollTop=c:b.scrollToRow(b.getDisplayRows()[b.displayRowsCount-1])),this.table.element.focus()},scrollToStart:function(a){var b=this.table.rowManager;a.preventDefault(),b.displayRowsCount&&b.scrollToRow(b.getDisplayRows()[0]),this.table.element.focus()},scrollToEnd:function(a){var b=this.table.rowManager;a.preventDefault(),b.displayRowsCount&&b.scrollToRow(b.getDisplayRows()[b.displayRowsCount-1]),this.table.element.focus()},navPrev:function(a){this.dispatch("keybinding-nav-prev",a)},navNext:function(a){this.dispatch("keybinding-nav-next",a)},navLeft:function(a){this.dispatch("keybinding-nav-left",a)},navRight:function(a){this.dispatch("keybinding-nav-right",a)},navUp:function(a){this.dispatch("keybinding-nav-up",a)},navDown:function(a){this.dispatch("keybinding-nav-down",a)}};class ai extends p{static moduleName="keybindings";static bindings=ag;static actions=ah;constructor(a){super(a),this.watchKeys=null,this.pressedKeys=null,this.keyupBinding=!1,this.keydownBinding=!1,this.registerTableOption("keybindings",{}),this.registerTableOption("tabEndNewRow",!1)}initialize(){var a=this.table.options.keybindings,b={};this.watchKeys={},this.pressedKeys=[],!1!==a&&(Object.assign(b,ai.bindings),Object.assign(b,a),this.mapBindings(b),this.bindEvents()),this.subscribe("table-destroy",this.clearBindings.bind(this))}mapBindings(a){for(let b in a)ai.actions[b]?a[b]&&("object"!=typeof a[b]&&(a[b]=[a[b]]),a[b].forEach(a=>{(Array.isArray(a)?a:[a]).forEach(a=>{this.mapBinding(b,a)})})):console.warn("Key Binding Error - no such action:",b)}getKeyCode(a){return 1===a.key.length?a.key.toUpperCase().charCodeAt(0):({Enter:13,Escape:27,Tab:9,Backspace:8,Delete:46,ArrowUp:38,ArrowDown:40,ArrowLeft:37,ArrowRight:39,Home:36,End:35,PageUp:33,PageDown:34,Insert:45})[a.key]||a.keyCode||0}mapBinding(a,b){var c={action:ai.actions[a],keys:[],ctrl:!1,shift:!1,meta:!1};b.toString().toLowerCase().split(" ").join("").split("+").forEach(a=>{switch(a){case"ctrl":c.ctrl=!0;break;case"shift":c.shift=!0;break;case"meta":c.meta=!0;break;default:a=isNaN(a)?a.toUpperCase().charCodeAt(0):parseInt(a),c.keys.push(a),this.watchKeys[a]||(this.watchKeys[a]=[]),this.watchKeys[a].push(c)}})}bindEvents(){var a=this;this.keyupBinding=function(b){var c=a.getKeyCode(b),d=a.watchKeys[c];d&&(a.pressedKeys.push(c),d.forEach(function(c){a.checkBinding(b,c)}))},this.keydownBinding=function(b){var c=a.getKeyCode(b);if(a.watchKeys[c]){var d=a.pressedKeys.indexOf(c);d>-1&&a.pressedKeys.splice(d,1)}},this.table.element.addEventListener("keydown",this.keyupBinding),this.table.element.addEventListener("keyup",this.keydownBinding)}clearBindings(){this.keyupBinding&&this.table.element.removeEventListener("keydown",this.keyupBinding),this.keydownBinding&&this.table.element.removeEventListener("keyup",this.keydownBinding)}checkBinding(a,b){var c=!0;return a.ctrlKey==b.ctrl&&a.shiftKey==b.shift&&a.metaKey==b.meta&&(b.keys.forEach(a=>{-1==this.pressedKeys.indexOf(a)&&(c=!1)}),c&&b.action.call(this,a),!0)}}var aj={delete:function(a,b,c){a.delete()}},ak={insert:function(a,b,c){return this.table.addRow(a.getData(),void 0,b),!0},add:function(a,b,c){return this.table.addRow(a.getData()),!0},update:function(a,b,c){return!!b&&(b.update(a.getData()),!0)},replace:function(a,b,c){return!!b&&(this.table.addRow(a.getData(),void 0,b),b.delete(),!0)}};class al extends p{static moduleName="moveRow";static senders=aj;static receivers=ak;constructor(a){super(a),this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=150,this.moving=!1,this.toRow=!1,this.toRowAfter=!1,this.hasHandle=!1,this.startY=0,this.startX=0,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.tableRowDropEvent=!1,this.touchMove=!1,this.connection=!1,this.connectionSelectorsTables=!1,this.connectionSelectorsElements=!1,this.connectionElements=[],this.connections=[],this.connectedTable=!1,this.connectedRow=!1,this.registerTableOption("movableRows",!1),this.registerTableOption("movableRowsConnectedTables",!1),this.registerTableOption("movableRowsConnectedElements",!1),this.registerTableOption("movableRowsSender",!1),this.registerTableOption("movableRowsReceiver","insert"),this.registerColumnOption("rowHandle")}createPlaceholderElement(){var a=document.createElement("div");return a.classList.add("tabulator-row"),a.classList.add("tabulator-row-placeholder"),a}initialize(){this.table.options.movableRows&&(this.connectionSelectorsTables=this.table.options.movableRowsConnectedTables,this.connectionSelectorsElements=this.table.options.movableRowsConnectedElements,this.connection=this.connectionSelectorsTables||this.connectionSelectorsElements,this.subscribe("cell-init",this.initializeCell.bind(this)),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("row-init",this.initializeRow.bind(this)))}initializeGroupHeader(a){var b=this,c={};c.mouseup=(function(c){b.tableRowDrop(c,a)}).bind(b),c.mousemove=(function(c){var d;c.pageY-n.elOffset(a.element).top+b.table.rowManager.element.scrollTop>a.getHeight()/2?b.toRow===a&&b.toRowAfter||((d=a.getElement()).parentNode.insertBefore(b.placeholderElement,d.nextSibling),b.moveRow(a,!0)):(b.toRow!==a||b.toRowAfter)&&(d=a.getElement()).previousSibling&&(d.parentNode.insertBefore(b.placeholderElement,d),b.moveRow(a,!1))}).bind(b),a.modules.moveRow=c}initializeRow(a){var b,c=this,d={};d.mouseup=(function(b){c.tableRowDrop(b,a)}).bind(c),d.mousemove=(function(b){var d=a.getElement();b.pageY-n.elOffset(d).top+c.table.rowManager.element.scrollTop>a.getHeight()/2?c.toRow===a&&c.toRowAfter||(d.parentNode.insertBefore(c.placeholderElement,d.nextSibling),c.moveRow(a,!0)):(c.toRow!==a||c.toRowAfter)&&(d.parentNode.insertBefore(c.placeholderElement,d),c.moveRow(a,!1))}).bind(c),this.hasHandle||((b=a.getElement()).addEventListener("mousedown",function(b){1===b.which&&(c.checkTimeout=setTimeout(function(){c.startMove(b,a)},c.checkPeriod))}),b.addEventListener("mouseup",function(a){1===a.which&&c.checkTimeout&&clearTimeout(c.checkTimeout)}),this.bindTouchEvents(a,a.getElement())),a.modules.moveRow=d}initializeColumn(a){a.definition.rowHandle&&!1!==this.table.options.movableRows&&(this.hasHandle=!0)}initializeCell(a){if(a.column.definition.rowHandle&&!1!==this.table.options.movableRows){var b=this,c=a.getElement(!0);c.addEventListener("mousedown",function(c){1===c.which&&(b.checkTimeout=setTimeout(function(){b.startMove(c,a.row)},b.checkPeriod))}),c.addEventListener("mouseup",function(a){1===a.which&&b.checkTimeout&&clearTimeout(b.checkTimeout)}),this.bindTouchEvents(a.row,c)}}bindTouchEvents(a,b){var c,d,e,f,g,h,i=!1;b.addEventListener("touchstart",b=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,e=(c=a.nextRow())?c.getHeight()/2:0,f=(d=a.prevRow())?d.getHeight()/2:0,g=0,h=0,i=!1,this.startMove(b,a)},this.checkPeriod)},{passive:!0}),this.moving,this.toRow,this.toRowAfter,b.addEventListener("touchmove",b=>{var j,k;this.moving&&(b.preventDefault(),this.moveHover(b),i||(i=b.touches[0].pageY),(j=b.touches[0].pageY-i)>0?c&&j-g>e&&(k=c)!==a&&(i=b.touches[0].pageY,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement().nextSibling),this.moveRow(k,!0)):d&&-j-h>f&&(k=d)!==a&&(i=b.touches[0].pageY,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement()),this.moveRow(k,!1)),k&&(c=k.nextRow(),g=e,e=c?c.getHeight()/2:0,d=k.prevRow(),h=f,f=d?d.getHeight()/2:0))}),b.addEventListener("touchend",a=>{this.checkTimeout&&clearTimeout(this.checkTimeout),this.moving&&(this.endMove(a),this.touchMove=!1)})}_bindMouseMove(){this.table.rowManager.getDisplayRows().forEach(a=>{("row"===a.type||"group"===a.type)&&a.modules.moveRow&&a.modules.moveRow.mousemove&&a.getElement().addEventListener("mousemove",a.modules.moveRow.mousemove)})}_unbindMouseMove(){this.table.rowManager.getDisplayRows().forEach(a=>{("row"===a.type||"group"===a.type)&&a.modules.moveRow&&a.modules.moveRow.mousemove&&a.getElement().removeEventListener("mousemove",a.modules.moveRow.mousemove)})}startMove(a,b){var c=b.getElement();this.setStartPosition(a,b),this.moving=b,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=b.getWidth()+"px",this.placeholderElement.style.height=b.getHeight()+"px",this.connection?(this.table.element.classList.add("tabulator-movingrow-sending"),this.connectToTables(b)):(c.parentNode.insertBefore(this.placeholderElement,c),c.parentNode.removeChild(c)),this.hoverElement=c.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),this.connection?(document.body.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this.hoverElement.style.width=this.table.element.clientWidth+"px",this.hoverElement.style.whiteSpace="nowrap",this.hoverElement.style.overflow="hidden",this.hoverElement.style.pointerEvents="none"):(this.table.rowManager.getTableElement().appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.top="0",this._bindMouseMove()),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove),this.dispatchExternal("rowMoving",b.getComponent()),this.moveHover(a)}setStartPosition(a,b){var c,d,e=this.touchMove?a.touches[0].pageX:a.pageX,f=this.touchMove?a.touches[0].pageY:a.pageY;c=b.getElement(),this.connection?(d=c.getBoundingClientRect(),this.startX=d.left-e+window.pageXOffset,this.startY=d.top-f+window.pageYOffset):this.startY=f-c.getBoundingClientRect().top}endMove(a){(!a||1===a.which||this.touchMove)&&(this._unbindMouseMove(),this.connection||(this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement)),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toRow?this.table.rowManager.moveRow(this.moving,this.toRow,this.toRowAfter):this.dispatchExternal("rowMoveCancelled",this.moving.getComponent()),this.moving=!1,this.toRow=!1,this.toRowAfter=!1,document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove),this.connection&&(this.table.element.classList.remove("tabulator-movingrow-sending"),this.disconnectFromTables()))}moveRow(a,b){this.toRow=a,this.toRowAfter=b}moveHover(a){this.connection?this.moveHoverConnections.call(this,a):this.moveHoverTable.call(this,a)}moveHoverTable(a){var b=this.table.rowManager.getElement(),c=b.scrollTop,d=(this.touchMove?a.touches[0].pageY:a.pageY)-b.getBoundingClientRect().top+c;this.hoverElement.style.top=Math.min(d-this.startY,this.table.rowManager.element.scrollHeight-this.hoverElement.offsetHeight)+"px"}moveHoverConnections(a){this.hoverElement.style.left=this.startX+(this.touchMove?a.touches[0].pageX:a.pageX)+"px",this.hoverElement.style.top=this.startY+(this.touchMove?a.touches[0].pageY:a.pageY)+"px"}elementRowDrop(a,b,c){this.dispatchExternal("movableRowsElementDrop",a,b,!!c&&c.getComponent())}connectToTables(a){var b;this.connectionSelectorsTables&&(b=this.commsConnections(this.connectionSelectorsTables),this.dispatchExternal("movableRowsSendingStart",b),this.commsSend(this.connectionSelectorsTables,"moveRow","connect",{row:a})),this.connectionSelectorsElements&&(this.connectionElements=[],Array.isArray(this.connectionSelectorsElements)||(this.connectionSelectorsElements=[this.connectionSelectorsElements]),this.connectionSelectorsElements.forEach(a=>{"string"==typeof a?this.connectionElements=this.connectionElements.concat(Array.prototype.slice.call(document.querySelectorAll(a))):this.connectionElements.push(a)}),this.connectionElements.forEach(a=>{var b=b=>{this.elementRowDrop(b,a,this.moving)};a.addEventListener("mouseup",b),a.tabulatorElementDropEvent=b,a.classList.add("tabulator-movingrow-receiving")}))}disconnectFromTables(){var a;this.connectionSelectorsTables&&(a=this.commsConnections(this.connectionSelectorsTables),this.dispatchExternal("movableRowsSendingStop",a),this.commsSend(this.connectionSelectorsTables,"moveRow","disconnect")),this.connectionElements.forEach(a=>{a.classList.remove("tabulator-movingrow-receiving"),a.removeEventListener("mouseup",a.tabulatorElementDropEvent),delete a.tabulatorElementDropEvent})}connect(a,b){return this.connectedTable?(console.warn("Move Row Error - Table cannot accept connection, already connected to table:",this.connectedTable),!1):(this.connectedTable=a,this.connectedRow=b,this.table.element.classList.add("tabulator-movingrow-receiving"),this.table.rowManager.getDisplayRows().forEach(a=>{"row"===a.type&&a.modules.moveRow&&a.modules.moveRow.mouseup&&a.getElement().addEventListener("mouseup",a.modules.moveRow.mouseup)}),this.tableRowDropEvent=this.tableRowDrop.bind(this),this.table.element.addEventListener("mouseup",this.tableRowDropEvent),this.dispatchExternal("movableRowsReceivingStart",b,a),!0)}disconnect(a){a===this.connectedTable?(this.connectedTable=!1,this.connectedRow=!1,this.table.element.classList.remove("tabulator-movingrow-receiving"),this.table.rowManager.getDisplayRows().forEach(a=>{"row"===a.type&&a.modules.moveRow&&a.modules.moveRow.mouseup&&a.getElement().removeEventListener("mouseup",a.modules.moveRow.mouseup)}),this.table.element.removeEventListener("mouseup",this.tableRowDropEvent),this.dispatchExternal("movableRowsReceivingStop",a)):console.warn("Move Row Error - trying to disconnect from non connected table")}dropComplete(a,b,c){var d=!1;if(c){switch(typeof this.table.options.movableRowsSender){case"string":d=al.senders[this.table.options.movableRowsSender];break;case"function":d=this.table.options.movableRowsSender}d?d.call(this,this.moving?this.moving.getComponent():void 0,b?b.getComponent():void 0,a):this.table.options.movableRowsSender&&console.warn("Mover Row Error - no matching sender found:",this.table.options.movableRowsSender),this.dispatchExternal("movableRowsSent",this.moving.getComponent(),b?b.getComponent():void 0,a)}else this.dispatchExternal("movableRowsSentFailed",this.moving.getComponent(),b?b.getComponent():void 0,a);this.endMove()}tableRowDrop(a,b){var c=!1,d=!1;switch(a.stopImmediatePropagation(),typeof this.table.options.movableRowsReceiver){case"string":c=al.receivers[this.table.options.movableRowsReceiver];break;case"function":c=this.table.options.movableRowsReceiver}c?d=c.call(this,this.connectedRow.getComponent(),b?b.getComponent():void 0,this.connectedTable):console.warn("Mover Row Error - no matching receiver found:",this.table.options.movableRowsReceiver),d?this.dispatchExternal("movableRowsReceived",this.connectedRow.getComponent(),b?b.getComponent():void 0,this.connectedTable):this.dispatchExternal("movableRowsReceivedFailed",this.connectedRow.getComponent(),b?b.getComponent():void 0,this.connectedTable),this.commsSend(this.connectedTable,"moveRow","dropcomplete",{row:b,success:d})}commsReceived(a,b,c){switch(b){case"connect":return this.connect(a,c.row);case"disconnect":return this.disconnect(a);case"dropcomplete":return this.dropComplete(a,c.row,c.success)}}}var am={};class an extends p{static moduleName="mutator";static mutators=am;constructor(a){super(a),this.allowedTypes=["","data","edit","clipboard","import"],this.enabled=!0,this.registerColumnOption("mutator"),this.registerColumnOption("mutatorParams"),this.registerColumnOption("mutatorData"),this.registerColumnOption("mutatorDataParams"),this.registerColumnOption("mutatorEdit"),this.registerColumnOption("mutatorEditParams"),this.registerColumnOption("mutatorClipboard"),this.registerColumnOption("mutatorClipboardParams"),this.registerColumnOption("mutatorImport"),this.registerColumnOption("mutatorImportParams"),this.registerColumnOption("mutateLink")}initialize(){this.subscribe("cell-value-changing",this.transformCell.bind(this)),this.subscribe("cell-value-changed",this.mutateLink.bind(this)),this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("row-data-init-before",this.rowDataChanged.bind(this)),this.subscribe("row-data-changing",this.rowDataChanged.bind(this))}rowDataChanged(a,b,c){return this.transformRow(b,"data",c)}initializeColumn(a){var b=!1,c={};this.allowedTypes.forEach(d=>{var e,f="mutator"+(d.charAt(0).toUpperCase()+d.slice(1));a.definition[f]&&(e=this.lookupMutator(a.definition[f]))&&(b=!0,c[f]={mutator:e,params:a.definition[f+"Params"]||{}})}),b&&(a.modules.mutate=c)}lookupMutator(a){var b=!1;switch(typeof a){case"string":an.mutators[a]?b=an.mutators[a]:console.warn("Mutator Error - No such mutator found, ignoring: ",a);break;case"function":b=a}return b}transformRow(a,b,c){var d,e="mutator"+(b.charAt(0).toUpperCase()+b.slice(1));return this.enabled&&this.table.columnManager.traverse(f=>{var g,h,i;f.modules.mutate&&(g=f.modules.mutate[e]||f.modules.mutate.mutator||!1)&&(d=f.getFieldValue(void 0!==c?c:a),("data"!=b||c)&&void 0===d||(i=f.getComponent(),h="function"==typeof g.params?g.params(d,a,b,i):g.params,f.setFieldValue(a,g.mutator(d,a,b,h,i))))}),a}transformCell(a,b){if(a.column.modules.mutate){var c=a.column.modules.mutate.mutatorEdit||a.column.modules.mutate.mutator||!1,d={};if(c)return d=Object.assign(d,a.row.getData()),a.column.setFieldValue(d,b),c.mutator(b,d,"edit",c.params,a.getComponent())}return b}mutateLink(a){var b=a.column.definition.mutateLink;b&&(Array.isArray(b)||(b=[b]),b.forEach(b=>{var c=a.row.getCell(b);c&&c.setValue(c.getValue(),!0,!0)}))}enable(){this.enabled=!0}disable(){this.enabled=!1}}var ao={rows:function(a,b,c,d,e){var f=document.createElement("span"),g=document.createElement("span"),h=document.createElement("span"),i=document.createElement("span"),j=document.createElement("span"),k=document.createElement("span");return this.table.modules.localize.langBind("pagination|counter|showing",a=>{g.innerHTML=a}),this.table.modules.localize.langBind("pagination|counter|of",a=>{i.innerHTML=a}),this.table.modules.localize.langBind("pagination|counter|rows",a=>{k.innerHTML=a}),d?(h.innerHTML=" "+b+"-"+Math.min(b+a-1,d)+" ",j.innerHTML=" "+d+" ",f.appendChild(g),f.appendChild(h),f.appendChild(i),f.appendChild(j)):(h.innerHTML=" 0 ",f.appendChild(g),f.appendChild(h)),f.appendChild(k),f},pages:function(a,b,c,d,e){var f=document.createElement("span"),g=document.createElement("span"),h=document.createElement("span"),i=document.createElement("span"),j=document.createElement("span"),k=document.createElement("span");return this.table.modules.localize.langBind("pagination|counter|showing",a=>{g.innerHTML=a}),h.innerHTML=" "+c+" ",this.table.modules.localize.langBind("pagination|counter|of",a=>{i.innerHTML=a}),j.innerHTML=" "+e+" ",this.table.modules.localize.langBind("pagination|counter|pages",a=>{k.innerHTML=a}),f.appendChild(g),f.appendChild(h),f.appendChild(i),f.appendChild(j),f.appendChild(k),f}};class ap extends p{static moduleName="page";static pageCounters=ao;constructor(a){super(a),this.mode="local",this.progressiveLoad=!1,this.element=null,this.pageCounterElement=null,this.pageCounter=null,this.size=0,this.page=1,this.count=5,this.max=1,this.remoteRowCountEstimate=null,this.initialLoad=!0,this.dataChanging=!1,this.pageSizes=[],this.registerTableOption("pagination",!1),this.registerTableOption("paginationMode","local"),this.registerTableOption("paginationSize",!1),this.registerTableOption("paginationInitialPage",1),this.registerTableOption("paginationCounter",!1),this.registerTableOption("paginationCounterElement",!1),this.registerTableOption("paginationButtonCount",5),this.registerTableOption("paginationSizeSelector",!1),this.registerTableOption("paginationElement",!1),this.registerTableOption("paginationAddRow","page"),this.registerTableOption("paginationOutOfRange",!1),this.registerTableOption("progressiveLoad",!1),this.registerTableOption("progressiveLoadDelay",0),this.registerTableOption("progressiveLoadScrollMargin",0),this.registerTableFunction("setMaxPage",this.setMaxPage.bind(this)),this.registerTableFunction("setPage",this.setPage.bind(this)),this.registerTableFunction("setPageToRow",this.userSetPageToRow.bind(this)),this.registerTableFunction("setPageSize",this.userSetPageSize.bind(this)),this.registerTableFunction("getPageSize",this.getPageSize.bind(this)),this.registerTableFunction("previousPage",this.previousPage.bind(this)),this.registerTableFunction("nextPage",this.nextPage.bind(this)),this.registerTableFunction("getPage",this.getPage.bind(this)),this.registerTableFunction("getPageMax",this.getPageMax.bind(this)),this.registerComponentFunction("row","pageTo",this.setPageToRow.bind(this))}initialize(){this.table.options.pagination?(this.subscribe("row-deleted",this.rowsUpdated.bind(this)),this.subscribe("row-added",this.rowsUpdated.bind(this)),this.subscribe("data-processed",this.initialLoadComplete.bind(this)),this.subscribe("table-built",this.calculatePageSizes.bind(this)),this.subscribe("footer-redraw",this.footerRedraw.bind(this)),"page"==this.table.options.paginationAddRow&&this.subscribe("row-adding-position",this.rowAddingPosition.bind(this)),"remote"===this.table.options.paginationMode&&(this.subscribe("data-params",this.remotePageParams.bind(this)),this.subscribe("data-loaded",this._parseRemoteData.bind(this))),this.table.options.progressiveLoad&&console.error("Progressive Load Error - Pagination and progressive load cannot be used at the same time"),this.registerDisplayHandler(this.restOnRenderBefore.bind(this),40),this.registerDisplayHandler(this.getRows.bind(this),50),this.createElements(),this.initializePageCounter(),this.initializePaginator()):this.table.options.progressiveLoad&&(this.subscribe("data-params",this.remotePageParams.bind(this)),this.subscribe("data-loaded",this._parseRemoteData.bind(this)),this.subscribe("table-built",this.calculatePageSizes.bind(this)),this.subscribe("data-processed",this.initialLoadComplete.bind(this)),this.initializeProgressive(this.table.options.progressiveLoad),"scroll"===this.table.options.progressiveLoad&&this.subscribe("scroll-vertical",this.scrollVertical.bind(this)))}rowAddingPosition(a,b){var c,d=this.table.rowManager,e=d.getDisplayRows();return b?e.length?c=e[0]:d.activeRows.length&&(c=d.activeRows[d.activeRows.length-1],b=!1):e.length&&(c=e[e.length-1],b=!(e.length<this.size)),{index:c,top:b}}calculatePageSizes(){var a,b;this.table.options.paginationSize?this.size=this.table.options.paginationSize:((a=document.createElement("div")).classList.add("tabulator-row"),a.style.visibility="hidden",(b=document.createElement("div")).classList.add("tabulator-cell"),b.innerHTML="Page Row Test",a.appendChild(b),this.table.rowManager.getTableElement().appendChild(a),this.size=Math.floor(this.table.rowManager.getElement().clientHeight/a.offsetHeight),this.table.rowManager.getTableElement().removeChild(a)),this.dispatchExternal("pageSizeChanged",this.size),this.generatePageSizeSelectList()}initialLoadComplete(){this.initialLoad=!1}remotePageParams(a,b,c,d){return this.initialLoad||(!this.progressiveLoad||c)&&(this.progressiveLoad||this.dataChanging)||this.reset(!0),d.page=this.page,this.size&&(d.size=this.size),d}userSetPageToRow(a){return this.table.options.pagination&&(a=this.table.rowManager.findRow(a))?this.setPageToRow(a):Promise.reject()}userSetPageSize(a){return!!this.table.options.pagination&&(this.setPageSize(a),this.setPage(1))}scrollVertical(a,b){var c;b||this.table.dataLoader.loading||(c=this.table.rowManager.getElement()).scrollHeight-c.clientHeight-a<(this.table.options.progressiveLoadScrollMargin||2*c.clientHeight)&&this.nextPage().catch(()=>{})}restOnRenderBefore(a,b){return b||"local"!==this.mode||this.reset(),a}rowsUpdated(){this.refreshData(!0,"all")}createElements(){var a;this.element=document.createElement("span"),this.element.classList.add("tabulator-paginator"),this.pagesElement=document.createElement("span"),this.pagesElement.classList.add("tabulator-pages"),(a=document.createElement("button")).classList.add("tabulator-page"),a.setAttribute("type","button"),a.setAttribute("role","button"),a.setAttribute("aria-label",""),a.setAttribute("title",""),this.firstBut=a.cloneNode(!0),this.firstBut.setAttribute("data-page","first"),this.prevBut=a.cloneNode(!0),this.prevBut.setAttribute("data-page","prev"),this.nextBut=a.cloneNode(!0),this.nextBut.setAttribute("data-page","next"),this.lastBut=a.cloneNode(!0),this.lastBut.setAttribute("data-page","last"),this.table.options.paginationSizeSelector&&(this.pageSizeSelect=document.createElement("select"),this.pageSizeSelect.classList.add("tabulator-page-size"))}generatePageSizeSelectList(){var a=[];if(this.pageSizeSelect){if(Array.isArray(this.table.options.paginationSizeSelector))a=this.table.options.paginationSizeSelector,this.pageSizes=a,-1==this.pageSizes.indexOf(this.size)&&a.unshift(this.size);else if(-1==this.pageSizes.indexOf(this.size)){a=[];for(let b=1;b<5;b++)a.push(this.size*b);this.pageSizes=a}else a=this.pageSizes;for(;this.pageSizeSelect.firstChild;)this.pageSizeSelect.removeChild(this.pageSizeSelect.firstChild);a.forEach(a=>{var b=document.createElement("option");b.value=a,!0===a?this.langBind("pagination|all",function(a){b.innerHTML=a}):b.innerHTML=a,this.pageSizeSelect.appendChild(b)}),this.pageSizeSelect.value=this.size}}initializePageCounter(){var a=this.table.options.paginationCounter,b=null;a&&((b="function"==typeof a?a:ap.pageCounters[a])?(this.pageCounter=b,this.pageCounterElement=document.createElement("span"),this.pageCounterElement.classList.add("tabulator-page-counter")):console.warn("Pagination Error - No such page counter found: ",a))}initializePaginator(a){var b,c;a||(this.langBind("pagination|first",a=>{this.firstBut.innerHTML=a}),this.langBind("pagination|first_title",a=>{this.firstBut.setAttribute("aria-label",a),this.firstBut.setAttribute("title",a)}),this.langBind("pagination|prev",a=>{this.prevBut.innerHTML=a}),this.langBind("pagination|prev_title",a=>{this.prevBut.setAttribute("aria-label",a),this.prevBut.setAttribute("title",a)}),this.langBind("pagination|next",a=>{this.nextBut.innerHTML=a}),this.langBind("pagination|next_title",a=>{this.nextBut.setAttribute("aria-label",a),this.nextBut.setAttribute("title",a)}),this.langBind("pagination|last",a=>{this.lastBut.innerHTML=a}),this.langBind("pagination|last_title",a=>{this.lastBut.setAttribute("aria-label",a),this.lastBut.setAttribute("title",a)}),this.firstBut.addEventListener("click",()=>{this.setPage(1)}),this.prevBut.addEventListener("click",()=>{this.previousPage()}),this.nextBut.addEventListener("click",()=>{this.nextPage()}),this.lastBut.addEventListener("click",()=>{this.setPage(this.max)}),this.table.options.paginationElement&&(this.element=this.table.options.paginationElement),this.pageSizeSelect&&(b=document.createElement("label"),this.langBind("pagination|page_size",a=>{this.pageSizeSelect.setAttribute("aria-label",a),this.pageSizeSelect.setAttribute("title",a),b.innerHTML=a}),this.element.appendChild(b),this.element.appendChild(this.pageSizeSelect),this.pageSizeSelect.addEventListener("change",a=>{this.setPageSize("true"==this.pageSizeSelect.value||this.pageSizeSelect.value),this.setPage(1)})),this.element.appendChild(this.firstBut),this.element.appendChild(this.prevBut),this.element.appendChild(this.pagesElement),this.element.appendChild(this.nextBut),this.element.appendChild(this.lastBut),this.table.options.paginationElement||(this.table.options.paginationCounter&&(this.table.options.paginationCounterElement?this.table.options.paginationCounterElement instanceof HTMLElement?this.table.options.paginationCounterElement.appendChild(this.pageCounterElement):"string"==typeof this.table.options.paginationCounterElement&&((c=document.querySelector(this.table.options.paginationCounterElement))?c.appendChild(this.pageCounterElement):console.warn("Pagination Error - Unable to find element matching paginationCounterElement selector:",this.table.options.paginationCounterElement)):this.footerAppend(this.pageCounterElement)),this.footerAppend(this.element)),this.page=this.table.options.paginationInitialPage,this.count=this.table.options.paginationButtonCount),this.mode=this.table.options.paginationMode}initializeProgressive(a){this.initializePaginator(!0),this.mode="progressive_"+a,this.progressiveLoad=!0}trackChanges(){this.dispatch("page-changed")}setMaxRows(a){a?this.max=!0===this.size?1:Math.ceil(a/this.size):this.max=1,this.page>this.max&&(this.page=this.max)}reset(a){!this.initialLoad&&("local"==this.mode||a)&&(this.page=1,this.trackChanges())}setMaxPage(a){a=parseInt(a),this.max=a||1,this.page>this.max&&(this.page=this.max,this.trigger())}setPage(a){switch(a){case"first":return this.setPage(1);case"prev":return this.previousPage();case"next":return this.nextPage();case"last":return this.setPage(this.max)}return(a=parseInt(a))>0&&a<=this.max||"local"!==this.mode?(this.page=a,this.trackChanges(),this.trigger()):(console.warn("Pagination Error - Requested page is out of range of 1 - "+this.max+":",a),Promise.reject())}setPageToRow(a){var b=this.displayRows(-1).indexOf(a);if(!(b>-1))return console.warn("Pagination Error - Requested row is not visible"),Promise.reject();var c=!0===this.size?1:Math.ceil((b+1)/this.size);return this.setPage(c)}setPageSize(a){!0!==a&&(a=parseInt(a)),a>0&&(this.size=a,this.dispatchExternal("pageSizeChanged",a)),this.pageSizeSelect&&this.generatePageSizeSelectList(),this.trackChanges()}_setPageCounter(a,b,c){var d;if(this.pageCounter)switch("remote"===this.mode&&(b=this.size,c=(this.page-1)*this.size+1,a=this.remoteRowCountEstimate),typeof(d=this.pageCounter.call(this,b,c,this.page,a,this.max))){case"object":if(d instanceof Node){for(;this.pageCounterElement.firstChild;)this.pageCounterElement.removeChild(this.pageCounterElement.firstChild);this.pageCounterElement.appendChild(d)}else this.pageCounterElement.innerHTML="",null!=d&&console.warn("Page Counter Error - Page Counter has returned a type of object, the only valid page counter object return is an instance of Node, the page counter returned:",d);break;case"undefined":this.pageCounterElement.innerHTML="";break;default:this.pageCounterElement.innerHTML=d}}_setPageButtons(){let a=Math.floor((this.count-1)/2),b=Math.ceil((this.count-1)/2),c=this.max-this.page+a+1<this.count?this.max-this.count+1:Math.max(this.page-a,1),d=this.page<=b?Math.min(this.count,this.max):Math.min(this.page+b,this.max);for(;this.pagesElement.firstChild;)this.pagesElement.removeChild(this.pagesElement.firstChild);1==this.page?(this.firstBut.disabled=!0,this.prevBut.disabled=!0):(this.firstBut.disabled=!1,this.prevBut.disabled=!1),this.page==this.max?(this.lastBut.disabled=!0,this.nextBut.disabled=!0):(this.lastBut.disabled=!1,this.nextBut.disabled=!1);for(let a=c;a<=d;a++)a>0&&a<=this.max&&this.pagesElement.appendChild(this._generatePageButton(a));this.footerRedraw()}_generatePageButton(a){var b=document.createElement("button");return b.classList.add("tabulator-page"),a==this.page&&b.classList.add("active"),b.setAttribute("type","button"),b.setAttribute("role","button"),this.langBind("pagination|page_title",c=>{b.setAttribute("aria-label",c+" "+a),b.setAttribute("title",c+" "+a)}),b.setAttribute("data-page",a),b.textContent=a,b.addEventListener("click",b=>{this.setPage(a)}),b}previousPage(){return this.page>1?(this.page--,this.trackChanges(),this.trigger()):(console.warn("Pagination Error - Previous page would be less than page 1:",0),Promise.reject())}nextPage(){return this.page<this.max?(this.page++,this.trackChanges(),this.trigger()):(this.progressiveLoad||console.warn("Pagination Error - Next page would be greater than maximum page of "+this.max+":",this.max+1),Promise.reject())}getPage(){return this.page}getPageMax(){return this.max}getPageSize(a){return this.size}getMode(){return this.mode}getRows(a){var b,c,d,e,f=0,g=a.filter(a=>"row"===a.type);if("local"!=this.mode)return this._setPageButtons(),this._setPageCounter(g.length),a.slice(0);b=[],this.setMaxRows(a.length),!0===this.size?(c=0,d=a.length):d=(c=this.size*(this.page-1))+parseInt(this.size),this._setPageButtons();for(let g=c;g<d;g++){let c=a[g];c&&(b.push(c),"row"===c.type&&(e||(e=c),f++))}return this._setPageCounter(g.length,f,e?g.indexOf(e)+1:0),b}trigger(){var a;switch(this.mode){case"local":return a=this.table.rowManager.scrollLeft,this.refreshData(),this.table.rowManager.scrollHorizontal(a),this.dispatchExternal("pageLoaded",this.getPage()),Promise.resolve();case"remote":return this.dataChanging=!0,this.reloadData(null).finally(()=>{this.dataChanging=!1});case"progressive_load":case"progressive_scroll":return this.reloadData(null,!0);default:return console.warn("Pagination Error - no such pagination mode:",this.mode),Promise.reject()}}_parseRemoteData(a){var b,c;if(void 0===a.last_page&&console.warn("Remote Pagination Error - Server response missing '"+(this.options("dataReceiveParams").last_page||"last_page")+"' property"),a.data){if(this.max=parseInt(a.last_page)||1,this.remoteRowCountEstimate=void 0!==a.last_row?a.last_row:a.last_page*this.size-(this.page==a.last_page?this.size-a.data.length:0),this.progressiveLoad){switch(this.mode){case"progressive_load":1==this.page?this.table.rowManager.setData(a.data,!1,1==this.page):this.table.rowManager.addRows(a.data),this.page<this.max&&setTimeout(()=>{this.nextPage()},this.table.options.progressiveLoadDelay);break;case"progressive_scroll":a=1===this.page?a.data:this.table.rowManager.getData().concat(a.data),this.table.rowManager.setData(a,1!==this.page,1==this.page),b=this.table.options.progressiveLoadScrollMargin||2*this.table.rowManager.element.clientHeight,this.table.rowManager.element.scrollHeight<=this.table.rowManager.element.clientHeight+b&&this.page<this.max&&setTimeout(()=>{this.nextPage()})}return!1}if(this.page>this.max&&(console.warn("Remote Pagination Error - Server returned last page value lower than the current page"),c=this.options("paginationOutOfRange")))return this.setPage("function"==typeof c?c.call(this,this.page,this.max):c);this.dispatchExternal("pageLoaded",this.getPage())}else console.warn("Remote Pagination Error - Server response missing '"+(this.options("dataReceiveParams").data||"data")+"' property");return a.data}footerRedraw(){var a=this.table.footerManager.containerElement;Math.ceil(a.clientWidth)-a.scrollWidth<0?this.pagesElement.style.display="none":(this.pagesElement.style.display="",Math.ceil(a.clientWidth)-a.scrollWidth<0&&(this.pagesElement.style.display="none"))}}var aq={local:function(a,b){var c=localStorage.getItem(a+"-"+b);return!!c&&JSON.parse(c)},cookie:function(a,b){var c,d,e=document.cookie,f=a+"-"+b,g=e.indexOf(f+"=");return g>-1&&((c=(e=e.slice(g)).indexOf(";"))>-1&&(e=e.slice(0,c)),d=e.replace(f+"=","")),!!d&&JSON.parse(d)}},ar={local:function(a,b,c){localStorage.setItem(a+"-"+b,JSON.stringify(c))},cookie:function(a,b,c){var d=new Date;d.setDate(d.getDate()+1e4),document.cookie=a+"-"+b+"="+JSON.stringify(c)+"; expires="+d.toUTCString()}};class as extends p{static moduleName="persistence";static moduleInitOrder=-10;static readers=aq;static writers=ar;constructor(a){super(a),this.mode="",this.id="",this.defWatcherBlock=!1,this.config={},this.readFunc=!1,this.writeFunc=!1,this.registerTableOption("persistence",!1),this.registerTableOption("persistenceID",""),this.registerTableOption("persistenceMode",!0),this.registerTableOption("persistenceReaderFunc",!1),this.registerTableOption("persistenceWriterFunc",!1)}localStorageTest(){var a="_tabulator_test";try{return window.localStorage.setItem(a,a),window.localStorage.removeItem(a),!0}catch(a){return!1}}initialize(){if(this.table.options.persistence){var a,b=this.table.options.persistenceMode,c=this.table.options.persistenceID;this.mode=!0!==b?b:this.localStorageTest()?"local":"cookie",this.table.options.persistenceReaderFunc?"function"==typeof this.table.options.persistenceReaderFunc?this.readFunc=this.table.options.persistenceReaderFunc:as.readers[this.table.options.persistenceReaderFunc]?this.readFunc=as.readers[this.table.options.persistenceReaderFunc]:console.warn("Persistence Read Error - invalid reader set",this.table.options.persistenceReaderFunc):as.readers[this.mode]?this.readFunc=as.readers[this.mode]:console.warn("Persistence Read Error - invalid reader set",this.mode),this.table.options.persistenceWriterFunc?"function"==typeof this.table.options.persistenceWriterFunc?this.writeFunc=this.table.options.persistenceWriterFunc:as.writers[this.table.options.persistenceWriterFunc]?this.writeFunc=as.writers[this.table.options.persistenceWriterFunc]:console.warn("Persistence Write Error - invalid reader set",this.table.options.persistenceWriterFunc):as.writers[this.mode]?this.writeFunc=as.writers[this.mode]:console.warn("Persistence Write Error - invalid writer set",this.mode),this.id="tabulator-"+(c||this.table.element.getAttribute("id")||""),this.config={sort:!0===this.table.options.persistence||this.table.options.persistence.sort,filter:!0===this.table.options.persistence||this.table.options.persistence.filter,headerFilter:!0===this.table.options.persistence||this.table.options.persistence.headerFilter,group:!0===this.table.options.persistence||this.table.options.persistence.group,page:!0===this.table.options.persistence||this.table.options.persistence.page,columns:!0===this.table.options.persistence?["title","width","visible"]:this.table.options.persistence.columns},this.config.page&&(a=this.retrieveData("page"))&&(void 0!==a.paginationSize&&(!0===this.config.page||this.config.page.size)&&(this.table.options.paginationSize=a.paginationSize),void 0!==a.paginationInitialPage&&(!0===this.config.page||this.config.page.page)&&(this.table.options.paginationInitialPage=a.paginationInitialPage)),this.config.group&&(a=this.retrieveData("group"))&&(void 0!==a.groupBy&&(!0===this.config.group||this.config.group.groupBy)&&(this.table.options.groupBy=a.groupBy),void 0!==a.groupStartOpen&&(!0===this.config.group||this.config.group.groupStartOpen)&&(this.table.options.groupStartOpen=a.groupStartOpen),void 0!==a.groupHeader&&(!0===this.config.group||this.config.group.groupHeader)&&(this.table.options.groupHeader=a.groupHeader)),this.config.columns&&(this.table.options.columns=this.load("columns",this.table.options.columns),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-show",this.save.bind(this,"columns")),this.subscribe("column-hide",this.save.bind(this,"columns")),this.subscribe("column-moved",this.save.bind(this,"columns"))),this.subscribe("table-built",this.tableBuilt.bind(this),0),this.subscribe("table-redraw",this.tableRedraw.bind(this)),this.subscribe("filter-changed",this.eventSave.bind(this,"filter")),this.subscribe("filter-changed",this.eventSave.bind(this,"headerFilter")),this.subscribe("sort-changed",this.eventSave.bind(this,"sort")),this.subscribe("group-changed",this.eventSave.bind(this,"group")),this.subscribe("page-changed",this.eventSave.bind(this,"page")),this.subscribe("column-resized",this.eventSave.bind(this,"columns")),this.subscribe("column-width",this.eventSave.bind(this,"columns")),this.subscribe("layout-refreshed",this.eventSave.bind(this,"columns"))}this.registerTableFunction("getColumnLayout",this.getColumnLayout.bind(this)),this.registerTableFunction("setColumnLayout",this.setColumnLayout.bind(this))}eventSave(a){this.config[a]&&this.save(a)}tableBuilt(){var a,b,c;this.config.sort&&!1==!(a=this.load("sort"))&&(this.table.options.initialSort=a),this.config.filter&&!1==!(b=this.load("filter"))&&(this.table.options.initialFilter=b),this.config.headerFilter&&!1==!(c=this.load("headerFilter"))&&(this.table.options.initialHeaderFilter=c)}tableRedraw(a){a&&this.config.columns&&this.save("columns")}getColumnLayout(){return this.parseColumns(this.table.columnManager.getColumns())}setColumnLayout(a){return this.table.columnManager.setColumns(this.mergeDefinition(this.table.options.columns,a,!0)),!0}initializeColumn(a){var b;this.config.columns&&(this.defWatcherBlock=!0,b=a.getDefinition(),(!0===this.config.columns?Object.keys(b):this.config.columns).forEach(a=>{var c=Object.getOwnPropertyDescriptor(b,a),d=b[a];c&&Object.defineProperty(b,a,{set:a=>{d=a,this.defWatcherBlock||this.save("columns"),c.set&&c.set(a)},get:()=>(c.get&&c.get(),d)})}),this.defWatcherBlock=!1)}load(a,b){var c=this.retrieveData(a);return b&&(c=c?this.mergeDefinition(b,c):b),c}retrieveData(a){return!!this.readFunc&&this.readFunc(this.id,a)}mergeDefinition(a,b,c){var d=[];return(b=b||[]).forEach((b,e)=>{var f,g=this._findColumn(a,b);g&&(c?f=Object.keys(b):!0===this.config.columns||void 0==this.config.columns?(f=Object.keys(g)).push("width"):f=this.config.columns,f.forEach(a=>{"columns"!==a&&void 0!==b[a]&&(g[a]=b[a])}),g.columns&&(g.columns=this.mergeDefinition(g.columns,b.columns)),d.push(g))}),a.forEach((a,c)=>{this._findColumn(b,a)||(d.length>c?d.splice(c,0,a):d.push(a))}),d}_findColumn(a,b){var c=b.columns?"group":b.field?"field":"object";return a.find(function(a){switch(c){case"group":return a.title===b.title&&a.columns.length===b.columns.length;case"field":return a.field===b.field;case"object":return a===b}})}save(a){var b={};switch(a){case"columns":b=this.parseColumns(this.table.columnManager.getColumns());break;case"filter":b=this.table.modules.filter.getFilters();break;case"headerFilter":b=this.table.modules.filter.getHeaderFilters();break;case"sort":b=this.validateSorters(this.table.modules.sort.getSort());break;case"group":b=this.getGroupConfig();break;case"page":b=this.getPageConfig()}this.writeFunc&&this.writeFunc(this.id,a,b)}validateSorters(a){return a.forEach(function(a){a.column=a.field,delete a.field}),a}getGroupConfig(){var a={};return this.config.group&&((!0===this.config.group||this.config.group.groupBy)&&(a.groupBy=this.table.options.groupBy),(!0===this.config.group||this.config.group.groupStartOpen)&&(a.groupStartOpen=this.table.options.groupStartOpen),(!0===this.config.group||this.config.group.groupHeader)&&(a.groupHeader=this.table.options.groupHeader)),a}getPageConfig(){var a={};return this.config.page&&((!0===this.config.page||this.config.page.size)&&(a.paginationSize=this.table.modules.page.getPageSize()),(!0===this.config.page||this.config.page.page)&&(a.paginationInitialPage=this.table.modules.page.getPage())),a}parseColumns(a){var b=[],c=["headerContextMenu","headerMenu","contextMenu","clickMenu"];return a.forEach(a=>{var d,e={},f=a.getDefinition();a.isGroup?(e.title=f.title,e.columns=this.parseColumns(a.getColumns())):(e.field=a.getField(),!0===this.config.columns||void 0==this.config.columns?((d=Object.keys(f)).push("width"),d.push("visible")):d=this.config.columns,d.forEach(b=>{switch(b){case"width":e.width=a.getWidth();break;case"visible":e.visible=a.visible;break;default:"function"!=typeof f[b]&&-1===c.indexOf(b)&&(e[b]=f[b])}})),b.push(e)}),b}}var at={format:{formatters:{responsiveCollapse:function(a,b,c){var d=document.createElement("div"),e=a.getRow()._row.modules.responsiveLayout;function f(a){var b=e.element;e.open=a,b&&(e.open?(d.classList.add("open"),b.style.display=""):(d.classList.remove("open"),b.style.display="none"))}return d.classList.add("tabulator-responsive-collapse-toggle"),d.innerHTML=`<svg class='tabulator-responsive-collapse-toggle-open' viewbox="0 0 24 24">
2
2
  <line x1="7" y1="12" x2="17" y2="12" fill="none" stroke-width="3" stroke-linecap="round" />
3
3
  <line y1="7" x1="12" y2="17" x2="12" fill="none" stroke-width="3" stroke-linecap="round" />
4
4
  </svg>
5
5
 
6
6
  <svg class='tabulator-responsive-collapse-toggle-close' viewbox="0 0 24 24">
7
7
  <line x1="7" y1="12" x2="17" y2="12" fill="none" stroke-width="3" stroke-linecap="round" />
8
- </svg>`,a.getElement().classList.add("tabulator-row-handle"),d.addEventListener("click",function(b){b.stopImmediatePropagation(),f(!e.open),a.getTable().rowManager.adjustTableSize()}),f(e.open),d}}}},au={format:{formatters:{rowSelection:function(a,b,c){var d=document.createElement("input"),e=!1;if(d.type="checkbox",d.setAttribute("aria-label","Select Row"),this.table.modExists("selectRow",!0))if(d.addEventListener("click",a=>{a.stopPropagation()}),"function"==typeof a.getRow){var f=a.getRow();f instanceof H?(d.addEventListener("change",a=>{"click"===this.table.options.selectableRowsRangeMode&&e?e=!1:f.toggleSelect()}),"click"===this.table.options.selectableRowsRangeMode&&d.addEventListener("click",a=>{e=!0,this.table.modules.selectRow.handleComplexRowClick(f._row,a)}),d.checked=f.isSelected&&f.isSelected(),this.table.modules.selectRow.registerRowSelectCheckbox(f,d)):d=""}else d.addEventListener("change",a=>{this.table.modules.selectRow.selectedRows.length?this.table.deselectRow():this.table.selectRow(b.rowRange)}),this.table.modules.selectRow.registerHeaderSelectCheckbox(d);return d}}}};class av{constructor(a){return this._range=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._range.table.componentFunctionBinder.handle("range",a._range,b)}})}getElement(){return this._range.element}getData(){return this._range.getData()}getCells(){return this._range.getCells(!0,!0)}getStructuredCells(){return this._range.getStructuredCells()}getRows(){return this._range.getRows().map(a=>a.getComponent())}getColumns(){return this._range.getColumns().map(a=>a.getComponent())}getBounds(){return this._range.getBounds()}getTopEdge(){return this._range.top}getBottomEdge(){return this._range.bottom}getLeftEdge(){return this._range.left}getRightEdge(){return this._range.right}setBounds(a,b){this._range.destroyedGuard("setBounds")&&this._range.setBounds(a?a._cell:a,b?b._cell:b)}setStartBound(a){this._range.destroyedGuard("setStartBound")&&(this._range.setEndBound(a?a._cell:a),this._range.rangeManager.layoutElement())}setEndBound(a){this._range.destroyedGuard("setEndBound")&&(this._range.setEndBound(a?a._cell:a),this._range.rangeManager.layoutElement())}clearValues(){this._range.destroyedGuard("clearValues")&&this._range.clearValues()}remove(){this._range.destroyedGuard("remove")&&this._range.destroy(!0)}}class aw extends m{constructor(a,b,c,d){super(a),this.rangeManager=b,this.element=null,this.initialized=!1,this.initializing={start:!1,end:!1},this.destroyed=!1,this.top=0,this.bottom=0,this.left=0,this.right=0,this.table=a,this.start={row:void 0,col:void 0},this.end={row:void 0,col:void 0},this.rangeManager.rowHeader&&(this.left=1,this.right=1,this.start.col=1,this.end.col=1),this.initElement(),setTimeout(()=>{this.initBounds(c,d)})}initElement(){this.element=document.createElement("div"),this.element.classList.add("tabulator-range")}initBounds(a,b){this._updateMinMax(),a&&this.setBounds(a,b||a)}setStart(a,b){(this.start.row!==a||this.start.col!==b)&&(this.start.row=a,this.start.col=b,this.initializing.start=!0,this._updateMinMax())}setEnd(a,b){(this.end.row!==a||this.end.col!==b)&&(this.end.row=a,this.end.col=b,this.initializing.end=!0,this._updateMinMax())}setBounds(a,b,c){a&&this.setStartBound(a),this.setEndBound(b||a),this.rangeManager.layoutElement(c)}setStartBound(a){var b,c;"column"===a.type?this.rangeManager.columnSelection&&this.setStart(0,a.getPosition()-1):(b=a.row.position-1,c=a.column.getPosition()-1,a.column===this.rangeManager.rowHeader?this.setStart(b,1):this.setStart(b,c))}setEndBound(a){var b,c,d,e=this._getTableRows().length;"column"===a.type?this.rangeManager.columnSelection&&("column"===this.rangeManager.selecting?this.setEnd(e-1,a.getPosition()-1):"cell"===this.rangeManager.selecting&&this.setEnd(0,a.getPosition()-1)):(b=a.row.position-1,c=a.column.getPosition()-1,d=a.column===this.rangeManager.rowHeader,"row"===this.rangeManager.selecting?this.setEnd(b,this._getTableColumns().length-1):"row"!==this.rangeManager.selecting&&d?this.setEnd(b,0):"column"===this.rangeManager.selecting?this.setEnd(e-1,c):this.setEnd(b,c))}_updateMinMax(){this.top=Math.min(this.start.row,this.end.row),this.bottom=Math.max(this.start.row,this.end.row),this.left=Math.min(this.start.col,this.end.col),this.right=Math.max(this.start.col,this.end.col),this.initialized?this.dispatchExternal("rangeChanged",this.getComponent()):this.initializing.start&&this.initializing.end&&(this.initialized=!0,this.dispatchExternal("rangeAdded",this.getComponent()))}_getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}_getTableRows(){return this.table.rowManager.getDisplayRows().filter(a=>"row"===a.type)}layout(){var a,b,c,d,e,f,g,h,i,j,k=this.table.rowManager.renderer.vDomTop,l=this.table.rowManager.renderer.vDomBottom,m=this.table.columnManager.renderer.leftCol,n=this.table.columnManager.renderer.rightCol;"virtual"===this.table.options.renderHorizontal&&this.rangeManager.rowHeader&&(n+=1),null==k&&(k=0),null==l&&(l=1/0),null==m&&(m=0),null==n&&(n=1/0),this.overlaps(m,k,n,l)&&(a=Math.max(this.top,k),b=Math.min(this.bottom,l),c=Math.max(this.left,m),d=Math.min(this.right,n),e=this.rangeManager.getCell(a,c),f=this.rangeManager.getCell(b,d),g=e.getElement(),h=f.getElement(),i=e.row.getElement(),j=f.row.getElement(),this.element.classList.add("tabulator-range-active"),this.table.rtl?(this.element.style.right=i.offsetWidth-g.offsetLeft-g.offsetWidth+"px",this.element.style.width=g.offsetLeft+g.offsetWidth-h.offsetLeft+"px"):(this.element.style.left=i.offsetLeft+g.offsetLeft+"px",this.element.style.width=h.offsetLeft+h.offsetWidth-g.offsetLeft+"px"),this.element.style.top=i.offsetTop+"px",this.element.style.height=j.offsetTop+j.offsetHeight-i.offsetTop+"px")}atTopLeft(a){return a.row.position-1===this.top&&a.column.getPosition()-1===this.left}atBottomRight(a){return a.row.position-1===this.bottom&&a.column.getPosition()-1===this.right}occupies(a){return this.occupiesRow(a.row)&&this.occupiesColumn(a.column)}occupiesRow(a){return this.top<=a.position-1&&a.position-1<=this.bottom}occupiesColumn(a){return this.left<=a.getPosition()-1&&a.getPosition()-1<=this.right}overlaps(a,b,c,d){return!(this.left>c)&&!(a>this.right)&&!(this.top>d)&&!(b>this.bottom)}getData(){var a=[],b=this.getRows(),c=this.getColumns();return b.forEach(b=>{var d=b.getData(),e={};c.forEach(a=>{e[a.field]=d[a.field]}),a.push(e)}),a}getCells(a,b){var c=[],d=this.getRows(),e=this.getColumns();return a?c=d.map(a=>{var c=[];return a.getCells().forEach(a=>{e.includes(a.column)&&c.push(b?a.getComponent():a)}),c}):d.forEach(a=>{a.getCells().forEach(a=>{e.includes(a.column)&&c.push(b?a.getComponent():a)})}),c}getStructuredCells(){return this.getCells(!0,!0)}getRows(){return this._getTableRows().slice(this.top,this.bottom+1)}getColumns(){return this._getTableColumns().slice(this.left,this.right+1)}clearValues(){var a=this.getCells(),b=this.table.options.selectableRangeClearCellsValue;this.table.blockRedraw(),a.forEach(a=>{a.setValue(b)}),this.table.restoreRedraw()}getBounds(a){var b=this.getCells(!1,a),c={start:null,end:null};return b.length?(c.start=b[0],c.end=b[b.length-1]):console.warn("No bounds defined on range"),c}getComponent(){return this.component||(this.component=new av(this)),this.component}destroy(a){this.destroyed=!0,this.element.remove(),a&&this.rangeManager.rangeRemoved(this),this.initialized&&this.dispatchExternal("rangeRemoved",this.getComponent())}destroyedGuard(a){return this.destroyed&&console.warn("You cannot call the "+a+" function on a destroyed range"),!this.destroyed}}var ax={keybindings:{bindings:{rangeJumpUp:["ctrl + 38","meta + 38"],rangeJumpDown:["ctrl + 40","meta + 40"],rangeJumpLeft:["ctrl + 37","meta + 37"],rangeJumpRight:["ctrl + 39","meta + 39"],rangeExpandUp:"shift + 38",rangeExpandDown:"shift + 40",rangeExpandLeft:"shift + 37",rangeExpandRight:"shift + 39",rangeExpandJumpUp:["ctrl + shift + 38","meta + shift + 38"],rangeExpandJumpDown:["ctrl + shift + 40","meta + shift + 40"],rangeExpandJumpLeft:["ctrl + shift + 37","meta + shift + 37"],rangeExpandJumpRight:["ctrl + shift + 39","meta + shift + 39"]},actions:{rangeJumpLeft:function(a){this.dispatch("keybinding-nav-range",a,"left",!0,!1)},rangeJumpRight:function(a){this.dispatch("keybinding-nav-range",a,"right",!0,!1)},rangeJumpUp:function(a){this.dispatch("keybinding-nav-range",a,"up",!0,!1)},rangeJumpDown:function(a){this.dispatch("keybinding-nav-range",a,"down",!0,!1)},rangeExpandLeft:function(a){this.dispatch("keybinding-nav-range",a,"left",!1,!0)},rangeExpandRight:function(a){this.dispatch("keybinding-nav-range",a,"right",!1,!0)},rangeExpandUp:function(a){this.dispatch("keybinding-nav-range",a,"up",!1,!0)},rangeExpandDown:function(a){this.dispatch("keybinding-nav-range",a,"down",!1,!0)},rangeExpandJumpLeft:function(a){this.dispatch("keybinding-nav-range",a,"left",!0,!0)},rangeExpandJumpRight:function(a){this.dispatch("keybinding-nav-range",a,"right",!0,!0)},rangeExpandJumpUp:function(a){this.dispatch("keybinding-nav-range",a,"up",!0,!0)},rangeExpandJumpDown:function(a){this.dispatch("keybinding-nav-range",a,"down",!0,!0)}}},clipboard:{pasteActions:{range:function(a){var b,c,d,e,f,g=[],h=this.table.modules.selectRange.activeRange,i=!1;return f=a.length,h&&(c=(b=h.getBounds()).start,b.start===b.end&&(i=!0),c&&(d=(g=this.table.rowManager.activeRows.slice()).indexOf(c.row),e=i?a.length:g.indexOf(b.end.row)-d+1,d>-1&&(this.table.blockRedraw(),(g=g.slice(d,d+e)).forEach((b,c)=>{b.updateData(a[c%f])}),this.table.restoreRedraw()))),g}},pasteParsers:{range:function(a){var b,c,d,e,f,g=[],h=[],i=this.table.modules.selectRange.activeRange,j=!1;return!!(i&&(c=(b=i.getBounds()).start,b.start===b.end&&(j=!0),c&&((a=a.split("\n")).forEach(function(a){g.push(a.split(" "))}),g.length))&&(f=(e=this.table.columnManager.getVisibleColumnsByIndex()).indexOf(c.column))>-1)&&(d=j?g[0].length:e.indexOf(b.end.column)-f+1,e=e.slice(f,f+d),g.forEach(a=>{var b={},c=a.length;e.forEach(function(d,e){b[d.field]=a[e%c]}),h.push(b)}),h)}}},export:{columnLookups:{range:function(){var a=this.modules.selectRange.selectedColumns();return this.columnManager.rowHeader&&a.unshift(this.columnManager.rowHeader),a}},rowLookups:{range:function(){return this.modules.selectRange.selectedRows()}}}};function ay(a,b,c,d,e,f,g){var h=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),i=g.format||"dd/MM/yyyy HH:mm:ss",j=g.alignEmptyValues,k=0;if(void 0!==h){if(h.isDateTime(a)||(a="iso"===i?h.fromISO(String(a)):h.fromFormat(String(a),i)),h.isDateTime(b)||(b="iso"===i?h.fromISO(String(b)):h.fromFormat(String(b),i)),a.isValid)if(b.isValid)return a-b;else k=1;else k=b.isValid?-1:0;return("top"===j&&"desc"===f||"bottom"===j&&"asc"===f)&&(k*=-1),k}console.error("Sort Error - 'datetime' sorter is dependant on luxon.js")}var az={number:function(a,b,c,d,e,f,g){var h=g.alignEmptyValues,i=g.decimalSeparator,j=g.thousandSeparator,k=0;if(a=String(a),b=String(b),j&&(a=a.split(j).join(""),b=b.split(j).join("")),i&&(a=a.split(i).join("."),b=b.split(i).join(".")),a=parseFloat(a),b=parseFloat(b),isNaN(a))k=isNaN(b)?0:-1;else{if(!isNaN(b))return a-b;k=1}return("top"===h&&"desc"===f||"bottom"===h&&"asc"===f)&&(k*=-1),k},string:function(a,b,c,d,e,f,g){var h,i=g.alignEmptyValues,j=0;if(a)if(b){switch(typeof g.locale){case"boolean":g.locale&&(h=this.langLocale());break;case"string":h=g.locale}return String(a).toLowerCase().localeCompare(String(b).toLowerCase(),h)}else j=1;else j=b?-1:0;return("top"===i&&"desc"===f||"bottom"===i&&"asc"===f)&&(j*=-1),j},date:function(a,b,c,d,e,f,g){return g.format||(g.format="dd/MM/yyyy"),ay.call(this,a,b,c,d,e,f,g)},time:function(a,b,c,d,e,f,g){return g.format||(g.format="HH:mm"),ay.call(this,a,b,c,d,e,f,g)},datetime:ay,boolean:function(a,b,c,d,e,f,g){return(!0===a||"true"===a||"True"===a||1===a)-(!0===b||"true"===b||"True"===b||1===b)},array:function(a,b,c,d,e,f,g){var h,i=g.type||"length",j=g.alignEmptyValues,k=0,l=this.table;function m(a){var b;switch(h&&(a=h(a)),i){case"length":b=a.length;break;case"sum":b=a.reduce(function(a,b){return a+b});break;case"max":b=Math.max.apply(null,a);break;case"min":b=Math.min.apply(null,a);break;case"avg":b=a.reduce(function(a,b){return a+b})/a.length;break;case"string":b=a.join("")}return b}if(g.valueMap&&(h="string"==typeof g.valueMap?function(a){return a.map(a=>n.retrieveNestedData(l.options.nestedFieldSeparator,g.valueMap,a))}:g.valueMap),Array.isArray(a))if(Array.isArray(b))if("string"===i)return String(m(a)).toLowerCase().localeCompare(String(m(b)).toLowerCase());else return m(b)-m(a);else k=1;else k=Array.isArray(b)?-1:0;return("top"===j&&"desc"===f||"bottom"===j&&"asc"===f)&&(k*=-1),k},exists:function(a,b,c,d,e,f,g){return(void 0!==a)-(void 0!==b)},alphanum:function(a,b,c,d,e,f,g){var h,i,j,k,l,m=0,n=/(\d+)|(\D+)/g,o=/\d/,p=g.alignEmptyValues,q=0;if(a||0===a)if(b||0===b){if(isFinite(a)&&isFinite(b))return a-b;if((h=String(a).toLowerCase())===(i=String(b).toLowerCase()))return 0;if(!(o.test(h)&&o.test(i)))return h>i?1:-1;for(h=h.match(n),i=i.match(n),l=h.length>i.length?i.length:h.length;m<l;)if((j=h[m])!==(k=i[m++]))if(isFinite(j)&&isFinite(k))return"0"===j.charAt(0)&&(j="."+j),"0"===k.charAt(0)&&(k="."+k),j-k;else return j>k?1:-1;return h.length>i.length}else q=1;else q=b||0===b?-1:0;return("top"===p&&"desc"===f||"bottom"===p&&"asc"===f)&&(q*=-1),q}};class aA extends p{static moduleName="sort";static sorters=az;constructor(a){super(a),this.sortList=[],this.changed=!1,this.registerTableOption("sortMode","local"),this.registerTableOption("initialSort",!1),this.registerTableOption("columnHeaderSortMulti",!0),this.registerTableOption("sortOrderReverse",!1),this.registerTableOption("headerSortElement","<div class='tabulator-arrow'></div>"),this.registerTableOption("headerSortClickElement","header"),this.registerColumnOption("sorter"),this.registerColumnOption("sorterParams"),this.registerColumnOption("headerSort",!0),this.registerColumnOption("headerSortStartingDir"),this.registerColumnOption("headerSortTristate")}initialize(){this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.registerDataHandler(this.sort.bind(this),20),this.registerTableFunction("setSort",this.userSetSort.bind(this)),this.registerTableFunction("getSorters",this.getSort.bind(this)),this.registerTableFunction("clearSort",this.clearSort.bind(this)),"remote"===this.table.options.sortMode&&this.subscribe("data-params",this.remoteSortParams.bind(this))}tableBuilt(){this.table.options.initialSort&&this.setSort(this.table.options.initialSort)}remoteSortParams(a,b,c,d){var e=this.getSort();return e.forEach(a=>{delete a.column}),d.sort=e,d}userSetSort(a,b){this.setSort(a,b),this.refreshSort()}clearSort(){this.clear(),this.refreshSort()}initializeColumn(a){var b,c,d=!1;switch(typeof a.definition.sorter){case"string":aA.sorters[a.definition.sorter]?d=aA.sorters[a.definition.sorter]:console.warn("Sort Error - No such sorter found: ",a.definition.sorter);break;case"function":d=a.definition.sorter}if(a.modules.sort={sorter:d,dir:"none",params:a.definition.sorterParams||{},startingDir:a.definition.headerSortStartingDir||"asc",tristate:a.definition.headerSortTristate},!1!==a.definition.headerSort){switch(((b=a.getElement()).classList.add("tabulator-sortable"),(c=document.createElement("div")).classList.add("tabulator-col-sorter"),this.table.options.headerSortClickElement==="icon")?c.classList.add("tabulator-col-sorter-element"):b.classList.add("tabulator-col-sorter-element"),this.table.options.headerSortElement){case"function":break;case"object":c.appendChild(this.table.options.headerSortElement);break;default:c.innerHTML=this.table.options.headerSortElement}a.titleHolderElement.appendChild(c),a.modules.sort.element=c,this.setColumnHeaderSortIcon(a,"none"),"icon"===this.table.options.headerSortClickElement&&c.addEventListener("mousedown",a=>{a.stopPropagation()}),("icon"===this.table.options.headerSortClickElement?c:b).addEventListener("click",b=>{var c="",d=[],e=!1;if(a.modules.sort){if(a.modules.sort.tristate)c="none"==a.modules.sort.dir?a.modules.sort.startingDir:a.modules.sort.dir==a.modules.sort.startingDir?"asc"==a.modules.sort.dir?"desc":"asc":"none";else switch(a.modules.sort.dir){case"asc":c="desc";break;case"desc":c="asc";break;default:c=a.modules.sort.startingDir}this.table.options.columnHeaderSortMulti&&(b.shiftKey||b.ctrlKey)?((e=(d=this.getSort()).findIndex(b=>b.field===a.getField()))>-1?(d[e].dir=c,e=d.splice(e,1)[0],"none"!=c&&d.push(e)):"none"!=c&&d.push({column:a,dir:c}),this.setSort(d)):"none"==c?this.clear():this.setSort(a,c),this.refreshSort()}})}}refreshSort(){"remote"===this.table.options.sortMode?this.reloadData(null,!1,!1):this.refreshData(!0)}hasChanged(){var a=this.changed;return this.changed=!1,a}getSort(){var a=[];return this.sortList.forEach(function(b){b.column&&a.push({column:b.column.getComponent(),field:b.column.getField(),dir:b.dir})}),a}setSort(a,b){var c=this,d=[];Array.isArray(a)||(a=[{column:a,dir:b}]),a.forEach(function(a){var b;(b=c.table.columnManager.findColumn(a.column))?(a.column=b,d.push(a),c.changed=!0):console.warn("Sort Warning - Sort field does not exist and is being ignored: ",a.column)}),c.sortList=d,this.dispatch("sort-changed")}clear(){this.setSort([])}findSorter(a){var b,c=this.table.rowManager.activeRows[0],d="string";if(c&&(c=c.getData(),a.getField()))switch(typeof(b=a.getFieldValue(c))){case"undefined":d="string";break;case"boolean":d="boolean";break;default:isNaN(b)||""===b?b.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)&&(d="alphanum"):d="number"}return aA.sorters[d]}sort(a,b){var c=this,d=this.table.options.sortOrderReverse?c.sortList.slice().reverse():c.sortList,e=[],f=[];return this.subscribedExternal("dataSorting")&&this.dispatchExternal("dataSorting",c.getSort()),b||c.clearColumnHeaders(),"remote"!==this.table.options.sortMode?(d.forEach(function(a,d){var f;a.column&&((f=a.column.modules.sort)&&(f.sorter||(f.sorter=c.findSorter(a.column)),a.params="function"==typeof f.params?f.params(a.column.getComponent(),a.dir):f.params,e.push(a)),b||c.setColumnHeader(a.column,a.dir))}),e.length&&c._sortItems(a,e)):b||d.forEach(function(a,b){c.setColumnHeader(a.column,a.dir)}),this.subscribedExternal("dataSorted")&&(a.forEach(a=>{f.push(a.getComponent())}),this.dispatchExternal("dataSorted",c.getSort(),f)),a}clearColumnHeaders(){this.table.columnManager.getRealColumns().forEach(a=>{a.modules.sort&&(a.modules.sort.dir="none",a.getElement().setAttribute("aria-sort","none"),this.setColumnHeaderSortIcon(a,"none"))})}setColumnHeader(a,b){a.modules.sort.dir=b,a.getElement().setAttribute("aria-sort","asc"===b?"ascending":"descending"),this.setColumnHeaderSortIcon(a,b)}setColumnHeaderSortIcon(a,b){var c,d=a.modules.sort.element;if(a.definition.headerSort&&"function"==typeof this.table.options.headerSortElement){for(;d.firstChild;)d.removeChild(d.firstChild);"object"==typeof(c=this.table.options.headerSortElement.call(this.table,a.getComponent(),b))?d.appendChild(c):d.innerHTML=c}}_sortItems(a,b){var c=b.length-1;a.sort((a,d)=>{for(var e,f=c;f>=0;f--){let c=b[f];if(0!==(e=this._sortRow(a,d,c.column,c.dir,c.params)))break}return e})}_sortRow(a,b,c,d,e){var f,g,h="asc"==d?a:b,i="asc"==d?b:a;return a=c.getFieldValue(h.getData()),b=c.getFieldValue(i.getData()),a=void 0!==a?a:"",b=void 0!==b?b:"",f=h.getComponent(),g=i.getComponent(),c.modules.sort.sorter.call(this,a,b,f,g,c.getComponent(),d,e)}}class aB{constructor(a,b){this.columnCount=a,this.rowCount=b,this.columnString=[],this.columns=[],this.rows=[]}genColumns(a){var b=Math.max(this.columnCount,Math.max(...a.map(a=>a.length)));this.columnString=[],this.columns=[];for(let a=1;a<=b;a++)this.incrementChar(this.columnString.length-1),this.columns.push(this.columnString.join(""));return this.columns}genRows(a){var b=Math.max(this.rowCount,a.length);this.rows=[];for(let a=1;a<=b;a++)this.rows.push(a);return this.rows}incrementChar(a){let b=this.columnString[a];b?"Z"!==b?this.columnString[a]=String.fromCharCode(this.columnString[a].charCodeAt(0)+1):(this.columnString[a]="A",a?this.incrementChar(a-1):this.columnString.push("A")):this.columnString.push("A")}setRowCount(a){this.rowCount=a}setColumnCount(a){this.columnCount=a}}class aC{constructor(a){return this._sheet=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._sheet.table.componentFunctionBinder.handle("sheet",a._sheet,b)}})}getTitle(){return this._sheet.title}getKey(){return this._sheet.key}getDefinition(){return this._sheet.getDefinition()}getData(){return this._sheet.getData()}setData(a){return this._sheet.setData(a)}clear(){return this._sheet.clear()}remove(){return this._sheet.remove()}active(){return this._sheet.active()}setTitle(a){return this._sheet.setTitle(a)}setRows(a){return this._sheet.setRows(a)}setColumns(a){return this._sheet.setColumns(a)}}class aD extends m{constructor(a,b){super(a.table),this.spreadsheetManager=a,this.definition=b,this.title=this.definition.title||"",this.key=this.definition.key||this.definition.title,this.rowCount=this.definition.rows,this.columnCount=this.definition.columns,this.data=this.definition.data||[],this.element=null,this.isActive=!1,this.grid=new aB(this.columnCount,this.rowCount),this.defaultColumnDefinition={width:100,headerHozAlign:"center",headerSort:!1},this.columnDefinition=Object.assign(this.defaultColumnDefinition,this.options("spreadsheetColumnDefinition")),this.columnDefs=[],this.rowDefs=[],this.columnFields=[],this.columns=[],this.rows=[],this.scrollTop=null,this.scrollLeft=null,this.initialize(),this.dispatchExternal("sheetAdded",this.getComponent())}initialize(){this.initializeElement(),this.initializeColumns(),this.initializeRows()}reinitialize(){this.initializeColumns(),this.initializeRows()}initializeElement(){this.element=document.createElement("div"),this.element.classList.add("tabulator-spreadsheet-tab"),this.element.innerText=this.title,this.element.addEventListener("click",()=>{this.spreadsheetManager.loadSheet(this)})}initializeColumns(){this.grid.setColumnCount(this.columnCount),this.columnFields=this.grid.genColumns(this.data),this.columnDefs=[],this.columnFields.forEach(a=>{var b=Object.assign({},this.columnDefinition);b.field=a,b.title=a,this.columnDefs.push(b)})}initializeRows(){var a;this.grid.setRowCount(this.rowCount),a=this.grid.genRows(this.data),this.rowDefs=[],a.forEach((a,b)=>{var c={_id:a},d=this.data[b];d&&d.forEach((a,b)=>{var d=this.columnFields[b];d&&(c[d]=a)}),this.rowDefs.push(c)})}unload(){this.isActive=!1,this.scrollTop=this.table.rowManager.scrollTop,this.scrollLeft=this.table.rowManager.scrollLeft,this.data=this.getData(!0),this.element.classList.remove("tabulator-spreadsheet-tab-active")}load(){var a=!this.isActive;this.isActive=!0,this.table.blockRedraw(),this.table.setData([]),this.table.setColumns(this.columnDefs),this.table.setData(this.rowDefs),this.table.restoreRedraw(),a&&null!==this.scrollTop&&(this.table.rowManager.element.scrollLeft=this.scrollLeft,this.table.rowManager.element.scrollTop=this.scrollTop),this.element.classList.add("tabulator-spreadsheet-tab-active"),this.dispatchExternal("sheetLoaded",this.getComponent())}getComponent(){return new aC(this)}getDefinition(){return{title:this.title,key:this.key,rows:this.rowCount,columns:this.columnCount,data:this.getData()}}getData(a){var b,c,d,e=[];return this.rowDefs.forEach(a=>{var b=[];this.columnFields.forEach(c=>{b.push(a[c])}),e.push(b)}),a||this.options("spreadsheetOutputFull")||(c=Math.max(...b=e.map(a=>a.findLastIndex(a=>void 0!==a)+1)),d=b.findLastIndex(a=>a>0)+1,e=(e=e.slice(0,d)).map(a=>a.slice(0,c))),e}setData(a){this.data=a,this.reinitialize(),this.dispatchExternal("sheetUpdated",this.getComponent()),this.isActive&&this.load()}clear(){this.setData([])}setTitle(a){this.title=a,this.element.innerText=a,this.dispatchExternal("sheetUpdated",this.getComponent())}setRows(a){this.rowCount=a,this.initializeRows(),this.dispatchExternal("sheetUpdated",this.getComponent()),this.isActive&&this.load()}setColumns(a){this.columnCount=a,this.reinitialize(),this.dispatchExternal("sheetUpdated",this.getComponent()),this.isActive&&this.load()}remove(){this.spreadsheetManager.removeSheet(this)}destroy(){this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.dispatchExternal("sheetRemoved",this.getComponent())}active(){this.spreadsheetManager.loadSheet(this)}}var aE={integer:function(a,b,c){return""===b||null==b||!isNaN(b=Number(b))&&isFinite(b)&&Math.floor(b)===b},float:function(a,b,c){return""===b||null==b||!isNaN(b=Number(b))&&isFinite(b)&&b%1!=0},numeric:function(a,b,c){return""===b||null==b||!isNaN(b)},string:function(a,b,c){return""===b||null==b||isNaN(b)},alphanumeric:function(a,b,c){return""===b||null==b||new RegExp(/^[a-z0-9]+$/i).test(b)},max:function(a,b,c){return""===b||null==b||parseFloat(b)<=c},min:function(a,b,c){return""===b||null==b||parseFloat(b)>=c},starts:function(a,b,c){return""===b||null==b||String(b).toLowerCase().startsWith(String(c).toLowerCase())},ends:function(a,b,c){return""===b||null==b||String(b).toLowerCase().endsWith(String(c).toLowerCase())},minLength:function(a,b,c){return""===b||null==b||String(b).length>=c},maxLength:function(a,b,c){return""===b||null==b||String(b).length<=c},in:function(a,b,c){return""===b||null==b||("string"==typeof c&&(c=c.split("|")),c.indexOf(b)>-1)},regex:function(a,b,c){return""===b||null==b||new RegExp(c).test(b)},unique:function(a,b,c){if(""===b||null==b)return!0;var d=!0,e=a.getData(),f=a.getColumn()._getSelf();return this.table.rowManager.rows.forEach(function(a){var c=a.getData();c!==e&&b==f.getFieldValue(c)&&(d=!1)}),d},required:function(a,b,c){return""!==b&&null!=b}};class aF extends p{static moduleName="validate";static validators=aE;constructor(a){super(a),this.invalidCells=[],this.registerTableOption("validationMode","blocking"),this.registerColumnOption("validator"),this.registerTableFunction("getInvalidCells",this.getInvalidCells.bind(this)),this.registerTableFunction("clearCellValidation",this.userClearCellValidation.bind(this)),this.registerTableFunction("validate",this.userValidate.bind(this)),this.registerComponentFunction("cell","isValid",this.cellIsValid.bind(this)),this.registerComponentFunction("cell","clearValidation",this.clearValidation.bind(this)),this.registerComponentFunction("cell","validate",this.cellValidate.bind(this)),this.registerComponentFunction("column","validate",this.columnValidate.bind(this)),this.registerComponentFunction("row","validate",this.rowValidate.bind(this))}initialize(){this.subscribe("cell-delete",this.clearValidation.bind(this)),this.subscribe("column-layout",this.initializeColumnCheck.bind(this)),this.subscribe("edit-success",this.editValidate.bind(this)),this.subscribe("edit-editor-clear",this.editorClear.bind(this)),this.subscribe("edit-edited-clear",this.editedClear.bind(this))}editValidate(a,b,c){var d="manual"===this.table.options.validationMode||this.validate(a.column.modules.validate,a,b);return!0!==d&&setTimeout(()=>{a.getElement().classList.add("tabulator-validation-fail"),this.dispatchExternal("validationFailed",a.getComponent(),b,d)}),d}editorClear(a,b){b&&a.column.modules.validate&&this.cellValidate(a),a.getElement().classList.remove("tabulator-validation-fail")}editedClear(a){a.modules.validate&&(a.modules.validate.invalid=!1)}cellIsValid(a){return!a.modules.validate||a.modules.validate.invalid||!0}cellValidate(a){return this.validate(a.column.modules.validate,a,a.getValue())}columnValidate(a){var b=[];return a.cells.forEach(a=>{!0!==this.cellValidate(a)&&b.push(a.getComponent())}),!b.length||b}rowValidate(a){var b=[];return a.cells.forEach(a=>{!0!==this.cellValidate(a)&&b.push(a.getComponent())}),!b.length||b}userClearCellValidation(a){a||(a=this.getInvalidCells()),Array.isArray(a)||(a=[a]),a.forEach(a=>{this.clearValidation(a._getSelf())})}userValidate(a){var b=[];return this.table.rowManager.rows.forEach(a=>{var c=(a=a.getComponent()).validate();!0!==c&&(b=b.concat(c))}),!b.length||b}initializeColumnCheck(a){void 0!==a.definition.validator&&this.initializeColumn(a)}initializeColumn(a){var b,c=this,d=[];a.definition.validator&&(Array.isArray(a.definition.validator)?a.definition.validator.forEach(a=>{(b=c._extractValidator(a))&&d.push(b)}):(b=this._extractValidator(a.definition.validator))&&d.push(b),a.modules.validate=!!d.length&&d)}_extractValidator(a){var b,c,d;switch(typeof a){case"string":return(d=a.indexOf(":"))>-1?(b=a.substring(0,d),c=a.substring(d+1)):b=a,this._buildValidator(b,c);case"function":return this._buildValidator(a);case"object":return this._buildValidator(a.type,a.parameters)}}_buildValidator(a,b){var c="function"==typeof a?a:aF.validators[a];return c?{type:"function"==typeof a?"function":a,func:c,params:b}:(console.warn("Validator Setup Error - No matching validator found:",a),!1)}validate(a,b,c){var d=this,e=[],f=this.invalidCells.indexOf(b);return a&&a.forEach(a=>{a.func.call(d,b.getComponent(),c,a.params)||e.push({type:a.type,parameters:a.params})}),b.modules.validate||(b.modules.validate={}),e.length?(b.modules.validate.invalid=e,"manual"!==this.table.options.validationMode&&b.getElement().classList.add("tabulator-validation-fail"),-1==f&&this.invalidCells.push(b)):(b.modules.validate.invalid=!1,b.getElement().classList.remove("tabulator-validation-fail"),f>-1&&this.invalidCells.splice(f,1)),!e.length||e}getInvalidCells(){var a=[];return this.invalidCells.forEach(b=>{a.push(b.getComponent())}),a}clearValidation(a){var b;a.modules.validate&&a.modules.validate.invalid&&(a.getElement().classList.remove("tabulator-validation-fail"),a.modules.validate.invalid=!1,(b=this.invalidCells.indexOf(a))>-1&&this.invalidCells.splice(b,1))}}var aG=Object.freeze({__proto__:null,AccessorModule:r,AjaxModule:w,ClipboardModule:A,ColumnCalcsModule:K,DataTreeModule:class extends p{static moduleName="dataTree";constructor(a){super(a),this.indent=10,this.field="",this.collapseEl=null,this.expandEl=null,this.branchEl=null,this.elementField=!1,this.startOpen=function(){},this.registerTableOption("dataTree",!1),this.registerTableOption("dataTreeFilter",!0),this.registerTableOption("dataTreeSort",!0),this.registerTableOption("dataTreeElementColumn",!1),this.registerTableOption("dataTreeBranchElement",!0),this.registerTableOption("dataTreeChildIndent",9),this.registerTableOption("dataTreeChildField","_children"),this.registerTableOption("dataTreeCollapseElement",!1),this.registerTableOption("dataTreeExpandElement",!1),this.registerTableOption("dataTreeStartExpanded",!1),this.registerTableOption("dataTreeChildColumnCalcs",!1),this.registerTableOption("dataTreeSelectPropagate",!1),this.registerComponentFunction("row","treeCollapse",this.collapseRow.bind(this)),this.registerComponentFunction("row","treeExpand",this.expandRow.bind(this)),this.registerComponentFunction("row","treeToggle",this.toggleRow.bind(this)),this.registerComponentFunction("row","getTreeParent",this.getTreeParent.bind(this)),this.registerComponentFunction("row","getTreeChildren",this.getRowChildren.bind(this)),this.registerComponentFunction("row","addTreeChild",this.addTreeChildRow.bind(this)),this.registerComponentFunction("row","isTreeExpanded",this.isRowExpanded.bind(this))}initialize(){if(this.table.options.dataTree){var a=null,b=this.table.options;switch(this.field=b.dataTreeChildField,this.indent=b.dataTreeChildIndent,this.options("movableRows")&&console.warn("The movableRows option is not available with dataTree enabled, moving of child rows could result in unpredictable behavior"),b.dataTreeBranchElement?!0===b.dataTreeBranchElement?(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch")):"string"==typeof b.dataTreeBranchElement?((a=document.createElement("div")).innerHTML=b.dataTreeBranchElement,this.branchEl=a.firstChild):this.branchEl=b.dataTreeBranchElement:(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch-empty")),b.dataTreeCollapseElement?"string"==typeof b.dataTreeCollapseElement?((a=document.createElement("div")).innerHTML=b.dataTreeCollapseElement,this.collapseEl=a.firstChild):this.collapseEl=b.dataTreeCollapseElement:(this.collapseEl=document.createElement("div"),this.collapseEl.classList.add("tabulator-data-tree-control"),this.collapseEl.tabIndex=0,this.collapseEl.innerHTML="<div class='tabulator-data-tree-control-collapse'></div>"),b.dataTreeExpandElement?"string"==typeof b.dataTreeExpandElement?((a=document.createElement("div")).innerHTML=b.dataTreeExpandElement,this.expandEl=a.firstChild):this.expandEl=b.dataTreeExpandElement:(this.expandEl=document.createElement("div"),this.expandEl.classList.add("tabulator-data-tree-control"),this.expandEl.tabIndex=0,this.expandEl.innerHTML="<div class='tabulator-data-tree-control-expand'></div>"),typeof b.dataTreeStartExpanded){case"boolean":this.startOpen=function(a,c){return b.dataTreeStartExpanded};break;case"function":this.startOpen=b.dataTreeStartExpanded;break;default:this.startOpen=function(a,c){return b.dataTreeStartExpanded[c]}}this.subscribe("row-init",this.initializeRow.bind(this)),this.subscribe("row-layout-after",this.layoutRow.bind(this)),this.subscribe("row-deleting",this.rowDeleting.bind(this)),this.subscribe("row-deleted",this.rowDelete.bind(this),0),this.subscribe("row-data-changed",this.rowDataChanged.bind(this),10),this.subscribe("cell-value-updated",this.cellValueChanged.bind(this)),this.subscribe("edit-cancelled",this.cellValueChanged.bind(this)),this.subscribe("column-moving-rows",this.columnMoving.bind(this)),this.subscribe("table-built",this.initializeElementField.bind(this)),this.subscribe("table-redrawing",this.tableRedrawing.bind(this)),this.registerDisplayHandler(this.getRows.bind(this),30)}}tableRedrawing(a){a&&this.table.rowManager.getRows().forEach(a=>{this.reinitializeRowChildren(a)})}initializeElementField(){var a=this.table.columnManager.getFirstVisibleColumn();this.elementField=this.table.options.dataTreeElementColumn||!!a&&a.field}getRowChildren(a){return this.getTreeChildren(a,!0)}columnMoving(){var a=[];return this.table.rowManager.rows.forEach(b=>{a=a.concat(this.getTreeChildren(b,!1,!0))}),a}rowDataChanged(a,b,c){this.redrawNeeded(c)&&(this.initializeRow(a),b&&(this.layoutRow(a),this.refreshData(!0)))}cellValueChanged(a){a.column.getField()===this.elementField&&this.layoutRow(a.row)}initializeRow(a){var b=a.getData()[this.field],c=Array.isArray(b),d=c||!c&&"object"==typeof b&&null!==b;!d&&a.modules.dataTree&&a.modules.dataTree.branchEl&&a.modules.dataTree.branchEl.parentNode&&a.modules.dataTree.branchEl.parentNode.removeChild(a.modules.dataTree.branchEl),!d&&a.modules.dataTree&&a.modules.dataTree.controlEl&&a.modules.dataTree.controlEl.parentNode&&a.modules.dataTree.controlEl.parentNode.removeChild(a.modules.dataTree.controlEl),a.modules.dataTree={index:a.modules.dataTree?a.modules.dataTree.index:0,open:!!d&&(a.modules.dataTree?a.modules.dataTree.open:this.startOpen(a.getComponent(),0)),controlEl:!!a.modules.dataTree&&!!d&&a.modules.dataTree.controlEl,branchEl:!!a.modules.dataTree&&!!d&&a.modules.dataTree.branchEl,parent:!!a.modules.dataTree&&a.modules.dataTree.parent,children:d}}reinitializeRowChildren(a){this.getTreeChildren(a,!1,!0).forEach(function(a){a.reinitialize(!0)})}layoutRow(a){var b=(this.elementField?a.getCell(this.elementField):a.getCells()[0]).getElement(),c=a.modules.dataTree;c.branchEl&&(c.branchEl.parentNode&&c.branchEl.parentNode.removeChild(c.branchEl),c.branchEl=!1),c.controlEl&&(c.controlEl.parentNode&&c.controlEl.parentNode.removeChild(c.controlEl),c.controlEl=!1),this.generateControlElement(a,b),a.getElement().classList.add("tabulator-tree-level-"+c.index),c.index&&(this.branchEl?(c.branchEl=this.branchEl.cloneNode(!0),b.insertBefore(c.branchEl,b.firstChild),this.table.rtl?c.branchEl.style.marginRight=(c.branchEl.offsetWidth+c.branchEl.style.marginLeft)*(c.index-1)+c.index*this.indent+"px":c.branchEl.style.marginLeft=(c.branchEl.offsetWidth+c.branchEl.style.marginRight)*(c.index-1)+c.index*this.indent+"px"):this.table.rtl?b.style.paddingRight=parseInt(window.getComputedStyle(b,null).getPropertyValue("padding-right"))+c.index*this.indent+"px":b.style.paddingLeft=parseInt(window.getComputedStyle(b,null).getPropertyValue("padding-left"))+c.index*this.indent+"px")}generateControlElement(a,b){var c=a.modules.dataTree,d=c.controlEl;b=b||a.getCells()[0].getElement(),!1!==c.children&&(c.open?(c.controlEl=this.collapseEl.cloneNode(!0),c.controlEl.addEventListener("click",b=>{b.stopPropagation(),this.collapseRow(a)})):(c.controlEl=this.expandEl.cloneNode(!0),c.controlEl.addEventListener("click",b=>{b.stopPropagation(),this.expandRow(a)})),c.controlEl.addEventListener("mousedown",a=>{a.stopPropagation()}),d&&d.parentNode===b?d.parentNode.replaceChild(c.controlEl,d):b.insertBefore(c.controlEl,b.firstChild))}getRows(a){var b=[];return a.forEach((a,c)=>{var d;b.push(a),a instanceof I&&(a.create(),(d=a.modules.dataTree).index||!1===d.children||this.getChildren(a,!1,!0).forEach(a=>{a.create(),b.push(a)}))}),b}getChildren(a,b,c){var d=a.modules.dataTree,e=[],f=[];return!1!==d.children&&(d.open||b)&&(Array.isArray(d.children)||(d.children=this.generateChildren(a)),e=this.table.modExists("filter")&&this.table.options.dataTreeFilter?this.table.modules.filter.filter(d.children):d.children,this.table.modExists("sort")&&this.table.options.dataTreeSort&&this.table.modules.sort.sort(e,c),e.forEach(a=>{f.push(a),this.getChildren(a,!1,!0).forEach(a=>{f.push(a)})})),f}generateChildren(a){var b=[],c=a.getData()[this.field];return Array.isArray(c)||(c=[c]),c.forEach(c=>{var d=new I(c||{},this.table.rowManager);d.create(),d.modules.dataTree.index=a.modules.dataTree.index+1,d.modules.dataTree.parent=a,d.modules.dataTree.children&&(d.modules.dataTree.open=this.startOpen(d.getComponent(),d.modules.dataTree.index)),b.push(d)}),b}expandRow(a,b){var c=a.modules.dataTree;!1!==c.children&&(c.open=!0,a.reinitialize(),this.refreshData(!0),this.dispatchExternal("dataTreeRowExpanded",a.getComponent(),a.modules.dataTree.index))}collapseRow(a){var b=a.modules.dataTree;!1!==b.children&&(b.open=!1,a.reinitialize(),this.refreshData(!0),this.dispatchExternal("dataTreeRowCollapsed",a.getComponent(),a.modules.dataTree.index))}toggleRow(a){var b=a.modules.dataTree;!1!==b.children&&(b.open?this.collapseRow(a):this.expandRow(a))}isRowExpanded(a){return a.modules.dataTree.open}getTreeParent(a){return!!a.modules.dataTree.parent&&a.modules.dataTree.parent.getComponent()}getTreeParentRoot(a){return a.modules.dataTree&&a.modules.dataTree.parent?this.getTreeParentRoot(a.modules.dataTree.parent):a}getFilteredTreeChildren(a){var b=a.modules.dataTree,c=[];return b.children&&(Array.isArray(b.children)||(b.children=this.generateChildren(a)),(this.table.modExists("filter")&&this.table.options.dataTreeFilter?this.table.modules.filter.filter(b.children):b.children).forEach(a=>{a instanceof I&&c.push(a)})),c}rowDeleting(a){var b=a.modules.dataTree;b&&b.children&&Array.isArray(b.children)&&b.children.forEach(a=>{a instanceof I&&a.wipe()})}rowDelete(a){var b,c=a.modules.dataTree.parent;c&&(!1!==(b=this.findChildIndex(a,c))&&c.data[this.field].splice(b,1),c.data[this.field].length||delete c.data[this.field],this.initializeRow(c),this.layoutRow(c)),this.refreshData(!0)}addTreeChildRow(a,b,c,d){var e=!1;"string"==typeof b&&(b=JSON.parse(b)),Array.isArray(a.data[this.field])||(a.data[this.field]=[],a.modules.dataTree.open=this.startOpen(a.getComponent(),a.modules.dataTree.index)),void 0!==d&&!1!==(e=this.findChildIndex(d,a))&&a.data[this.field].splice(c?e:e+1,0,b),!1===e&&(c?a.data[this.field].unshift(b):a.data[this.field].push(b)),this.initializeRow(a),this.layoutRow(a),this.refreshData(!0)}findChildIndex(a,b){var c=!1;return"object"==typeof a?a instanceof I?c=a.data:a instanceof H?c=a._getSelf().data:"u">typeof HTMLElement&&a instanceof HTMLElement?b.modules.dataTree&&(c=b.modules.dataTree.children.find(b=>b instanceof I&&b.element===a))&&(c=c.data):null===a&&(c=!1):c=void 0!==a&&b.data[this.field].find(b=>b.data[this.table.options.index]==a),c&&(Array.isArray(b.data[this.field])&&(c=b.data[this.field].indexOf(c)),-1==c&&(c=!1)),c}getTreeChildren(a,b,c){var d=a.modules.dataTree,e=[];return d&&d.children&&(Array.isArray(d.children)||(d.children=this.generateChildren(a)),d.children.forEach(a=>{a instanceof I&&(e.push(b?a.getComponent():a),c&&this.getTreeChildren(a,b,c).forEach(a=>{e.push(a)}))})),e}getChildField(){return this.field}redrawNeeded(a){return!!this.field&&void 0!==a[this.field]||!!this.elementField&&void 0!==a[this.elementField]}},DownloadModule:M,EditModule:Q,ExportModule:V,FilterModule:X,FormatModule:Z,FrozenColumnsModule:class extends p{static moduleName="frozenColumns";constructor(a){super(a),this.leftColumns=[],this.rightColumns=[],this.initializationMode="left",this.active=!1,this.blocked=!0,this.registerColumnOption("frozen")}reset(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.active=!1}initialize(){this.subscribe("cell-layout",this.layoutCell.bind(this)),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-width",this.layout.bind(this)),this.subscribe("row-layout-after",this.layoutRow.bind(this)),this.subscribe("table-layout",this.layout.bind(this)),this.subscribe("columns-loading",this.reset.bind(this)),this.subscribe("column-add",this.reinitializeColumns.bind(this)),this.subscribe("column-deleted",this.reinitializeColumns.bind(this)),this.subscribe("column-hide",this.reinitializeColumns.bind(this)),this.subscribe("column-show",this.reinitializeColumns.bind(this)),this.subscribe("columns-loaded",this.reinitializeColumns.bind(this)),this.subscribe("table-redraw",this.layout.bind(this)),this.subscribe("layout-refreshing",this.blockLayout.bind(this)),this.subscribe("layout-refreshed",this.unblockLayout.bind(this)),this.subscribe("scrollbar-vertical",this.adjustForScrollbar.bind(this))}blockLayout(){this.blocked=!0}unblockLayout(){this.blocked=!1}layoutCell(a){this.layoutElement(a.element,a.column)}reinitializeColumns(){this.reset(),this.table.columnManager.columnsByIndex.forEach(a=>{this.initializeColumn(a)}),this.layout()}initializeColumn(a){var b={margin:0,edge:!1};a.isGroup||(this.frozenCheck(a)?(b.position=this.initializationMode,"left"==this.initializationMode?this.leftColumns.push(a):this.rightColumns.unshift(a),this.active=!0,a.modules.frozen=b):this.initializationMode="right")}frozenCheck(a){return(a.parent.isGroup&&a.definition.frozen&&console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups"),a.parent.isGroup)?this.frozenCheck(a.parent):a.definition.frozen}layoutCalcRows(){this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow&&this.layoutRow(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow&&this.layoutRow(this.table.modules.columnCalcs.botRow),this.table.modExists("groupRows")&&this.layoutGroupCalcs(this.table.modules.groupRows.getGroups()))}layoutGroupCalcs(a){a.forEach(a=>{a.calcs.top&&this.layoutRow(a.calcs.top),a.calcs.bottom&&this.layoutRow(a.calcs.bottom),a.groupList&&a.groupList.length&&this.layoutGroupCalcs(a.groupList)})}layoutColumnPosition(a){var b=[],c=0,d=0;this.leftColumns.forEach((d,e)=>{if(d.modules.frozen.marginValue=c,d.modules.frozen.margin=d.modules.frozen.marginValue+"px",d.visible&&(c+=d.getWidth()),e==this.leftColumns.length-1?d.modules.frozen.edge=!0:d.modules.frozen.edge=!1,d.parent.isGroup){var f=this.getColGroupParentElement(d);b.includes(f)||(this.layoutElement(f,d),b.push(f)),f.classList.toggle("tabulator-frozen-left",d.modules.frozen.edge&&"left"===d.modules.frozen.position),f.classList.toggle("tabulator-frozen-right",d.modules.frozen.edge&&"right"===d.modules.frozen.position)}else this.layoutElement(d.getElement(),d);a&&d.cells.forEach(a=>{this.layoutElement(a.getElement(!0),d)})}),this.rightColumns.forEach((b,c)=>{b.modules.frozen.marginValue=d,b.modules.frozen.margin=b.modules.frozen.marginValue+"px",b.visible&&(d+=b.getWidth()),c==this.rightColumns.length-1?b.modules.frozen.edge=!0:b.modules.frozen.edge=!1,b.parent.isGroup?this.layoutElement(this.getColGroupParentElement(b),b):this.layoutElement(b.getElement(),b),a&&b.cells.forEach(a=>{this.layoutElement(a.getElement(!0),b)})})}getColGroupParentElement(a){return a.parent.isGroup?this.getColGroupParentElement(a.parent):a.getElement()}layout(){this.active&&!this.blocked&&(this.layoutColumnPosition(),this.reinitializeRows(),this.layoutCalcRows())}reinitializeRows(){var a=this.table.rowManager.getVisibleRows(!0);this.table.rowManager.getRows().filter(b=>!a.includes(b)).forEach(a=>{a.deinitialize()}),a.forEach(a=>{"row"===a.type&&this.layoutRow(a)})}layoutRow(a){"fitDataFill"===this.table.options.layout&&this.rightColumns.length&&(this.table.rowManager.getTableElement().style.minWidth="calc(100% - "+this.rightMargin+")"),this.leftColumns.forEach(b=>{var c=a.getCell(b);c&&this.layoutElement(c.getElement(!0),b)}),this.rightColumns.forEach(b=>{var c=a.getCell(b);c&&this.layoutElement(c.getElement(!0),b)})}layoutElement(a,b){var c;b.modules.frozen&&a&&(a.style.position="sticky",c=this.table.rtl?"left"===b.modules.frozen.position?"right":"left":b.modules.frozen.position,a.style[c]=b.modules.frozen.margin,a.classList.add("tabulator-frozen"),a.classList.toggle("tabulator-frozen-left",b.modules.frozen.edge&&"left"===b.modules.frozen.position),a.classList.toggle("tabulator-frozen-right",b.modules.frozen.edge&&"right"===b.modules.frozen.position))}adjustForScrollbar(a){this.rightColumns.length&&(this.table.columnManager.getContentsElement().style.width="calc(100% - "+a+"px)")}getFrozenColumns(){return this.leftColumns.concat(this.rightColumns)}_calcSpace(a,b){var c=0;for(let d=0;d<b;d++)a[d].visible&&(c+=a[d].getWidth());return c}},FrozenRowsModule:class extends p{static moduleName="frozenRows";constructor(a){super(a),this.topElement=document.createElement("div"),this.rows=[],this.registerComponentFunction("row","freeze",this.freezeRow.bind(this)),this.registerComponentFunction("row","unfreeze",this.unfreezeRow.bind(this)),this.registerComponentFunction("row","isFrozen",this.isRowFrozen.bind(this)),this.registerTableOption("frozenRowsField","id"),this.registerTableOption("frozenRows",!1)}initialize(){var a=document.createDocumentFragment();this.rows=[],this.topElement.classList.add("tabulator-frozen-rows-holder"),a.appendChild(this.topElement),this.table.columnManager.getContentsElement().insertBefore(a,this.table.columnManager.headersElement.nextSibling),this.subscribe("row-deleting",this.detachRow.bind(this)),this.subscribe("rows-visible",this.visibleRows.bind(this)),this.registerDisplayHandler(this.getRows.bind(this),10),this.table.options.frozenRows&&(this.subscribe("data-processed",this.initializeRows.bind(this)),this.subscribe("row-added",this.initializeRow.bind(this)),this.subscribe("table-redrawing",this.resizeHolderWidth.bind(this)),this.subscribe("column-resized",this.resizeHolderWidth.bind(this)),this.subscribe("column-show",this.resizeHolderWidth.bind(this)),this.subscribe("column-hide",this.resizeHolderWidth.bind(this))),this.resizeHolderWidth()}resizeHolderWidth(){this.topElement.style.minWidth=this.table.columnManager.headersElement.offsetWidth+"px"}initializeRows(){this.table.rowManager.getRows().forEach(a=>{this.initializeRow(a)})}initializeRow(a){var b=this.table.options.frozenRows,c=typeof b;"number"===c?a.getPosition()&&a.getPosition()+this.rows.length<=b&&this.freezeRow(a):"function"===c?b.call(this.table,a.getComponent())&&this.freezeRow(a):Array.isArray(b)&&b.includes(a.data[this.options("frozenRowsField")])&&this.freezeRow(a)}isRowFrozen(a){return this.rows.indexOf(a)>-1}isFrozen(){return!!this.rows.length}visibleRows(a,b){return this.rows.forEach(a=>{b.push(a)}),b}getRows(a){var b=a.slice(0);return this.rows.forEach(function(a){var c=b.indexOf(a);c>-1&&b.splice(c,1)}),b}freezeRow(a){a.modules.frozen?console.warn("Freeze Error - Row is already frozen"):(a.modules.frozen=!0,this.topElement.appendChild(a.getElement()),a.initialize(),a.normalizeHeight(),this.rows.push(a),this.refreshData(!1,"display"),this.table.rowManager.adjustTableSize(),this.styleRows())}unfreezeRow(a){a.modules.frozen?(a.modules.frozen=!1,this.detachRow(a),this.table.rowManager.adjustTableSize(),this.refreshData(!1,"display"),this.rows.length&&this.styleRows()):console.warn("Freeze Error - Row is already unfrozen")}detachRow(a){var b=this.rows.indexOf(a);if(b>-1){var c=a.getElement();c.parentNode&&c.parentNode.removeChild(c),this.rows.splice(b,1)}}styleRows(a){this.rows.forEach((a,b)=>{this.table.rowManager.styleRow(a,b)})}},GroupRowsModule:class extends p{static moduleName="groupRows";constructor(a){super(a),this.groupIDLookups=!1,this.startOpen=[function(){return!1}],this.headerGenerator=[function(){return""}],this.groupList=[],this.allowedValues=!1,this.groups={},this.displayHandler=this.getRows.bind(this),this.blockRedraw=!1,this.registerTableOption("groupBy",!1),this.registerTableOption("groupStartOpen",!0),this.registerTableOption("groupValues",!1),this.registerTableOption("groupUpdateOnCellEdit",!1),this.registerTableOption("groupHeader",!1),this.registerTableOption("groupHeaderPrint",null),this.registerTableOption("groupHeaderClipboard",null),this.registerTableOption("groupHeaderHtmlOutput",null),this.registerTableOption("groupHeaderDownload",null),this.registerTableOption("groupToggleElement","arrow"),this.registerTableOption("groupClosedShowCalcs",!1),this.registerTableFunction("setGroupBy",this.setGroupBy.bind(this)),this.registerTableFunction("setGroupValues",this.setGroupValues.bind(this)),this.registerTableFunction("setGroupStartOpen",this.setGroupStartOpen.bind(this)),this.registerTableFunction("setGroupHeader",this.setGroupHeader.bind(this)),this.registerTableFunction("getGroups",this.userGetGroups.bind(this)),this.registerTableFunction("getGroupedData",this.userGetGroupedData.bind(this)),this.registerComponentFunction("row","getGroup",this.rowGetGroup.bind(this))}initialize(){this.subscribe("table-destroy",this._blockRedrawing.bind(this)),this.subscribe("rows-wipe",this._blockRedrawing.bind(this)),this.subscribe("rows-wiped",this._restore_redrawing.bind(this)),this.table.options.groupBy&&(this.table.options.groupUpdateOnCellEdit&&(this.subscribe("cell-value-updated",this.cellUpdated.bind(this)),this.subscribe("row-data-changed",this.reassignRowToGroup.bind(this),0)),this.subscribe("table-built",this.configureGroupSetup.bind(this)),this.subscribe("row-deleting",this.rowDeleting.bind(this)),this.subscribe("row-deleted",this.rowsUpdated.bind(this)),this.subscribe("scroll-horizontal",this.scrollHeaders.bind(this)),this.subscribe("rows-wipe",this.wipe.bind(this)),this.subscribe("rows-added",this.rowsUpdated.bind(this)),this.subscribe("row-moving",this.rowMoving.bind(this)),this.subscribe("row-adding-index",this.rowAddingIndex.bind(this)),this.subscribe("rows-sample",this.rowSample.bind(this)),this.subscribe("render-virtual-fill",this.virtualRenderFill.bind(this)),this.registerDisplayHandler(this.displayHandler,20),this.initialized=!0)}_blockRedrawing(){this.blockRedraw=!0}_restore_redrawing(){this.blockRedraw=!1}configureGroupSetup(){if(this.table.options.groupBy){var a=this.table.options.groupBy,b=this.table.options.groupStartOpen,c=this.table.options.groupHeader;this.allowedValues=this.table.options.groupValues,Array.isArray(a)&&Array.isArray(c)&&a.length>c.length&&console.warn("Error creating group headers, groupHeader array is shorter than groupBy array"),this.headerGenerator=[function(){return""}],this.startOpen=[function(){return!1}],this.langBind("groups|item",(a,b)=>{this.headerGenerator[0]=(c,d,e)=>(void 0===c?"":c)+"<span>("+d+" "+(1===d?a:b.groups.items)+")</span>"}),this.groupIDLookups=[],a?this.table.modExists("columnCalcs")&&"table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.removeCalcs():this.table.modExists("columnCalcs")&&"group"!=this.table.options.columnCalcs&&this.table.columnManager.getRealColumns().forEach(a=>{a.definition.topCalc&&this.table.modules.columnCalcs.initializeTopRow(),a.definition.bottomCalc&&this.table.modules.columnCalcs.initializeBottomRow()}),Array.isArray(a)||(a=[a]),a.forEach((a,b)=>{var c,d;c="function"==typeof a?a:(d=this.table.columnManager.getColumnByField(a))?function(a){return d.getFieldValue(a)}:function(b){return b[a]},this.groupIDLookups.push({field:"function"!=typeof a&&a,func:c,values:!!this.allowedValues&&this.allowedValues[b]})}),b&&(Array.isArray(b)||(b=[b]),b.forEach(a=>{}),this.startOpen=b),c&&(this.headerGenerator=Array.isArray(c)?c:[c])}else this.groupList=[],this.groups={}}rowSample(a,b){if(this.table.options.groupBy){var c=this.getGroups(!1)[0];b.push(c.getRows(!1)[0])}return b}virtualRenderFill(){var a=this.table.rowManager.tableElement,b=this.table.rowManager.getVisibleRows();if(!this.table.options.groupBy)return b;b=b.filter(a=>"group"!==a.type),a.style.minWidth=b.length?"":this.table.columnManager.getWidth()+"px"}rowAddingIndex(a,b,c){if(this.table.options.groupBy){this.assignRowToGroup(a);var d=a.modules.group.rows;return d.length>1&&(!b||b&&-1==d.indexOf(b)?c?d[0]!==a&&(b=d[0],this.table.rowManager.moveRowInArray(a.modules.group.rows,a,b,!c)):d[d.length-1]!==a&&(b=d[d.length-1],this.table.rowManager.moveRowInArray(a.modules.group.rows,a,b,!c)):this.table.rowManager.moveRowInArray(a.modules.group.rows,a,b,!c)),b}}trackChanges(){this.dispatch("group-changed")}setGroupBy(a){this.table.options.groupBy=a,this.initialized||this.initialize(),this.configureGroupSetup(),!a&&this.table.modExists("columnCalcs")&&!0===this.table.options.columnCalcs&&this.table.modules.columnCalcs.reinitializeCalcs(),this.refreshData(),this.trackChanges()}setGroupValues(a){this.table.options.groupValues=a,this.configureGroupSetup(),this.refreshData(),this.trackChanges()}setGroupStartOpen(a){this.table.options.groupStartOpen=a,this.configureGroupSetup(),this.table.options.groupBy?(this.refreshData(),this.trackChanges()):console.warn("Grouping Update - cant refresh view, no groups have been set")}setGroupHeader(a){this.table.options.groupHeader=a,this.configureGroupSetup(),this.table.options.groupBy?(this.refreshData(),this.trackChanges()):console.warn("Grouping Update - cant refresh view, no groups have been set")}userGetGroups(a){return this.getGroups(!0)}userGetGroupedData(){return this.table.options.groupBy?this.getGroupedData():this.getData()}rowGetGroup(a){return!!a.modules.group&&a.modules.group.getComponent()}rowMoving(a,b,c){if(this.table.options.groupBy){!c&&b instanceof _&&(b=this.table.rowManager.prevDisplayRow(a)||b);var d=b instanceof _?b:b.modules.group,e=a instanceof _?a:a.modules.group;d===e?this.table.rowManager.moveRowInArray(d.rows,a,b,c):(e&&e.removeRow(a),d.insertRow(a,b,c))}}rowDeleting(a){this.table.options.groupBy&&a.modules.group&&a.modules.group.removeRow(a)}rowsUpdated(a){this.table.options.groupBy&&this.updateGroupRows(!0)}cellUpdated(a){this.table.options.groupBy&&this.reassignRowToGroup(a.row)}getRows(a){return this.table.options.groupBy&&this.groupIDLookups.length?(this.dispatchExternal("dataGrouping"),this.generateGroups(a),this.subscribedExternal("dataGrouped")&&this.dispatchExternal("dataGrouped",this.getGroups(!0)),this.updateGroupRows()):a.slice(0)}getGroups(a){var b=[];return this.groupList.forEach(function(c){b.push(a?c.getComponent():c)}),b}getChildGroups(a){var b=[];return a||(a=this),a.groupList.forEach(a=>{a.groupList.length?b=b.concat(this.getChildGroups(a)):b.push(a)}),b}wipe(){this.table.options.groupBy&&(this.groupList.forEach(function(a){a.wipe()}),this.groupList=[],this.groups={})}pullGroupListData(a){var b=[];return a.forEach(a=>{var c={};c.level=0,c.rowCount=0,c.headerContent="";var d=[];a.hasSubGroups?(d=this.pullGroupListData(a.groupList),c.level=a.level,c.rowCount=d.length-a.groupList.length,c.headerContent=a.generator(a.key,c.rowCount,a.rows,a),b.push(c),b=b.concat(d)):(c.level=a.level,c.headerContent=a.generator(a.key,a.rows.length,a.rows,a),c.rowCount=a.getRows().length,b.push(c),a.getRows().forEach(a=>{b.push(a.getData("data"))}))}),b}getGroupedData(){return this.pullGroupListData(this.groupList)}getRowGroup(a){var b=!1;return this.options("dataTree")&&(a=this.table.modules.dataTree.getTreeParentRoot(a)),this.groupList.forEach(c=>{var d=c.getRowGroup(a);d&&(b=d)}),b}countGroups(){return this.groupList.length}generateGroups(a){var b=this.groups;this.groups={},this.groupList=[],this.allowedValues&&this.allowedValues[0]?(this.allowedValues[0].forEach(a=>{this.createGroup(a,0,b)}),a.forEach(a=>{this.assignRowToExistingGroup(a,b)})):a.forEach(a=>{this.assignRowToGroup(a,b)}),Object.values(b).forEach(a=>{a.wipe(!0)})}createGroup(a,b,c){var d,e=b+"_"+a;c=c||[],d=new _(this,!1,b,a,this.groupIDLookups[0].field,this.headerGenerator[0],c[e]),this.groups[e]=d,this.groupList.push(d)}assignRowToExistingGroup(a,b){var c="0_"+this.groupIDLookups[0].func(a.getData());this.groups[c]&&this.groups[c].addRow(a)}assignRowToGroup(a,b){var c=this.groupIDLookups[0].func(a.getData()),d=!this.groups["0_"+c];return d&&this.createGroup(c,0,b),this.groups["0_"+c].addRow(a),!d}reassignRowToGroup(a){if("row"===a.type){var b=a.modules.group,c=b.getPath(),d=this.getExpectedPath(a);c.length==d.length&&c.every((a,b)=>a===d[b])||(b.removeRow(a),this.assignRowToGroup(a,this.groups),this.refreshData(!0))}}getExpectedPath(a){var b=[],c=a.getData();return this.groupIDLookups.forEach(a=>{b.push(a.func(c))}),b}updateGroupRows(a){var b=[];return!this.blockRedraw&&(this.groupList.forEach(a=>{b=b.concat(a.getHeadersAndRows())}),a&&this.refreshData(!0)),b}scrollHeaders(a){this.table.options.groupBy&&("virtual"===this.table.options.renderHorizontal&&(a-=this.table.columnManager.renderer.vDomPadLeft),a+="px",this.groupList.forEach(b=>{b.scrollHeader(a)}))}removeGroup(a){var b,c=a.level+"_"+a.key;this.groups[c]&&(delete this.groups[c],(b=this.groupList.indexOf(a))>-1&&this.groupList.splice(b,1))}checkBasicModeGroupHeaderWidth(){var a=this.table.rowManager.tableElement,b=!0;this.table.rowManager.getDisplayRows().forEach((c,d)=>{this.table.rowManager.styleRow(c,d),a.appendChild(c.getElement()),c.initialize(!0),"group"!==c.type&&(b=!1)}),b?a.style.minWidth=this.table.columnManager.getWidth()+"px":a.style.minWidth=""}},HistoryModule:ad,HtmlTableImportModule:class extends p{static moduleName="htmlTableImport";constructor(a){super(a),this.fieldIndex=[],this.hasIndex=!1}initialize(){this.tableElementCheck()}tableElementCheck(){this.table.originalElement&&"TABLE"===this.table.originalElement.tagName&&(this.table.originalElement.childNodes.length?this.parseTable():console.warn("Unable to parse data from empty table tag, Tabulator should be initialized on a div tag unless importing data from a table element."))}parseTable(){var a=this.table.originalElement,b=this.table.options,c=a.getElementsByTagName("th"),d=a.getElementsByTagName("tbody")[0],e=[];this.hasIndex=!1,this.dispatchExternal("htmlImporting"),d=d?d.getElementsByTagName("tr"):[],this._extractOptions(a,b),c.length?this._extractHeaders(c,d):this._generateBlankHeaders(c,d);for(var f=0;f<d.length;f++){var g=d[f].getElementsByTagName("td"),h={};this.hasIndex||(h[b.index]=f);for(var i=0;i<g.length;i++){var j=g[i];void 0!==this.fieldIndex[i]&&(h[this.fieldIndex[i]]=j.innerHTML)}e.push(h)}b.data=e,this.dispatchExternal("htmlImported")}_extractOptions(a,b,c){var d=a.attributes,e=c?Object.keys(c):Object.keys(b),f={};for(var g in e.forEach(a=>{f[a.toLowerCase()]=a}),d){var h,i=d[g];i&&"object"==typeof i&&i.name&&0===i.name.indexOf("tabulator-")&&void 0!==f[h=i.name.replace("tabulator-","")]&&(b[f[h]]=this._attribValue(i.value))}}_attribValue(a){return"true"===a||"false"!==a&&a}_findCol(a){return this.table.options.columns.find(b=>b.title===a)||!1}_extractHeaders(a,b){for(var c=0;c<a.length;c++){var d,e=a[c],f=!1,g=this._findCol(e.textContent);g?f=!0:g={title:e.textContent.trim()},g.field||(g.field=e.textContent.trim().toLowerCase().replaceAll(" ","_")),(d=e.getAttribute("width"))&&!g.width&&(g.width=d),this._extractOptions(e,g,this.table.columnManager.optionsList.registeredDefaults),this.fieldIndex[c]=g.field,g.field==this.table.options.index&&(this.hasIndex=!0),f||this.table.options.columns.push(g)}}_generateBlankHeaders(a,b){for(var c=0;c<a.length;c++){var d=a[c],e={title:"",field:"col"+c};this.fieldIndex[c]=e.field;var f=d.getAttribute("width");f&&(e.width=f),this.table.options.columns.push(e)}}},ImportModule:af,InteractionModule:class extends p{static moduleName="interaction";constructor(a){super(a),this.eventMap={rowClick:"row-click",rowDblClick:"row-dblclick",rowContext:"row-contextmenu",rowMouseEnter:"row-mouseenter",rowMouseLeave:"row-mouseleave",rowMouseOver:"row-mouseover",rowMouseOut:"row-mouseout",rowMouseMove:"row-mousemove",rowMouseDown:"row-mousedown",rowMouseUp:"row-mouseup",rowTap:"row",rowDblTap:"row",rowTapHold:"row",cellClick:"cell-click",cellDblClick:"cell-dblclick",cellContext:"cell-contextmenu",cellMouseEnter:"cell-mouseenter",cellMouseLeave:"cell-mouseleave",cellMouseOver:"cell-mouseover",cellMouseOut:"cell-mouseout",cellMouseMove:"cell-mousemove",cellMouseDown:"cell-mousedown",cellMouseUp:"cell-mouseup",cellTap:"cell",cellDblTap:"cell",cellTapHold:"cell",headerClick:"column-click",headerDblClick:"column-dblclick",headerContext:"column-contextmenu",headerMouseEnter:"column-mouseenter",headerMouseLeave:"column-mouseleave",headerMouseOver:"column-mouseover",headerMouseOut:"column-mouseout",headerMouseMove:"column-mousemove",headerMouseDown:"column-mousedown",headerMouseUp:"column-mouseup",headerTap:"column",headerDblTap:"column",headerTapHold:"column",groupClick:"group-click",groupDblClick:"group-dblclick",groupContext:"group-contextmenu",groupMouseEnter:"group-mouseenter",groupMouseLeave:"group-mouseleave",groupMouseOver:"group-mouseover",groupMouseOut:"group-mouseout",groupMouseMove:"group-mousemove",groupMouseDown:"group-mousedown",groupMouseUp:"group-mouseup",groupTap:"group",groupDblTap:"group",groupTapHold:"group"},this.subscribers={},this.touchSubscribers={},this.columnSubscribers={},this.touchWatchers={row:{tap:null,tapDbl:null,tapHold:null},cell:{tap:null,tapDbl:null,tapHold:null},column:{tap:null,tapDbl:null,tapHold:null},group:{tap:null,tapDbl:null,tapHold:null}},this.registerColumnOption("headerClick"),this.registerColumnOption("headerDblClick"),this.registerColumnOption("headerContext"),this.registerColumnOption("headerMouseEnter"),this.registerColumnOption("headerMouseLeave"),this.registerColumnOption("headerMouseOver"),this.registerColumnOption("headerMouseOut"),this.registerColumnOption("headerMouseMove"),this.registerColumnOption("headerMouseDown"),this.registerColumnOption("headerMouseUp"),this.registerColumnOption("headerTap"),this.registerColumnOption("headerDblTap"),this.registerColumnOption("headerTapHold"),this.registerColumnOption("cellClick"),this.registerColumnOption("cellDblClick"),this.registerColumnOption("cellContext"),this.registerColumnOption("cellMouseEnter"),this.registerColumnOption("cellMouseLeave"),this.registerColumnOption("cellMouseOver"),this.registerColumnOption("cellMouseOut"),this.registerColumnOption("cellMouseMove"),this.registerColumnOption("cellMouseDown"),this.registerColumnOption("cellMouseUp"),this.registerColumnOption("cellTap"),this.registerColumnOption("cellDblTap"),this.registerColumnOption("cellTapHold")}initialize(){this.initializeExternalEvents(),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("cell-dblclick",this.cellContentsSelectionFixer.bind(this)),this.subscribe("scroll-horizontal",this.clearTouchWatchers.bind(this)),this.subscribe("scroll-vertical",this.clearTouchWatchers.bind(this))}clearTouchWatchers(){Object.values(this.touchWatchers).forEach(a=>{for(let b in a)a[b]=null})}cellContentsSelectionFixer(a,b){var c;if(!this.table.modExists("edit")||this.table.modules.edit.currentCell!==b){a.preventDefault();try{document.selection?((c=document.body.createTextRange()).moveToElementText(b.getElement()),c.select()):window.getSelection&&((c=document.createRange()).selectNode(b.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(c))}catch(a){}}}initializeExternalEvents(){for(let a in this.eventMap)this.subscriptionChangeExternal(a,this.subscriptionChanged.bind(this,a))}subscriptionChanged(a,b){b?this.subscribers[a]||(this.eventMap[a].includes("-")?(this.subscribers[a]=this.handle.bind(this,a),this.subscribe(this.eventMap[a],this.subscribers[a])):this.subscribeTouchEvents(a)):this.eventMap[a].includes("-")?!this.subscribers[a]||this.columnSubscribers[a]||this.subscribedExternal(a)||(this.unsubscribe(this.eventMap[a],this.subscribers[a]),delete this.subscribers[a]):this.unsubscribeTouchEvents(a)}subscribeTouchEvents(a){var b=this.eventMap[a];this.touchSubscribers[b+"-touchstart"]||(this.touchSubscribers[b+"-touchstart"]=this.handleTouch.bind(this,b,"start"),this.touchSubscribers[b+"-touchend"]=this.handleTouch.bind(this,b,"end"),this.subscribe(b+"-touchstart",this.touchSubscribers[b+"-touchstart"]),this.subscribe(b+"-touchend",this.touchSubscribers[b+"-touchend"])),this.subscribers[a]=!0}unsubscribeTouchEvents(a){var b=!0,c=this.eventMap[a];if(this.subscribers[a]&&!this.subscribedExternal(a)){for(let d in delete this.subscribers[a],this.eventMap)this.eventMap[d]===c&&this.subscribers[d]&&(b=!1);b&&(this.unsubscribe(c+"-touchstart",this.touchSubscribers[c+"-touchstart"]),this.unsubscribe(c+"-touchend",this.touchSubscribers[c+"-touchend"]),delete this.touchSubscribers[c+"-touchstart"],delete this.touchSubscribers[c+"-touchend"])}}initializeColumn(a){var b=a.definition;for(let c in this.eventMap)b[c]&&(this.subscriptionChanged(c,!0),this.columnSubscribers[c]||(this.columnSubscribers[c]=[]),this.columnSubscribers[c].push(a))}handle(a,b,c){this.dispatchEvent(a,b,c)}handleTouch(a,b,c,d){var e=this.touchWatchers[a];switch("column"===a&&(a="header"),b){case"start":e.tap=!0,clearTimeout(e.tapHold),e.tapHold=setTimeout(()=>{clearTimeout(e.tapHold),e.tapHold=null,e.tap=null,clearTimeout(e.tapDbl),e.tapDbl=null,this.dispatchEvent(a+"TapHold",c,d)},1e3);break;case"end":e.tap&&(e.tap=null,this.dispatchEvent(a+"Tap",c,d)),e.tapDbl?(clearTimeout(e.tapDbl),e.tapDbl=null,this.dispatchEvent(a+"DblTap",c,d)):e.tapDbl=setTimeout(()=>{clearTimeout(e.tapDbl),e.tapDbl=null},300),clearTimeout(e.tapHold),e.tapHold=null}}dispatchEvent(a,b,c){var d,e=c.getComponent();this.columnSubscribers[a]&&(c instanceof D?d=c.column.definition[a]:c instanceof G&&(d=c.definition[a]),d&&d(b,e)),this.dispatchExternal(a,b,e)}},KeybindingsModule:ai,MenuModule:class extends p{static moduleName="menu";constructor(a){super(a),this.menuContainer=null,this.nestedMenuBlock=!1,this.currentComponent=null,this.rootPopup=null,this.columnSubscribers={},this.registerTableOption("rowContextMenu",!1),this.registerTableOption("rowClickMenu",!1),this.registerTableOption("rowDblClickMenu",!1),this.registerTableOption("groupContextMenu",!1),this.registerTableOption("groupClickMenu",!1),this.registerTableOption("groupDblClickMenu",!1),this.registerColumnOption("headerContextMenu"),this.registerColumnOption("headerClickMenu"),this.registerColumnOption("headerDblClickMenu"),this.registerColumnOption("headerMenu"),this.registerColumnOption("headerMenuIcon"),this.registerColumnOption("contextMenu"),this.registerColumnOption("clickMenu"),this.registerColumnOption("dblClickMenu")}initialize(){this.deprecatedOptionsCheck(),this.initializeRowWatchers(),this.initializeGroupWatchers(),this.subscribe("column-init",this.initializeColumn.bind(this))}deprecatedOptionsCheck(){}initializeRowWatchers(){this.table.options.rowContextMenu&&(this.subscribe("row-contextmenu",this.loadMenuEvent.bind(this,this.table.options.rowContextMenu)),this.table.on("rowTapHold",this.loadMenuEvent.bind(this,this.table.options.rowContextMenu))),this.table.options.rowClickMenu&&this.subscribe("row-click",this.loadMenuEvent.bind(this,this.table.options.rowClickMenu)),this.table.options.rowDblClickMenu&&this.subscribe("row-dblclick",this.loadMenuEvent.bind(this,this.table.options.rowDblClickMenu))}initializeGroupWatchers(){this.table.options.groupContextMenu&&(this.subscribe("group-contextmenu",this.loadMenuEvent.bind(this,this.table.options.groupContextMenu)),this.table.on("groupTapHold",this.loadMenuEvent.bind(this,this.table.options.groupContextMenu))),this.table.options.groupClickMenu&&this.subscribe("group-click",this.loadMenuEvent.bind(this,this.table.options.groupClickMenu)),this.table.options.groupDblClickMenu&&this.subscribe("group-dblclick",this.loadMenuEvent.bind(this,this.table.options.groupDblClickMenu))}initializeColumn(a){var b=a.definition;b.headerContextMenu&&!this.columnSubscribers.headerContextMenu&&(this.columnSubscribers.headerContextMenu=this.loadMenuTableColumnEvent.bind(this,"headerContextMenu"),this.subscribe("column-contextmenu",this.columnSubscribers.headerContextMenu),this.table.on("headerTapHold",this.loadMenuTableColumnEvent.bind(this,"headerContextMenu"))),b.headerClickMenu&&!this.columnSubscribers.headerClickMenu&&(this.columnSubscribers.headerClickMenu=this.loadMenuTableColumnEvent.bind(this,"headerClickMenu"),this.subscribe("column-click",this.columnSubscribers.headerClickMenu)),b.headerDblClickMenu&&!this.columnSubscribers.headerDblClickMenu&&(this.columnSubscribers.headerDblClickMenu=this.loadMenuTableColumnEvent.bind(this,"headerDblClickMenu"),this.subscribe("column-dblclick",this.columnSubscribers.headerDblClickMenu)),b.headerMenu&&this.initializeColumnHeaderMenu(a),b.contextMenu&&!this.columnSubscribers.contextMenu&&(this.columnSubscribers.contextMenu=this.loadMenuTableCellEvent.bind(this,"contextMenu"),this.subscribe("cell-contextmenu",this.columnSubscribers.contextMenu),this.table.on("cellTapHold",this.loadMenuTableCellEvent.bind(this,"contextMenu"))),b.clickMenu&&!this.columnSubscribers.clickMenu&&(this.columnSubscribers.clickMenu=this.loadMenuTableCellEvent.bind(this,"clickMenu"),this.subscribe("cell-click",this.columnSubscribers.clickMenu)),b.dblClickMenu&&!this.columnSubscribers.dblClickMenu&&(this.columnSubscribers.dblClickMenu=this.loadMenuTableCellEvent.bind(this,"dblClickMenu"),this.subscribe("cell-dblclick",this.columnSubscribers.dblClickMenu))}initializeColumnHeaderMenu(a){var b,c=a.definition.headerMenuIcon;(b=document.createElement("span")).classList.add("tabulator-header-popup-button"),c?("function"==typeof c&&(c=c(a.getComponent())),c instanceof HTMLElement?b.appendChild(c):b.innerHTML=c):b.innerHTML="&vellip;",b.addEventListener("click",b=>{b.stopPropagation(),b.preventDefault(),this.loadMenuEvent(a.definition.headerMenu,b,a)}),a.titleElement.insertBefore(b,a.titleElement.firstChild)}loadMenuTableCellEvent(a,b,c){c._cell&&(c=c._cell),c.column.definition[a]&&this.loadMenuEvent(c.column.definition[a],b,c)}loadMenuTableColumnEvent(a,b,c){c._column&&(c=c._column),c.definition[a]&&this.loadMenuEvent(c.definition[a],b,c)}loadMenuEvent(a,b,c){c._group?c=c._group:c._row&&(c=c._row),a="function"==typeof a?a.call(this.table,b,c.getComponent()):a,this.loadMenu(b,c,a)}loadMenu(a,b,c,d,e){var f,g=!(a instanceof MouseEvent),h=document.createElement("div");if(h.classList.add("tabulator-menu"),g||a.preventDefault(),c&&c.length){if(d)f=e.child(h);else{if(this.nestedMenuBlock){if(this.rootPopup)return}else this.nestedMenuBlock=setTimeout(()=>{this.nestedMenuBlock=!1},100);this.rootPopup&&this.rootPopup.hide(),this.rootPopup=f=this.popup(h)}c.forEach(a=>{var c=document.createElement("div"),d=a.label,e=a.disabled;a.separator?c.classList.add("tabulator-menu-separator"):(c.classList.add("tabulator-menu-item"),"function"==typeof d&&(d=d.call(this.table,b.getComponent())),d instanceof Node?c.appendChild(d):c.innerHTML=d,"function"==typeof e&&(e=e.call(this.table,b.getComponent())),e?(c.classList.add("tabulator-menu-item-disabled"),c.addEventListener("click",a=>{a.stopPropagation()})):a.menu&&a.menu.length?c.addEventListener("click",d=>{d.stopPropagation(),this.loadMenu(d,b,a.menu,c,f)}):a.action&&c.addEventListener("click",c=>{a.action(c,b.getComponent())}),a.menu&&a.menu.length&&c.classList.add("tabulator-menu-item-submenu")),h.appendChild(c)}),h.addEventListener("click",a=>{this.rootPopup&&this.rootPopup.hide()}),f.show(d||a),f===this.rootPopup&&(this.rootPopup.hideOnBlur(()=>{this.rootPopup=null,this.currentComponent&&(this.dispatch("menu-closed",c,f),this.dispatchExternal("menuClosed",this.currentComponent.getComponent()),this.currentComponent=null)}),this.currentComponent=b,this.dispatch("menu-opened",c,f),this.dispatchExternal("menuOpened",b.getComponent()))}}},MoveColumnsModule:class extends p{static moduleName="moveColumn";constructor(a){super(a),this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.registerTableOption("movableColumns",!1)}createPlaceholderElement(){var a=document.createElement("div");return a.classList.add("tabulator-col"),a.classList.add("tabulator-col-placeholder"),a}initialize(){this.table.options.movableColumns&&(this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("alert-show",this.abortMove.bind(this)))}abortMove(){clearTimeout(this.checkTimeout)}initializeColumn(a){var b,c=this,d={};a.modules.frozen||a.isGroup||a.isRowHeader||(b=a.getElement(),d.mousemove=(function(d){a.parent===c.moving.parent&&((c.touchMove?d.touches[0].pageX:d.pageX)-n.elOffset(b).left+c.table.columnManager.contentsElement.scrollLeft>a.getWidth()/2?c.toCol===a&&c.toColAfter||(b.parentNode.insertBefore(c.placeholderElement,b.nextSibling),c.moveColumn(a,!0)):(c.toCol!==a||c.toColAfter)&&(b.parentNode.insertBefore(c.placeholderElement,b),c.moveColumn(a,!1)))}).bind(c),b.addEventListener("mousedown",function(b){c.touchMove=!1,1===b.which&&(c.checkTimeout=setTimeout(function(){c.startMove(b,a)},c.checkPeriod))}),b.addEventListener("mouseup",function(a){1===a.which&&c.checkTimeout&&clearTimeout(c.checkTimeout)}),c.bindTouchEvents(a)),a.modules.moveColumn=d}bindTouchEvents(a){var b,c,d,e,f,g,h=a.getElement(),i=!1;h.addEventListener("touchstart",h=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,d=(b=a.nextColumn())?b.getWidth()/2:0,e=(c=a.prevColumn())?c.getWidth()/2:0,f=0,g=0,i=!1,this.startMove(h,a)},this.checkPeriod)},{passive:!0}),h.addEventListener("touchmove",h=>{var j,k;this.moving&&(this.moveHover(h),i||(i=h.touches[0].pageX),(j=h.touches[0].pageX-i)>0?b&&j-f>d&&(k=b)!==a&&(i=h.touches[0].pageX,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement().nextSibling),this.moveColumn(k,!0)):c&&-j-g>e&&(k=c)!==a&&(i=h.touches[0].pageX,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement()),this.moveColumn(k,!1)),k&&(b=k.nextColumn(),f=d,d=b?b.getWidth()/2:0,c=k.prevColumn(),g=e,e=c?c.getWidth()/2:0))},{passive:!0}),h.addEventListener("touchend",a=>{this.checkTimeout&&clearTimeout(this.checkTimeout),this.moving&&this.endMove(a)})}startMove(a,b){var c=b.getElement(),d=this.table.columnManager.getContentsElement(),e=this.table.columnManager.getHeadersElement();this.table.modules.selectRange&&this.table.modules.selectRange.columnSelection&&this.table.modules.selectRange.mousedown&&"column"===this.table.modules.selectRange.selecting||(this.moving=b,this.startX=(this.touchMove?a.touches[0].pageX:a.pageX)-n.elOffset(c).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=b.getWidth()+"px",this.placeholderElement.style.height=b.getHeight()+"px",c.parentNode.insertBefore(this.placeholderElement,c),c.parentNode.removeChild(c),this.hoverElement=c.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),d.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom=d.clientHeight-e.offsetHeight+"px",this.touchMove||(this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove)),this.moveHover(a),this.dispatch("column-moving",a,this.moving))}_bindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(a){a.modules.moveColumn.mousemove&&a.getElement().addEventListener("mousemove",a.modules.moveColumn.mousemove)})}_unbindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(a){a.modules.moveColumn.mousemove&&a.getElement().removeEventListener("mousemove",a.modules.moveColumn.mousemove)})}moveColumn(a,b){var c=this.moving.getCells();this.toCol=a,this.toColAfter=b,b?a.getCells().forEach(function(a,b){var d=a.getElement(!0);d.parentNode&&c[b]&&d.parentNode.insertBefore(c[b].getElement(),d.nextSibling)}):a.getCells().forEach(function(a,b){var d=a.getElement(!0);d.parentNode&&c[b]&&d.parentNode.insertBefore(c[b].getElement(),d)})}endMove(a){(1===a.which||this.touchMove)&&(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol&&this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter),this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.touchMove||(document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)))}moveHover(a){var b,c=this.table.columnManager.getContentsElement(),d=c.scrollLeft,e=(this.touchMove?a.touches[0].pageX:a.pageX)-n.elOffset(c).left+d;this.hoverElement.style.left=e-this.startX+"px",e-d<this.autoScrollMargin&&!this.autoScrollTimeout&&(this.autoScrollTimeout=setTimeout(()=>{b=Math.max(0,d-5),this.table.rowManager.getElement().scrollLeft=b,this.autoScrollTimeout=!1},1)),d+c.clientWidth-e<this.autoScrollMargin&&!this.autoScrollTimeout&&(this.autoScrollTimeout=setTimeout(()=>{b=Math.min(c.clientWidth,d+5),this.table.rowManager.getElement().scrollLeft=b,this.autoScrollTimeout=!1},1))}},MoveRowsModule:al,MutatorModule:an,PageModule:ap,PersistenceModule:as,PopupModule:class extends p{static moduleName="popup";constructor(a){super(a),this.columnSubscribers={},this.registerTableOption("rowContextPopup",!1),this.registerTableOption("rowClickPopup",!1),this.registerTableOption("rowDblClickPopup",!1),this.registerTableOption("groupContextPopup",!1),this.registerTableOption("groupClickPopup",!1),this.registerTableOption("groupDblClickPopup",!1),this.registerColumnOption("headerContextPopup"),this.registerColumnOption("headerClickPopup"),this.registerColumnOption("headerDblClickPopup"),this.registerColumnOption("headerPopup"),this.registerColumnOption("headerPopupIcon"),this.registerColumnOption("contextPopup"),this.registerColumnOption("clickPopup"),this.registerColumnOption("dblClickPopup"),this.registerComponentFunction("cell","popup",this._componentPopupCall.bind(this)),this.registerComponentFunction("column","popup",this._componentPopupCall.bind(this)),this.registerComponentFunction("row","popup",this._componentPopupCall.bind(this)),this.registerComponentFunction("group","popup",this._componentPopupCall.bind(this))}initialize(){this.initializeRowWatchers(),this.initializeGroupWatchers(),this.subscribe("column-init",this.initializeColumn.bind(this))}_componentPopupCall(a,b,c){this.loadPopupEvent(b,null,a,c)}initializeRowWatchers(){this.table.options.rowContextPopup&&(this.subscribe("row-contextmenu",this.loadPopupEvent.bind(this,this.table.options.rowContextPopup)),this.table.on("rowTapHold",this.loadPopupEvent.bind(this,this.table.options.rowContextPopup))),this.table.options.rowClickPopup&&this.subscribe("row-click",this.loadPopupEvent.bind(this,this.table.options.rowClickPopup)),this.table.options.rowDblClickPopup&&this.subscribe("row-dblclick",this.loadPopupEvent.bind(this,this.table.options.rowDblClickPopup))}initializeGroupWatchers(){this.table.options.groupContextPopup&&(this.subscribe("group-contextmenu",this.loadPopupEvent.bind(this,this.table.options.groupContextPopup)),this.table.on("groupTapHold",this.loadPopupEvent.bind(this,this.table.options.groupContextPopup))),this.table.options.groupClickPopup&&this.subscribe("group-click",this.loadPopupEvent.bind(this,this.table.options.groupClickPopup)),this.table.options.groupDblClickPopup&&this.subscribe("group-dblclick",this.loadPopupEvent.bind(this,this.table.options.groupDblClickPopup))}initializeColumn(a){var b=a.definition;b.headerContextPopup&&!this.columnSubscribers.headerContextPopup&&(this.columnSubscribers.headerContextPopup=this.loadPopupTableColumnEvent.bind(this,"headerContextPopup"),this.subscribe("column-contextmenu",this.columnSubscribers.headerContextPopup),this.table.on("headerTapHold",this.loadPopupTableColumnEvent.bind(this,"headerContextPopup"))),b.headerClickPopup&&!this.columnSubscribers.headerClickPopup&&(this.columnSubscribers.headerClickPopup=this.loadPopupTableColumnEvent.bind(this,"headerClickPopup"),this.subscribe("column-click",this.columnSubscribers.headerClickPopup)),b.headerDblClickPopup&&!this.columnSubscribers.headerDblClickPopup&&(this.columnSubscribers.headerDblClickPopup=this.loadPopupTableColumnEvent.bind(this,"headerDblClickPopup"),this.subscribe("column-dblclick",this.columnSubscribers.headerDblClickPopup)),b.headerPopup&&this.initializeColumnHeaderPopup(a),b.contextPopup&&!this.columnSubscribers.contextPopup&&(this.columnSubscribers.contextPopup=this.loadPopupTableCellEvent.bind(this,"contextPopup"),this.subscribe("cell-contextmenu",this.columnSubscribers.contextPopup),this.table.on("cellTapHold",this.loadPopupTableCellEvent.bind(this,"contextPopup"))),b.clickPopup&&!this.columnSubscribers.clickPopup&&(this.columnSubscribers.clickPopup=this.loadPopupTableCellEvent.bind(this,"clickPopup"),this.subscribe("cell-click",this.columnSubscribers.clickPopup)),b.dblClickPopup&&!this.columnSubscribers.dblClickPopup&&(this.columnSubscribers.dblClickPopup=this.loadPopupTableCellEvent.bind(this,"dblClickPopup"),this.subscribe("cell-click",this.columnSubscribers.dblClickPopup))}initializeColumnHeaderPopup(a){var b,c=a.definition.headerPopupIcon;(b=document.createElement("span")).classList.add("tabulator-header-popup-button"),c?("function"==typeof c&&(c=c(a.getComponent())),c instanceof HTMLElement?b.appendChild(c):b.innerHTML=c):b.innerHTML="&vellip;",b.addEventListener("click",b=>{b.stopPropagation(),b.preventDefault(),this.loadPopupEvent(a.definition.headerPopup,b,a)}),a.titleElement.insertBefore(b,a.titleElement.firstChild)}loadPopupTableCellEvent(a,b,c){c._cell&&(c=c._cell),c.column.definition[a]&&this.loadPopupEvent(c.column.definition[a],b,c)}loadPopupTableColumnEvent(a,b,c){c._column&&(c=c._column),c.definition[a]&&this.loadPopupEvent(c.definition[a],b,c)}loadPopupEvent(a,b,c,d){var e;c._group?c=c._group:c._row&&(c=c._row),a="function"==typeof a?a.call(this.table,b,c.getComponent(),function(a){e=a}):a,this.loadPopup(b,c,a,e,d)}loadPopup(a,b,c,d,e){var f,g,h=!(a instanceof MouseEvent);c instanceof HTMLElement?f=c:(f=document.createElement("div")).innerHTML=c,f.classList.add("tabulator-popup"),f.addEventListener("click",a=>{a.stopPropagation()}),h||a.preventDefault(),g=this.popup(f),"function"==typeof d&&g.renderCallback(d),a?g.show(a):g.show(b.getElement(),e||"center"),g.hideOnBlur(()=>{this.dispatchExternal("popupClosed",b.getComponent())}),this.dispatchExternal("popupOpened",b.getComponent())}},PrintModule:class extends p{static moduleName="print";constructor(a){super(a),this.element=!1,this.manualBlock=!1,this.beforeprintEventHandler=null,this.afterprintEventHandler=null,this.registerTableOption("printAsHtml",!1),this.registerTableOption("printFormatter",!1),this.registerTableOption("printHeader",!1),this.registerTableOption("printFooter",!1),this.registerTableOption("printStyled",!0),this.registerTableOption("printRowRange","visible"),this.registerTableOption("printConfig",{}),this.registerColumnOption("print"),this.registerColumnOption("titlePrint")}initialize(){this.table.options.printAsHtml&&(this.beforeprintEventHandler=this.replaceTable.bind(this),this.afterprintEventHandler=this.cleanup.bind(this),window.addEventListener("beforeprint",this.beforeprintEventHandler),window.addEventListener("afterprint",this.afterprintEventHandler),this.subscribe("table-destroy",this.destroy.bind(this))),this.registerTableFunction("print",this.printFullscreen.bind(this))}destroy(){this.table.options.printAsHtml&&(window.removeEventListener("beforeprint",this.beforeprintEventHandler),window.removeEventListener("afterprint",this.afterprintEventHandler))}replaceTable(){this.manualBlock||(this.element=document.createElement("div"),this.element.classList.add("tabulator-print-table"),this.element.appendChild(this.table.modules.export.generateTable(this.table.options.printConfig,this.table.options.printStyled,this.table.options.printRowRange,"print")),this.table.element.style.display="none",this.table.element.parentNode.insertBefore(this.element,this.table.element))}cleanup(){document.body.classList.remove("tabulator-print-fullscreen-hide"),this.element&&this.element.parentNode&&(this.element.parentNode.removeChild(this.element),this.table.element.style.display="")}printFullscreen(a,b,c){var d,e,f=window.scrollX,g=window.scrollY,h=document.createElement("div"),i=document.createElement("div"),j=this.table.modules.export.generateTable(void 0!==c?c:this.table.options.printConfig,void 0!==b?b:this.table.options.printStyled,a||this.table.options.printRowRange,"print");this.manualBlock=!0,this.element=document.createElement("div"),this.element.classList.add("tabulator-print-fullscreen"),this.table.options.printHeader&&(h.classList.add("tabulator-print-header"),"string"==typeof(d="function"==typeof this.table.options.printHeader?this.table.options.printHeader.call(this.table):this.table.options.printHeader)?h.innerHTML=d:h.appendChild(d),this.element.appendChild(h)),this.element.appendChild(j),this.table.options.printFooter&&(i.classList.add("tabulator-print-footer"),"string"==typeof(e="function"==typeof this.table.options.printFooter?this.table.options.printFooter.call(this.table):this.table.options.printFooter)?i.innerHTML=e:i.appendChild(e),this.element.appendChild(i)),document.body.classList.add("tabulator-print-fullscreen-hide"),document.body.appendChild(this.element),this.table.options.printFormatter&&this.table.options.printFormatter(this.element,j),window.print(),this.cleanup(),window.scrollTo(f,g),this.manualBlock=!1}},ReactiveDataModule:class extends p{static moduleName="reactiveData";constructor(a){super(a),this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0,this.registerTableOption("reactiveData",!1)}initialize(){this.table.options.reactiveData&&(this.subscribe("cell-value-save-before",this.block.bind(this,"cellsave")),this.subscribe("cell-value-save-after",this.unblock.bind(this,"cellsave")),this.subscribe("row-data-save-before",this.block.bind(this,"rowsave")),this.subscribe("row-data-save-after",this.unblock.bind(this,"rowsave")),this.subscribe("row-data-init-after",this.watchRow.bind(this)),this.subscribe("data-processing",this.watchData.bind(this)),this.subscribe("table-destroy",this.unwatchData.bind(this)))}watchData(a){var b,c=this;this.currentVersion++,b=this.currentVersion,this.unwatchData(),this.data=a,this.origFuncs.push=a.push,Object.defineProperty(this.data,"push",{enumerable:!1,configurable:!0,value:function(){var d,e=Array.from(arguments);return c.blocked||b!==c.currentVersion||(c.block("data-push"),e.forEach(a=>{c.table.rowManager.addRowActual(a,!1)}),d=c.origFuncs.push.apply(a,arguments),c.unblock("data-push")),d}}),this.origFuncs.unshift=a.unshift,Object.defineProperty(this.data,"unshift",{enumerable:!1,configurable:!0,value:function(){var d,e=Array.from(arguments);return c.blocked||b!==c.currentVersion||(c.block("data-unshift"),e.forEach(a=>{c.table.rowManager.addRowActual(a,!0)}),d=c.origFuncs.unshift.apply(a,arguments),c.unblock("data-unshift")),d}}),this.origFuncs.shift=a.shift,Object.defineProperty(this.data,"shift",{enumerable:!1,configurable:!0,value:function(){var d,e;return c.blocked||b!==c.currentVersion||(c.block("data-shift"),c.data.length&&(d=c.table.rowManager.getRowFromDataObject(c.data[0]))&&d.deleteActual(),e=c.origFuncs.shift.call(a),c.unblock("data-shift")),e}}),this.origFuncs.pop=a.pop,Object.defineProperty(this.data,"pop",{enumerable:!1,configurable:!0,value:function(){var d,e;return c.blocked||b!==c.currentVersion||(c.block("data-pop"),c.data.length&&(d=c.table.rowManager.getRowFromDataObject(c.data[c.data.length-1]))&&d.deleteActual(),e=c.origFuncs.pop.call(a),c.unblock("data-pop")),e}}),this.origFuncs.splice=a.splice,Object.defineProperty(this.data,"splice",{enumerable:!1,configurable:!0,value:function(){var d,e,f=Array.from(arguments),g=f[0]<0?a.length+f[0]:f[0],h=f[1],i=!!f[2]&&f.slice(2);if(!c.blocked&&b===c.currentVersion){if(c.block("data-splice"),i&&((d=!!a[g]&&c.table.rowManager.getRowFromDataObject(a[g]))?i.forEach(a=>{c.table.rowManager.addRowActual(a,!0,d,!0)}):(i=i.slice().reverse()).forEach(a=>{c.table.rowManager.addRowActual(a,!0,!1,!0)})),0!==h){var j=a.slice(g,void 0===f[1]?f[1]:g+h);j.forEach((a,b)=>{var d=c.table.rowManager.getRowFromDataObject(a);d&&d.deleteActual(b!==j.length-1)})}(i||0!==h)&&c.table.rowManager.reRenderInPosition(),e=c.origFuncs.splice.apply(a,arguments),c.unblock("data-splice")}return e}})}unwatchData(){if(!1!==this.data)for(var a in this.origFuncs)Object.defineProperty(this.data,a,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs[a]})}watchRow(a){var b=a.getData();for(var c in b)this.watchKey(a,b,c);this.table.options.dataTree&&this.watchTreeChildren(a)}watchTreeChildren(a){var b=this,c=a.getData()[this.table.options.dataTreeChildField],d={};c&&(d.push=c.push,Object.defineProperty(c,"push",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-push");var e=d.push.apply(c,arguments);this.rebuildTree(a),b.unblock("tree-push")}return e}}),d.unshift=c.unshift,Object.defineProperty(c,"unshift",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-unshift");var e=d.unshift.apply(c,arguments);this.rebuildTree(a),b.unblock("tree-unshift")}return e}}),d.shift=c.shift,Object.defineProperty(c,"shift",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-shift");var e=d.shift.call(c);this.rebuildTree(a),b.unblock("tree-shift")}return e}}),d.pop=c.pop,Object.defineProperty(c,"pop",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-pop");var e=d.pop.call(c);this.rebuildTree(a),b.unblock("tree-pop")}return e}}),d.splice=c.splice,Object.defineProperty(c,"splice",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-splice");var e=d.splice.apply(c,arguments);this.rebuildTree(a),b.unblock("tree-splice")}return e}}))}rebuildTree(a){this.table.modules.dataTree.initializeRow(a),this.table.modules.dataTree.layoutRow(a),this.table.rowManager.refreshActiveData("tree",!1,!0)}watchKey(a,b,c){var d=this,e=Object.getOwnPropertyDescriptor(b,c),f=b[c],g=this.currentVersion;Object.defineProperty(b,c,{set:b=>{if(f=b,!d.blocked&&g===d.currentVersion){d.block("key");var h={};h[c]=b,a.updateData(h),d.unblock("key")}e.set&&e.set(b)},get:()=>(e.get&&e.get(),f)})}unwatchRow(a){var b=a.getData();for(var c in b)Object.defineProperty(b,c,{value:b[c]})}block(a){this.blocked||(this.blocked=a)}unblock(a){this.blocked===a&&(this.blocked=!1)}},ResizeColumnsModule:class extends p{static moduleName="resizeColumns";constructor(a){super(a),this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.latestX=!1,this.handle=null,this.initialNextColumn=null,this.nextColumn=null,this.initialized=!1,this.registerColumnOption("resizable",!0),this.registerTableOption("resizableColumnFit",!1),this.registerTableOption("resizableColumnGuide",!1)}initialize(){this.subscribe("column-rendered",this.layoutColumnHeader.bind(this))}initializeEventWatchers(){this.initialized||(this.subscribe("cell-rendered",this.layoutCellHandles.bind(this)),this.subscribe("cell-delete",this.deInitializeComponent.bind(this)),this.subscribe("cell-height",this.resizeHandle.bind(this)),this.subscribe("column-moved",this.columnLayoutUpdated.bind(this)),this.subscribe("column-hide",this.deInitializeColumn.bind(this)),this.subscribe("column-show",this.columnLayoutUpdated.bind(this)),this.subscribe("column-width",this.columnWidthUpdated.bind(this)),this.subscribe("column-delete",this.deInitializeComponent.bind(this)),this.subscribe("column-height",this.resizeHandle.bind(this)),this.initialized=!0)}layoutCellHandles(a){"row"===a.row.type&&(this.deInitializeComponent(a),this.initializeColumn("cell",a,a.column,a.element))}layoutColumnHeader(a){a.definition.resizable&&(this.initializeEventWatchers(),this.deInitializeComponent(a),this.initializeColumn("header",a,a,a.element))}columnLayoutUpdated(a){var b=a.prevColumn();this.reinitializeColumn(a),b&&this.reinitializeColumn(b)}columnWidthUpdated(a){a.modules.frozen&&(this.table.modules.frozenColumns.leftColumns.includes(a)?this.table.modules.frozenColumns.leftColumns.forEach(a=>{this.reinitializeColumn(a)}):this.table.modules.frozenColumns.rightColumns.includes(a)&&this.table.modules.frozenColumns.rightColumns.forEach(a=>{this.reinitializeColumn(a)}))}frozenColumnOffset(a){var b=!1;return a.modules.frozen&&(b=a.modules.frozen.marginValue,"left"===a.modules.frozen.position?b+=a.getWidth()-3:b&&(b-=3)),!1!==b&&b+"px"}reinitializeColumn(a){var b=this.frozenColumnOffset(a);a.cells.forEach(c=>{c.modules.resize&&c.modules.resize.handleEl&&(b&&(c.modules.resize.handleEl.style[a.modules.frozen.position]=b,c.modules.resize.handleEl.style["z-index"]=11),c.element.after(c.modules.resize.handleEl))}),a.modules.resize&&a.modules.resize.handleEl&&(b&&(a.modules.resize.handleEl.style[a.modules.frozen.position]=b),a.element.after(a.modules.resize.handleEl))}initializeColumn(a,b,c,d){var e=this,f=c.definition.resizable,g={},h=c.getLastColumn();if("header"===a&&(g={variableHeight:"textarea"==c.definition.formatter||c.definition.variableHeight}),(!0===f||f==a)&&this._checkResizability(h)){var i=document.createElement("span");i.className="tabulator-col-resize-handle",i.addEventListener("click",function(a){a.stopPropagation()});var j=function(a){e.startColumn=c,e.initialNextColumn=e.nextColumn=h.nextColumn(),e._mouseDown(a,h,i)};i.addEventListener("mousedown",j),i.addEventListener("touchstart",j,{passive:!0}),i.addEventListener("dblclick",a=>{var b=h.getWidth();a.stopPropagation(),h.reinitializeWidth(!0),b!==h.getWidth()&&(e.dispatch("column-resized",h),e.dispatchExternal("columnResized",h.getComponent()))}),c.modules.frozen&&(i.style.position="sticky",i.style[c.modules.frozen.position]=this.frozenColumnOffset(c)),g.handleEl=i,d.parentNode&&c.visible&&d.after(i)}b.modules.resize=g}deInitializeColumn(a){this.deInitializeComponent(a),a.cells.forEach(a=>{this.deInitializeComponent(a)})}deInitializeComponent(a){var b;a.modules.resize&&(b=a.modules.resize.handleEl)&&b.parentElement&&b.parentElement.removeChild(b)}resizeHandle(a,b){a.modules.resize&&a.modules.resize.handleEl&&(a.modules.resize.handleEl.style.height=b)}resize(a,b){var c,d,e=void 0===a.clientX?a.touches[0].clientX:a.clientX,f=e-this.startX,g=e-this.latestX;if(this.latestX=e,this.table.rtl&&(f=-f,g=-g),c=b.width==b.minWidth||b.width==b.maxWidth,b.setWidth(this.startWidth+f),d=b.width==b.minWidth||b.width==b.maxWidth,g<0&&(this.nextColumn=this.initialNextColumn),this.table.options.resizableColumnFit&&this.nextColumn&&!(c&&d)){let a=this.nextColumn.getWidth();g>0&&a<=this.nextColumn.minWidth&&(this.nextColumn=this.nextColumn.nextColumn()),this.nextColumn&&this.nextColumn.setWidth(this.nextColumn.getWidth()-g)}this.table.columnManager.rerenderColumns(!0),!this.table.browserSlow&&b.modules.resize&&b.modules.resize.variableHeight&&b.checkCellHeights()}calcGuidePosition(a,b,c){var d=void 0===a.clientX?a.touches[0].clientX:a.clientX,e=c.getBoundingClientRect().x-this.table.element.getBoundingClientRect().x,f=this.table.element.getBoundingClientRect().x,g=b.element.getBoundingClientRect().left-f,h=Math.max(e+(d-this.startX),g+b.minWidth);return b.maxWidth&&(h=Math.min(h,g+b.maxWidth)),h}_checkResizability(a){return a.definition.resizable}_mouseDown(a,b,c){var d,e=this;function f(a){e.table.options.resizableColumnGuide?d.style.left=e.calcGuidePosition(a,b,c)+"px":e.resize(a,b)}function g(a){e.table.options.resizableColumnGuide&&(e.resize(a,b),d.remove()),e.startColumn.modules.edit&&(e.startColumn.modules.edit.blocked=!1),e.table.browserSlow&&b.modules.resize&&b.modules.resize.variableHeight&&b.checkCellHeights(),document.body.removeEventListener("mouseup",g),document.body.removeEventListener("mousemove",f),c.removeEventListener("touchmove",f),c.removeEventListener("touchend",g),e.table.element.classList.remove("tabulator-block-select"),e.startWidth!==b.getWidth()&&(e.table.columnManager.verticalAlignHeaders(),e.dispatch("column-resized",b),e.dispatchExternal("columnResized",b.getComponent()))}this.dispatchExternal("columnResizing",b.getComponent()),e.table.options.resizableColumnGuide&&((d=document.createElement("span")).classList.add("tabulator-col-resize-guide"),e.table.element.appendChild(d),setTimeout(()=>{d.style.left=e.calcGuidePosition(a,b,c)+"px"})),e.table.element.classList.add("tabulator-block-select"),a.stopPropagation(),e.startColumn.modules.edit&&(e.startColumn.modules.edit.blocked=!0),e.startX=void 0===a.clientX?a.touches[0].clientX:a.clientX,e.latestX=e.startX,e.startWidth=b.getWidth(),document.body.addEventListener("mousemove",f),document.body.addEventListener("mouseup",g),c.addEventListener("touchmove",f,{passive:!0}),c.addEventListener("touchend",g)}},ResizeRowsModule:class extends p{static moduleName="resizeRows";constructor(a){super(a),this.startColumn=!1,this.startY=!1,this.startHeight=!1,this.handle=null,this.prevHandle=null,this.registerTableOption("resizableRows",!1),this.registerTableOption("resizableRowGuide",!1)}initialize(){this.table.options.resizableRows&&this.subscribe("row-layout-after",this.initializeRow.bind(this))}initializeRow(a){var b=this,c=a.getElement(),d=document.createElement("div");d.className="tabulator-row-resize-handle";var e=document.createElement("div");e.className="tabulator-row-resize-handle prev",d.addEventListener("click",function(a){a.stopPropagation()});var f=function(c){b.startRow=a,b._mouseDown(c,a,d)};d.addEventListener("mousedown",f),d.addEventListener("touchstart",f,{passive:!0}),e.addEventListener("click",function(a){a.stopPropagation()});var g=function(c){var d=b.table.rowManager.prevDisplayRow(a);d&&(b.startRow=d,b._mouseDown(c,d,e))};e.addEventListener("mousedown",g),e.addEventListener("touchstart",g,{passive:!0}),c.appendChild(d),c.appendChild(e)}resize(a,b){b.setHeight(this.startHeight+((void 0===a.screenY?a.touches[0].screenY:a.screenY)-this.startY))}calcGuidePosition(a,b,c){var d=void 0===a.screenY?a.touches[0].screenY:a.screenY,e=c.getBoundingClientRect().y-this.table.element.getBoundingClientRect().y,f=this.table.element.getBoundingClientRect().y,g=b.element.getBoundingClientRect().top-f;return Math.max(e+(d-this.startY),g)}_mouseDown(a,b,c){var d,e=this;function f(a){e.table.options.resizableRowGuide?d.style.top=e.calcGuidePosition(a,b,c)+"px":e.resize(a,b)}function g(a){e.table.options.resizableRowGuide&&(e.resize(a,b),d.remove()),document.body.removeEventListener("mouseup",f),document.body.removeEventListener("mousemove",f),c.removeEventListener("touchmove",f),c.removeEventListener("touchend",g),e.table.element.classList.remove("tabulator-block-select"),e.dispatchExternal("rowResized",b.getComponent())}e.dispatchExternal("rowResizing",b.getComponent()),e.table.options.resizableRowGuide&&((d=document.createElement("span")).classList.add("tabulator-row-resize-guide"),e.table.element.appendChild(d),setTimeout(()=>{d.style.top=e.calcGuidePosition(a,b,c)+"px"})),e.table.element.classList.add("tabulator-block-select"),a.stopPropagation(),e.startY=void 0===a.screenY?a.touches[0].screenY:a.screenY,e.startHeight=b.getHeight(),document.body.addEventListener("mousemove",f),document.body.addEventListener("mouseup",g),c.addEventListener("touchmove",f,{passive:!0}),c.addEventListener("touchend",g)}},ResizeTableModule:class extends p{static moduleName="resizeTable";constructor(a){super(a),this.binding=!1,this.visibilityObserver=!1,this.resizeObserver=!1,this.containerObserver=!1,this.tableHeight=0,this.tableWidth=0,this.containerHeight=0,this.containerWidth=0,this.autoResize=!1,this.visible=!1,this.initialized=!1,this.initialRedraw=!1,this.registerTableOption("autoResize",!0)}initialize(){if(this.table.options.autoResize){var a,b=this.table;this.tableHeight=b.element.clientHeight,this.tableWidth=b.element.clientWidth,b.element.parentNode&&(this.containerHeight=b.element.parentNode.clientHeight,this.containerWidth=b.element.parentNode.clientWidth),"u">typeof IntersectionObserver&&"u">typeof ResizeObserver&&"virtual"===b.rowManager.getRenderMode()?(this.initializeVisibilityObserver(),this.autoResize=!0,this.resizeObserver=new ResizeObserver(a=>{if(!b.browserMobile||b.browserMobile&&(!b.modules.edit||b.modules.edit&&!b.modules.edit.currentCell)){var c=Math.floor(a[0].contentRect.height),d=Math.floor(a[0].contentRect.width);(this.tableHeight!=c||this.tableWidth!=d)&&(this.tableHeight=c,this.tableWidth=d,b.element.parentNode&&(this.containerHeight=b.element.parentNode.clientHeight,this.containerWidth=b.element.parentNode.clientWidth),this.redrawTable())}}),this.resizeObserver.observe(b.element),a=window.getComputedStyle(b.element),this.table.element.parentNode&&!this.table.rowManager.fixedHeight&&(a.getPropertyValue("max-height")||a.getPropertyValue("min-height"))&&(this.containerObserver=new ResizeObserver(a=>{if(!b.browserMobile||b.browserMobile&&(!b.modules.edit||b.modules.edit&&!b.modules.edit.currentCell)){var c=Math.floor(a[0].contentRect.height),d=Math.floor(a[0].contentRect.width);(this.containerHeight!=c||this.containerWidth!=d)&&(this.containerHeight=c,this.containerWidth=d,this.tableHeight=b.element.clientHeight,this.tableWidth=b.element.clientWidth),this.redrawTable()}}),this.containerObserver.observe(this.table.element.parentNode)),this.subscribe("table-resize",this.tableResized.bind(this))):(this.binding=function(){b.browserMobile&&(!b.browserMobile||b.modules.edit&&(!b.modules.edit||b.modules.edit.currentCell))||(b.columnManager.rerenderColumns(!0),b.redraw())},window.addEventListener("resize",this.binding)),this.subscribe("table-destroy",this.clearBindings.bind(this))}}initializeVisibilityObserver(){this.visibilityObserver=new IntersectionObserver(a=>{this.visible=a[a.length-1].isIntersecting,this.initialized?this.visible&&(this.redrawTable(this.initialRedraw),this.initialRedraw=!1):(this.initialized=!0,this.initialRedraw=!this.visible)}),this.visibilityObserver.observe(this.table.element)}redrawTable(a){this.initialized&&this.visible&&(this.table.columnManager.rerenderColumns(!0),this.table.redraw(a))}tableResized(){this.table.rowManager.redraw()}clearBindings(){this.binding&&window.removeEventListener("resize",this.binding),this.resizeObserver&&this.resizeObserver.unobserve(this.table.element),this.visibilityObserver&&this.visibilityObserver.unobserve(this.table.element),this.containerObserver&&this.containerObserver.unobserve(this.table.element.parentNode)}},ResponsiveLayoutModule:class extends p{static moduleName="responsiveLayout";static moduleExtensions=at;constructor(a){super(a),this.columns=[],this.hiddenColumns=[],this.mode="",this.index=0,this.collapseFormatter=[],this.collapseStartOpen=!0,this.collapseHandleColumn=!1,this.registerTableOption("responsiveLayout",!1),this.registerTableOption("responsiveLayoutCollapseStartOpen",!0),this.registerTableOption("responsiveLayoutCollapseUseFormatters",!0),this.registerTableOption("responsiveLayoutCollapseFormatter",!1),this.registerColumnOption("responsive")}initialize(){this.table.options.responsiveLayout&&(this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("column-show",this.updateColumnVisibility.bind(this)),this.subscribe("column-hide",this.updateColumnVisibility.bind(this)),this.subscribe("columns-loaded",this.initializeResponsivity.bind(this)),this.subscribe("column-moved",this.initializeResponsivity.bind(this)),this.subscribe("column-add",this.initializeResponsivity.bind(this)),this.subscribe("column-delete",this.initializeResponsivity.bind(this)),this.subscribe("table-redrawing",this.tableRedraw.bind(this)),"collapse"===this.table.options.responsiveLayout&&(this.subscribe("row-data-changed",this.generateCollapsedRowContent.bind(this)),this.subscribe("row-init",this.initializeRow.bind(this)),this.subscribe("row-layout",this.layoutRow.bind(this))))}tableRedraw(a){-1!==["fitColumns","fitDataStretch"].indexOf(this.layoutMode())||a||this.update()}initializeResponsivity(){var a=[];for(let b of(this.mode=this.table.options.responsiveLayout,this.collapseFormatter=this.table.options.responsiveLayoutCollapseFormatter||this.formatCollapsedData,this.collapseStartOpen=this.table.options.responsiveLayoutCollapseStartOpen,this.hiddenColumns=[],this.collapseFormatter&&(this.collapseFormatter=this.collapseFormatter.bind(this.table)),this.table.columnManager.columnsByIndex.forEach((b,c)=>{b.modules.responsive&&b.modules.responsive.order&&b.modules.responsive.visible&&(b.modules.responsive.index=c,a.push(b),b.visible||"collapse"!==this.mode||this.hiddenColumns.push(b))}),a=(a=a.reverse()).sort((a,b)=>b.modules.responsive.order-a.modules.responsive.order||b.modules.responsive.index-a.modules.responsive.index),this.columns=a,"collapse"===this.mode&&this.generateCollapsedContent(),this.table.columnManager.columnsByIndex))if("responsiveCollapse"==b.definition.formatter){this.collapseHandleColumn=b;break}this.collapseHandleColumn&&(this.hiddenColumns.length?this.collapseHandleColumn.show():this.collapseHandleColumn.hide())}initializeColumn(a){var b=a.getDefinition();a.modules.responsive={order:void 0===b.responsive?1:b.responsive,visible:!1!==b.visible}}initializeRow(a){var b;"calc"!==a.type&&((b=document.createElement("div")).classList.add("tabulator-responsive-collapse"),a.modules.responsiveLayout={element:b,open:this.collapseStartOpen},this.collapseStartOpen||(b.style.display="none"))}layoutRow(a){var b=a.getElement();a.modules.responsiveLayout&&(b.appendChild(a.modules.responsiveLayout.element),this.generateCollapsedRowContent(a))}updateColumnVisibility(a,b){!b&&a.modules.responsive&&(a.modules.responsive.visible=a.visible,this.initializeResponsivity())}hideColumn(a){var b=this.hiddenColumns.length;a.hide(!1,!0),"collapse"===this.mode&&(this.hiddenColumns.unshift(a),this.generateCollapsedContent(),this.collapseHandleColumn&&!b&&this.collapseHandleColumn.show())}showColumn(a){var b;a.show(!1,!0),a.setWidth(a.getWidth()),"collapse"===this.mode&&((b=this.hiddenColumns.indexOf(a))>-1&&this.hiddenColumns.splice(b,1),this.generateCollapsedContent(),this.collapseHandleColumn&&!this.hiddenColumns.length&&this.collapseHandleColumn.hide())}update(){for(var a=!0;a;){let b="fitColumns"==this.table.modules.layout.getMode()?this.table.columnManager.getFlexBaseWidth():this.table.columnManager.getWidth(),c=(this.table.options.headerVisible?this.table.columnManager.element.clientWidth:this.table.element.clientWidth)-b;if(c<0){let b=this.columns[this.index];b?(this.hideColumn(b),this.index++):a=!1}else{let b=this.columns[this.index-1];b&&c>0&&c>=b.getWidth()?(this.showColumn(b),this.index--):a=!1}this.table.rowManager.activeRowsCount||this.table.rowManager.renderEmptyScroll()}}generateCollapsedContent(){this.table.rowManager.getDisplayRows().forEach(a=>{this.generateCollapsedRowContent(a)})}generateCollapsedRowContent(a){var b,c;if(a.modules.responsiveLayout){for(b=a.modules.responsiveLayout.element;b.firstChild;)b.removeChild(b.firstChild);(c=this.collapseFormatter(this.generateCollapsedRowData(a)))&&b.appendChild(c),a.calcHeight(!0)}}generateCollapsedRowData(a){var b,c=a.getData(),d=[];return this.hiddenColumns.forEach(e=>{var f=e.getFieldValue(c);e.definition.title&&e.field&&(e.modules.format&&this.table.options.responsiveLayoutCollapseUseFormatters?(b={value:!1,data:{},getValue:function(){return f},getData:function(){return c},getType:function(){return"cell"},getElement:function(){return document.createElement("div")},getRow:function(){return a.getComponent()},getColumn:function(){return e.getComponent()},getTable:()=>this.table},d.push({field:e.field,title:e.definition.title,value:e.modules.format.formatter.call(this.table.modules.format,b,e.modules.format.params,function(a){a()})})):d.push({field:e.field,title:e.definition.title,value:f}))}),d}formatCollapsedData(a){var b=document.createElement("table");return a.forEach(a=>{var c,d=document.createElement("tr"),e=document.createElement("td"),f=document.createElement("td"),g=document.createElement("strong");e.appendChild(g),this.modules.localize.bind("columns|"+a.field,function(b){g.innerHTML=b||a.title}),a.value instanceof Node?((c=document.createElement("div")).appendChild(a.value),f.appendChild(c)):f.innerHTML=a.value,d.appendChild(e),d.appendChild(f),b.appendChild(d)}),Object.keys(a).length?b:""}},SelectRangeModule:class extends p{static moduleName="selectRange";static moduleInitOrder=1;static moduleExtensions=ax;constructor(a){super(a),this.selecting="cell",this.mousedown=!1,this.ranges=[],this.overlay=null,this.rowHeader=null,this.layoutChangeTimeout=null,this.columnSelection=!1,this.rowSelection=!1,this.maxRanges=0,this.activeRange=!1,this.blockKeydown=!1,this.keyDownEvent=this._handleKeyDown.bind(this),this.mouseUpEvent=this._handleMouseUp.bind(this),this.registerTableOption("selectableRange",!1),this.registerTableOption("selectableRangeColumns",!1),this.registerTableOption("selectableRangeRows",!1),this.registerTableOption("selectableRangeClearCells",!1),this.registerTableOption("selectableRangeClearCellsValue",void 0),this.registerTableOption("selectableRangeAutoFocus",!0),this.registerTableOption("selectableRangeBlurEditOnNavigate",void 0),this.registerTableFunction("getRangesData",this.getRangesData.bind(this)),this.registerTableFunction("getRanges",this.getRanges.bind(this)),this.registerTableFunction("addRange",this.addRangeFromComponent.bind(this)),this.registerComponentFunction("cell","getRanges",this.cellGetRanges.bind(this)),this.registerComponentFunction("row","getRanges",this.rowGetRanges.bind(this)),this.registerComponentFunction("column","getRanges",this.colGetRanges.bind(this))}initialize(){this.options("selectableRange")&&(this.options("selectableRows")?console.warn("SelectRange functionality cannot be used in conjunction with row selection"):(this.maxRanges=this.options("selectableRange"),this.initializeTable(),this.initializeWatchers()),this.options("columns").findIndex(a=>a.frozen)>0&&console.warn("Having frozen column in arbitrary position with selectRange option may result in unpredictable behavior."),this.options("columns").filter(a=>a.frozen)>1&&console.warn("Having multiple frozen columns with selectRange option may result in unpredictable behavior.")),this.subscribe("edit-nav-disabled",()=>!0)}initializeTable(){this.overlay=document.createElement("div"),this.overlay.classList.add("tabulator-range-overlay"),this.rangeContainer=document.createElement("div"),this.rangeContainer.classList.add("tabulator-range-container"),this.activeRangeCellElement=document.createElement("div"),this.activeRangeCellElement.classList.add("tabulator-range-cell-active"),this.overlay.appendChild(this.rangeContainer),this.overlay.appendChild(this.activeRangeCellElement),this.table.rowManager.element.addEventListener("keydown",this.keyDownEvent),this.resetRanges(),this.table.rowManager.element.appendChild(this.overlay),this.table.columnManager.element.setAttribute("tabindex",0),this.table.element.classList.add("tabulator-ranges")}initializeWatchers(){this.columnSelection=this.options("selectableRangeColumns"),this.rowSelection=this.options("selectableRangeRows"),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-mousedown",this.handleColumnMouseDown.bind(this)),this.subscribe("column-mousemove",this.handleColumnMouseMove.bind(this)),this.subscribe("column-resized",this.handleColumnResized.bind(this)),this.subscribe("column-moving",this.handleColumnMoving.bind(this)),this.subscribe("column-moved",this.handleColumnMoved.bind(this)),this.subscribe("column-width",this.layoutChange.bind(this)),this.subscribe("column-height",this.layoutChange.bind(this)),this.subscribe("column-resized",this.layoutChange.bind(this)),this.subscribe("columns-loaded",this.updateHeaderColumn.bind(this)),this.subscribe("cell-height",this.layoutChange.bind(this)),this.subscribe("cell-rendered",this.renderCell.bind(this)),this.subscribe("cell-mousedown",this.handleCellMouseDown.bind(this)),this.subscribe("cell-mousemove",this.handleCellMouseMove.bind(this)),this.subscribe("cell-click",this.handleCellClick.bind(this)),this.subscribe("cell-editing",this.handleEditingCell.bind(this)),this.subscribe("page-changed",this.redraw.bind(this)),this.subscribe("scroll-vertical",this.layoutChange.bind(this)),this.subscribe("scroll-horizontal",this.layoutChange.bind(this)),this.subscribe("data-destroy",this.tableDestroyed.bind(this)),this.subscribe("data-processed",this.resetRanges.bind(this)),this.subscribe("table-layout",this.layoutElement.bind(this)),this.subscribe("table-redraw",this.redraw.bind(this)),this.subscribe("table-destroy",this.tableDestroyed.bind(this)),this.subscribe("edit-editor-clear",this.finishEditingCell.bind(this)),this.subscribe("edit-blur",this.restoreFocus.bind(this)),this.subscribe("keybinding-nav-prev",this.keyNavigate.bind(this,"prev")),this.subscribe("keybinding-nav-next",this.keyNavigate.bind(this,"next")),this.subscribe("keybinding-nav-left",this.keyNavigate.bind(this,"left")),this.subscribe("keybinding-nav-right",this.keyNavigate.bind(this,"right")),this.subscribe("keybinding-nav-up",this.keyNavigate.bind(this,"up")),this.subscribe("keybinding-nav-down",this.keyNavigate.bind(this,"down")),this.subscribe("keybinding-nav-range",this.keyNavigateRange.bind(this))}initializeColumn(a){this.columnSelection&&a.definition.headerSort&&"icon"!==this.options("headerSortClickElement")&&console.warn("Using column headerSort with selectableRangeColumns option may result in unpredictable behavior. Consider using headerSortClickElement: 'icon'.")}updateHeaderColumn(){var a;this.rowSelection&&(this.rowHeader=this.table.columnManager.getVisibleColumnsByIndex()[0],this.rowHeader&&(this.rowHeader.definition.cssClass=this.rowHeader.definition.cssClass+" tabulator-range-row-header",this.rowHeader.definition.headerSort&&console.warn("Using column headerSort with selectableRangeRows option may result in unpredictable behavior"),this.rowHeader.definition.editor&&console.warn("Using column editor with selectableRangeRows option may result in unpredictable behavior"))),this.table.modules.frozenColumns&&this.table.modules.frozenColumns.active&&((a=this.table.modules.frozenColumns.getFrozenColumns()).length>1||1===a.length&&a[0]!==this.rowHeader)&&console.warn("Using frozen columns that are not the range header in combination with the selectRange option may result in unpredictable behavior")}getRanges(){return this.ranges.map(a=>a.getComponent())}getRangesData(){return this.ranges.map(a=>a.getData())}addRangeFromComponent(a,b){return a=a?a._cell:null,b=b?b._cell:null,this.addRange(a,b)}cellGetRanges(a){return(a.column===this.rowHeader?this.ranges.filter(b=>b.occupiesRow(a.row)):this.ranges.filter(b=>b.occupies(a))).map(a=>a.getComponent())}rowGetRanges(a){return this.ranges.filter(b=>b.occupiesRow(a)).map(a=>a.getComponent())}colGetRanges(a){return this.ranges.filter(b=>b.occupiesColumn(a)).map(a=>a.getComponent())}_handleMouseUp(a){this.mousedown=!1,document.removeEventListener("mouseup",this.mouseUpEvent)}_handleKeyDown(a){if(!this.blockKeydown&&(!this.table.modules.edit||this.table.modules.edit&&!this.table.modules.edit.currentCell)){if("Enter"===a.key){if(this.table.modules.edit&&this.table.modules.edit.currentCell)return;this.table.modules.edit.editCell(this.getActiveCell()),a.preventDefault()}("Backspace"===a.key||"Delete"===a.key)&&this.options("selectableRangeClearCells")&&this.activeRange&&this.activeRange.clearValues()}}initializeFocus(a){var b;this.restoreFocus();try{document.selection?((b=document.body.createTextRange()).moveToElementText(a.getElement()),b.select()):window.getSelection&&((b=document.createRange()).selectNode(a.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(b))}catch(a){}}restoreFocus(a){return this.table.rowManager.element.focus(),!0}handleColumnResized(a){"column"!==this.selecting&&"all"!==this.selecting||this.ranges.some(b=>b.occupiesColumn(a))&&this.ranges.forEach(b=>{b.getColumns(!0).forEach(b=>{b!==a&&b.setWidth(a.width)})})}handleColumnMoving(a,b){this.resetRanges().setBounds(b),this.overlay.style.visibility="hidden"}handleColumnMoved(a,b,c){this.activeRange.setBounds(a),this.layoutElement()}handleColumnMouseDown(a,b){2===a.button&&("column"===this.selecting||"all"===this.selecting)&&this.activeRange.occupiesColumn(b)||this.table.options.movableColumns&&"column"===this.selecting&&this.activeRange.occupiesColumn(b)||(this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(a,b))}handleColumnMouseMove(a,b){b!==this.rowHeader&&this.mousedown&&"all"!==this.selecting&&this.activeRange.setBounds(!1,b,!0)}renderCell(a){var b=a.getElement(),c=this.ranges.findIndex(b=>b.occupies(a));b.classList.toggle("tabulator-range-selected",-1!==c),b.classList.toggle("tabulator-range-only-cell-selected",1===this.ranges.length&&this.ranges[0].atTopLeft(a)&&this.ranges[0].atBottomRight(a)),b.dataset.range=c}handleCellMouseDown(a,b){2===a.button&&(this.activeRange.occupies(b)||("row"===this.selecting||"all"===this.selecting)&&this.activeRange.occupiesRow(b.row))||(this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(a,b))}handleCellMouseMove(a,b){this.mousedown&&"all"!==this.selecting&&this.activeRange.setBounds(!1,b,!0)}handleCellClick(a,b){this.initializeFocus(b)}handleEditingCell(a){this.activeRange&&this.activeRange.setBounds(a)}finishEditingCell(){this.blockKeydown=!0,this.table.rowManager.element.focus(),setTimeout(()=>{this.blockKeydown=!1},10)}keyNavigate(a,b){if(this.options("selectableRangeBlurEditOnNavigate")&&this.chain("edit-check-editing"))if("next"!==a&&"prev"!==a)return!1;else this.dispatch("edit-cancel-cell");"prev"===a?a="left":"next"===a&&(a="right"),this.navigate(!1,!1,a)&&b.preventDefault()}keyNavigateRange(a,b,c,d){this.navigate(c,d,b)&&a.preventDefault()}navigate(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(this.table.modules.edit&&this.table.modules.edit.currentCell)return!1;if(this.ranges.length>1&&(this.ranges=this.ranges.filter(a=>a===this.activeRange?(a.setEnd(a.start.row,a.start.col),!0):(a.destroy(),!1))),f={top:(d=this.activeRange).top,bottom:d.bottom,left:d.left,right:d.right},g=(e=b?d.end:d.start).row,h=e.col,a)switch(c){case"left":h=this.findJumpCellLeft(d.start.row,e.col);break;case"right":h=this.findJumpCellRight(d.start.row,e.col);break;case"up":g=this.findJumpCellUp(e.row,d.start.col);break;case"down":g=this.findJumpCellDown(e.row,d.start.col)}else{if(b&&("row"===this.selecting&&("left"===c||"right"===c)||"column"===this.selecting&&("up"===c||"down"===c)))return;switch(c){case"left":h=Math.max(h-1,0);break;case"right":h=Math.min(h+1,this.getTableColumns().length-1);break;case"up":g=Math.max(g-1,0);break;case"down":g=Math.min(g+1,this.getTableRows().length-1)}}return this.rowHeader&&0===h&&(h=1),b||d.setStart(g,h),d.setEnd(g,h),b||(this.selecting="cell"),(f.top!==d.top||f.bottom!==d.bottom||f.left!==d.left||f.right!==d.right)&&(i=this.getRowByRangePos(d.end.row),j=this.getColumnByRangePos(d.end.col),k=i.getElement().getBoundingClientRect(),m=j.getElement().getBoundingClientRect(),l=this.table.rowManager.getElement().getBoundingClientRect(),n=this.table.columnManager.getElement().getBoundingClientRect(),k.top>=l.top&&k.bottom<=l.bottom||(i.getElement().parentNode&&j.getElement().parentNode?this.autoScroll(d,i.getElement(),j.getElement()):i.getComponent().scrollTo(void 0,!1)),m.left>=n.left+this.getRowHeaderWidth()&&m.right<=n.right||(i.getElement().parentNode&&j.getElement().parentNode?this.autoScroll(d,i.getElement(),j.getElement()):j.getComponent().scrollTo(void 0,!1)),this.layoutElement()),!0}rangeRemoved(a){this.ranges=this.ranges.filter(b=>b!==a),this.activeRange===a&&(this.ranges.length?this.activeRange=this.ranges[this.ranges.length-1]:this.addRange()),this.layoutElement(!0)}findJumpRow(a,b,c,d,e){return c&&(b=b.reverse()),this.findJumpItem(d,e,b,function(b){return b.getData()[a.getField()]})}findJumpCol(a,b,c,d,e){return c&&(b=b.reverse()),this.findJumpItem(d,e,b,function(b){return a.getData()[b.getField()]})}findJumpItem(a,b,c,d){var e;for(let f of c){let c=d(f);if(a){if(e=f,c)break}else if(b){if(e=f,c)break}else if(c)e=f;else break}return e}findJumpCellLeft(a,b){var c=this.getRowByRangePos(a),d=this.getTableColumns(),e=this.isEmpty(c.getData()[d[b].getField()]),f=!!d[b-1]&&this.isEmpty(c.getData()[d[b-1].getField()]),g=this.rowHeader?d.slice(1,b):d.slice(0,b),h=this.findJumpCol(c,g,!0,e,f);return h?h.getPosition()-1:b}findJumpCellRight(a,b){var c=this.getRowByRangePos(a),d=this.getTableColumns(),e=this.isEmpty(c.getData()[d[b].getField()]),f=!!d[b+1]&&this.isEmpty(c.getData()[d[b+1].getField()]),g=this.findJumpCol(c,d.slice(b+1,d.length),!1,e,f);return g?g.getPosition()-1:b}findJumpCellUp(a,b){var c=this.getColumnByRangePos(b),d=this.getTableRows(),e=this.isEmpty(d[a].getData()[c.getField()]),f=!!d[a-1]&&this.isEmpty(d[a-1].getData()[c.getField()]),g=this.findJumpRow(c,d.slice(0,a),!0,e,f);return g?g.position-1:a}findJumpCellDown(a,b){var c=this.getColumnByRangePos(b),d=this.getTableRows(),e=this.isEmpty(d[a].getData()[c.getField()]),f=!!d[a+1]&&this.isEmpty(d[a+1].getData()[c.getField()]),g=this.findJumpRow(c,d.slice(a+1,d.length),!1,e,f);return g?g.position-1:a}newSelection(a,b){var c;if("column"===b.type){if(!this.columnSelection)return;if(b===this.rowHeader){c=this.resetRanges(),this.selecting="all";var d,e=this.getCell(-1,-1);d=this.rowHeader?this.getCell(0,1):this.getCell(0,0),c.setBounds(d,e);return}this.selecting="column"}else b.column===this.rowHeader?this.selecting="row":this.selecting="cell";a.shiftKey?this.activeRange.setBounds(!1,b,!0):a.ctrlKey?this.addRange().setBounds(b,void 0,!0):this.resetRanges().setBounds(b,void 0,!0)}autoScroll(a,b,c){var d,e,f,g,h=this.table.rowManager.element;void 0===b&&(b=this.getRowByRangePos(a.end.row).getElement()),void 0===c&&(c=this.getColumnByRangePos(a.end.col).getElement()),d={left:c.offsetLeft,right:c.offsetLeft+c.offsetWidth,top:b.offsetTop,bottom:b.offsetTop+b.offsetHeight},f=(e={left:h.scrollLeft+this.getRowHeaderWidth(),right:Math.ceil(h.scrollLeft+h.clientWidth),top:h.scrollTop,bottom:h.scrollTop+h.offsetHeight-this.table.rowManager.scrollbarWidth}).left<d.left&&d.left<e.right&&e.left<d.right&&d.right<e.right,g=e.top<d.top&&d.top<e.bottom&&e.top<d.bottom&&d.bottom<e.bottom,!f&&(d.left<e.left?h.scrollLeft=d.left-this.getRowHeaderWidth():d.right>e.right&&(h.scrollLeft=Math.min(d.right-h.clientWidth,d.left-this.getRowHeaderWidth()))),!g&&(d.top<e.top?h.scrollTop=d.top:d.bottom>e.bottom&&(h.scrollTop=d.bottom-h.clientHeight))}layoutChange(){this.overlay.style.visibility="hidden",clearTimeout(this.layoutChangeTimeout),this.layoutChangeTimeout=setTimeout(this.layoutRanges.bind(this),200)}redraw(a){a&&(this.selecting="cell",this.resetRanges(),this.layoutElement())}layoutElement(a){(a?this.table.rowManager.getVisibleRows(!0):this.table.rowManager.getRows()).forEach(a=>{"row"===a.type&&(this.layoutRow(a),a.cells.forEach(a=>this.renderCell(a)))}),this.getTableColumns().forEach(a=>{this.layoutColumn(a)}),this.layoutRanges()}layoutRow(a){var b=a.getElement(),c=!1,d=this.ranges.some(b=>b.occupiesRow(a));"row"===this.selecting?c=d:"all"===this.selecting&&(c=!0),b.classList.toggle("tabulator-range-selected",c),b.classList.toggle("tabulator-range-highlight",d)}layoutColumn(a){var b=a.getElement(),c=!1,d=this.ranges.some(b=>b.occupiesColumn(a));"column"===this.selecting?c=d:"all"===this.selecting&&(c=!0),b.classList.toggle("tabulator-range-selected",c),b.classList.toggle("tabulator-range-highlight",d)}layoutRanges(){var a,b,c;!this.table.initialized||(a=this.getActiveCell())&&(b=a.getElement(),c=a.row.getElement(),this.table.rtl?this.activeRangeCellElement.style.right=c.offsetWidth-b.offsetLeft-b.offsetWidth+"px":this.activeRangeCellElement.style.left=c.offsetLeft+b.offsetLeft+"px",this.activeRangeCellElement.style.top=c.offsetTop+"px",this.activeRangeCellElement.style.width=b.offsetWidth+"px",this.activeRangeCellElement.style.height=c.offsetHeight+"px",this.ranges.forEach(a=>a.layout()),this.overlay.style.visibility="visible")}getCell(a,b){var c;return b<0&&(b=this.getTableColumns().length+b)<0?null:(a<0&&(a=this.getTableRows().length+a),(c=this.table.rowManager.getRowFromPosition(a+1))?c.getCells(!1,!0).filter(a=>a.column.visible)[b]:null)}getActiveCell(){return this.getCell(this.activeRange.start.row,this.activeRange.start.col)}getRowByRangePos(a){return this.getTableRows()[a]}getColumnByRangePos(a){return this.getTableColumns()[a]}getTableRows(){return this.table.rowManager.getDisplayRows().filter(a=>"row"===a.type)}getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}addRange(a,b){var c;return!0!==this.maxRanges&&this.ranges.length>=this.maxRanges&&this.ranges.shift().destroy(),c=new aw(this.table,this,a,b),this.activeRange=c,this.ranges.push(c),this.rangeContainer.appendChild(c.element),c}resetRanges(){var a,b;return this.ranges.forEach(a=>a.destroy()),this.ranges=[],a=this.addRange(),this.table.rowManager.activeRows.length&&(b=this.table.rowManager.activeRows[0].cells.filter(a=>a.column.visible)[+!!this.rowHeader])&&(a.setBounds(b),this.options("selectableRangeAutoFocus")&&this.initializeFocus(b)),a}tableDestroyed(){document.removeEventListener("mouseup",this.mouseUpEvent),this.table.rowManager.element.removeEventListener("keydown",this.keyDownEvent)}selectedRows(a){return a?this.activeRange.getRows().map(a=>a.getComponent()):this.activeRange.getRows()}selectedColumns(a){return a?this.activeRange.getColumns().map(a=>a.getComponent()):this.activeRange.getColumns()}getRowHeaderWidth(){return this.rowHeader?this.rowHeader.getElement().offsetWidth:0}isEmpty(a){return null==a||""===a}},SelectRowModule:class extends p{static moduleName="selectRow";static moduleExtensions=au;constructor(a){super(a),this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],this.headerCheckboxElement=null,this.registerTableOption("selectableRows","highlight"),this.registerTableOption("selectableRowsRangeMode","drag"),this.registerTableOption("selectableRowsRollingSelection",!0),this.registerTableOption("selectableRowsPersistence",!0),this.registerTableOption("selectableRowsCheck",function(a,b){return!0}),this.registerTableFunction("selectRow",this.selectRows.bind(this)),this.registerTableFunction("deselectRow",this.deselectRows.bind(this)),this.registerTableFunction("toggleSelectRow",this.toggleRow.bind(this)),this.registerTableFunction("getSelectedRows",this.getSelectedRows.bind(this)),this.registerTableFunction("getSelectedData",this.getSelectedData.bind(this)),this.registerComponentFunction("row","select",this.selectRows.bind(this)),this.registerComponentFunction("row","deselect",this.deselectRows.bind(this)),this.registerComponentFunction("row","toggleSelect",this.toggleRow.bind(this)),this.registerComponentFunction("row","isSelected",this.isRowSelected.bind(this))}initialize(){this.deprecatedOptionsCheck(),"highlight"===this.table.options.selectableRows&&this.table.options.selectableRange&&(this.table.options.selectableRows=!1),!1!==this.table.options.selectableRows&&(this.subscribe("row-init",this.initializeRow.bind(this)),this.subscribe("row-deleting",this.rowDeleted.bind(this)),this.subscribe("rows-wipe",this.clearSelectionData.bind(this)),this.subscribe("rows-retrieve",this.rowRetrieve.bind(this)),this.table.options.selectableRows&&!this.table.options.selectableRowsPersistence&&this.subscribe("data-refreshing",this.deselectRows.bind(this)))}deprecatedOptionsCheck(){}rowRetrieve(a,b){return"selected"===a?this.selectedRows:b}rowDeleted(a){this._deselectRow(a,!0)}clearSelectionData(a){var b=this.selectedRows.length;this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],b&&!0!==a&&this._rowSelectionChanged()}initializeRow(a){var b=this,c=b.checkRowSelectability(a),d=a.getElement(),e=function(){setTimeout(function(){b.selecting=!1},50),document.body.removeEventListener("mouseup",e)};a.modules.select={selected:!1},d.classList.toggle("tabulator-selectable",c),d.classList.toggle("tabulator-unselectable",!c),b.checkRowSelectability(a)&&b.table.options.selectableRows&&"highlight"!=b.table.options.selectableRows&&("click"===b.table.options.selectableRowsRangeMode?d.addEventListener("click",this.handleComplexRowClick.bind(this,a)):(d.addEventListener("click",function(c){b.table.modExists("edit")&&b.table.modules.edit.getCurrentCell()||b.table._clearSelection(),b.selecting||b.toggleRow(a)}),d.addEventListener("mousedown",function(c){if(c.shiftKey)return b.table._clearSelection(),b.selecting=!0,b.selectPrev=[],document.body.addEventListener("mouseup",e),document.body.addEventListener("keyup",e),b.toggleRow(a),!1}),d.addEventListener("mouseenter",function(c){b.selecting&&(b.table._clearSelection(),b.toggleRow(a),b.selectPrev[1]==a&&b.toggleRow(b.selectPrev[0]))}),d.addEventListener("mouseout",function(c){b.selecting&&(b.table._clearSelection(),b.selectPrev.unshift(a))})))}handleComplexRowClick(a,b){if(b.shiftKey){this.table._clearSelection(),this.lastClickedRow=this.lastClickedRow||a;var c=this.table.rowManager.getDisplayRowIndex(this.lastClickedRow),d=this.table.rowManager.getDisplayRowIndex(a),e=c<=d?c:d,f=this.table.rowManager.getDisplayRows().slice(0).splice(e,(c>=d?c:d)-e+1);b.ctrlKey||b.metaKey?(f.forEach(b=>{b!==this.lastClickedRow&&(!0===this.table.options.selectableRows||this.isRowSelected(a)?this.toggleRow(b):this.selectedRows.length<this.table.options.selectableRows&&this.toggleRow(b))}),this.lastClickedRow=a):(this.deselectRows(void 0,!0),!0!==this.table.options.selectableRows&&f.length>this.table.options.selectableRows&&(f=f.slice(0,this.table.options.selectableRows)),this.selectRows(f)),this.table._clearSelection()}else b.ctrlKey||b.metaKey?this.toggleRow(a):(this.deselectRows(void 0,!0),this.selectRows(a)),this.lastClickedRow=a}checkRowSelectability(a){return!!a&&"row"===a.type&&this.table.options.selectableRowsCheck.call(this.table,a.getComponent())}toggleRow(a){this.checkRowSelectability(a)&&(a.modules.select&&a.modules.select.selected?this._deselectRow(a):this._selectRow(a))}selectRows(a){var b,c,d=[];switch(typeof a){case"undefined":b=this.table.rowManager.rows;break;case"number":b=this.table.rowManager.findRow(a);break;case"string":(b=this.table.rowManager.findRow(a))||(b=this.table.rowManager.getRows(a));break;default:b=a}Array.isArray(b)?b.length&&(b.forEach(a=>{(c=this._selectRow(a,!0,!0))&&d.push(c)}),this._rowSelectionChanged(!1,d)):b&&this._selectRow(b,!1,!0)}_selectRow(a,b,c){if(!isNaN(this.table.options.selectableRows)&&!0!==this.table.options.selectableRows&&!c&&this.selectedRows.length>=this.table.options.selectableRows)if(!this.table.options.selectableRowsRollingSelection)return!1;else this._deselectRow(this.selectedRows[0]);var d=this.table.rowManager.findRow(a);if(d){if(-1==this.selectedRows.indexOf(d))return d.getElement().classList.add("tabulator-selected"),d.modules.select||(d.modules.select={}),d.modules.select.selected=!0,d.modules.select.checkboxEl&&(d.modules.select.checkboxEl.checked=!0),this.selectedRows.push(d),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(d,!0),this.dispatchExternal("rowSelected",d.getComponent()),this._rowSelectionChanged(b,d),d}else b||console.warn("Selection Error - No such row found, ignoring selection:"+a)}isRowSelected(a){return -1!==this.selectedRows.indexOf(a)}deselectRows(a,b){var c,d,e=[];switch(typeof a){case"undefined":c=Object.assign([],this.selectedRows);break;case"number":c=this.table.rowManager.findRow(a);break;case"string":(c=this.table.rowManager.findRow(a))||(c=this.table.rowManager.getRows(a));break;default:c=a}Array.isArray(c)?c.length&&(c.forEach(a=>{(d=this._deselectRow(a,!0,!0))&&e.push(d)}),this._rowSelectionChanged(b,[],e)):c&&this._deselectRow(c,b,!0)}_deselectRow(a,b){var c,d,e=this.table.rowManager.findRow(a);if(e){if((c=this.selectedRows.findIndex(function(a){return a==e}))>-1)return(d=e.getElement())&&d.classList.remove("tabulator-selected"),e.modules.select||(e.modules.select={}),e.modules.select.selected=!1,e.modules.select.checkboxEl&&(e.modules.select.checkboxEl.checked=!1),this.selectedRows.splice(c,1),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(e,!1),this.dispatchExternal("rowDeselected",e.getComponent()),this._rowSelectionChanged(b,void 0,e),e}else b||console.warn("Deselection Error - No such row found, ignoring selection:"+a)}getSelectedData(){var a=[];return this.selectedRows.forEach(function(b){a.push(b.getData())}),a}getSelectedRows(){var a=[];return this.selectedRows.forEach(function(b){a.push(b.getComponent())}),a}_rowSelectionChanged(a,b=[],c=[]){this.headerCheckboxElement&&(0===this.selectedRows.length?(this.headerCheckboxElement.checked=!1,this.headerCheckboxElement.indeterminate=!1):this.table.rowManager.rows.length===this.selectedRows.length?(this.headerCheckboxElement.checked=!0,this.headerCheckboxElement.indeterminate=!1):(this.headerCheckboxElement.indeterminate=!0,this.headerCheckboxElement.checked=!1)),a||(Array.isArray(b)||(b=[b]),b=b.map(a=>a.getComponent()),Array.isArray(c)||(c=[c]),c=c.map(a=>a.getComponent()),this.dispatchExternal("rowSelectionChanged",this.getSelectedData(),this.getSelectedRows(),b,c))}registerRowSelectCheckbox(a,b){a._row.modules.select||(a._row.modules.select={}),a._row.modules.select.checkboxEl=b}registerHeaderSelectCheckbox(a){this.headerCheckboxElement=a}childRowSelection(a,b){var c=this.table.modules.dataTree.getChildren(a,!0,!0);if(b)for(let a of c)this._selectRow(a,!0);else for(let a of c)this._deselectRow(a,!0)}},SortModule:aA,SpreadsheetModule:class extends p{static moduleName="spreadsheet";constructor(a){super(a),this.sheets=[],this.element=null,this.registerTableOption("spreadsheet",!1),this.registerTableOption("spreadsheetRows",50),this.registerTableOption("spreadsheetColumns",50),this.registerTableOption("spreadsheetColumnDefinition",{}),this.registerTableOption("spreadsheetOutputFull",!1),this.registerTableOption("spreadsheetData",!1),this.registerTableOption("spreadsheetSheets",!1),this.registerTableOption("spreadsheetSheetTabs",!1),this.registerTableOption("spreadsheetSheetTabsElement",!1),this.registerTableFunction("setSheets",this.setSheets.bind(this)),this.registerTableFunction("addSheet",this.addSheet.bind(this)),this.registerTableFunction("getSheets",this.getSheets.bind(this)),this.registerTableFunction("getSheetDefinitions",this.getSheetDefinitions.bind(this)),this.registerTableFunction("setSheetData",this.setSheetData.bind(this)),this.registerTableFunction("getSheet",this.getSheet.bind(this)),this.registerTableFunction("getSheetData",this.getSheetData.bind(this)),this.registerTableFunction("clearSheet",this.clearSheet.bind(this)),this.registerTableFunction("removeSheet",this.removeSheetFunc.bind(this)),this.registerTableFunction("activeSheet",this.activeSheetFunc.bind(this))}initialize(){this.options("spreadsheet")&&(this.subscribe("table-initialized",this.tableInitialized.bind(this)),this.subscribe("data-loaded",this.loadRemoteData.bind(this)),this.table.options.index="_id",this.options("spreadsheetData")&&this.options("spreadsheetSheets")&&(console.warn("You cannot use spreadsheetData and spreadsheetSheets at the same time, ignoring spreadsheetData"),this.table.options.spreadsheetData=!1),this.compatibilityCheck(),this.options("spreadsheetSheetTabs")&&this.initializeTabset())}compatibilityCheck(){this.options("data")&&console.warn("Do not use the data option when working with spreadsheets, use either spreadsheetData or spreadsheetSheets to pass data into the table"),this.options("pagination")&&console.warn("The spreadsheet module is not compatible with the pagination module"),this.options("groupBy")&&console.warn("The spreadsheet module is not compatible with the row grouping module"),this.options("responsiveCollapse")&&console.warn("The spreadsheet module is not compatible with the responsive collapse module")}initializeTabset(){this.element=document.createElement("div"),this.element.classList.add("tabulator-spreadsheet-tabs");var a=this.options("spreadsheetSheetTabsElement");a&&!(a instanceof HTMLElement)&&((a=document.querySelector(a))||console.warn("Unable to find element matching spreadsheetSheetTabsElement selector:",this.options("spreadsheetSheetTabsElement"))),a?a.appendChild(this.element):this.footerAppend(this.element)}tableInitialized(){this.sheets.length?this.loadSheet(this.sheets[0]):this.options("spreadsheetSheets")?this.loadSheets(this.options("spreadsheetSheets")):this.options("spreadsheetData")&&this.loadData(this.options("spreadsheetData"))}loadRemoteData(a,b,c){return console.log("data",a,b,c),Array.isArray(a)?(this.table.dataLoader.clearAlert(),this.dispatchExternal("dataLoaded",a),!a.length||Array.isArray(a[0])?this.loadData(a):this.loadSheets(a)):console.error("Spreadsheet Loading Error - Unable to process remote data due to invalid data type \nExpecting: array \nReceived: ",typeof a,"\nData: ",a),!1}loadData(a){this.loadSheet(this.newSheet({data:a}))}destroySheets(){this.sheets.forEach(a=>{a.destroy()}),this.sheets=[],this.activeSheet=null}loadSheets(a){Array.isArray(a)||(a=[]),this.destroySheets(),a.forEach(a=>{this.newSheet(a)}),this.loadSheet(this.sheets[0])}loadSheet(a){this.activeSheet!==a&&(this.activeSheet&&this.activeSheet.unload(),this.activeSheet=a,a.load())}newSheet(a={}){var b;return a.rows||(a.rows=this.options("spreadsheetRows")),a.columns||(a.columns=this.options("spreadsheetColumns")),b=new aD(this,a),this.sheets.push(b),this.element&&this.element.appendChild(b.element),b}removeSheet(a){var b,c=this.sheets.indexOf(a);this.sheets.length>1?c>-1&&(this.sheets.splice(c,1),a.destroy(),this.activeSheet===a&&((b=this.sheets[c-1]||this.sheets[0])?this.loadSheet(b):this.activeSheet=null)):console.warn("Unable to remove sheet, at least one sheet must be active")}lookupSheet(a){return a?a instanceof aD?a:a instanceof aC?a._sheet:this.sheets.find(b=>b.key===a)||!1:this.activeSheet}setSheets(a){return this.loadSheets(a),this.getSheets()}addSheet(a){return this.newSheet(a).getComponent()}getSheetDefinitions(){return this.sheets.map(a=>a.getDefinition())}getSheets(){return this.sheets.map(a=>a.getComponent())}getSheet(a){var b=this.lookupSheet(a);return!!b&&b.getComponent()}setSheetData(a,b){a&&!b&&(b=a,a=!1);var c=this.lookupSheet(a);return!!c&&c.setData(b)}getSheetData(a){var b=this.lookupSheet(a);return!!b&&b.getData()}clearSheet(a){var b=this.lookupSheet(a);return!!b&&b.clear()}removeSheetFunc(a){var b=this.lookupSheet(a);b&&this.removeSheet(b)}activeSheetFunc(a){var b=this.lookupSheet(a);return!!b&&this.loadSheet(b)}},TooltipModule:class extends p{static moduleName="tooltip";constructor(a){super(a),this.tooltipSubscriber=null,this.headerSubscriber=null,this.timeout=null,this.popupInstance=null,this.registerTableOption("tooltipDelay",300),this.registerColumnOption("tooltip"),this.registerColumnOption("headerTooltip")}initialize(){this.deprecatedOptionsCheck(),this.subscribe("column-init",this.initializeColumn.bind(this))}deprecatedOptionsCheck(){}initializeColumn(a){a.definition.headerTooltip&&!this.headerSubscriber&&(this.headerSubscriber=!0,this.subscribe("column-mousemove",this.mousemoveCheck.bind(this,"headerTooltip")),this.subscribe("column-mouseout",this.mouseoutCheck.bind(this,"headerTooltip"))),a.definition.tooltip&&!this.tooltipSubscriber&&(this.tooltipSubscriber=!0,this.subscribe("cell-mousemove",this.mousemoveCheck.bind(this,"tooltip")),this.subscribe("cell-mouseout",this.mouseoutCheck.bind(this,"tooltip")))}mousemoveCheck(a,b,c){var d="tooltip"===a?c.column.definition.tooltip:c.definition.headerTooltip;d&&(this.clearPopup(),this.timeout=setTimeout(this.loadTooltip.bind(this,b,c,d),this.table.options.tooltipDelay))}mouseoutCheck(a,b,c){this.popupInstance||this.clearPopup()}clearPopup(a,b,c){clearTimeout(this.timeout),this.timeout=null,this.popupInstance&&this.popupInstance.hide()}loadTooltip(a,b,c){var d,e,f;"function"==typeof c&&(c=c(a,b.getComponent(),function(a){e=a})),c instanceof HTMLElement?d=c:(d=document.createElement("div"),!0===c&&(b instanceof D?c=b.value:b.definition.field?this.langBind("columns|"+b.definition.field,a=>{d.innerHTML=c=a||b.definition.title}):c=b.definition.title),d.innerHTML=c),(c||0===c||!1===c)&&(d.classList.add("tabulator-tooltip"),d.addEventListener("mousemove",a=>a.preventDefault()),this.popupInstance=this.popup(d),"function"==typeof e&&this.popupInstance.renderCallback(e),f=this.popupInstance.containerEventCoords(a),this.popupInstance.show(f.x+15,f.y+15).hideOnBlur(()=>{this.dispatchExternal("TooltipClosed",b.getComponent()),this.popupInstance=null}),this.dispatchExternal("TooltipOpened",b.getComponent()))}},ValidateModule:aF}),aH={debugEventsExternal:!1,debugEventsInternal:!1,debugInvalidOptions:!0,debugInvalidComponentFuncs:!0,debugInitialization:!0,debugDeprecation:!0,height:!1,minHeight:!1,maxHeight:!1,columnHeaderVertAlign:"top",popupContainer:!1,columns:[],columnDefaults:{},rowHeader:!1,data:!1,autoColumns:!1,autoColumnsDefinitions:!1,nestedFieldSeparator:".",footerElement:!1,index:"id",textDirection:"auto",addRowPos:"bottom",headerVisible:!0,renderVertical:"virtual",renderHorizontal:"basic",renderVerticalBuffer:0,scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,rowHeight:null,placeholder:!1,dataLoader:!0,dataLoaderLoading:!1,dataLoaderError:!1,dataLoaderErrorTimeout:3e3,dataSendParams:{},dataReceiveParams:{},dependencies:{}};class aI{constructor(a,b,c={}){this.table=a,this.msgType=b,this.registeredDefaults=Object.assign({},c)}register(a,b){this.registeredDefaults[a]=b}generate(a,b={}){var c=Object.assign({},this.registeredDefaults),d=this.table.options.debugInvalidOptions||!0===b.debugInvalidOptions;for(let e in Object.assign(c,a),b)c.hasOwnProperty(e)||(d&&console.warn("Invalid "+this.msgType+" option:",e),c[e]=b.key);for(let a in c)a in b?c[a]=b[a]:Array.isArray(c[a])?c[a]=Object.assign([],c[a]):"object"==typeof c[a]&&null!==c[a]?c[a]=Object.assign({},c[a]):void 0===c[a]&&delete c[a];return c}}class aJ extends m{constructor(a){super(a),this.elementVertical=a.rowManager.element,this.elementHorizontal=a.columnManager.element,this.tableElement=a.rowManager.tableElement,this.verticalFillMode="fit"}initialize(){}clearRows(){}clearColumns(){}reinitializeColumnWidths(a){}renderRows(){}renderColumns(){}rerenderRows(a){a&&a()}rerenderColumns(a,b){}renderRowCells(a){}rerenderRowCells(a,b){}scrollColumns(a,b){}scrollRows(a,b){}resize(){}scrollToRow(a){}scrollToRowNearestTop(a){}visibleRows(a){return[]}rows(){return this.table.rowManager.getDisplayRows()}styleRow(a,b){var c=a.getElement();b%2?(c.classList.add("tabulator-row-even"),c.classList.remove("tabulator-row-odd")):(c.classList.add("tabulator-row-odd"),c.classList.remove("tabulator-row-even"))}clear(){this.clearRows(),this.clearColumns()}render(){this.renderRows(),this.renderColumns()}rerender(a){this.rerenderRows(),this.rerenderColumns()}scrollToRowPosition(a,b,c){var d=this.rows().indexOf(a),e=a.getElement(),f=0;return new Promise((g,h)=>{if(d>-1){if(void 0===c&&(c=this.table.options.scrollToRowIfVisible),!c&&n.elVisible(e)&&(f=n.elOffset(e).top-n.elOffset(this.elementVertical).top)>0&&f<this.elementVertical.clientHeight-e.offsetHeight)return g(),!1;switch(void 0===b&&(b=this.table.options.scrollToRowPosition),"nearest"===b&&(b=this.scrollToRowNearestTop(a)?"top":"bottom"),this.scrollToRow(a),b){case"middle":case"center":this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight?this.elementVertical.scrollTop=this.elementVertical.scrollTop+(e.offsetTop-this.elementVertical.scrollTop)-(this.elementVertical.scrollHeight-e.offsetTop)/2:this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight/2;break;case"bottom":this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight?this.elementVertical.scrollTop=this.elementVertical.scrollTop-(this.elementVertical.scrollHeight-e.offsetTop)+e.offsetHeight:this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight+e.offsetHeight;break;case"top":this.elementVertical.scrollTop=e.offsetTop}g()}else console.warn("Scroll Error - Row not visible"),h("Scroll Error - Row not visible")})}}class aK extends aJ{constructor(a){super(a)}renderRowCells(a,b){let c=document.createDocumentFragment();a.cells.forEach(a=>{c.appendChild(a.getElement())}),a.element.appendChild(c),b||a.cells.forEach(a=>{a.cellRendered()})}reinitializeColumnWidths(a){a.forEach(function(a){a.reinitializeWidth()})}}class aL extends aJ{constructor(a){super(a),this.leftCol=0,this.rightCol=0,this.scrollLeft=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0,this.fitDataColAvg=0,this.windowBuffer=200,this.visibleRows=null,this.initialized=!1,this.isFitData=!1,this.columns=[]}initialize(){this.compatibilityCheck(),this.layoutCheck(),this.vertScrollListen()}compatibilityCheck(){"fitDataTable"==this.options("layout")&&console.warn("Horizontal Virtual DOM is not compatible with fitDataTable layout mode"),this.options("responsiveLayout")&&console.warn("Horizontal Virtual DOM is not compatible with responsive columns"),this.options("rtl")&&console.warn("Horizontal Virtual DOM is not currently compatible with RTL text direction")}layoutCheck(){this.isFitData=this.options("layout").startsWith("fitData")}vertScrollListen(){this.subscribe("scroll-vertical",this.clearVisRowCache.bind(this)),this.subscribe("data-refreshed",this.clearVisRowCache.bind(this))}clearVisRowCache(){this.visibleRows=null}renderColumns(a,b){this.dataChange()}scrollColumns(a,b){this.scrollLeft!=a&&(this.scrollLeft=a,this.scroll(a-(this.vDomScrollPosLeft+this.windowBuffer)))}calcWindowBuffer(){var a=this.elementVertical.clientWidth;this.table.columnManager.columnsByIndex.forEach(b=>{if(b.visible){var c=b.getWidth();c>a&&(a=c)}}),this.windowBuffer=2*a}rerenderColumns(a,b){var c={cols:this.columns,leftCol:this.leftCol,rightCol:this.rightCol},d=0;(!a||this.initialized)&&(this.clear(),this.calcWindowBuffer(),this.scrollLeft=this.elementVertical.scrollLeft,this.vDomScrollPosLeft=this.scrollLeft-this.windowBuffer,this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,this.table.columnManager.columnsByIndex.forEach(a=>{var b,c={};a.visible&&!a.modules.frozen&&(b=a.getWidth(),c.leftPos=d,c.rightPos=d+b,c.width=b,this.isFitData&&(c.fitDataCheck=!a.modules.vdomHoz||a.modules.vdomHoz.fitDataCheck),d+b>this.vDomScrollPosLeft&&d<this.vDomScrollPosRight?(-1==this.leftCol&&(this.leftCol=this.columns.length,this.vDomPadLeft=d),this.rightCol=this.columns.length):-1!==this.leftCol&&(this.vDomPadRight+=b),this.columns.push(a),a.modules.vdomHoz=c,d+=b)}),this.tableElement.style.paddingLeft=this.vDomPadLeft+"px",this.tableElement.style.paddingRight=this.vDomPadRight+"px",this.initialized=!0,!b&&(!a||this.reinitChanged(c))&&this.reinitializeRows(),this.elementVertical.scrollLeft=this.scrollLeft)}renderRowCells(a){if(this.initialized)this.initializeRow(a);else{let b=document.createDocumentFragment();a.cells.forEach(a=>{b.appendChild(a.getElement())}),a.element.appendChild(b),a.cells.forEach(a=>{a.cellRendered()})}}rerenderRowCells(a,b){this.reinitializeRow(a,b)}reinitializeColumnWidths(a){for(let a=this.leftCol;a<=this.rightCol;a++){let b=this.columns[a];b&&b.reinitializeWidth()}}deinitialize(){this.initialized=!1}clear(){this.columns=[],this.leftCol=-1,this.rightCol=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0}dataChange(){var a,b,c=!1;if(this.isFitData){if(this.table.columnManager.columnsByIndex.forEach(a=>{!a.definition.width&&a.visible&&(c=!0)}),c&&this.table.rowManager.getDisplayRows().length&&(this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,a=this.chain("rows-sample",[1],[],()=>this.table.rowManager.getDisplayRows())[0])){b=a.getElement(),a.generateCells(),this.tableElement.appendChild(b);for(let c=0;c<a.cells.length;c++){let d=a.cells[c];b.appendChild(d.getElement()),d.column.reinitializeWidth()}b.parentNode.removeChild(b),this.rerenderColumns(!1,!0)}}else"fitColumns"===this.options("layout")&&(this.layoutRefresh(),this.rerenderColumns(!1,!0))}reinitChanged(a){var b=!0;return a.cols.length!==this.columns.length||a.leftCol!==this.leftCol||a.rightCol!==this.rightCol||(a.cols.forEach((a,c)=>{a!==this.columns[c]&&(b=!1)}),!b)}reinitializeRows(){var a=this.getVisibleRows(),b=this.table.rowManager.getRows().filter(b=>!a.includes(b));a.forEach(a=>{this.reinitializeRow(a,!0)}),b.forEach(a=>{a.deinitialize()})}getVisibleRows(){return this.visibleRows||(this.visibleRows=this.table.rowManager.getVisibleRows()),this.visibleRows}scroll(a){this.vDomScrollPosLeft+=a,this.vDomScrollPosRight+=a,Math.abs(a)>this.windowBuffer/2?this.rerenderColumns():a>0?(this.addColRight(),this.removeColLeft()):(this.addColLeft(),this.removeColRight())}colPositionAdjust(a,b,c){for(let d=a;d<b;d++){let a=this.columns[d];a.modules.vdomHoz.leftPos+=c,a.modules.vdomHoz.rightPos+=c}}addColRight(){for(var a=!1,b=!0;b;){let c=this.columns[this.rightCol+1];c&&c.modules.vdomHoz.leftPos<=this.vDomScrollPosRight?(a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);a.getElement().insertBefore(b.getElement(),a.getCell(this.columns[this.rightCol]).getElement().nextSibling),b.cellRendered()}}),this.fitDataColActualWidthCheck(c),this.rightCol++,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.rightCol=this.rightCol)}),this.rightCol>=this.columns.length-1?this.vDomPadRight=0:this.vDomPadRight-=c.getWidth()):b=!1}a&&(this.tableElement.style.paddingRight=this.vDomPadRight+"px")}addColLeft(){for(var a=!1,b=!0;b;){let c=this.columns[this.leftCol-1];if(c)if(c.modules.vdomHoz.rightPos>=this.vDomScrollPosLeft){a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);a.getElement().insertBefore(b.getElement(),a.getCell(this.columns[this.leftCol]).getElement()),b.cellRendered()}}),this.leftCol--,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.leftCol=this.leftCol)}),this.leftCol<=0?this.vDomPadLeft=0:this.vDomPadLeft-=c.getWidth();let b=this.fitDataColActualWidthCheck(c);b&&(this.scrollLeft=this.elementVertical.scrollLeft=this.elementVertical.scrollLeft+b,this.vDomPadRight-=b)}else b=!1;else b=!1}a&&(this.tableElement.style.paddingLeft=this.vDomPadLeft+"px")}removeColRight(){for(var a=!1,b=!0;b;){let c=this.columns[this.rightCol];c&&c.modules.vdomHoz.leftPos>this.vDomScrollPosRight?(a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);try{a.getElement().removeChild(b.getElement())}catch(a){console.warn("Could not removeColRight",a.message)}}}),this.vDomPadRight+=c.getWidth(),this.rightCol--,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.rightCol=this.rightCol)})):b=!1}a&&(this.tableElement.style.paddingRight=this.vDomPadRight+"px")}removeColLeft(){for(var a=!1,b=!0;b;){let c=this.columns[this.leftCol];c&&c.modules.vdomHoz.rightPos<this.vDomScrollPosLeft?(a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);try{a.getElement().removeChild(b.getElement())}catch(a){console.warn("Could not removeColLeft",a.message)}}}),this.vDomPadLeft+=c.getWidth(),this.leftCol++,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.leftCol=this.leftCol)})):b=!1}a&&(this.tableElement.style.paddingLeft=this.vDomPadLeft+"px")}fitDataColActualWidthCheck(a){var b,c;return a.modules.vdomHoz.fitDataCheck&&(a.reinitializeWidth(),(c=(b=a.getWidth())-a.modules.vdomHoz.width)&&(a.modules.vdomHoz.rightPos+=c,a.modules.vdomHoz.width=b,this.colPositionAdjust(this.columns.indexOf(a)+1,this.columns.length,c)),a.modules.vdomHoz.fitDataCheck=!1),c}initializeRow(a){if("group"!==a.type){a.modules.vdomHoz={leftCol:this.leftCol,rightCol:this.rightCol},this.table.modules.frozenColumns&&this.table.modules.frozenColumns.leftColumns.forEach(b=>{this.appendCell(a,b)});for(let b=this.leftCol;b<=this.rightCol;b++)this.appendCell(a,this.columns[b]);this.table.modules.frozenColumns&&this.table.modules.frozenColumns.rightColumns.forEach(b=>{this.appendCell(a,b)})}}appendCell(a,b){if(b&&b.visible){let c=a.getCell(b);a.getElement().appendChild(c.getElement()),c.cellRendered()}}reinitializeRow(a,b){if("group"!==a.type&&(b||!a.modules.vdomHoz||a.modules.vdomHoz.leftCol!==this.leftCol||a.modules.vdomHoz.rightCol!==this.rightCol)){for(var c=a.getElement();c.firstChild;)c.removeChild(c.firstChild);this.initializeRow(a)}}}class aM extends m{constructor(a){super(a),this.blockHozScrollEvent=!1,this.headersElement=null,this.contentsElement=null,this.rowHeader=null,this.element=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.optionsList=new aI(this.table,"column definition",F),this.redrawBlock=!1,this.redrawBlockUpdate=null,this.renderer=null}initialize(){this.initializeRenderer(),this.headersElement=this.createHeadersElement(),this.contentsElement=this.createHeaderContentsElement(),this.element=this.createHeaderElement(),this.contentsElement.insertBefore(this.headersElement,this.contentsElement.firstChild),this.element.insertBefore(this.contentsElement,this.element.firstChild),this.initializeScrollWheelWatcher(),this.subscribe("scroll-horizontal",this.scrollHorizontal.bind(this)),this.subscribe("scrollbar-vertical",this.padVerticalScrollbar.bind(this))}padVerticalScrollbar(a){this.table.rtl?this.headersElement.style.marginLeft=a+"px":this.headersElement.style.marginRight=a+"px"}initializeRenderer(){var a;(a="string"==typeof this.table.options.renderHorizontal?({virtual:aL,basic:aK})[this.table.options.renderHorizontal]:this.table.options.renderHorizontal)?(this.renderer=new a(this.table,this.element,this.tableElement),this.renderer.initialize()):console.error("Unable to find matching renderer:",this.table.options.renderHorizontal)}createHeadersElement(){var a=document.createElement("div");return a.classList.add("tabulator-headers"),a.setAttribute("role","row"),a}createHeaderContentsElement(){var a=document.createElement("div");return a.classList.add("tabulator-header-contents"),a}createHeaderElement(){var a=document.createElement("div");return a.classList.add("tabulator-header"),a.setAttribute("role","rowgroup"),this.table.options.headerVisible||a.classList.add("tabulator-header-hidden"),a}getElement(){return this.element}getContentsElement(){return this.contentsElement}getHeadersElement(){return this.headersElement}scrollHorizontal(a){this.contentsElement.scrollLeft=a,this.scrollLeft=a,this.renderer.scrollColumns(a)}initializeScrollWheelWatcher(){this.contentsElement.addEventListener("wheel",a=>{var b;a.deltaX&&(b=this.contentsElement.scrollLeft+a.deltaX,this.table.rowManager.scrollHorizontal(b),this.table.columnManager.scrollHorizontal(b))})}generateColumnsFromRowData(a){var b=[],c={},d="full"===this.table.options.autoColumns?a:[a[0]],e=this.table.options.autoColumnsDefinitions;if(a&&a.length){if(d.forEach(a=>{Object.keys(a).forEach((d,e)=>{let f=a[d],g;c[d]?!0!==c[d]&&void 0!==f&&(c[d].sorter=this.calculateSorterFromValue(f),c[d]=!0):(g={field:d,title:d,sorter:this.calculateSorterFromValue(f)},b.splice(e,0,g),c[d]=void 0!==f||g)})}),e)switch(typeof e){case"function":this.table.options.columns=e.call(this.table,b);break;case"object":Array.isArray(e)?b.forEach(a=>{var b=e.find(b=>b.field===a.field);b&&Object.assign(a,b)}):b.forEach(a=>{e[a.field]&&Object.assign(a,e[a.field])}),this.table.options.columns=b}else this.table.options.columns=b;this.setColumns(this.table.options.columns)}}calculateSorterFromValue(a){var b;switch(typeof a){case"undefined":b="string";break;case"boolean":b="boolean";break;case"number":b="number";break;case"object":b=Array.isArray(a)?"array":"string";break;default:b=isNaN(a)||""===a?a.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)?"alphanum":"string":"number"}return b}setColumns(a,b){for(;this.headersElement.firstChild;)this.headersElement.removeChild(this.headersElement.firstChild);this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.dispatch("columns-loading"),this.dispatchExternal("columnsLoading"),this.table.options.rowHeader&&(this.rowHeader=new G(!0===this.table.options.rowHeader?{}:this.table.options.rowHeader,this,!0),this.columns.push(this.rowHeader),this.headersElement.appendChild(this.rowHeader.getElement()),this.rowHeader.columnRendered()),a.forEach((a,b)=>{this._addColumn(a)}),this._reIndexColumns(),this.dispatch("columns-loaded"),this.subscribedExternal("columnsLoaded")&&this.dispatchExternal("columnsLoaded",this.getComponents()),this.rerenderColumns(!1,!0),this.redraw(!0)}_addColumn(a,b,c){var d=new G(a,this),e=d.getElement(),f=c?this.findColumnIndex(c):c;if(b&&this.rowHeader&&(!c||c===this.rowHeader)&&(b=!1,c=this.rowHeader,f=0),c&&f>-1){var g=c.getTopColumn(),h=this.columns.indexOf(g),i=g.getElement();b?(this.columns.splice(h,0,d),i.parentNode.insertBefore(e,i)):(this.columns.splice(h+1,0,d),i.parentNode.insertBefore(e,i.nextSibling))}else b?(this.columns.unshift(d),this.headersElement.insertBefore(d.getElement(),this.headersElement.firstChild)):(this.columns.push(d),this.headersElement.appendChild(d.getElement()));return d.columnRendered(),d}registerColumnField(a){a.definition.field&&(this.columnsByField[a.definition.field]=a)}registerColumnPosition(a){this.columnsByIndex.push(a)}_reIndexColumns(){this.columnsByIndex=[],this.columns.forEach(function(a){a.reRegisterPosition()})}verticalAlignHeaders(){var a=0;this.redrawBlock||(this.headersElement.style.height="",this.columns.forEach(a=>{a.clearVerticalAlign()}),this.columns.forEach(b=>{var c=b.getHeight();c>a&&(a=c)}),this.headersElement.style.height=a+"px",this.columns.forEach(b=>{b.verticalAlign(this.table.options.columnHeaderVertAlign,a)}),this.table.rowManager.adjustTableSize())}findColumn(a){var b;return"object"!=typeof a?this.columnsByField[a]||!1:a instanceof G?a:a instanceof E?a._getSelf()||!1:!!("u">typeof HTMLElement&&a instanceof HTMLElement)&&(b=[],this.columns.forEach(a=>{b.push(a),b=b.concat(a.getColumns(!0))}),b.find(b=>b.element===a)||!1)}getColumnByField(a){return this.columnsByField[a]}getColumnsByFieldRoot(a){var b=[];return Object.keys(this.columnsByField).forEach(c=>{(this.table.options.nestedFieldSeparator?c.split(this.table.options.nestedFieldSeparator)[0]:c)===a&&b.push(this.columnsByField[c])}),b}getColumnByIndex(a){return this.columnsByIndex[a]}getFirstVisibleColumn(){var a=this.columnsByIndex.findIndex(a=>a.visible);return a>-1&&this.columnsByIndex[a]}getVisibleColumnsByIndex(){return this.columnsByIndex.filter(a=>a.visible)}getColumns(){return this.columns}findColumnIndex(a){return this.columnsByIndex.findIndex(b=>a===b)}getRealColumns(){return this.columnsByIndex}traverse(a){this.columnsByIndex.forEach((b,c)=>{a(b,c)})}getDefinitions(a){var b=[];return this.columnsByIndex.forEach(c=>{(!a||a&&c.visible)&&b.push(c.getDefinition())}),b}getDefinitionTree(){var a=[];return this.columns.forEach(b=>{a.push(b.getDefinition(!0))}),a}getComponents(a){var b=[];return(a?this.columns:this.columnsByIndex).forEach(a=>{b.push(a.getComponent())}),b}getWidth(){var a=0;return this.columnsByIndex.forEach(b=>{b.visible&&(a+=b.getWidth())}),a}moveColumn(a,b,c){b.element.parentNode.insertBefore(a.element,b.element),c&&b.element.parentNode.insertBefore(b.element,a.element),this.moveColumnActual(a,b,c),this.verticalAlignHeaders(),this.table.rowManager.reinitialize()}moveColumnActual(a,b,c){a.parent.isGroup?this._moveColumnInArray(a.parent.columns,a,b,c):this._moveColumnInArray(this.columns,a,b,c),this._moveColumnInArray(this.columnsByIndex,a,b,c,!0),this.rerenderColumns(!0),this.dispatch("column-moved",a,b,c),this.subscribedExternal("columnMoved")&&this.dispatchExternal("columnMoved",a.getComponent(),this.table.columnManager.getComponents())}_moveColumnInArray(a,b,c,d,e){var f,g=a.indexOf(b);g>-1&&(a.splice(g,1),(f=a.indexOf(c))>-1?d&&(f+=1):f=g,a.splice(f,0,b),e&&(this.chain("column-moving-rows",[b,c,d],null,[])||[]).concat(this.table.rowManager.rows).forEach(function(a){if(a.cells.length){var b=a.cells.splice(g,1)[0];a.cells.splice(f,0,b)}}))}scrollToColumn(a,b,c){var d=0,e=a.getLeftOffset(),f=0,g=a.getElement();return new Promise((h,i)=>{if(void 0===b&&(b=this.table.options.scrollToColumnPosition),void 0===c&&(c=this.table.options.scrollToColumnIfVisible),a.visible){switch(b){case"middle":case"center":f=-this.element.clientWidth/2;break;case"right":f=g.clientWidth-this.headersElement.clientWidth}if(!c&&e>0&&e+g.offsetWidth<this.element.clientWidth)return!1;d=Math.max(Math.min(d=e+f,this.table.rowManager.element.scrollWidth-this.table.rowManager.element.clientWidth),0),this.table.rowManager.scrollHorizontal(d),this.scrollHorizontal(d),h()}else console.warn("Scroll Error - Column not visible"),i("Scroll Error - Column not visible")})}generateCells(a){var b=[];return this.columnsByIndex.forEach(c=>{b.push(c.generateCell(a))}),b}getFlexBaseWidth(){var a=this.table.element.clientWidth,b=0;return this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(a-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),this.columnsByIndex.forEach(function(c){var d,e,f;c.visible&&(d=c.definition.width||0,e=parseInt(c.minWidth),f="string"==typeof d?d.indexOf("%")>-1?a/100*parseInt(d):parseInt(d):d,b+=f>e?f:e)}),b}addColumn(a,b,c){return new Promise((d,e)=>{var f=this._addColumn(a,b,c);this._reIndexColumns(),this.dispatch("column-add",a,b,c),"fitColumns"!=this.layoutMode()&&f.reinitializeWidth(),this.redraw(!0),this.table.rowManager.reinitialize(),this.rerenderColumns(),d(f)})}deregisterColumn(a){var b,c=a.getField();c&&delete this.columnsByField[c],(b=this.columnsByIndex.indexOf(a))>-1&&this.columnsByIndex.splice(b,1),(b=this.columns.indexOf(a))>-1&&this.columns.splice(b,1),this.verticalAlignHeaders(),this.redraw()}rerenderColumns(a,b){this.redrawBlock?(!1===a||!0===a&&null===this.redrawBlockUpdate)&&(this.redrawBlockUpdate=a):this.renderer.rerenderColumns(a,b)}blockRedraw(){this.redrawBlock=!0,this.redrawBlockUpdate=null}restoreRedraw(){this.redrawBlock=!1,this.verticalAlignHeaders(),this.renderer.rerenderColumns(this.redrawBlockUpdate)}redraw(a){n.elVisible(this.element)&&this.verticalAlignHeaders(),a&&(this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize()),this.confirm("table-redrawing",a)||this.layoutRefresh(a),this.dispatch("table-redraw",a),this.table.footerManager.redraw()}}class aN extends aJ{constructor(a){super(a),this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0}clearRows(){for(var a=this.tableElement;a.firstChild;)a.removeChild(a.firstChild);a.scrollTop=0,a.scrollLeft=0,a.style.minWidth="",a.style.minHeight="",a.style.display="",a.style.visibility=""}renderRows(){var a=this.tableElement,b=!0,c=document.createDocumentFragment(),d=this.rows();d.forEach((a,d)=>{this.styleRow(a,d),a.initialize(!1,!0),"group"!==a.type&&(b=!1),c.appendChild(a.getElement())}),a.appendChild(c),d.forEach(a=>{a.rendered(),a.heightInitialized||a.calcHeight(!0)}),d.forEach(a=>{a.heightInitialized||a.setCellHeight()}),b?a.style.minWidth=this.table.columnManager.getWidth()+"px":a.style.minWidth=""}rerenderRows(a){this.clearRows(),a&&a(),this.renderRows(),this.rows().length||this.table.rowManager.tableEmpty()}scrollToRowNearestTop(a){var b=n.elOffset(a.getElement()).top;return!(Math.abs(this.elementVertical.scrollTop-b)>Math.abs(this.elementVertical.scrollTop+this.elementVertical.clientHeight-b))}scrollToRow(a){var b=a.getElement();this.elementVertical.scrollTop=n.elOffset(b).top-n.elOffset(this.elementVertical).top+this.elementVertical.scrollTop}visibleRows(a){return this.rows()}}class aO extends aJ{constructor(a){super(a),this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[]}clearRows(){for(var a=this.tableElement;a.firstChild;)a.removeChild(a.firstChild);a.style.paddingTop="",a.style.paddingBottom="",a.style.minHeight="",a.style.display="",a.style.visibility="",this.elementVertical.scrollTop=0,this.elementVertical.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0}renderRows(){this._virtualRenderFill()}rerenderRows(a){for(var b=this.elementVertical.scrollTop,c=!1,d=!1,e=this.table.rowManager.scrollLeft,f=this.rows(),g=this.vDomTop;g<=this.vDomBottom;g++)if(f[g]){var h=b-f[g].getElement().offsetTop;if(!1===d||Math.abs(h)<d)d=h,c=g;else break}f.forEach(a=>{a.deinitializeHeight()}),a&&a(),this.rows().length?this._virtualRenderFill(!1===c?this.rows.length-1:c,!0,d||0):(this.clear(),this.table.rowManager.tableEmpty()),this.scrollColumns(e)}scrollColumns(a){this.table.rowManager.scrollHorizontal(a)}scrollRows(a,b){var c=a-this.vDomScrollPosTop,d=a-this.vDomScrollPosBottom,e=2*this.vDomWindowBuffer,f=this.rows();if(this.scrollTop=a,-c>e||d>e){var g=this.table.rowManager.scrollLeft;this._virtualRenderFill(Math.floor(this.elementVertical.scrollTop/this.elementVertical.scrollHeight*f.length)),this.scrollColumns(g)}else b?(c<0&&this._addTopRow(f,-c),d<0&&(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer?this._removeBottomRow(f,-d):this.vDomScrollPosBottom=this.scrollTop)):(d>=0&&this._addBottomRow(f,d),c>=0&&(this.scrollTop>this.vDomWindowBuffer?this._removeTopRow(f,c):this.vDomScrollPosTop=this.scrollTop))}resize(){this.vDomWindowBuffer=this.table.options.renderVerticalBuffer||this.elementVertical.clientHeight}scrollToRowNearestTop(a){var b=this.rows().indexOf(a);return!(Math.abs(this.vDomTop-b)>Math.abs(this.vDomBottom-b))}scrollToRow(a){var b=this.rows().indexOf(a);b>-1&&this._virtualRenderFill(b,!0)}visibleRows(a){var b=this.elementVertical.scrollTop,c=this.elementVertical.clientHeight+b,d=!1,e=0,f=0,g=this.rows();if(a)e=this.vDomTop,f=this.vDomBottom;else for(var h=this.vDomTop;h<=this.vDomBottom;h++)if(g[h])if(d)if(c-g[h].getElement().offsetTop>=0)f=h;else break;else if(b-g[h].getElement().offsetTop>=0)e=h;else if(d=!0,c-g[h].getElement().offsetTop>=0)f=h;else break;return g.slice(e,f+1)}_virtualRenderFill(a,b,c){var d,e,f=this.tableElement,g=this.elementVertical,h=0,i=0,j=0,k=0,l=0,m=0,o=this.rows(),p=o.length,q=0,r=[],s=0,t=0,u=this.table.rowManager.fixedHeight,v=this.elementVertical.clientHeight,w=this.table.options.rowHeight,x=!0;if(c=c||0,a=a||0){for(;f.firstChild;)f.removeChild(f.firstChild);(k=(p-a+1)*this.vDomRowHeight)<v&&(a-=Math.ceil((v-k)/this.vDomRowHeight))<0&&(a=0),h=Math.min(Math.max(Math.floor(this.vDomWindowBuffer/this.vDomRowHeight),this.vDomWindowMinMarginRows),a),a-=h}else this.clear();if(p&&n.elVisible(this.elementVertical)){for(this.vDomTop=a,this.vDomBottom=a-1,u||this.table.options.maxHeight?(w&&(t=v/w+this.vDomWindowBuffer/w),t=Math.max(this.vDomWindowMinTotalRows,Math.ceil(t))):t=p;(t==p||i<=v+this.vDomWindowBuffer||s<this.vDomWindowMinTotalRows)&&this.vDomBottom<p-1;){for(r=[],e=document.createDocumentFragment(),m=0;m<t&&this.vDomBottom<p-1;)d=o[q=this.vDomBottom+1],this.styleRow(d,q),d.initialize(!1,!0),d.heightInitialized||this.table.options.rowHeight||d.clearCellHeight(),e.appendChild(d.getElement()),r.push(d),this.vDomBottom++,m++;if(!r.length)break;f.appendChild(e),r.forEach(a=>{a.rendered()});let a=[];r.forEach(b=>{b.heightInitialized||(b.calcHeight(!0),a.push(b))}),a.forEach(a=>{a.setCellHeight()}),r.forEach(a=>{j=a.getHeight(),s<h?l+=j:i+=j,j>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*j),s++}),x=this.table.rowManager.adjustTableSize(),v=this.elementVertical.clientHeight,x&&(u||this.table.options.maxHeight)&&(w=i/s,t=Math.max(this.vDomWindowMinTotalRows,Math.ceil(v/w+this.vDomWindowBuffer/w)))}a?(this.vDomTopPad=b?this.vDomRowHeight*this.vDomTop+c:this.scrollTop-l,this.vDomBottomPad=this.vDomBottom==p-1?0:Math.max(this.vDomScrollHeight-this.vDomTopPad-i-l,0)):(this.vDomTopPad=0,this.vDomRowHeight=Math.floor((i+l)/s),this.vDomBottomPad=this.vDomRowHeight*(p-this.vDomBottom-1),this.vDomScrollHeight=l+i+this.vDomBottomPad-v),f.style.paddingTop=this.vDomTopPad+"px",f.style.paddingBottom=this.vDomBottomPad+"px",b&&(this.scrollTop=this.vDomTopPad+l+c-(this.elementVertical.scrollWidth>this.elementVertical.clientWidth?this.elementVertical.offsetHeight-v:0)),this.scrollTop=Math.min(this.scrollTop,this.elementVertical.scrollHeight-v),this.elementVertical.scrollWidth>this.elementVertical.clientWidth&&b&&(this.scrollTop+=this.elementVertical.offsetHeight-v),this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,g.scrollTop=this.scrollTop,this.dispatch("render-virtual-fill")}}_addTopRow(a,b){for(var c=this.tableElement,d=[],e=0,f=this.vDomTop-1,g=0,h=!0;h;)if(this.vDomTop){let i=a[f],j,k;i&&g<this.vDomMaxRenderChain?(j=i.getHeight()||this.vDomRowHeight,k=i.initialized,b>=j?(this.styleRow(i,f),c.insertBefore(i.getElement(),c.firstChild),i.initialized&&i.heightInitialized||d.push(i),i.initialize(),!k&&(j=i.getElement().offsetHeight)>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*j),b-=j,e+=j,this.vDomTop--,f--,g++):h=!1):h=!1}else h=!1;for(let a of d)a.clearCellHeight();this._quickNormalizeRowHeight(d),e&&(this.vDomTopPad-=e,this.vDomTopPad<0&&(this.vDomTopPad=f*this.vDomRowHeight),f<1&&(this.vDomTopPad=0),c.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=e)}_removeTopRow(a,b){for(var c=[],d=0,e=0,f=!0;f;){let g=a[this.vDomTop],h;g&&e<this.vDomMaxRenderChain?(h=g.getHeight()||this.vDomRowHeight,b>=h?(this.vDomTop++,b-=h,d+=h,c.push(g),e++):f=!1):f=!1}for(let a of c){let b=a.getElement();b.parentNode&&b.parentNode.removeChild(b)}d&&(this.vDomTopPad+=d,this.tableElement.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?d:d+this.vDomWindowBuffer)}_addBottomRow(a,b){for(var c=this.tableElement,d=[],e=0,f=this.vDomBottom+1,g=0,h=!0;h;){let i=a[f],j,k;i&&g<this.vDomMaxRenderChain?(j=i.getHeight()||this.vDomRowHeight,k=i.initialized,b>=j?(this.styleRow(i,f),c.appendChild(i.getElement()),i.initialized&&i.heightInitialized||d.push(i),i.initialize(),!k&&(j=i.getElement().offsetHeight)>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*j),b-=j,e+=j,this.vDomBottom++,f++,g++):h=!1):h=!1}for(let a of d)a.clearCellHeight();this._quickNormalizeRowHeight(d),e&&(this.vDomBottomPad-=e,(this.vDomBottomPad<0||f==a.length-1)&&(this.vDomBottomPad=0),c.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=e)}_removeBottomRow(a,b){for(var c=[],d=0,e=0,f=!0;f;){let g=a[this.vDomBottom],h;g&&e<this.vDomMaxRenderChain?(h=g.getHeight()||this.vDomRowHeight,b>=h?(this.vDomBottom--,b-=h,d+=h,c.push(g),e++):f=!1):f=!1}for(let a of c){let b=a.getElement();b.parentNode&&b.parentNode.removeChild(b)}d&&(this.vDomBottomPad+=d,this.vDomBottomPad<0&&(this.vDomBottomPad=0),this.tableElement.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=d)}_quickNormalizeRowHeight(a){for(let b of a)b.calcHeight();for(let b of a)b.setCellHeight()}}class aP extends m{constructor(a){super(a),this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.placeholder=null,this.placeholderContents=null,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRowsPipeline=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRenderInPosition=!1,this.dataPipeline=[],this.displayPipeline=[],this.scrollbarWidth=0,this.renderer=null}createHolderElement(){var a=document.createElement("div");return a.classList.add("tabulator-tableholder"),a.setAttribute("tabindex",0),a}createTableElement(){var a=document.createElement("div");return a.classList.add("tabulator-table"),a.setAttribute("role","rowgroup"),a.setAttribute("id","tabulator-table-body"),a}initializePlaceholder(){var a=this.table.options.placeholder;if("function"==typeof a&&(a=a.call(this.table)),a=this.chain("placeholder",[a],a,a)||a){let b=document.createElement("div");if(b.classList.add("tabulator-placeholder"),"string"==typeof a){let c=document.createElement("div");c.classList.add("tabulator-placeholder-contents"),c.innerHTML=a,b.appendChild(c),this.placeholderContents=c}else"u">typeof HTMLElement&&a instanceof HTMLElement?(b.appendChild(a),this.placeholderContents=a):(console.warn("Invalid placeholder provided, must be string or HTML Element",a),this.el=null);this.placeholder=b}}getElement(){return this.element}getTableElement(){return this.tableElement}initialize(){this.initializePlaceholder(),this.initializeRenderer(),this.element.appendChild(this.tableElement),this.firstRender=!0,this.element.addEventListener("scroll",()=>{var a=this.element.scrollLeft,b=this.scrollLeft>a,c=this.element.scrollTop,d=this.scrollTop>c;this.scrollLeft!=a&&(this.scrollLeft=a,this.dispatch("scroll-horizontal",a,b),this.dispatchExternal("scrollHorizontal",a,b),this._positionPlaceholder()),this.scrollTop!=c&&(this.scrollTop=c,this.renderer.scrollRows(c,d),this.dispatch("scroll-vertical",c,d),this.dispatchExternal("scrollVertical",c,d))})}findRow(a){if("object"!=typeof a)return void 0!==a&&(this.rows.find(b=>b.data[this.table.options.index]==a)||!1);if(a instanceof I)return a;if(a instanceof H)return a._getSelf()||!1;else if("u">typeof HTMLElement&&a instanceof HTMLElement)return this.rows.find(b=>b.getElement()===a)||!1;return!1}getRowFromDataObject(a){return this.rows.find(b=>b.data===a)||!1}getRowFromPosition(a){return this.getDisplayRows().find(b=>"row"===b.type&&b.getPosition()===a&&b.isDisplayed())}scrollToRow(a,b,c){return this.renderer.scrollToRowPosition(a,b,c)}setData(a,b,c){return new Promise((d,e)=>{b&&this.getDisplayRows().length?this.table.options.pagination?this._setDataActual(a,!0):this.reRenderInPosition(()=>{this._setDataActual(a)}):(this.table.options.autoColumns&&c&&this.table.initialized&&this.table.columnManager.generateColumnsFromRowData(a),this.resetScroll(),this._setDataActual(a)),d()})}_setDataActual(a,b){this.dispatchExternal("dataProcessing",a),this._wipeElements(),Array.isArray(a)?(this.dispatch("data-processing",a),a.forEach((a,b)=>{if(a&&"object"==typeof a){var c=new I(a,this);this.rows.push(c)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",a)}),this.refreshActiveData(!1,!1,b),this.dispatch("data-processed",a),this.dispatchExternal("dataProcessed",a)):console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ",typeof a,"\nData: ",a)}_wipeElements(){this.dispatch("rows-wipe"),this.destroy(),this.adjustTableSize(),this.dispatch("rows-wiped")}destroy(){this.rows.forEach(a=>{a.wipe()}),this.rows=[],this.activeRows=[],this.activeRowsPipeline=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0}deleteRow(a,b){var c=this.rows.indexOf(a),d=this.activeRows.indexOf(a);d>-1&&this.activeRows.splice(d,1),c>-1&&this.rows.splice(c,1),this.setActiveRows(this.activeRows),this.displayRowIterator(b=>{var c=b.indexOf(a);c>-1&&b.splice(c,1)}),b||this.reRenderInPosition(),this.regenerateRowPositions(),this.dispatchExternal("rowDeleted",a.getComponent()),this.displayRowsCount||this.tableEmpty(),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.getData())}addRow(a,b,c,d){return this.addRowActual(a,b,c,d)}addRows(a,b,c,d){var e=[];return new Promise((f,g)=>{b=this.findAddRowPos(b),Array.isArray(a)||(a=[a]),(void 0===c&&b||void 0!==c&&!b)&&a.reverse(),a.forEach((a,d)=>{var f=this.addRow(a,b,c,!0);e.push(f),this.dispatch("row-added",f,a,b,c)}),this.refreshActiveData(!!d&&"displayPipeline",!1,!0),this.regenerateRowPositions(),this.displayRowsCount&&this._clearPlaceholder(),f(e)})}findAddRowPos(a){return void 0===a&&(a=this.table.options.addRowPos),"pos"===a&&(a=!0),"bottom"===a&&(a=!1),a}addRowActual(a,b,c,d){var e,f,g=a instanceof I?a:new I(a||{},this),h=this.findAddRowPos(b),i=-1;return c||(c=(f=this.chain("row-adding-position",[g,h],null,{index:c,top:h})).index,h=f.top),void 0!==c&&(c=this.findRow(c)),(c=this.chain("row-adding-index",[g,c,h],null,c))&&(i=this.rows.indexOf(c)),c&&i>-1?(e=this.activeRows.indexOf(c),this.displayRowIterator(function(a){var b=a.indexOf(c);b>-1&&a.splice(h?b:b+1,0,g)}),e>-1&&this.activeRows.splice(h?e:e+1,0,g),this.rows.splice(h?i:i+1,0,g)):h?(this.displayRowIterator(function(a){a.unshift(g)}),this.activeRows.unshift(g),this.rows.unshift(g)):(this.displayRowIterator(function(a){a.push(g)}),this.activeRows.push(g),this.rows.push(g)),this.setActiveRows(this.activeRows),this.dispatchExternal("rowAdded",g.getComponent()),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.table.rowManager.getData()),d||this.reRenderInPosition(),g}moveRow(a,b,c){this.dispatch("row-move",a,b,c),this.moveRowActual(a,b,c),this.regenerateRowPositions(),this.dispatch("row-moved",a,b,c),this.dispatchExternal("rowMoved",a.getComponent())}moveRowActual(a,b,c){this.moveRowInArray(this.rows,a,b,c),this.moveRowInArray(this.activeRows,a,b,c),this.displayRowIterator(d=>{this.moveRowInArray(d,a,b,c)}),this.dispatch("row-moving",a,b,c)}moveRowInArray(a,b,c,d){var e,f,g,h;if(b!==c&&((e=a.indexOf(b))>-1&&(a.splice(e,1),(f=a.indexOf(c))>-1?d?a.splice(f+1,0,b):a.splice(f,0,b):a.splice(e,0,b)),a===this.getDisplayRows())){g=e<f?e:f,h=f>e?f:e+1;for(let b=g;b<=h;b++)a[b]&&this.styleRow(a[b],b)}}clearData(){this.setData([])}getRowIndex(a){return this.findRowIndex(a,this.rows)}getDisplayRowIndex(a){var b=this.getDisplayRows().indexOf(a);return b>-1&&b}nextDisplayRow(a,b){var c=this.getDisplayRowIndex(a),d=!1;return(!1!==c&&c<this.displayRowsCount-1&&(d=this.getDisplayRows()[c+1]),!d||d instanceof I&&"row"==d.type)?d:this.nextDisplayRow(d,b)}prevDisplayRow(a,b){var c=this.getDisplayRowIndex(a),d=!1;return(c&&(d=this.getDisplayRows()[c-1]),!b||!d||d instanceof I&&"row"==d.type)?d:this.prevDisplayRow(d,b)}findRowIndex(a,b){var c;return!!((a=this.findRow(a))&&(c=b.indexOf(a))>-1)&&c}getData(a,b){var c=[];return this.getRows(a).forEach(function(a){"row"==a.type&&c.push(a.getData(b||"data"))}),c}getComponents(a){var b=[];return this.getRows(a).forEach(function(a){b.push(a.getComponent())}),b}getDataCount(a){return this.getRows(a).length}scrollHorizontal(a){this.scrollLeft=a,this.element.scrollLeft=a,this.dispatch("scroll-horizontal",a)}registerDataPipelineHandler(a,b){void 0!==b?(this.dataPipeline.push({handler:a,priority:b}),this.dataPipeline.sort((a,b)=>a.priority-b.priority)):console.error("Data pipeline handlers must have a priority in order to be registered")}registerDisplayPipelineHandler(a,b){void 0!==b?(this.displayPipeline.push({handler:a,priority:b}),this.displayPipeline.sort((a,b)=>a.priority-b.priority)):console.error("Display pipeline handlers must have a priority in order to be registered")}refreshActiveData(a,b,c){var d=this.table,e="",f=0,g=["all","dataPipeline","display","displayPipeline","end"];if(!this.table.destroyed){if("function"==typeof a)if((f=this.dataPipeline.findIndex(b=>b.handler===a))>-1)e="dataPipeline",b&&(f==this.dataPipeline.length-1?e="display":f++);else{if(!((f=this.displayPipeline.findIndex(b=>b.handler===a))>-1))return void console.error("Unable to refresh data, invalid handler provided",a);e="displayPipeline",b&&(f==this.displayPipeline.length-1?e="end":f++)}else e=a||"all",f=0;if(this.redrawBlock){(!this.redrawBlockRestoreConfig||this.redrawBlockRestoreConfig&&(this.redrawBlockRestoreConfig.stage===e&&f<this.redrawBlockRestoreConfig.index||g.indexOf(e)<g.indexOf(this.redrawBlockRestoreConfig.stage)))&&(this.redrawBlockRestoreConfig={handler:a,skipStage:b,renderInPosition:c,stage:e,index:f});return}n.elVisible(this.element)?c?this.reRenderInPosition(this.refreshPipelines.bind(this,a,e,f,c)):(this.refreshPipelines(a,e,f,c),a||this.table.columnManager.renderer.renderColumns(),this.renderTable(),d.options.layoutColumnsOnNewData&&this.table.columnManager.redraw(!0)):this.refreshPipelines(a,e,f,c),this.dispatch("data-refreshed")}}refreshPipelines(a,b,c,d){switch(this.dispatch("data-refreshing"),(!a||!this.activeRowsPipeline[0])&&(this.activeRowsPipeline[0]=this.rows.slice(0)),b){case"all":case"dataPipeline":for(let a=c;a<this.dataPipeline.length;a++){let b=this.dataPipeline[a].handler(this.activeRowsPipeline[a].slice(0));this.activeRowsPipeline[a+1]=b||this.activeRowsPipeline[a].slice(0)}this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);case"display":c=0,this.resetDisplayRows();case"displayPipeline":for(let a=c;a<this.displayPipeline.length;a++){let b=this.displayPipeline[a].handler((a?this.getDisplayRows(a-1):this.activeRows).slice(0),d);this.setDisplayRows(b||this.getDisplayRows(a-1).slice(0),a)}case"end":this.regenerateRowPositions()}this.getDisplayRows().length&&this._clearPlaceholder()}regenerateRowPositions(){var a=this.getDisplayRows(),b=1;a.forEach(a=>{"row"===a.type&&(a.setPosition(b),b++)})}setActiveRows(a){this.activeRows=this.activeRows=Object.assign([],a),this.activeRowsCount=this.activeRows.length}resetDisplayRows(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length}setDisplayRows(a,b){this.displayRows[b]=a,b==this.displayRows.length-1&&(this.displayRowsCount=this.displayRows[this.displayRows.length-1].length)}getDisplayRows(a){return void 0===a?this.displayRows.length?this.displayRows[this.displayRows.length-1]:[]:this.displayRows[a]||[]}getVisibleRows(a,b){var c=Object.assign([],this.renderer.visibleRows(!b));return a&&(c=this.chain("rows-visible",[b],c,c)),c}displayRowIterator(a){this.activeRowsPipeline.forEach(a),this.displayRows.forEach(a),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length}getRows(a){var b=[];switch(a){case"active":b=this.activeRows;break;case"display":b=this.table.rowManager.getDisplayRows();break;case"visible":b=this.getVisibleRows(!1,!0);break;default:b=this.chain("rows-retrieve",a,null,this.rows)||this.rows}return b}reRenderInPosition(a){this.redrawBlock?a?a():this.redrawBlockRenderInPosition=!0:(this.dispatchExternal("renderStarted"),this.renderer.rerenderRows(a),this.fixedHeight||this.adjustTableSize(),this.scrollBarCheck(),this.dispatchExternal("renderComplete"))}scrollBarCheck(){var a=0;this.element.scrollHeight>this.element.clientHeight&&(a=this.element.offsetWidth-this.element.clientWidth),a!==this.scrollbarWidth&&(this.scrollbarWidth=a,this.dispatch("scrollbar-vertical",a))}initializeRenderer(){var a;(a="string"==typeof this.table.options.renderVertical?({virtual:aO,basic:aN})[this.table.options.renderVertical]:this.table.options.renderVertical)?(this.renderMode=this.table.options.renderVertical,this.renderer=new a(this.table,this.element,this.tableElement),this.renderer.initialize(),(this.table.element.clientHeight||this.table.options.height)&&!(this.table.options.minHeight&&this.table.options.maxHeight)?this.fixedHeight=!0:this.fixedHeight=!1):console.error("Unable to find matching renderer:",this.table.options.renderVertical)}getRenderMode(){return this.renderMode}renderTable(){this.dispatchExternal("renderStarted"),this.element.scrollTop=0,this._clearTable(),this.displayRowsCount?(this.renderer.renderRows(),this.firstRender&&(this.firstRender=!1,this.fixedHeight||this.adjustTableSize(),this.layoutRefresh(!0))):this.renderEmptyScroll(),this.fixedHeight||this.adjustTableSize(),this.dispatch("table-layout"),this.displayRowsCount||this._showPlaceholder(),this.scrollBarCheck(),this.dispatchExternal("renderComplete")}renderEmptyScroll(){this.placeholder?this.tableElement.style.display="none":this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px"}_clearTable(){this._clearPlaceholder(),this.scrollTop=0,this.scrollLeft=0,this.renderer.clearRows()}tableEmpty(){this.renderEmptyScroll(),this._showPlaceholder()}checkPlaceholder(){this.displayRowsCount?this._clearPlaceholder():this.tableEmpty()}_showPlaceholder(){this.placeholder&&(this.placeholder&&this.placeholder.parentNode&&this.placeholder.parentNode.removeChild(this.placeholder),this.initializePlaceholder(),this.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.placeholder),this._positionPlaceholder(),this.adjustTableSize())}_clearPlaceholder(){this.placeholder&&this.placeholder.parentNode&&this.placeholder.parentNode.removeChild(this.placeholder),this.tableElement.style.minWidth="",this.tableElement.style.display=""}_positionPlaceholder(){this.placeholder&&this.placeholder.parentNode&&(this.placeholder.style.width=this.table.columnManager.getWidth()+"px",this.placeholderContents.style.width=this.table.rowManager.element.clientWidth+"px",this.placeholderContents.style.marginLeft=this.scrollLeft+"px")}styleRow(a,b){var c=a.getElement();b%2?(c.classList.add("tabulator-row-even"),c.classList.remove("tabulator-row-odd")):(c.classList.add("tabulator-row-odd"),c.classList.remove("tabulator-row-even"))}normalizeHeight(a){this.activeRows.forEach(function(b){b.normalizeHeight(a)})}adjustTableSize(){let a=this.element.clientHeight,b,c=!1;if("fill"===this.renderer.verticalFillMode){let d=Math.floor(this.table.columnManager.getElement().getBoundingClientRect().height+(this.table.footerManager&&this.table.footerManager.active&&!this.table.footerManager.external?this.table.footerManager.getElement().getBoundingClientRect().height:0));if(this.fixedHeight){b=isNaN(this.table.options.minHeight)?this.table.options.minHeight:this.table.options.minHeight+"px";let a="calc(100% - "+d+"px)";this.element.style.minHeight=b||"calc(100% - "+d+"px)",this.element.style.height=a,this.element.style.maxHeight=a}else this.element.style.height="",this.element.style.height=this.table.element.clientHeight-d+"px",this.element.scrollTop=this.scrollTop;this.renderer.resize(),!this.fixedHeight&&a!=this.element.clientHeight&&(c=!0,this.redrawing||(this.redrawing=!0,this.subscribed("table-resize")?this.dispatch("table-resize"):this.redraw(),this.redrawing=!1)),this.scrollBarCheck()}return this._positionPlaceholder(),c}reinitialize(){this.rows.forEach(function(a){a.reinitialize(!0)})}blockRedraw(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1}restoreRedraw(){this.redrawBlock=!1,this.redrawBlockRestoreConfig?(this.refreshActiveData(this.redrawBlockRestoreConfig.handler,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1):this.redrawBlockRenderInPosition&&this.reRenderInPosition(),this.redrawBlockRenderInPosition=!1}redraw(a){this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,a?this.renderTable():(this.reRenderInPosition(),this.scrollHorizontal(this.scrollLeft))}resetScroll(){if(this.element.scrollLeft=0,this.element.scrollTop=0,"ie"===this.table.browser){var a=document.createEvent("Event");a.initEvent("scroll",!1,!0),this.element.dispatchEvent(a)}else this.element.dispatchEvent(new Event("scroll"))}}class aQ extends m{constructor(a){super(a),this.active=!1,this.element=this.createElement(),this.containerElement=this.createContainerElement(),this.external=!1}initialize(){this.initializeElement()}createElement(){var a=document.createElement("div");return a.classList.add("tabulator-footer"),a}createContainerElement(){var a=document.createElement("div");return a.classList.add("tabulator-footer-contents"),this.element.appendChild(a),a}initializeElement(){this.table.options.footerElement&&("string"==typeof this.table.options.footerElement?"<"===this.table.options.footerElement[0]?this.containerElement.innerHTML=this.table.options.footerElement:(this.external=!0,this.containerElement=document.querySelector(this.table.options.footerElement)):this.element=this.table.options.footerElement)}getElement(){return this.element}append(a){this.activate(),this.containerElement.appendChild(a),this.table.rowManager.adjustTableSize()}prepend(a){this.activate(),this.element.insertBefore(a,this.element.firstChild),this.table.rowManager.adjustTableSize()}remove(a){a.parentNode.removeChild(a),this.deactivate()}deactivate(a){(!this.element.firstChild||a)&&(this.external||this.element.parentNode.removeChild(this.element),this.active=!1)}activate(){!this.active&&(this.active=!0,this.external||(this.table.element.appendChild(this.getElement()),this.table.element.style.display=""))}redraw(){this.dispatch("footer-redraw")}}class aR extends m{constructor(a){super(a),this.el=null,this.abortClasses=["tabulator-headers","tabulator-table"],this.previousTargets={},this.listeners=["click","dblclick","contextmenu","mouseenter","mouseleave","mouseover","mouseout","mousemove","mouseup","mousedown","touchstart","touchend"],this.componentMap={"tabulator-cell":"cell","tabulator-row":"row","tabulator-group":"group","tabulator-col":"column"},this.pseudoTrackers={row:{subscriber:null,target:null},cell:{subscriber:null,target:null},group:{subscriber:null,target:null},column:{subscriber:null,target:null}},this.pseudoTracking=!1}initialize(){this.el=this.table.element,this.buildListenerMap(),this.bindSubscriptionWatchers()}buildListenerMap(){var a={};this.listeners.forEach(b=>{a[b]={handler:null,components:[]}}),this.listeners=a}bindPseudoEvents(){Object.keys(this.pseudoTrackers).forEach(a=>{this.pseudoTrackers[a].subscriber=this.pseudoMouseEnter.bind(this,a),this.subscribe(a+"-mouseover",this.pseudoTrackers[a].subscriber)}),this.pseudoTracking=!0}pseudoMouseEnter(a,b,c){this.pseudoTrackers[a].target!==c&&(this.pseudoTrackers[a].target&&this.dispatch(a+"-mouseleave",b,this.pseudoTrackers[a].target),this.pseudoMouseLeave(a,b),this.pseudoTrackers[a].target=c,this.dispatch(a+"-mouseenter",b,c))}pseudoMouseLeave(a,b){var c=Object.keys(this.pseudoTrackers),d={row:["cell"],cell:["row"]};(c=c.filter(b=>{var c=d[a];return b!==a&&(!c||c&&!c.includes(b))})).forEach(a=>{var c=this.pseudoTrackers[a].target;this.pseudoTrackers[a].target&&(this.dispatch(a+"-mouseleave",b,c),this.pseudoTrackers[a].target=null)})}bindSubscriptionWatchers(){var a=Object.keys(this.listeners);for(let b of Object.values(this.componentMap))for(let c of a){let a=b+"-"+c;this.subscriptionChange(a,this.subscriptionChanged.bind(this,b,c))}this.subscribe("table-destroy",this.clearWatchers.bind(this))}subscriptionChanged(a,b,c){var d=this.listeners[b].components,e=d.indexOf(a),f=!1;c?-1===e&&(d.push(a),f=!0):!this.subscribed(a+"-"+b)&&e>-1&&(d.splice(e,1),f=!0),"mouseenter"!==b&&"mouseleave"!==b||this.pseudoTracking||this.bindPseudoEvents(),f&&this.updateEventListeners()}updateEventListeners(){for(let a in this.listeners){let b=this.listeners[a];b.components.length?b.handler||(b.handler=this.track.bind(this,a),this.el.addEventListener(a,b.handler)):b.handler&&(this.el.removeEventListener(a,b.handler),b.handler=null)}}track(a,b){var c=b.composedPath&&b.composedPath()||b.path,d=this.findTargets(c);d=this.bindComponents(a,d),this.triggerEvents(a,b,d),this.pseudoTracking&&("mouseover"==a||"mouseleave"==a)&&!Object.keys(d).length&&this.pseudoMouseLeave("none",b)}findTargets(a){var b={};let c=Object.keys(this.componentMap);for(let d of a){let a=d.classList?[...d.classList]:[];if(a.filter(a=>this.abortClasses.includes(a)).length)break;for(let e of a.filter(a=>c.includes(a)))b[this.componentMap[e]]||(b[this.componentMap[e]]=d)}return b.group&&b.group===b.row&&delete b.row,b}bindComponents(a,b){var c=Object.keys(b).reverse(),d=this.listeners[a],e={},f={},g={};for(let a of c){let c,f=b[a],h=this.previousTargets[a];if(h&&h.target===f)c=h.component;else switch(a){case"row":case"group":(d.components.includes("row")||d.components.includes("cell")||d.components.includes("group"))&&(c=this.table.rowManager.getVisibleRows(!0).find(a=>a.getElement()===f),b.row&&b.row.parentNode&&b.row.parentNode.closest(".tabulator-row")&&(b[a]=!1));break;case"column":d.components.includes("column")&&(c=this.table.columnManager.findColumn(f));break;case"cell":d.components.includes("cell")&&(e.row instanceof I?c=e.row.findCell(f):b.row&&console.warn("Event Target Lookup Error - The row this cell is attached to cannot be found, has the table been reinitialized without being destroyed first?"))}c&&(e[a]=c,g[a]={target:f,component:c})}return this.previousTargets=g,Object.keys(b).forEach(a=>{let b=e[a];f[a]=b}),f}triggerEvents(a,b,c){var d=this.listeners[a];for(let e in c)c[e]&&d.components.includes(e)&&this.dispatch(e+"-"+a,b,c[e])}clearWatchers(){for(let a in this.listeners){let b=this.listeners[a];b.handler&&(this.el.removeEventListener(a,b.handler),b.handler=null)}}}class aS{constructor(a){this.table=a,this.bindings={}}bind(a,b,c){this.bindings[a]||(this.bindings[a]={}),this.bindings[a][b]?console.warn("Unable to bind component handler, a matching function name is already bound",a,b,c):this.bindings[a][b]=c}handle(a,b,c){if(this.bindings[a]&&this.bindings[a][c]&&"function"==typeof this.bindings[a][c].bind)return this.bindings[a][c].bind(null,b);"then"!==c&&"string"==typeof c&&!c.startsWith("_")&&this.table.options.debugInvalidComponentFuncs&&console.error("The "+a+" component does not have a "+c+" function, have you checked that you have the correct Tabulator module installed?")}}class aT extends m{constructor(a){super(a),this.requestOrder=0,this.loading=!1}initialize(){}load(a,b,c,d,e,f){var g=++this.requestOrder;return this.table.destroyed?Promise.resolve():(this.dispatchExternal("dataLoading",a),a&&(0==a.indexOf("{")||0==a.indexOf("["))&&(a=JSON.parse(a)),this.confirm("data-loading",[a,b,c,e]))?(this.loading=!0,e||this.alertLoader(),b=this.chain("data-params",[a,c,e],b||{},b||{}),b=this.mapParams(b,this.table.options.dataSendParams),this.chain("data-load",[a,b,c,e],!1,Promise.resolve([])).then(a=>{if(this.table.destroyed)console.warn("Data Load Response Blocked - Table has been destroyed");else{Array.isArray(a)||"object"!=typeof a||(a=this.mapParams(a,this.objectInvert(this.table.options.dataReceiveParams)));var b=this.chain("data-loaded",[a],null,a);g==this.requestOrder?(this.clearAlert(),!1!==b&&(this.dispatchExternal("dataLoaded",b),this.table.rowManager.setData(b,d,void 0===f?!d:f))):console.warn("Data Load Response Blocked - An active data load request was blocked by an attempt to change table data while the request was being made")}}).catch(a=>{console.error("Data Load Error: ",a),this.dispatchExternal("dataLoadError",a),e||this.alertError(),setTimeout(()=>{this.clearAlert()},this.table.options.dataLoaderErrorTimeout)}).finally(()=>{this.loading=!1})):(this.dispatchExternal("dataLoaded",a),a||(a=[]),this.table.rowManager.setData(a,d,void 0===f?!d:f),Promise.resolve())}mapParams(a,b){var c={};for(let d in a)c[b.hasOwnProperty(d)?b[d]:d]=a[d];return c}objectInvert(a){var b={};for(let c in a)b[a[c]]=c;return b}blockActiveLoad(){this.requestOrder++}alertLoader(){("function"==typeof this.table.options.dataLoader?this.table.options.dataLoader():this.table.options.dataLoader)&&this.table.alertManager.alert(this.table.options.dataLoaderLoading||this.langText("data|loading"))}alertError(){this.table.alertManager.alert(this.table.options.dataLoaderError||this.langText("data|error"),"error")}clearAlert(){this.table.alertManager.clear()}}class aU{constructor(a,b,c){this.table=a,this.events={},this.optionsList=b||{},this.subscriptionNotifiers={},this.dispatch=c?this._debugDispatch.bind(this):this._dispatch.bind(this),this.debug=c}subscriptionChange(a,b){this.subscriptionNotifiers[a]||(this.subscriptionNotifiers[a]=[]),this.subscriptionNotifiers[a].push(b),this.subscribed(a)&&this._notifySubscriptionChange(a,!0)}subscribe(a,b){this.events[a]||(this.events[a]=[]),this.events[a].push(b),this._notifySubscriptionChange(a,!0)}unsubscribe(a,b){var c;if(!this.events[a])return void console.warn("Cannot remove event, no events set on:",a);if(b){if(!((c=this.events[a].findIndex(a=>a===b))>-1))return void console.warn("Cannot remove event, no matching event found:",a,b);this.events[a].splice(c,1)}else delete this.events[a];this._notifySubscriptionChange(a,!1)}subscribed(a){return this.events[a]&&this.events[a].length}_notifySubscriptionChange(a,b){var c=this.subscriptionNotifiers[a];c&&c.forEach(a=>{a(b)})}_dispatch(){var a,b=Array.from(arguments),c=b.shift();return this.events[c]&&this.events[c].forEach((c,d)=>{let e=c.apply(this.table,b);d||(a=e)}),a}_debugDispatch(){var a=Array.from(arguments),b=a[0];return a[0]="ExternalEvent:"+a[0],(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._dispatch(...arguments)}}class aV{constructor(a){this.events={},this.subscriptionNotifiers={},this.dispatch=a?this._debugDispatch.bind(this):this._dispatch.bind(this),this.chain=a?this._debugChain.bind(this):this._chain.bind(this),this.confirm=a?this._debugConfirm.bind(this):this._confirm.bind(this),this.debug=a}subscriptionChange(a,b){this.subscriptionNotifiers[a]||(this.subscriptionNotifiers[a]=[]),this.subscriptionNotifiers[a].push(b),this.subscribed(a)&&this._notifySubscriptionChange(a,!0)}subscribe(a,b,c=1e4){this.events[a]||(this.events[a]=[]),this.events[a].push({callback:b,priority:c}),this.events[a].sort((a,b)=>a.priority-b.priority),this._notifySubscriptionChange(a,!0)}unsubscribe(a,b){var c;if(!this.events[a])return void console.warn("Cannot remove event, no events set on:",a);if(b){if(!((c=this.events[a].findIndex(a=>a.callback===b))>-1))return void console.warn("Cannot remove event, no matching event found:",a,b);this.events[a].splice(c,1)}this._notifySubscriptionChange(a,!1)}subscribed(a){return this.events[a]&&this.events[a].length}_chain(a,b,c,d){var e=c;return(Array.isArray(b)||(b=[b]),this.subscribed(a))?(this.events[a].forEach((a,c)=>{e=a.callback.apply(this,b.concat([e]))}),e):"function"==typeof d?d():d}_confirm(a,b){var c=!1;return Array.isArray(b)||(b=[b]),this.subscribed(a)&&this.events[a].forEach((a,d)=>{a.callback.apply(this,b)&&(c=!0)}),c}_notifySubscriptionChange(a,b){var c=this.subscriptionNotifiers[a];c&&c.forEach(a=>{a(b)})}_dispatch(){var a=Array.from(arguments),b=a.shift();this.events[b]&&this.events[b].forEach(b=>{b.callback.apply(this,a)})}_debugDispatch(){var a=Array.from(arguments),b=a[0];return a[0]="InternalEvent:"+b,(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._dispatch(...arguments)}_debugChain(){var a=Array.from(arguments),b=a[0];return a[0]="InternalEvent:"+b,(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._chain(...arguments)}_debugConfirm(){var a=Array.from(arguments),b=a[0];return a[0]="InternalEvent:"+b,(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._confirm(...arguments)}}class aW extends m{constructor(a){super(a)}_warnUser(){this.options("debugDeprecation")&&console.warn(...arguments)}check(a,b,c){var d="";return void 0===this.options(a)||(d="Deprecated Setup Option - Use of the %c"+a+"%c option is now deprecated",b?(d=d+", Please use the %c"+b+"%c option instead",this._warnUser(d,"font-weight: bold;","font-weight: normal;","font-weight: bold;","font-weight: normal;"),c&&(this.table.options[b]=this.table.options[a])):this._warnUser(d,"font-weight: bold;","font-weight: normal;"),!1)}checkMsg(a,b){return void 0===this.options(a)||(this._warnUser("%cDeprecated Setup Option - Use of the %c"+a+" %c option is now deprecated, "+b,"font-weight: normal;","font-weight: bold;","font-weight: normal;"),!1)}msg(a){this._warnUser(a)}}class aX extends m{constructor(a){super(a),this.deps={},this.props={}}initialize(){this.deps=Object.assign({},this.options("dependencies"))}lookup(a,b,c){if(Array.isArray(a)){for(let c of a){var d=this.lookup(c,b,!0);if(d)break}if(d)return d;this.error(a)}else if(b)return this.lookupProp(a,b,c);else return this.lookupKey(a,c)}lookupProp(a,b,c){var d;return this.props[a]&&this.props[a][b]?this.props[a][b]:(d=this.lookupKey(a,c))?(this.props[a]||(this.props[a]={}),this.props[a][b]=d[b]||d,this.props[a][b]):void 0}lookupKey(a,b){var c;return this.deps[a]?c=this.deps[a]:window[a]?(this.deps[a]=window[a],c=this.deps[a]):b||this.error(a),c}error(a){console.error("Unable to find dependency",a,"Please check documentation and ensure you have imported the required library into your project")}}function aY(a,b){a.forEach(function(a){a.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()}var aZ={fitData:function(a,b){b&&this.table.columnManager.renderer.reinitializeColumnWidths(a),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataFill:aY,fitDataTable:aY,fitDataStretch:function(a,b){var c=0,d=this.table.rowManager.element.clientWidth,e=0,f=!1;a.forEach((a,b)=>{a.widthFixed||a.reinitializeWidth(),(this.table.options.responsiveLayout?a.modules.responsive.visible:a.visible)&&(f=a),a.visible&&(c+=a.getWidth())}),f?(e=d-c+f.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&(f.setWidth(0),this.table.modules.responsiveLayout.update()),e>0?f.setWidth(e):f.reinitializeWidth()):this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitColumns:function(a,b){var c=this.table.rowManager.element.getBoundingClientRect().width,d=0,e=0,f=0,g=0,h=[],i=[],j=0,k=0,l=0;function m(a){return"string"==typeof a?a.indexOf("%")>-1?c/100*parseInt(a):parseInt(a):a}function n(a,b,c,d){var e=[],g=0,h=0,i=0,j=f,k=0,l=0,o=[];function p(a){return c*(a.column.definition.widthGrow||1)}function q(a){return m(a.width)-c*(a.column.definition.widthShrink||0)}return a.forEach(function(a,f){var g=d?q(a):p(a);a.column.minWidth>=g?e.push(a):a.column.maxWidth&&a.column.maxWidth<g?(a.width=a.column.maxWidth,b-=a.column.maxWidth,(j-=d?a.column.definition.widthShrink||1:a.column.definition.widthGrow||1)&&(c=Math.floor(b/j))):(o.push(a),l+=d?a.column.definition.widthShrink||1:a.column.definition.widthGrow||1)}),e.length?(e.forEach(function(a){g+=d?a.width-a.column.minWidth:a.column.minWidth,a.width=a.column.minWidth}),h=b-g,i=l?Math.floor(h/l):h,k=n(o,h,i,d)):(k=l?b-Math.floor(b/l)*l:b,o.forEach(function(a){a.width=d?q(a):p(a)})),k}this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(c-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),a.forEach(function(a){var b,c,e;a.visible&&(b=a.definition.width,c=parseInt(a.minWidth),b?(e=m(b),d+=e>c?e:c,a.definition.widthShrink&&(i.push({column:a,width:e>c?e:c}),j+=a.definition.widthShrink)):(h.push({column:a,width:0}),f+=a.definition.widthGrow||1))}),g=Math.floor((e=c-d)/f),l=n(h,e,g,!1),h.length&&l>0&&(h[h.length-1].width+=l),h.forEach(function(a){e-=a.width}),(k=Math.abs(l)+e)>0&&j&&(l=n(i,k,Math.floor(k/j),!0)),l&&i.length&&(i[i.length-1].width-=l),h.forEach(function(a){a.column.setWidth(a.width)}),i.forEach(function(a){a.column.setWidth(a.width)})}};class a$ extends p{static moduleName="layout";static modes=aZ;constructor(a){super(a,"layout"),this.mode=null,this.registerTableOption("layout","fitData"),this.registerTableOption("layoutColumnsOnNewData",!1),this.registerColumnOption("widthGrow"),this.registerColumnOption("widthShrink")}initialize(){var a=this.table.options.layout;a$.modes[a]?this.mode=a:(console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+a),this.mode="fitData"),this.table.element.setAttribute("tabulator-layout",this.mode),this.subscribe("column-init",this.initializeColumn.bind(this))}initializeColumn(a){a.definition.widthGrow&&(a.definition.widthGrow=Number(a.definition.widthGrow)),a.definition.widthShrink&&(a.definition.widthShrink=Number(a.definition.widthShrink))}getMode(){return this.mode}layout(a){var b=this.table.columnManager.columnsByIndex.find(a=>a.definition.variableHeight||"textarea"===a.definition.formatter);this.dispatch("layout-refreshing"),a$.modes[this.mode].call(this,this.table.columnManager.columnsByIndex,a),b&&this.table.rowManager.normalizeHeight(!0),this.dispatch("layout-refreshed")}}var a_={default:{groups:{item:"item",items:"items"},columns:{},data:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",page_title:"Show Page",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page",all:"All",counter:{showing:"Showing",of:"of",rows:"rows",pages:"pages"}},headerFilters:{default:"filter column...",columns:{}}}};class a0 extends p{static moduleName="localize";static langs=a_;constructor(a){super(a),this.locale="default",this.lang=!1,this.bindings={},this.langList={},this.registerTableOption("locale",!1),this.registerTableOption("langs",{})}initialize(){for(let a in this.langList=n.deepClone(a0.langs),!1!==this.table.options.columnDefaults.headerFilterPlaceholder&&this.setHeaderFilterPlaceholder(this.table.options.columnDefaults.headerFilterPlaceholder),this.table.options.langs)this.installLang(a,this.table.options.langs[a]);this.setLocale(this.table.options.locale),this.registerTableFunction("setLocale",this.setLocale.bind(this)),this.registerTableFunction("getLocale",this.getLocale.bind(this)),this.registerTableFunction("getLang",this.getLang.bind(this))}setHeaderFilterPlaceholder(a){this.langList.default.headerFilters.default=a}installLang(a,b){this.langList[a]?this._setLangProp(this.langList[a],b):this.langList[a]=b}_setLangProp(a,b){for(let c in b)a[c]&&"object"==typeof a[c]?this._setLangProp(a[c],b[c]):a[c]=b[c]}setLocale(a){if(!0===(a=a||"default")&&navigator.language&&(a=navigator.language.toLowerCase()),a&&!this.langList[a]){let b=a.split("-")[0];this.langList[b]?(console.warn("Localization Error - Exact matching locale not found, using closest match: ",a,b),a=b):(console.warn("Localization Error - Matching locale not found, using default: ",a),a="default")}this.locale=a,this.lang=n.deepClone(this.langList.default||{}),"default"!=a&&function a(b,c){for(var d in b)"object"==typeof b[d]?(c[d]||(c[d]={}),a(b[d],c[d])):c[d]=b[d]}(this.langList[a],this.lang),this.dispatchExternal("localized",this.locale,this.lang),this._executeBindings()}getLocale(a){return this.locale}getLang(a){return a?this.langList[a]:this.lang}getText(a,b){var c=(b?a+"|"+b:a).split("|");return this._getLangElement(c,this.locale)||""}_getLangElement(a,b){var c=this.lang;return a.forEach(function(a){var b;c&&(c=void 0!==(b=c[a])&&b)}),c}bind(a,b){this.bindings[a]||(this.bindings[a]=[]),this.bindings[a].push(b),b(this.getText(a),this.lang)}_executeBindings(){for(let a in this.bindings)this.bindings[a].forEach(b=>{b(this.getText(a),this.lang)})}}var a1=Object.freeze({__proto__:null,CommsModule:class extends p{static moduleName="comms";constructor(a){super(a)}initialize(){this.registerTableFunction("tableComms",this.receive.bind(this))}getConnections(a){var b=[];return this.table.constructor.registry.lookupTable(a).forEach(a=>{this.table!==a&&b.push(a)}),b}send(a,b,c,d){var e=this.getConnections(a);e.forEach(a=>{a.tableComms(this.table.element,b,c,d)}),!e.length&&a&&console.warn("Table Connection Error - No tables matching selector found",a)}receive(a,b,c,d){if(this.table.modExists(b))return this.table.modules[b].commsReceived(a,c,d);console.warn("Inter-table Comms Error - no such module:",b)}},LayoutModule:a$,LocalizeModule:a0});class a2{static registry={tables:[],register(a){a2.registry.tables.push(a)},deregister(a){var b=a2.registry.tables.indexOf(a);b>-1&&a2.registry.tables.splice(b,1)},lookupTable(a,b){var c,d,e=[];if("string"==typeof a){if((c=document.querySelectorAll(a)).length)for(var f=0;f<c.length;f++)(d=a2.registry.matchElement(c[f]))&&e.push(d)}else"u">typeof HTMLElement&&a instanceof HTMLElement||a instanceof a2?(d=a2.registry.matchElement(a))&&e.push(d):Array.isArray(a)?a.forEach(function(a){e=e.concat(a2.registry.lookupTable(a))}):b||console.warn("Table Connection Error - Invalid Selector",a);return e},matchElement:a=>a2.registry.tables.find(function(b){return a instanceof a2?b===a:b.element===a})};static findTable(a){var b=a2.registry.lookupTable(a,!0);return(!Array.isArray(b)||!!b.length)&&b}}class a3 extends a2{static moduleBindings={};static moduleExtensions={};static modulesRegistered=!1;static defaultModules=!1;constructor(){super()}static initializeModuleBinder(a){!a3.modulesRegistered&&(a3.modulesRegistered=!0,a3._registerModules(a1,!0),a&&a3._registerModules(a))}static _extendModule(a,b,c){if(a3.moduleBindings[a]){var d=a3.moduleBindings[a][b];if(d)if("object"==typeof c)for(let a in c)d[a]=c[a];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",b)}else console.warn("Module Error - module does not exist:",a)}static _registerModules(a,b){var c=Object.values(a);b&&c.forEach(a=>{a.prototype.moduleCore=!0}),a3._registerModule(c)}static _registerModule(a){Array.isArray(a)||(a=[a]),a.forEach(a=>{a3._registerModuleBinding(a),a3._registerModuleExtensions(a)})}static _registerModuleBinding(a){a.moduleName?a3.moduleBindings[a.moduleName]=a:console.error("Unable to bind module, no moduleName defined",a.moduleName)}static _registerModuleExtensions(a){var b=a.moduleExtensions;if(a.moduleExtensions)for(let a in b){let c=b[a];if(a3.moduleBindings[a])for(let b in c)a3._extendModule(a,b,c[b]);else for(let b in a3.moduleExtensions[a]||(a3.moduleExtensions[a]={}),c)a3.moduleExtensions[a][b]||(a3.moduleExtensions[a][b]={}),Object.assign(a3.moduleExtensions[a][b],c[b])}a3._extendModuleFromQueue(a)}static _extendModuleFromQueue(a){var b=a3.moduleExtensions[a.moduleName];if(b)for(let c in b)a3._extendModule(a.moduleName,c,b[c])}_bindModules(){var a=[],b=[],c=[];for(var d in this.modules={},a3.moduleBindings){let e=a3.moduleBindings[d],f=new e(this);this.modules[d]=f,e.prototype.moduleCore?this.modulesCore.push(f):e.moduleInitOrder?e.moduleInitOrder<0?a.push(f):b.push(f):c.push(f)}a.sort((a,b)=>a.moduleInitOrder>b.moduleInitOrder?1:-1),b.sort((a,b)=>a.moduleInitOrder>b.moduleInitOrder?1:-1),this.modulesRegular=a.concat(c.concat(b))}}class a4 extends m{constructor(a){super(a),this.element=this._createAlertElement(),this.msgElement=this._createMsgElement(),this.type=null,this.element.appendChild(this.msgElement)}_createAlertElement(){var a=document.createElement("div");return a.classList.add("tabulator-alert"),a}_createMsgElement(){var a=document.createElement("div");return a.classList.add("tabulator-alert-msg"),a.setAttribute("role","alert"),a}_typeClass(){return"tabulator-alert-state-"+this.type}alert(a,b="msg"){if(a){for(this.clear(),this.dispatch("alert-show",b),this.type=b;this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.add(this._typeClass()),"function"==typeof a&&(a=a()),a instanceof HTMLElement?this.msgElement.appendChild(a):this.msgElement.innerHTML=a,this.table.element.appendChild(this.element)}}clear(){this.dispatch("alert-hide",this.type),this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.msgElement.classList.remove(this._typeClass())}}class a5 extends a3{static defaultOptions=aH;static extendModule(){a5.initializeModuleBinder(),a5._extendModule(...arguments)}static registerModule(){a5.initializeModuleBinder(),a5._registerModule(...arguments)}constructor(a,b,c){super(),a5.initializeModuleBinder(c),this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.alertManager=null,this.vdomHoz=null,this.externalEvents=null,this.eventBus=null,this.interactionMonitor=!1,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.rtl=!1,this.originalElement=null,this.componentFunctionBinder=new aS(this),this.dataLoader=!1,this.modules={},this.modulesCore=[],this.modulesRegular=[],this.deprecationAdvisor=new aW(this),this.optionsList=new aI(this,"table constructor"),this.dependencyRegistry=new aX(this),this.initialized=!1,this.destroyed=!1,this.initializeElement(a)&&(this.initializeCoreSystems(b),setTimeout(()=>{this._create()})),this.constructor.registry.register(this)}initializeElement(a){return"u">typeof HTMLElement&&a instanceof HTMLElement?(this.element=a,!0):"string"!=typeof a?(console.error("Tabulator Creation Error - Invalid element provided:",a),!1):(this.element=document.querySelector(a),!!this.element||(console.error("Tabulator Creation Error - no element found matching selector: ",a),!1))}initializeCoreSystems(a){this.columnManager=new aM(this),this.rowManager=new aP(this),this.footerManager=new aQ(this),this.dataLoader=new aT(this),this.alertManager=new a4(this),this._bindModules(),this.options=this.optionsList.generate(a5.defaultOptions,a),this._clearObjectPointers(),this._mapDeprecatedFunctionality(),this.externalEvents=new aU(this,this.options,this.options.debugEventsExternal),this.eventBus=new aV(this.options.debugEventsInternal),this.interactionMonitor=new aR(this),this.dataLoader.initialize(),this.footerManager.initialize(),this.dependencyRegistry.initialize()}_mapDeprecatedFunctionality(){}_clearSelection(){this.element.classList.add("tabulator-block-select"),window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty(),this.element.classList.remove("tabulator-block-select")}_create(){this.externalEvents.dispatch("tableBuilding"),this.eventBus.dispatch("table-building"),this._rtlCheck(),this._buildElement(),this._initializeTable(),this.initialized=!0,this._loadInitialData().finally(()=>{this.eventBus.dispatch("table-initialized"),this.externalEvents.dispatch("tableBuilt")})}_rtlCheck(){var a=window.getComputedStyle(this.element);switch(this.options.textDirection){case"auto":if("rtl"!==a.direction)break;case"rtl":this.element.classList.add("tabulator-rtl"),this.rtl=!0;break;case"ltr":this.element.classList.add("tabulator-ltr");default:this.rtl=!1}}_clearObjectPointers(){this.options.columns=this.options.columns.slice(0),Array.isArray(this.options.data)&&!this.options.reactiveData&&(this.options.data=this.options.data.slice(0))}_buildElement(){var a,b=this.element,c=this.options;if("TABLE"===b.tagName){this.originalElement=this.element,a=document.createElement("div");var d=b.attributes;for(var e in d)"object"==typeof d[e]&&a.setAttribute(d[e].name,d[e].value);b.parentNode.replaceChild(a,b),this.element=b=a}for(b.classList.add("tabulator"),b.setAttribute("role","grid"),b.setAttribute("aria-owns","tabulator-table-body");b.firstChild;)b.removeChild(b.firstChild);c.height&&(c.height=isNaN(c.height)?c.height:c.height+"px",b.style.height=c.height),!1!==c.minHeight&&(c.minHeight=isNaN(c.minHeight)?c.minHeight:c.minHeight+"px",b.style.minHeight=c.minHeight),!1!==c.maxHeight&&(c.maxHeight=isNaN(c.maxHeight)?c.maxHeight:c.maxHeight+"px",b.style.maxHeight=c.maxHeight)}_initializeTable(){var a=this.element,b=this.options;this.interactionMonitor.initialize(),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modulesCore.forEach(a=>{a.initialize()}),a.appendChild(this.columnManager.getElement()),a.appendChild(this.rowManager.getElement()),b.footerElement&&this.footerManager.activate(),b.autoColumns&&b.data&&this.columnManager.generateColumnsFromRowData(this.options.data),this.modulesRegular.forEach(a=>{a.initialize()}),this.columnManager.setColumns(b.columns),this.eventBus.dispatch("table-built")}_loadInitialData(){return this.dataLoader.load(this.options.data).finally(()=>{this.columnManager.verticalAlignHeaders()})}destroy(){var a=this.element;for(this.destroyed=!0,this.constructor.registry.deregister(this),this.eventBus.dispatch("table-destroy"),this.rowManager.destroy();a.firstChild;)a.removeChild(a.firstChild);a.classList.remove("tabulator"),a.removeAttribute("tabulator-layout"),this.externalEvents.dispatch("tableDestroyed")}_detectBrowser(){var a=navigator.userAgent||navigator.vendor||window.opera;a.indexOf("Trident")>-1?(this.browser="ie",this.browserSlow=!0):a.indexOf("Edge")>-1?(this.browser="edge",this.browserSlow=!0):(a.indexOf("Firefox")>-1?this.browser="firefox":a.indexOf("Mac OS")>-1?this.browser="safari":this.browser="other",this.browserSlow=!1),this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(a.slice(0,4))}initGuard(a,b){var c,d;return this.options.debugInitialization&&!this.initialized&&(a||(a=" "==(d="Error"==(c=Error().stack.split("\n"))[0]?c[2]:c[1])[0]?d.trim().split(" ")[1].split(".")[1]:d.trim().split("@")[0]),console.warn("Table Not Initialized - Calling the "+a+" function before the table is initialized may result in inconsistent behavior, Please wait for the `tableBuilt` event before calling this function."+(b?" "+b:""))),this.initialized}blockRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-blocking"),this.rowManager.blockRedraw(),this.columnManager.blockRedraw(),this.eventBus.dispatch("redraw-blocked")}restoreRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-restoring"),this.rowManager.restoreRedraw(),this.columnManager.restoreRedraw(),this.eventBus.dispatch("redraw-restored")}setData(a,b,c){return this.initGuard(!1,"To set initial data please use the 'data' property in the table constructor."),this.dataLoader.load(a,b,c,!1)}clearData(){this.initGuard(),this.dataLoader.blockActiveLoad(),this.rowManager.clearData()}getData(a){return this.rowManager.getData(a)}getDataCount(a){return this.rowManager.getDataCount(a)}replaceData(a,b,c){return this.initGuard(),this.dataLoader.load(a,b,c,!0,!0)}updateData(a){var b=0;return this.initGuard(),new Promise((c,d)=>{this.dataLoader.blockActiveLoad(),"string"==typeof a&&(a=JSON.parse(a)),a&&a.length>0?a.forEach(a=>{var e=this.rowManager.findRow(a[this.options.index]);e?(b++,e.updateData(a).then(()=>{--b||c()}).catch(b=>{d("Update Error - Unable to update row",a,b)})):d("Update Error - Unable to find row",a)}):(console.warn("Update Error - No data provided"),d("Update Error - No data provided"))})}addData(a,b,c){return this.initGuard(),new Promise((d,e)=>{this.dataLoader.blockActiveLoad(),"string"==typeof a&&(a=JSON.parse(a)),a?this.rowManager.addRows(a,b,c).then(a=>{var b=[];a.forEach(function(a){b.push(a.getComponent())}),d(b)}):(console.warn("Update Error - No data provided"),e("Update Error - No data provided"))})}updateOrAddData(a){var b=[],c=0;return this.initGuard(),new Promise((d,e)=>{this.dataLoader.blockActiveLoad(),"string"==typeof a&&(a=JSON.parse(a)),a&&a.length>0?a.forEach(a=>{var e=this.rowManager.findRow(a[this.options.index]);c++,e?e.updateData(a).then(()=>{c--,b.push(e.getComponent()),c||d(b)}):this.rowManager.addRows(a).then(a=>{c--,b.push(a[0].getComponent()),c||d(b)})}):(console.warn("Update Error - No data provided"),e("Update Error - No data provided"))})}getRow(a){var b=this.rowManager.findRow(a);return b?b.getComponent():(console.warn("Find Error - No matching row found:",a),!1)}getRowFromPosition(a){var b=this.rowManager.getRowFromPosition(a);return b?b.getComponent():(console.warn("Find Error - No matching row found:",a),!1)}deleteRow(a){var b=[];for(let c of(this.initGuard(),Array.isArray(a)||(a=[a]),a)){let a=this.rowManager.findRow(c,!0);if(!a)return console.error("Delete Error - No matching row found:",c),Promise.reject("Delete Error - No matching row found");b.push(a)}return b.sort((a,b)=>this.rowManager.rows.indexOf(a)>this.rowManager.rows.indexOf(b)?1:-1),b.forEach(a=>{a.delete()}),this.rowManager.reRenderInPosition(),Promise.resolve()}addRow(a,b,c){return this.initGuard(),"string"==typeof a&&(a=JSON.parse(a)),this.rowManager.addRows(a,b,c,!0).then(a=>a[0].getComponent())}updateOrAddRow(a,b){var c=this.rowManager.findRow(a);return(this.initGuard(),"string"==typeof b&&(b=JSON.parse(b)),c)?c.updateData(b).then(()=>c.getComponent()):this.rowManager.addRows(b).then(a=>a[0].getComponent())}updateRow(a,b){var c=this.rowManager.findRow(a);return(this.initGuard(),"string"==typeof b&&(b=JSON.parse(b)),c)?c.updateData(b).then(()=>Promise.resolve(c.getComponent())):(console.warn("Update Error - No matching row found:",a),Promise.reject("Update Error - No matching row found"))}scrollToRow(a,b,c){var d=this.rowManager.findRow(a);return d?this.rowManager.scrollToRow(d,b,c):(console.warn("Scroll Error - No matching row found:",a),Promise.reject("Scroll Error - No matching row found"))}moveRow(a,b,c){var d=this.rowManager.findRow(a);this.initGuard(),d?d.moveToRow(b,c):console.warn("Move Error - No matching row found:",a)}getRows(a){return this.rowManager.getComponents(a)}getRowPosition(a){var b=this.rowManager.findRow(a);return b?b.getPosition():(console.warn("Position Error - No matching row found:",a),!1)}setColumns(a){this.initGuard(!1,"To set initial columns please use the 'columns' property in the table constructor"),this.columnManager.setColumns(a)}getColumns(a){return this.columnManager.getComponents(a)}getColumn(a){var b=this.columnManager.findColumn(a);return b?b.getComponent():(console.warn("Find Error - No matching column found:",a),!1)}getColumnDefinitions(){return this.columnManager.getDefinitionTree()}showColumn(a){var b=this.columnManager.findColumn(a);if(this.initGuard(),!b)return console.warn("Column Show Error - No matching column found:",a),!1;b.show()}hideColumn(a){var b=this.columnManager.findColumn(a);if(this.initGuard(),!b)return console.warn("Column Hide Error - No matching column found:",a),!1;b.hide()}toggleColumn(a){var b=this.columnManager.findColumn(a);if(this.initGuard(),!b)return console.warn("Column Visibility Toggle Error - No matching column found:",a),!1;b.visible?b.hide():b.show()}addColumn(a,b,c){var d=this.columnManager.findColumn(c);return this.initGuard(),this.columnManager.addColumn(a,b,d).then(a=>a.getComponent())}deleteColumn(a){var b=this.columnManager.findColumn(a);return(this.initGuard(),b)?b.delete():(console.warn("Column Delete Error - No matching column found:",a),Promise.reject())}updateColumnDefinition(a,b){var c=this.columnManager.findColumn(a);return(this.initGuard(),c)?c.updateDefinition(b):(console.warn("Column Update Error - No matching column found:",a),Promise.reject())}moveColumn(a,b,c){var d=this.columnManager.findColumn(a),e=this.columnManager.findColumn(b);this.initGuard(),d?e?this.columnManager.moveColumn(d,e,c):console.warn("Move Error - No matching column found:",e):console.warn("Move Error - No matching column found:",a)}scrollToColumn(a,b,c){return new Promise((d,e)=>{var f=this.columnManager.findColumn(a);return f?this.columnManager.scrollToColumn(f,b,c):(console.warn("Scroll Error - No matching column found:",a),Promise.reject("Scroll Error - No matching column found"))})}redraw(a){this.initGuard(),this.columnManager.redraw(a),this.rowManager.redraw(a)}setHeight(a){this.options.height=isNaN(a)?a:a+"px",this.element.style.height=this.options.height,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMaxHeight(a){this.options.maxHeight=isNaN(a)?a:a+"px",this.element.style.maxHeight=this.options.maxHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMinHeight(a){this.options.minHeight=isNaN(a)?a:a+"px",this.element.style.minHeight=this.options.minHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}on(a,b){this.externalEvents.subscribe(a,b)}off(a,b){this.externalEvents.unsubscribe(a,b)}dispatchEvent(){var a=Array.from(arguments);a.shift(),this.externalEvents.dispatch(...arguments)}alert(a,b){this.initGuard(),this.alertManager.alert(a,b)}clearAlert(){this.initGuard(),this.alertManager.clear()}modExists(a,b){return!!this.modules[a]||(b&&console.error("Tabulator Module Not Installed: "+a),!1)}module(a){var b=this.modules[a];return b||console.error("Tabulator module not installed: "+a),b}}class a6 extends a5{static extendModule(){a5.initializeModuleBinder(aG),a5._extendModule(...arguments)}static registerModule(){a5.initializeModuleBinder(aG),a5._registerModule(...arguments)}constructor(a,b,c){super(a,b,aG)}}var a7=a.i(85536);let a8={"action-needed":"Action Needed","in-progress":"In Progress",pending:"Pending",blocked:"Blocked",error:"Error",done:"Done"},a9='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/><circle cx="12" cy="13" r="2"/><path d="M14 13h3"/><path d="M7 13h3"/></svg>';function ba(a){let b="u">typeof document?document.createElement("div"):null;return b?(b.textContent=a,b.innerHTML):a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function bb(a){if(a.getRow().getData()._isGroupHeader)return"";let b=a.getValue(),c=a8[b]??b;return`<span class="status-pill status-pill--${b}"><span class="status-dot"></span>${c}</span>`}function bc(a){if(a.getRow().getData()._isGroupHeader)return"";let b=a.getValue();return b?`<code style="font-size:12px;color:var(--color-muted-foreground,#64748b);font-family:var(--font-mono)">${ba(b)}</code>`:""}function bd(a){return a.getRow().getData()._isGroupHeader?"":ba(a.getValue())}function be(a){if(a.getRow().getData()._isGroupHeader)return"";let b=a.getValue();return`<span style="display:inline-flex;align-items:center;gap:6px">${a9}<span>${ba(b)}</span></span>`}function bf({data:a,className:c,onFeatureClick:e,groupBy:f=null,groupSortDir:g="asc",itemSortField:h="name",itemSortDir:i="asc"}){let j=(0,d.useRef)(null),k=(0,d.useRef)(null),l=(0,d.useRef)(e);l.current=e;let m=(0,d.useCallback)(a=>{l.current?.(a)},[]);return(0,d.useEffect)(()=>{if(!j.current)return;let b=!!f,c=function({onFeatureClick:a,groupBy:b}){let c=!!b;return[{title:"Name",field:"name",widthGrow:3,headerSort:!c,formatter:c?a=>{let c=a.getRow().getData();if(!c._isGroupHeader)return ba(a.getValue());let d=c._groupCount??0,e=1===d?"1 feature":`${d} features`;return`<span style="display:inline-flex;align-items:center;gap:8px;font-weight:600">${"repositoryName"===b?a9:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/><path d="m22.54 12.43-1.42-.65-8.28 3.78a2 2 0 0 1-1.66 0l-8.28-3.78-1.42.65a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/></svg>'}<span>${ba(c.name)}</span><span style="font-weight:400;color:var(--color-muted-foreground,#64748b);font-size:12px">${e}</span></span>`}:a=>ba(a.getValue()),...a?{cellClick:(b,c)=>{let d=c.getRow().getData();d._isGroupHeader||a(d.id)},cssClass:"cursor-pointer"}:{}},"repositoryName"!==b?{title:"Repository",field:"repositoryName",widthGrow:2,headerSort:!c,formatter:be}:null,"status"!==b?{title:"Status",field:"status",widthGrow:1.5,headerSort:!c,formatter:bb}:null,"lifecycle"!==b?{title:"Lifecycle",field:"lifecycle",widthGrow:1.5,headerSort:!c,formatter:bd}:null,{title:"Branch",field:"branch",widthGrow:2,headerSort:!c,formatter:bc}].filter(Boolean)}({onFeatureClick:m,groupBy:f}),d=b?function(a,b,c,d,e){let f=new Map;for(let c of a){let a=c[b]||"Unknown";f.has(a)||f.set(a,[]),f.get(a).push(c)}let g=a=>[...a].sort((a,b)=>{let c=String(a[d]??"").toLowerCase(),f=String(b[d]??"").toLowerCase(),g=c.localeCompare(f);return"asc"===e?g:-g}),h=[];for(let[a,c]of f){let d=g(c);h.push({id:`group-${b}-${a}`,name:"status"===b?a8[a]??a:a,status:"pending",lifecycle:"",branch:"",repositoryName:"",_isGroupHeader:!0,_groupCount:c.length,_children:d})}return h.sort((a,b)=>{let d=a.name.localeCompare(b.name);return"asc"===c?d:-d}),h}(a,f,g,h,i):a,e=new a6(j.current,{data:d,columns:c,layout:"fitColumns",height:"100%",placeholder:"No features found",...b?{dataTree:!0,dataTreeStartExpanded:!0,rowFormatter:a=>{a.getData()._isGroupHeader&&a.getElement().classList.add("tabulator-row-repo-group")}}:{initialSort:[{column:"repositoryName",dir:"asc"}]}});return k.current=e,()=>{e.destroy(),k.current=null}},[a,m,f,g,h,i]),(0,b.jsx)("div",{"data-testid":"feature-tree-table",className:(0,a7.cn)("h-full w-full",c),ref:j})}a.i(55135);var bg=a.i(75550);a.i(38702);var bh=a.i(16223),bi=a.i(90920),bj=a.i(18948),bk=a.i(58339),bl=a.i(59175);let bm={"action-needed":"Action Needed","in-progress":"In Progress",pending:"Pending",blocked:"Blocked",error:"Error",done:"Done"},bn={"action-needed":"bg-amber-500/15 text-amber-700 dark:text-amber-400 border-amber-500/20","in-progress":"bg-blue-500/15 text-blue-700 dark:text-blue-400 border-blue-500/20",pending:"bg-slate-500/15 text-slate-700 dark:text-slate-400 border-slate-500/20",blocked:"bg-gray-500/15 text-gray-700 dark:text-gray-400 border-gray-500/20",error:"bg-red-500/15 text-red-700 dark:text-red-400 border-red-500/20",done:"bg-emerald-500/15 text-emerald-700 dark:text-emerald-400 border-emerald-500/20"},bo={repositoryName:"Repository",status:"Status",lifecycle:"Lifecycle"},bp=[{value:"__none__",label:"No grouping"},{value:"repositoryName",label:"Repository"},{value:"status",label:"Status"},{value:"lifecycle",label:"Lifecycle"}];function bq(a){let b=[{value:"name",label:"Name"},{value:"repositoryName",label:"Repository"},{value:"status",label:"Status"},{value:"lifecycle",label:"Lifecycle"},{value:"branch",label:"Branch"}];return a?b.filter(b=>b.value!==a):b}function br(a){return"Archived"===a.lifecycle}function bs({features:a,repos:f}){let m=(0,c.useRouter)(),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useState)("active"),[t,u]=(0,d.useState)(null),[v,w]=(0,d.useState)(!1),[x,y]=(0,d.useState)("repositoryName"),[z,A]=(0,d.useState)("asc"),[B,C]=(0,d.useState)("name"),[D,E]=(0,d.useState)("asc"),F=(0,d.useCallback)(a=>{m.push(`/feature/${a}/overview`)},[m]),G=(0,d.useMemo)(()=>{let b={"action-needed":0,"in-progress":0,pending:0,blocked:0,error:0,done:0};for(let c of a)b[c.status]++;return b},[a]),H=(0,d.useMemo)(()=>{let b=new Set;for(let c of a)b.add(c.repositoryName);return Array.from(b).sort()},[a]),I=(0,d.useMemo)(()=>{let b=n.toLowerCase();return a.filter(a=>{if("active"===r&&br(a)||"archived"===r&&!br(a)||p&&a.status!==p||t&&a.repositoryName!==t)return!1;if(b){let c=a.name.toLowerCase().includes(b),d=a.branch.toLowerCase().includes(b),e=a.repositoryName.toLowerCase().includes(b);if(!c&&!d&&!e)return!1}return!0})},[a,n,p,r,t]),J=""!==n||null!==p||"active"!==r||null!==t,K=()=>{o(""),q(null),s("active"),u(null)},L=(0,d.useMemo)(()=>a.filter(br).length,[a]),M=a.length-L,N=(0,d.useMemo)(()=>bq(x),[x]);return(0,b.jsxs)("div",{"data-testid":"feature-tree-page",className:"flex h-full flex-col gap-4",children:[(0,b.jsx)(bg.PageHeader,{title:"Inventory",description:"All repositories and features"}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(e.Search,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,b.jsx)(bi.Input,{placeholder:"Search by name, branch, or repository...",value:n,onChange:a=>o(a.target.value),className:"ps-9"}),n?(0,b.jsx)("button",{onClick:()=>o(""),className:"text-muted-foreground hover:text-foreground absolute top-1/2 right-3 -translate-y-1/2",children:(0,b.jsx)(j.X,{className:"size-4"})}):null]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium whitespace-nowrap",children:"Group by:"}),(0,b.jsxs)(bl.Select,{value:x??"__none__",onValueChange:a=>{let b="__none__"===a?null:a;y(b),b&&B===b&&C("name")},children:[(0,b.jsx)(bl.SelectTrigger,{className:"w-[150px]",children:(0,b.jsx)(bl.SelectValue,{})}),(0,b.jsx)(bl.SelectContent,{children:bp.map(a=>(0,b.jsx)(bl.SelectItem,{value:a.value,children:a.label},a.value))})]})]}),(0,b.jsxs)(bj.Button,{variant:v?"secondary":"outline",size:"sm",onClick:()=>w(a=>!a),className:"shrink-0",children:[(0,b.jsx)(g,{className:"mr-1.5 size-3.5"}),"Filters"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center rounded-md border",children:[(0,b.jsxs)("button",{onClick:()=>s("active"),className:`flex items-center gap-1.5 rounded-l-md px-3 py-1.5 text-xs font-medium transition-colors ${"active"===r?"bg-primary text-primary-foreground":"hover:bg-muted"}`,children:[(0,b.jsx)(i,{className:"size-3.5"}),"Active",(0,b.jsxs)("span",{className:"opacity-70",children:["(",M,")"]})]}),(0,b.jsxs)("button",{onClick:()=>s("archived"),className:`flex items-center gap-1.5 border-x px-3 py-1.5 text-xs font-medium transition-colors ${"archived"===r?"bg-primary text-primary-foreground":"hover:bg-muted"}`,children:[(0,b.jsx)(h.Archive,{className:"size-3.5"}),"Archived",(0,b.jsxs)("span",{className:"opacity-70",children:["(",L,")"]})]}),(0,b.jsx)("button",{onClick:()=>s("all"),className:`rounded-r-md px-3 py-1.5 text-xs font-medium transition-colors ${"all"===r?"bg-primary text-primary-foreground":"hover:bg-muted"}`,children:"All"})]}),(0,b.jsx)("div",{className:"bg-border h-6 w-px"}),(0,b.jsx)("button",{onClick:()=>q(null),className:`rounded-full px-2.5 py-1 text-xs font-medium transition-colors ${null===p?"bg-foreground text-background":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:"All Status"}),Object.entries(bm).map(([a,c])=>{let d=G[a];return 0===d?null:(0,b.jsxs)("button",{onClick:()=>q(p===a?null:a),className:`rounded-full px-2.5 py-1 text-xs font-medium transition-colors ${p===a?bn[a]:"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:[c,(0,b.jsx)("span",{className:"ml-1 opacity-70",children:d})]},a)}),J?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"bg-border h-6 w-px"}),(0,b.jsxs)(bj.Button,{variant:"ghost",size:"sm",onClick:K,className:"h-7 text-xs",children:[(0,b.jsx)(j.X,{className:"mr-1 size-3"}),"Clear"]})]}):null]}),x?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:bo[x]}),(0,b.jsxs)(bj.Button,{variant:"outline",size:"sm",className:"h-7 gap-1 text-xs",onClick:()=>A(a=>"asc"===a?"desc":"asc"),children:["asc"===z?(0,b.jsx)(k,{className:"size-3.5"}):(0,b.jsx)(l,{className:"size-3.5"}),"asc"===z?"A-Z":"Z-A"]})]}),(0,b.jsx)("div",{className:"bg-border h-5 w-px"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Sort by"}),(0,b.jsxs)(bl.Select,{value:B,onValueChange:C,children:[(0,b.jsx)(bl.SelectTrigger,{className:"h-7 w-[120px] text-xs",children:(0,b.jsx)(bl.SelectValue,{})}),(0,b.jsx)(bl.SelectContent,{children:N.map(a=>(0,b.jsx)(bl.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsxs)(bj.Button,{variant:"outline",size:"sm",className:"h-7 gap-1 text-xs",onClick:()=>E(a=>"asc"===a?"desc":"asc"),children:["asc"===D?(0,b.jsx)(k,{className:"size-3.5"}):(0,b.jsx)(l,{className:"size-3.5"}),"asc"===D?"A-Z":"Z-A"]})]})]}):null,v?(0,b.jsx)("div",{className:"bg-muted/50 flex flex-wrap items-center gap-3 rounded-lg border p-3",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Repository"}),(0,b.jsxs)(bl.Select,{value:t??"__all__",onValueChange:a=>u("__all__"===a?null:a),children:[(0,b.jsx)(bl.SelectTrigger,{className:"h-8 w-[200px] text-xs",children:(0,b.jsx)(bl.SelectValue,{placeholder:"All repositories"})}),(0,b.jsxs)(bl.SelectContent,{children:[(0,b.jsx)(bl.SelectItem,{value:"__all__",children:"All repositories"}),H.map(a=>(0,b.jsx)(bl.SelectItem,{value:a,children:a},a))]})]})]})}):null]}),(0,b.jsxs)("div",{className:"text-muted-foreground flex items-center gap-2 text-xs",children:[(0,b.jsxs)("span",{children:[I.length," feature",1!==I.length?"s":""]}),J?(0,b.jsx)(bk.Badge,{variant:"secondary",className:"text-xs",children:"filtered"}):null]}),(0,b.jsx)("div",{className:"min-h-0 flex-1",children:I.length>0?(0,b.jsx)(bf,{data:I,repos:f,onFeatureClick:F,groupBy:x,groupSortDir:z,itemSortField:B,itemSortDir:D}):(0,b.jsx)(bh.EmptyState,{icon:(0,b.jsx)(e.Search,{className:"size-10"}),title:"No matching features",description:J?"No features match your current filters. Try adjusting your search or filters.":"No features found in any repository.",action:J?(0,b.jsx)(bj.Button,{variant:"outline",onClick:K,children:"Clear all filters"}):void 0})})]})}a.s(["FeatureTreePageClient",()=>bs,"getItemSortOptions",()=>bq,"isArchived",()=>br],71185)}];
8
+ </svg>`,a.getElement().classList.add("tabulator-row-handle"),d.addEventListener("click",function(b){b.stopImmediatePropagation(),f(!e.open),a.getTable().rowManager.adjustTableSize()}),f(e.open),d}}}},au={format:{formatters:{rowSelection:function(a,b,c){var d=document.createElement("input"),e=!1;if(d.type="checkbox",d.setAttribute("aria-label","Select Row"),this.table.modExists("selectRow",!0))if(d.addEventListener("click",a=>{a.stopPropagation()}),"function"==typeof a.getRow){var f=a.getRow();f instanceof H?(d.addEventListener("change",a=>{"click"===this.table.options.selectableRowsRangeMode&&e?e=!1:f.toggleSelect()}),"click"===this.table.options.selectableRowsRangeMode&&d.addEventListener("click",a=>{e=!0,this.table.modules.selectRow.handleComplexRowClick(f._row,a)}),d.checked=f.isSelected&&f.isSelected(),this.table.modules.selectRow.registerRowSelectCheckbox(f,d)):d=""}else d.addEventListener("change",a=>{this.table.modules.selectRow.selectedRows.length?this.table.deselectRow():this.table.selectRow(b.rowRange)}),this.table.modules.selectRow.registerHeaderSelectCheckbox(d);return d}}}};class av{constructor(a){return this._range=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._range.table.componentFunctionBinder.handle("range",a._range,b)}})}getElement(){return this._range.element}getData(){return this._range.getData()}getCells(){return this._range.getCells(!0,!0)}getStructuredCells(){return this._range.getStructuredCells()}getRows(){return this._range.getRows().map(a=>a.getComponent())}getColumns(){return this._range.getColumns().map(a=>a.getComponent())}getBounds(){return this._range.getBounds()}getTopEdge(){return this._range.top}getBottomEdge(){return this._range.bottom}getLeftEdge(){return this._range.left}getRightEdge(){return this._range.right}setBounds(a,b){this._range.destroyedGuard("setBounds")&&this._range.setBounds(a?a._cell:a,b?b._cell:b)}setStartBound(a){this._range.destroyedGuard("setStartBound")&&(this._range.setEndBound(a?a._cell:a),this._range.rangeManager.layoutElement())}setEndBound(a){this._range.destroyedGuard("setEndBound")&&(this._range.setEndBound(a?a._cell:a),this._range.rangeManager.layoutElement())}clearValues(){this._range.destroyedGuard("clearValues")&&this._range.clearValues()}remove(){this._range.destroyedGuard("remove")&&this._range.destroy(!0)}}class aw extends m{constructor(a,b,c,d){super(a),this.rangeManager=b,this.element=null,this.initialized=!1,this.initializing={start:!1,end:!1},this.destroyed=!1,this.top=0,this.bottom=0,this.left=0,this.right=0,this.table=a,this.start={row:void 0,col:void 0},this.end={row:void 0,col:void 0},this.rangeManager.rowHeader&&(this.left=1,this.right=1,this.start.col=1,this.end.col=1),this.initElement(),setTimeout(()=>{this.initBounds(c,d)})}initElement(){this.element=document.createElement("div"),this.element.classList.add("tabulator-range")}initBounds(a,b){this._updateMinMax(),a&&this.setBounds(a,b||a)}setStart(a,b){(this.start.row!==a||this.start.col!==b)&&(this.start.row=a,this.start.col=b,this.initializing.start=!0,this._updateMinMax())}setEnd(a,b){(this.end.row!==a||this.end.col!==b)&&(this.end.row=a,this.end.col=b,this.initializing.end=!0,this._updateMinMax())}setBounds(a,b,c){a&&this.setStartBound(a),this.setEndBound(b||a),this.rangeManager.layoutElement(c)}setStartBound(a){var b,c;"column"===a.type?this.rangeManager.columnSelection&&this.setStart(0,a.getPosition()-1):(b=a.row.position-1,c=a.column.getPosition()-1,a.column===this.rangeManager.rowHeader?this.setStart(b,1):this.setStart(b,c))}setEndBound(a){var b,c,d,e=this._getTableRows().length;"column"===a.type?this.rangeManager.columnSelection&&("column"===this.rangeManager.selecting?this.setEnd(e-1,a.getPosition()-1):"cell"===this.rangeManager.selecting&&this.setEnd(0,a.getPosition()-1)):(b=a.row.position-1,c=a.column.getPosition()-1,d=a.column===this.rangeManager.rowHeader,"row"===this.rangeManager.selecting?this.setEnd(b,this._getTableColumns().length-1):"row"!==this.rangeManager.selecting&&d?this.setEnd(b,0):"column"===this.rangeManager.selecting?this.setEnd(e-1,c):this.setEnd(b,c))}_updateMinMax(){this.top=Math.min(this.start.row,this.end.row),this.bottom=Math.max(this.start.row,this.end.row),this.left=Math.min(this.start.col,this.end.col),this.right=Math.max(this.start.col,this.end.col),this.initialized?this.dispatchExternal("rangeChanged",this.getComponent()):this.initializing.start&&this.initializing.end&&(this.initialized=!0,this.dispatchExternal("rangeAdded",this.getComponent()))}_getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}_getTableRows(){return this.table.rowManager.getDisplayRows().filter(a=>"row"===a.type)}layout(){var a,b,c,d,e,f,g,h,i,j,k=this.table.rowManager.renderer.vDomTop,l=this.table.rowManager.renderer.vDomBottom,m=this.table.columnManager.renderer.leftCol,n=this.table.columnManager.renderer.rightCol;"virtual"===this.table.options.renderHorizontal&&this.rangeManager.rowHeader&&(n+=1),null==k&&(k=0),null==l&&(l=1/0),null==m&&(m=0),null==n&&(n=1/0),this.overlaps(m,k,n,l)&&(a=Math.max(this.top,k),b=Math.min(this.bottom,l),c=Math.max(this.left,m),d=Math.min(this.right,n),e=this.rangeManager.getCell(a,c),f=this.rangeManager.getCell(b,d),g=e.getElement(),h=f.getElement(),i=e.row.getElement(),j=f.row.getElement(),this.element.classList.add("tabulator-range-active"),this.table.rtl?(this.element.style.right=i.offsetWidth-g.offsetLeft-g.offsetWidth+"px",this.element.style.width=g.offsetLeft+g.offsetWidth-h.offsetLeft+"px"):(this.element.style.left=i.offsetLeft+g.offsetLeft+"px",this.element.style.width=h.offsetLeft+h.offsetWidth-g.offsetLeft+"px"),this.element.style.top=i.offsetTop+"px",this.element.style.height=j.offsetTop+j.offsetHeight-i.offsetTop+"px")}atTopLeft(a){return a.row.position-1===this.top&&a.column.getPosition()-1===this.left}atBottomRight(a){return a.row.position-1===this.bottom&&a.column.getPosition()-1===this.right}occupies(a){return this.occupiesRow(a.row)&&this.occupiesColumn(a.column)}occupiesRow(a){return this.top<=a.position-1&&a.position-1<=this.bottom}occupiesColumn(a){return this.left<=a.getPosition()-1&&a.getPosition()-1<=this.right}overlaps(a,b,c,d){return!(this.left>c)&&!(a>this.right)&&!(this.top>d)&&!(b>this.bottom)}getData(){var a=[],b=this.getRows(),c=this.getColumns();return b.forEach(b=>{var d=b.getData(),e={};c.forEach(a=>{e[a.field]=d[a.field]}),a.push(e)}),a}getCells(a,b){var c=[],d=this.getRows(),e=this.getColumns();return a?c=d.map(a=>{var c=[];return a.getCells().forEach(a=>{e.includes(a.column)&&c.push(b?a.getComponent():a)}),c}):d.forEach(a=>{a.getCells().forEach(a=>{e.includes(a.column)&&c.push(b?a.getComponent():a)})}),c}getStructuredCells(){return this.getCells(!0,!0)}getRows(){return this._getTableRows().slice(this.top,this.bottom+1)}getColumns(){return this._getTableColumns().slice(this.left,this.right+1)}clearValues(){var a=this.getCells(),b=this.table.options.selectableRangeClearCellsValue;this.table.blockRedraw(),a.forEach(a=>{a.setValue(b)}),this.table.restoreRedraw()}getBounds(a){var b=this.getCells(!1,a),c={start:null,end:null};return b.length?(c.start=b[0],c.end=b[b.length-1]):console.warn("No bounds defined on range"),c}getComponent(){return this.component||(this.component=new av(this)),this.component}destroy(a){this.destroyed=!0,this.element.remove(),a&&this.rangeManager.rangeRemoved(this),this.initialized&&this.dispatchExternal("rangeRemoved",this.getComponent())}destroyedGuard(a){return this.destroyed&&console.warn("You cannot call the "+a+" function on a destroyed range"),!this.destroyed}}var ax={keybindings:{bindings:{rangeJumpUp:["ctrl + 38","meta + 38"],rangeJumpDown:["ctrl + 40","meta + 40"],rangeJumpLeft:["ctrl + 37","meta + 37"],rangeJumpRight:["ctrl + 39","meta + 39"],rangeExpandUp:"shift + 38",rangeExpandDown:"shift + 40",rangeExpandLeft:"shift + 37",rangeExpandRight:"shift + 39",rangeExpandJumpUp:["ctrl + shift + 38","meta + shift + 38"],rangeExpandJumpDown:["ctrl + shift + 40","meta + shift + 40"],rangeExpandJumpLeft:["ctrl + shift + 37","meta + shift + 37"],rangeExpandJumpRight:["ctrl + shift + 39","meta + shift + 39"]},actions:{rangeJumpLeft:function(a){this.dispatch("keybinding-nav-range",a,"left",!0,!1)},rangeJumpRight:function(a){this.dispatch("keybinding-nav-range",a,"right",!0,!1)},rangeJumpUp:function(a){this.dispatch("keybinding-nav-range",a,"up",!0,!1)},rangeJumpDown:function(a){this.dispatch("keybinding-nav-range",a,"down",!0,!1)},rangeExpandLeft:function(a){this.dispatch("keybinding-nav-range",a,"left",!1,!0)},rangeExpandRight:function(a){this.dispatch("keybinding-nav-range",a,"right",!1,!0)},rangeExpandUp:function(a){this.dispatch("keybinding-nav-range",a,"up",!1,!0)},rangeExpandDown:function(a){this.dispatch("keybinding-nav-range",a,"down",!1,!0)},rangeExpandJumpLeft:function(a){this.dispatch("keybinding-nav-range",a,"left",!0,!0)},rangeExpandJumpRight:function(a){this.dispatch("keybinding-nav-range",a,"right",!0,!0)},rangeExpandJumpUp:function(a){this.dispatch("keybinding-nav-range",a,"up",!0,!0)},rangeExpandJumpDown:function(a){this.dispatch("keybinding-nav-range",a,"down",!0,!0)}}},clipboard:{pasteActions:{range:function(a){var b,c,d,e,f,g=[],h=this.table.modules.selectRange.activeRange,i=!1;return f=a.length,h&&(c=(b=h.getBounds()).start,b.start===b.end&&(i=!0),c&&(d=(g=this.table.rowManager.activeRows.slice()).indexOf(c.row),e=i?a.length:g.indexOf(b.end.row)-d+1,d>-1&&(this.table.blockRedraw(),(g=g.slice(d,d+e)).forEach((b,c)=>{b.updateData(a[c%f])}),this.table.restoreRedraw()))),g}},pasteParsers:{range:function(a){var b,c,d,e,f,g=[],h=[],i=this.table.modules.selectRange.activeRange,j=!1;return!!(i&&(c=(b=i.getBounds()).start,b.start===b.end&&(j=!0),c&&((a=a.split("\n")).forEach(function(a){g.push(a.split(" "))}),g.length))&&(f=(e=this.table.columnManager.getVisibleColumnsByIndex()).indexOf(c.column))>-1)&&(d=j?g[0].length:e.indexOf(b.end.column)-f+1,e=e.slice(f,f+d),g.forEach(a=>{var b={},c=a.length;e.forEach(function(d,e){b[d.field]=a[e%c]}),h.push(b)}),h)}}},export:{columnLookups:{range:function(){var a=this.modules.selectRange.selectedColumns();return this.columnManager.rowHeader&&a.unshift(this.columnManager.rowHeader),a}},rowLookups:{range:function(){return this.modules.selectRange.selectedRows()}}}};function ay(a,b,c,d,e,f,g){var h=this.table.dependencyRegistry.lookup(["luxon","DateTime"],"DateTime"),i=g.format||"dd/MM/yyyy HH:mm:ss",j=g.alignEmptyValues,k=0;if(void 0!==h){if(h.isDateTime(a)||(a="iso"===i?h.fromISO(String(a)):h.fromFormat(String(a),i)),h.isDateTime(b)||(b="iso"===i?h.fromISO(String(b)):h.fromFormat(String(b),i)),a.isValid)if(b.isValid)return a-b;else k=1;else k=b.isValid?-1:0;return("top"===j&&"desc"===f||"bottom"===j&&"asc"===f)&&(k*=-1),k}console.error("Sort Error - 'datetime' sorter is dependant on luxon.js")}var az={number:function(a,b,c,d,e,f,g){var h=g.alignEmptyValues,i=g.decimalSeparator,j=g.thousandSeparator,k=0;if(a=String(a),b=String(b),j&&(a=a.split(j).join(""),b=b.split(j).join("")),i&&(a=a.split(i).join("."),b=b.split(i).join(".")),a=parseFloat(a),b=parseFloat(b),isNaN(a))k=isNaN(b)?0:-1;else{if(!isNaN(b))return a-b;k=1}return("top"===h&&"desc"===f||"bottom"===h&&"asc"===f)&&(k*=-1),k},string:function(a,b,c,d,e,f,g){var h,i=g.alignEmptyValues,j=0;if(a)if(b){switch(typeof g.locale){case"boolean":g.locale&&(h=this.langLocale());break;case"string":h=g.locale}return String(a).toLowerCase().localeCompare(String(b).toLowerCase(),h)}else j=1;else j=b?-1:0;return("top"===i&&"desc"===f||"bottom"===i&&"asc"===f)&&(j*=-1),j},date:function(a,b,c,d,e,f,g){return g.format||(g.format="dd/MM/yyyy"),ay.call(this,a,b,c,d,e,f,g)},time:function(a,b,c,d,e,f,g){return g.format||(g.format="HH:mm"),ay.call(this,a,b,c,d,e,f,g)},datetime:ay,boolean:function(a,b,c,d,e,f,g){return(!0===a||"true"===a||"True"===a||1===a)-(!0===b||"true"===b||"True"===b||1===b)},array:function(a,b,c,d,e,f,g){var h,i=g.type||"length",j=g.alignEmptyValues,k=0,l=this.table;function m(a){var b;switch(h&&(a=h(a)),i){case"length":b=a.length;break;case"sum":b=a.reduce(function(a,b){return a+b});break;case"max":b=Math.max.apply(null,a);break;case"min":b=Math.min.apply(null,a);break;case"avg":b=a.reduce(function(a,b){return a+b})/a.length;break;case"string":b=a.join("")}return b}if(g.valueMap&&(h="string"==typeof g.valueMap?function(a){return a.map(a=>n.retrieveNestedData(l.options.nestedFieldSeparator,g.valueMap,a))}:g.valueMap),Array.isArray(a))if(Array.isArray(b))if("string"===i)return String(m(a)).toLowerCase().localeCompare(String(m(b)).toLowerCase());else return m(b)-m(a);else k=1;else k=Array.isArray(b)?-1:0;return("top"===j&&"desc"===f||"bottom"===j&&"asc"===f)&&(k*=-1),k},exists:function(a,b,c,d,e,f,g){return(void 0!==a)-(void 0!==b)},alphanum:function(a,b,c,d,e,f,g){var h,i,j,k,l,m=0,n=/(\d+)|(\D+)/g,o=/\d/,p=g.alignEmptyValues,q=0;if(a||0===a)if(b||0===b){if(isFinite(a)&&isFinite(b))return a-b;if((h=String(a).toLowerCase())===(i=String(b).toLowerCase()))return 0;if(!(o.test(h)&&o.test(i)))return h>i?1:-1;for(h=h.match(n),i=i.match(n),l=h.length>i.length?i.length:h.length;m<l;)if((j=h[m])!==(k=i[m++]))if(isFinite(j)&&isFinite(k))return"0"===j.charAt(0)&&(j="."+j),"0"===k.charAt(0)&&(k="."+k),j-k;else return j>k?1:-1;return h.length>i.length}else q=1;else q=b||0===b?-1:0;return("top"===p&&"desc"===f||"bottom"===p&&"asc"===f)&&(q*=-1),q}};class aA extends p{static moduleName="sort";static sorters=az;constructor(a){super(a),this.sortList=[],this.changed=!1,this.registerTableOption("sortMode","local"),this.registerTableOption("initialSort",!1),this.registerTableOption("columnHeaderSortMulti",!0),this.registerTableOption("sortOrderReverse",!1),this.registerTableOption("headerSortElement","<div class='tabulator-arrow'></div>"),this.registerTableOption("headerSortClickElement","header"),this.registerColumnOption("sorter"),this.registerColumnOption("sorterParams"),this.registerColumnOption("headerSort",!0),this.registerColumnOption("headerSortStartingDir"),this.registerColumnOption("headerSortTristate")}initialize(){this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("table-built",this.tableBuilt.bind(this)),this.registerDataHandler(this.sort.bind(this),20),this.registerTableFunction("setSort",this.userSetSort.bind(this)),this.registerTableFunction("getSorters",this.getSort.bind(this)),this.registerTableFunction("clearSort",this.clearSort.bind(this)),"remote"===this.table.options.sortMode&&this.subscribe("data-params",this.remoteSortParams.bind(this))}tableBuilt(){this.table.options.initialSort&&this.setSort(this.table.options.initialSort)}remoteSortParams(a,b,c,d){var e=this.getSort();return e.forEach(a=>{delete a.column}),d.sort=e,d}userSetSort(a,b){this.setSort(a,b),this.refreshSort()}clearSort(){this.clear(),this.refreshSort()}initializeColumn(a){var b,c,d=!1;switch(typeof a.definition.sorter){case"string":aA.sorters[a.definition.sorter]?d=aA.sorters[a.definition.sorter]:console.warn("Sort Error - No such sorter found: ",a.definition.sorter);break;case"function":d=a.definition.sorter}if(a.modules.sort={sorter:d,dir:"none",params:a.definition.sorterParams||{},startingDir:a.definition.headerSortStartingDir||"asc",tristate:a.definition.headerSortTristate},!1!==a.definition.headerSort){switch(((b=a.getElement()).classList.add("tabulator-sortable"),(c=document.createElement("div")).classList.add("tabulator-col-sorter"),this.table.options.headerSortClickElement==="icon")?c.classList.add("tabulator-col-sorter-element"):b.classList.add("tabulator-col-sorter-element"),this.table.options.headerSortElement){case"function":break;case"object":c.appendChild(this.table.options.headerSortElement);break;default:c.innerHTML=this.table.options.headerSortElement}a.titleHolderElement.appendChild(c),a.modules.sort.element=c,this.setColumnHeaderSortIcon(a,"none"),"icon"===this.table.options.headerSortClickElement&&c.addEventListener("mousedown",a=>{a.stopPropagation()}),("icon"===this.table.options.headerSortClickElement?c:b).addEventListener("click",b=>{var c="",d=[],e=!1;if(a.modules.sort){if(a.modules.sort.tristate)c="none"==a.modules.sort.dir?a.modules.sort.startingDir:a.modules.sort.dir==a.modules.sort.startingDir?"asc"==a.modules.sort.dir?"desc":"asc":"none";else switch(a.modules.sort.dir){case"asc":c="desc";break;case"desc":c="asc";break;default:c=a.modules.sort.startingDir}this.table.options.columnHeaderSortMulti&&(b.shiftKey||b.ctrlKey)?((e=(d=this.getSort()).findIndex(b=>b.field===a.getField()))>-1?(d[e].dir=c,e=d.splice(e,1)[0],"none"!=c&&d.push(e)):"none"!=c&&d.push({column:a,dir:c}),this.setSort(d)):"none"==c?this.clear():this.setSort(a,c),this.refreshSort()}})}}refreshSort(){"remote"===this.table.options.sortMode?this.reloadData(null,!1,!1):this.refreshData(!0)}hasChanged(){var a=this.changed;return this.changed=!1,a}getSort(){var a=[];return this.sortList.forEach(function(b){b.column&&a.push({column:b.column.getComponent(),field:b.column.getField(),dir:b.dir})}),a}setSort(a,b){var c=this,d=[];Array.isArray(a)||(a=[{column:a,dir:b}]),a.forEach(function(a){var b;(b=c.table.columnManager.findColumn(a.column))?(a.column=b,d.push(a),c.changed=!0):console.warn("Sort Warning - Sort field does not exist and is being ignored: ",a.column)}),c.sortList=d,this.dispatch("sort-changed")}clear(){this.setSort([])}findSorter(a){var b,c=this.table.rowManager.activeRows[0],d="string";if(c&&(c=c.getData(),a.getField()))switch(typeof(b=a.getFieldValue(c))){case"undefined":d="string";break;case"boolean":d="boolean";break;default:isNaN(b)||""===b?b.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)&&(d="alphanum"):d="number"}return aA.sorters[d]}sort(a,b){var c=this,d=this.table.options.sortOrderReverse?c.sortList.slice().reverse():c.sortList,e=[],f=[];return this.subscribedExternal("dataSorting")&&this.dispatchExternal("dataSorting",c.getSort()),b||c.clearColumnHeaders(),"remote"!==this.table.options.sortMode?(d.forEach(function(a,d){var f;a.column&&((f=a.column.modules.sort)&&(f.sorter||(f.sorter=c.findSorter(a.column)),a.params="function"==typeof f.params?f.params(a.column.getComponent(),a.dir):f.params,e.push(a)),b||c.setColumnHeader(a.column,a.dir))}),e.length&&c._sortItems(a,e)):b||d.forEach(function(a,b){c.setColumnHeader(a.column,a.dir)}),this.subscribedExternal("dataSorted")&&(a.forEach(a=>{f.push(a.getComponent())}),this.dispatchExternal("dataSorted",c.getSort(),f)),a}clearColumnHeaders(){this.table.columnManager.getRealColumns().forEach(a=>{a.modules.sort&&(a.modules.sort.dir="none",a.getElement().setAttribute("aria-sort","none"),this.setColumnHeaderSortIcon(a,"none"))})}setColumnHeader(a,b){a.modules.sort.dir=b,a.getElement().setAttribute("aria-sort","asc"===b?"ascending":"descending"),this.setColumnHeaderSortIcon(a,b)}setColumnHeaderSortIcon(a,b){var c,d=a.modules.sort.element;if(a.definition.headerSort&&"function"==typeof this.table.options.headerSortElement){for(;d.firstChild;)d.removeChild(d.firstChild);"object"==typeof(c=this.table.options.headerSortElement.call(this.table,a.getComponent(),b))?d.appendChild(c):d.innerHTML=c}}_sortItems(a,b){var c=b.length-1;a.sort((a,d)=>{for(var e,f=c;f>=0;f--){let c=b[f];if(0!==(e=this._sortRow(a,d,c.column,c.dir,c.params)))break}return e})}_sortRow(a,b,c,d,e){var f,g,h="asc"==d?a:b,i="asc"==d?b:a;return a=c.getFieldValue(h.getData()),b=c.getFieldValue(i.getData()),a=void 0!==a?a:"",b=void 0!==b?b:"",f=h.getComponent(),g=i.getComponent(),c.modules.sort.sorter.call(this,a,b,f,g,c.getComponent(),d,e)}}class aB{constructor(a,b){this.columnCount=a,this.rowCount=b,this.columnString=[],this.columns=[],this.rows=[]}genColumns(a){var b=Math.max(this.columnCount,Math.max(...a.map(a=>a.length)));this.columnString=[],this.columns=[];for(let a=1;a<=b;a++)this.incrementChar(this.columnString.length-1),this.columns.push(this.columnString.join(""));return this.columns}genRows(a){var b=Math.max(this.rowCount,a.length);this.rows=[];for(let a=1;a<=b;a++)this.rows.push(a);return this.rows}incrementChar(a){let b=this.columnString[a];b?"Z"!==b?this.columnString[a]=String.fromCharCode(this.columnString[a].charCodeAt(0)+1):(this.columnString[a]="A",a?this.incrementChar(a-1):this.columnString.push("A")):this.columnString.push("A")}setRowCount(a){this.rowCount=a}setColumnCount(a){this.columnCount=a}}class aC{constructor(a){return this._sheet=a,new Proxy(this,{get:function(a,b,c){return void 0!==a[b]?a[b]:a._sheet.table.componentFunctionBinder.handle("sheet",a._sheet,b)}})}getTitle(){return this._sheet.title}getKey(){return this._sheet.key}getDefinition(){return this._sheet.getDefinition()}getData(){return this._sheet.getData()}setData(a){return this._sheet.setData(a)}clear(){return this._sheet.clear()}remove(){return this._sheet.remove()}active(){return this._sheet.active()}setTitle(a){return this._sheet.setTitle(a)}setRows(a){return this._sheet.setRows(a)}setColumns(a){return this._sheet.setColumns(a)}}class aD extends m{constructor(a,b){super(a.table),this.spreadsheetManager=a,this.definition=b,this.title=this.definition.title||"",this.key=this.definition.key||this.definition.title,this.rowCount=this.definition.rows,this.columnCount=this.definition.columns,this.data=this.definition.data||[],this.element=null,this.isActive=!1,this.grid=new aB(this.columnCount,this.rowCount),this.defaultColumnDefinition={width:100,headerHozAlign:"center",headerSort:!1},this.columnDefinition=Object.assign(this.defaultColumnDefinition,this.options("spreadsheetColumnDefinition")),this.columnDefs=[],this.rowDefs=[],this.columnFields=[],this.columns=[],this.rows=[],this.scrollTop=null,this.scrollLeft=null,this.initialize(),this.dispatchExternal("sheetAdded",this.getComponent())}initialize(){this.initializeElement(),this.initializeColumns(),this.initializeRows()}reinitialize(){this.initializeColumns(),this.initializeRows()}initializeElement(){this.element=document.createElement("div"),this.element.classList.add("tabulator-spreadsheet-tab"),this.element.innerText=this.title,this.element.addEventListener("click",()=>{this.spreadsheetManager.loadSheet(this)})}initializeColumns(){this.grid.setColumnCount(this.columnCount),this.columnFields=this.grid.genColumns(this.data),this.columnDefs=[],this.columnFields.forEach(a=>{var b=Object.assign({},this.columnDefinition);b.field=a,b.title=a,this.columnDefs.push(b)})}initializeRows(){var a;this.grid.setRowCount(this.rowCount),a=this.grid.genRows(this.data),this.rowDefs=[],a.forEach((a,b)=>{var c={_id:a},d=this.data[b];d&&d.forEach((a,b)=>{var d=this.columnFields[b];d&&(c[d]=a)}),this.rowDefs.push(c)})}unload(){this.isActive=!1,this.scrollTop=this.table.rowManager.scrollTop,this.scrollLeft=this.table.rowManager.scrollLeft,this.data=this.getData(!0),this.element.classList.remove("tabulator-spreadsheet-tab-active")}load(){var a=!this.isActive;this.isActive=!0,this.table.blockRedraw(),this.table.setData([]),this.table.setColumns(this.columnDefs),this.table.setData(this.rowDefs),this.table.restoreRedraw(),a&&null!==this.scrollTop&&(this.table.rowManager.element.scrollLeft=this.scrollLeft,this.table.rowManager.element.scrollTop=this.scrollTop),this.element.classList.add("tabulator-spreadsheet-tab-active"),this.dispatchExternal("sheetLoaded",this.getComponent())}getComponent(){return new aC(this)}getDefinition(){return{title:this.title,key:this.key,rows:this.rowCount,columns:this.columnCount,data:this.getData()}}getData(a){var b,c,d,e=[];return this.rowDefs.forEach(a=>{var b=[];this.columnFields.forEach(c=>{b.push(a[c])}),e.push(b)}),a||this.options("spreadsheetOutputFull")||(c=Math.max(...b=e.map(a=>a.findLastIndex(a=>void 0!==a)+1)),d=b.findLastIndex(a=>a>0)+1,e=(e=e.slice(0,d)).map(a=>a.slice(0,c))),e}setData(a){this.data=a,this.reinitialize(),this.dispatchExternal("sheetUpdated",this.getComponent()),this.isActive&&this.load()}clear(){this.setData([])}setTitle(a){this.title=a,this.element.innerText=a,this.dispatchExternal("sheetUpdated",this.getComponent())}setRows(a){this.rowCount=a,this.initializeRows(),this.dispatchExternal("sheetUpdated",this.getComponent()),this.isActive&&this.load()}setColumns(a){this.columnCount=a,this.reinitialize(),this.dispatchExternal("sheetUpdated",this.getComponent()),this.isActive&&this.load()}remove(){this.spreadsheetManager.removeSheet(this)}destroy(){this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.dispatchExternal("sheetRemoved",this.getComponent())}active(){this.spreadsheetManager.loadSheet(this)}}var aE={integer:function(a,b,c){return""===b||null==b||!isNaN(b=Number(b))&&isFinite(b)&&Math.floor(b)===b},float:function(a,b,c){return""===b||null==b||!isNaN(b=Number(b))&&isFinite(b)&&b%1!=0},numeric:function(a,b,c){return""===b||null==b||!isNaN(b)},string:function(a,b,c){return""===b||null==b||isNaN(b)},alphanumeric:function(a,b,c){return""===b||null==b||new RegExp(/^[a-z0-9]+$/i).test(b)},max:function(a,b,c){return""===b||null==b||parseFloat(b)<=c},min:function(a,b,c){return""===b||null==b||parseFloat(b)>=c},starts:function(a,b,c){return""===b||null==b||String(b).toLowerCase().startsWith(String(c).toLowerCase())},ends:function(a,b,c){return""===b||null==b||String(b).toLowerCase().endsWith(String(c).toLowerCase())},minLength:function(a,b,c){return""===b||null==b||String(b).length>=c},maxLength:function(a,b,c){return""===b||null==b||String(b).length<=c},in:function(a,b,c){return""===b||null==b||("string"==typeof c&&(c=c.split("|")),c.indexOf(b)>-1)},regex:function(a,b,c){return""===b||null==b||new RegExp(c).test(b)},unique:function(a,b,c){if(""===b||null==b)return!0;var d=!0,e=a.getData(),f=a.getColumn()._getSelf();return this.table.rowManager.rows.forEach(function(a){var c=a.getData();c!==e&&b==f.getFieldValue(c)&&(d=!1)}),d},required:function(a,b,c){return""!==b&&null!=b}};class aF extends p{static moduleName="validate";static validators=aE;constructor(a){super(a),this.invalidCells=[],this.registerTableOption("validationMode","blocking"),this.registerColumnOption("validator"),this.registerTableFunction("getInvalidCells",this.getInvalidCells.bind(this)),this.registerTableFunction("clearCellValidation",this.userClearCellValidation.bind(this)),this.registerTableFunction("validate",this.userValidate.bind(this)),this.registerComponentFunction("cell","isValid",this.cellIsValid.bind(this)),this.registerComponentFunction("cell","clearValidation",this.clearValidation.bind(this)),this.registerComponentFunction("cell","validate",this.cellValidate.bind(this)),this.registerComponentFunction("column","validate",this.columnValidate.bind(this)),this.registerComponentFunction("row","validate",this.rowValidate.bind(this))}initialize(){this.subscribe("cell-delete",this.clearValidation.bind(this)),this.subscribe("column-layout",this.initializeColumnCheck.bind(this)),this.subscribe("edit-success",this.editValidate.bind(this)),this.subscribe("edit-editor-clear",this.editorClear.bind(this)),this.subscribe("edit-edited-clear",this.editedClear.bind(this))}editValidate(a,b,c){var d="manual"===this.table.options.validationMode||this.validate(a.column.modules.validate,a,b);return!0!==d&&setTimeout(()=>{a.getElement().classList.add("tabulator-validation-fail"),this.dispatchExternal("validationFailed",a.getComponent(),b,d)}),d}editorClear(a,b){b&&a.column.modules.validate&&this.cellValidate(a),a.getElement().classList.remove("tabulator-validation-fail")}editedClear(a){a.modules.validate&&(a.modules.validate.invalid=!1)}cellIsValid(a){return!a.modules.validate||a.modules.validate.invalid||!0}cellValidate(a){return this.validate(a.column.modules.validate,a,a.getValue())}columnValidate(a){var b=[];return a.cells.forEach(a=>{!0!==this.cellValidate(a)&&b.push(a.getComponent())}),!b.length||b}rowValidate(a){var b=[];return a.cells.forEach(a=>{!0!==this.cellValidate(a)&&b.push(a.getComponent())}),!b.length||b}userClearCellValidation(a){a||(a=this.getInvalidCells()),Array.isArray(a)||(a=[a]),a.forEach(a=>{this.clearValidation(a._getSelf())})}userValidate(a){var b=[];return this.table.rowManager.rows.forEach(a=>{var c=(a=a.getComponent()).validate();!0!==c&&(b=b.concat(c))}),!b.length||b}initializeColumnCheck(a){void 0!==a.definition.validator&&this.initializeColumn(a)}initializeColumn(a){var b,c=this,d=[];a.definition.validator&&(Array.isArray(a.definition.validator)?a.definition.validator.forEach(a=>{(b=c._extractValidator(a))&&d.push(b)}):(b=this._extractValidator(a.definition.validator))&&d.push(b),a.modules.validate=!!d.length&&d)}_extractValidator(a){var b,c,d;switch(typeof a){case"string":return(d=a.indexOf(":"))>-1?(b=a.substring(0,d),c=a.substring(d+1)):b=a,this._buildValidator(b,c);case"function":return this._buildValidator(a);case"object":return this._buildValidator(a.type,a.parameters)}}_buildValidator(a,b){var c="function"==typeof a?a:aF.validators[a];return c?{type:"function"==typeof a?"function":a,func:c,params:b}:(console.warn("Validator Setup Error - No matching validator found:",a),!1)}validate(a,b,c){var d=this,e=[],f=this.invalidCells.indexOf(b);return a&&a.forEach(a=>{a.func.call(d,b.getComponent(),c,a.params)||e.push({type:a.type,parameters:a.params})}),b.modules.validate||(b.modules.validate={}),e.length?(b.modules.validate.invalid=e,"manual"!==this.table.options.validationMode&&b.getElement().classList.add("tabulator-validation-fail"),-1==f&&this.invalidCells.push(b)):(b.modules.validate.invalid=!1,b.getElement().classList.remove("tabulator-validation-fail"),f>-1&&this.invalidCells.splice(f,1)),!e.length||e}getInvalidCells(){var a=[];return this.invalidCells.forEach(b=>{a.push(b.getComponent())}),a}clearValidation(a){var b;a.modules.validate&&a.modules.validate.invalid&&(a.getElement().classList.remove("tabulator-validation-fail"),a.modules.validate.invalid=!1,(b=this.invalidCells.indexOf(a))>-1&&this.invalidCells.splice(b,1))}}var aG=Object.freeze({__proto__:null,AccessorModule:r,AjaxModule:w,ClipboardModule:A,ColumnCalcsModule:K,DataTreeModule:class extends p{static moduleName="dataTree";constructor(a){super(a),this.indent=10,this.field="",this.collapseEl=null,this.expandEl=null,this.branchEl=null,this.elementField=!1,this.startOpen=function(){},this.registerTableOption("dataTree",!1),this.registerTableOption("dataTreeFilter",!0),this.registerTableOption("dataTreeSort",!0),this.registerTableOption("dataTreeElementColumn",!1),this.registerTableOption("dataTreeBranchElement",!0),this.registerTableOption("dataTreeChildIndent",9),this.registerTableOption("dataTreeChildField","_children"),this.registerTableOption("dataTreeCollapseElement",!1),this.registerTableOption("dataTreeExpandElement",!1),this.registerTableOption("dataTreeStartExpanded",!1),this.registerTableOption("dataTreeChildColumnCalcs",!1),this.registerTableOption("dataTreeSelectPropagate",!1),this.registerComponentFunction("row","treeCollapse",this.collapseRow.bind(this)),this.registerComponentFunction("row","treeExpand",this.expandRow.bind(this)),this.registerComponentFunction("row","treeToggle",this.toggleRow.bind(this)),this.registerComponentFunction("row","getTreeParent",this.getTreeParent.bind(this)),this.registerComponentFunction("row","getTreeChildren",this.getRowChildren.bind(this)),this.registerComponentFunction("row","addTreeChild",this.addTreeChildRow.bind(this)),this.registerComponentFunction("row","isTreeExpanded",this.isRowExpanded.bind(this))}initialize(){if(this.table.options.dataTree){var a=null,b=this.table.options;switch(this.field=b.dataTreeChildField,this.indent=b.dataTreeChildIndent,this.options("movableRows")&&console.warn("The movableRows option is not available with dataTree enabled, moving of child rows could result in unpredictable behavior"),b.dataTreeBranchElement?!0===b.dataTreeBranchElement?(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch")):"string"==typeof b.dataTreeBranchElement?((a=document.createElement("div")).innerHTML=b.dataTreeBranchElement,this.branchEl=a.firstChild):this.branchEl=b.dataTreeBranchElement:(this.branchEl=document.createElement("div"),this.branchEl.classList.add("tabulator-data-tree-branch-empty")),b.dataTreeCollapseElement?"string"==typeof b.dataTreeCollapseElement?((a=document.createElement("div")).innerHTML=b.dataTreeCollapseElement,this.collapseEl=a.firstChild):this.collapseEl=b.dataTreeCollapseElement:(this.collapseEl=document.createElement("div"),this.collapseEl.classList.add("tabulator-data-tree-control"),this.collapseEl.tabIndex=0,this.collapseEl.innerHTML="<div class='tabulator-data-tree-control-collapse'></div>"),b.dataTreeExpandElement?"string"==typeof b.dataTreeExpandElement?((a=document.createElement("div")).innerHTML=b.dataTreeExpandElement,this.expandEl=a.firstChild):this.expandEl=b.dataTreeExpandElement:(this.expandEl=document.createElement("div"),this.expandEl.classList.add("tabulator-data-tree-control"),this.expandEl.tabIndex=0,this.expandEl.innerHTML="<div class='tabulator-data-tree-control-expand'></div>"),typeof b.dataTreeStartExpanded){case"boolean":this.startOpen=function(a,c){return b.dataTreeStartExpanded};break;case"function":this.startOpen=b.dataTreeStartExpanded;break;default:this.startOpen=function(a,c){return b.dataTreeStartExpanded[c]}}this.subscribe("row-init",this.initializeRow.bind(this)),this.subscribe("row-layout-after",this.layoutRow.bind(this)),this.subscribe("row-deleting",this.rowDeleting.bind(this)),this.subscribe("row-deleted",this.rowDelete.bind(this),0),this.subscribe("row-data-changed",this.rowDataChanged.bind(this),10),this.subscribe("cell-value-updated",this.cellValueChanged.bind(this)),this.subscribe("edit-cancelled",this.cellValueChanged.bind(this)),this.subscribe("column-moving-rows",this.columnMoving.bind(this)),this.subscribe("table-built",this.initializeElementField.bind(this)),this.subscribe("table-redrawing",this.tableRedrawing.bind(this)),this.registerDisplayHandler(this.getRows.bind(this),30)}}tableRedrawing(a){a&&this.table.rowManager.getRows().forEach(a=>{this.reinitializeRowChildren(a)})}initializeElementField(){var a=this.table.columnManager.getFirstVisibleColumn();this.elementField=this.table.options.dataTreeElementColumn||!!a&&a.field}getRowChildren(a){return this.getTreeChildren(a,!0)}columnMoving(){var a=[];return this.table.rowManager.rows.forEach(b=>{a=a.concat(this.getTreeChildren(b,!1,!0))}),a}rowDataChanged(a,b,c){this.redrawNeeded(c)&&(this.initializeRow(a),b&&(this.layoutRow(a),this.refreshData(!0)))}cellValueChanged(a){a.column.getField()===this.elementField&&this.layoutRow(a.row)}initializeRow(a){var b=a.getData()[this.field],c=Array.isArray(b),d=c||!c&&"object"==typeof b&&null!==b;!d&&a.modules.dataTree&&a.modules.dataTree.branchEl&&a.modules.dataTree.branchEl.parentNode&&a.modules.dataTree.branchEl.parentNode.removeChild(a.modules.dataTree.branchEl),!d&&a.modules.dataTree&&a.modules.dataTree.controlEl&&a.modules.dataTree.controlEl.parentNode&&a.modules.dataTree.controlEl.parentNode.removeChild(a.modules.dataTree.controlEl),a.modules.dataTree={index:a.modules.dataTree?a.modules.dataTree.index:0,open:!!d&&(a.modules.dataTree?a.modules.dataTree.open:this.startOpen(a.getComponent(),0)),controlEl:!!a.modules.dataTree&&!!d&&a.modules.dataTree.controlEl,branchEl:!!a.modules.dataTree&&!!d&&a.modules.dataTree.branchEl,parent:!!a.modules.dataTree&&a.modules.dataTree.parent,children:d}}reinitializeRowChildren(a){this.getTreeChildren(a,!1,!0).forEach(function(a){a.reinitialize(!0)})}layoutRow(a){var b=(this.elementField?a.getCell(this.elementField):a.getCells()[0]).getElement(),c=a.modules.dataTree;c.branchEl&&(c.branchEl.parentNode&&c.branchEl.parentNode.removeChild(c.branchEl),c.branchEl=!1),c.controlEl&&(c.controlEl.parentNode&&c.controlEl.parentNode.removeChild(c.controlEl),c.controlEl=!1),this.generateControlElement(a,b),a.getElement().classList.add("tabulator-tree-level-"+c.index),c.index&&(this.branchEl?(c.branchEl=this.branchEl.cloneNode(!0),b.insertBefore(c.branchEl,b.firstChild),this.table.rtl?c.branchEl.style.marginRight=(c.branchEl.offsetWidth+c.branchEl.style.marginLeft)*(c.index-1)+c.index*this.indent+"px":c.branchEl.style.marginLeft=(c.branchEl.offsetWidth+c.branchEl.style.marginRight)*(c.index-1)+c.index*this.indent+"px"):this.table.rtl?b.style.paddingRight=parseInt(window.getComputedStyle(b,null).getPropertyValue("padding-right"))+c.index*this.indent+"px":b.style.paddingLeft=parseInt(window.getComputedStyle(b,null).getPropertyValue("padding-left"))+c.index*this.indent+"px")}generateControlElement(a,b){var c=a.modules.dataTree,d=c.controlEl;b=b||a.getCells()[0].getElement(),!1!==c.children&&(c.open?(c.controlEl=this.collapseEl.cloneNode(!0),c.controlEl.addEventListener("click",b=>{b.stopPropagation(),this.collapseRow(a)})):(c.controlEl=this.expandEl.cloneNode(!0),c.controlEl.addEventListener("click",b=>{b.stopPropagation(),this.expandRow(a)})),c.controlEl.addEventListener("mousedown",a=>{a.stopPropagation()}),d&&d.parentNode===b?d.parentNode.replaceChild(c.controlEl,d):b.insertBefore(c.controlEl,b.firstChild))}getRows(a){var b=[];return a.forEach((a,c)=>{var d;b.push(a),a instanceof I&&(a.create(),(d=a.modules.dataTree).index||!1===d.children||this.getChildren(a,!1,!0).forEach(a=>{a.create(),b.push(a)}))}),b}getChildren(a,b,c){var d=a.modules.dataTree,e=[],f=[];return!1!==d.children&&(d.open||b)&&(Array.isArray(d.children)||(d.children=this.generateChildren(a)),e=this.table.modExists("filter")&&this.table.options.dataTreeFilter?this.table.modules.filter.filter(d.children):d.children,this.table.modExists("sort")&&this.table.options.dataTreeSort&&this.table.modules.sort.sort(e,c),e.forEach(a=>{f.push(a),this.getChildren(a,!1,!0).forEach(a=>{f.push(a)})})),f}generateChildren(a){var b=[],c=a.getData()[this.field];return Array.isArray(c)||(c=[c]),c.forEach(c=>{var d=new I(c||{},this.table.rowManager);d.create(),d.modules.dataTree.index=a.modules.dataTree.index+1,d.modules.dataTree.parent=a,d.modules.dataTree.children&&(d.modules.dataTree.open=this.startOpen(d.getComponent(),d.modules.dataTree.index)),b.push(d)}),b}expandRow(a,b){var c=a.modules.dataTree;!1!==c.children&&(c.open=!0,a.reinitialize(),this.refreshData(!0),this.dispatchExternal("dataTreeRowExpanded",a.getComponent(),a.modules.dataTree.index))}collapseRow(a){var b=a.modules.dataTree;!1!==b.children&&(b.open=!1,a.reinitialize(),this.refreshData(!0),this.dispatchExternal("dataTreeRowCollapsed",a.getComponent(),a.modules.dataTree.index))}toggleRow(a){var b=a.modules.dataTree;!1!==b.children&&(b.open?this.collapseRow(a):this.expandRow(a))}isRowExpanded(a){return a.modules.dataTree.open}getTreeParent(a){return!!a.modules.dataTree.parent&&a.modules.dataTree.parent.getComponent()}getTreeParentRoot(a){return a.modules.dataTree&&a.modules.dataTree.parent?this.getTreeParentRoot(a.modules.dataTree.parent):a}getFilteredTreeChildren(a){var b=a.modules.dataTree,c=[];return b.children&&(Array.isArray(b.children)||(b.children=this.generateChildren(a)),(this.table.modExists("filter")&&this.table.options.dataTreeFilter?this.table.modules.filter.filter(b.children):b.children).forEach(a=>{a instanceof I&&c.push(a)})),c}rowDeleting(a){var b=a.modules.dataTree;b&&b.children&&Array.isArray(b.children)&&b.children.forEach(a=>{a instanceof I&&a.wipe()})}rowDelete(a){var b,c=a.modules.dataTree.parent;c&&(!1!==(b=this.findChildIndex(a,c))&&c.data[this.field].splice(b,1),c.data[this.field].length||delete c.data[this.field],this.initializeRow(c),this.layoutRow(c)),this.refreshData(!0)}addTreeChildRow(a,b,c,d){var e=!1;"string"==typeof b&&(b=JSON.parse(b)),Array.isArray(a.data[this.field])||(a.data[this.field]=[],a.modules.dataTree.open=this.startOpen(a.getComponent(),a.modules.dataTree.index)),void 0!==d&&!1!==(e=this.findChildIndex(d,a))&&a.data[this.field].splice(c?e:e+1,0,b),!1===e&&(c?a.data[this.field].unshift(b):a.data[this.field].push(b)),this.initializeRow(a),this.layoutRow(a),this.refreshData(!0)}findChildIndex(a,b){var c=!1;return"object"==typeof a?a instanceof I?c=a.data:a instanceof H?c=a._getSelf().data:"u">typeof HTMLElement&&a instanceof HTMLElement?b.modules.dataTree&&(c=b.modules.dataTree.children.find(b=>b instanceof I&&b.element===a))&&(c=c.data):null===a&&(c=!1):c=void 0!==a&&b.data[this.field].find(b=>b.data[this.table.options.index]==a),c&&(Array.isArray(b.data[this.field])&&(c=b.data[this.field].indexOf(c)),-1==c&&(c=!1)),c}getTreeChildren(a,b,c){var d=a.modules.dataTree,e=[];return d&&d.children&&(Array.isArray(d.children)||(d.children=this.generateChildren(a)),d.children.forEach(a=>{a instanceof I&&(e.push(b?a.getComponent():a),c&&this.getTreeChildren(a,b,c).forEach(a=>{e.push(a)}))})),e}getChildField(){return this.field}redrawNeeded(a){return!!this.field&&void 0!==a[this.field]||!!this.elementField&&void 0!==a[this.elementField]}},DownloadModule:M,EditModule:Q,ExportModule:V,FilterModule:X,FormatModule:Z,FrozenColumnsModule:class extends p{static moduleName="frozenColumns";constructor(a){super(a),this.leftColumns=[],this.rightColumns=[],this.initializationMode="left",this.active=!1,this.blocked=!0,this.registerColumnOption("frozen")}reset(){this.initializationMode="left",this.leftColumns=[],this.rightColumns=[],this.active=!1}initialize(){this.subscribe("cell-layout",this.layoutCell.bind(this)),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-width",this.layout.bind(this)),this.subscribe("row-layout-after",this.layoutRow.bind(this)),this.subscribe("table-layout",this.layout.bind(this)),this.subscribe("columns-loading",this.reset.bind(this)),this.subscribe("column-add",this.reinitializeColumns.bind(this)),this.subscribe("column-deleted",this.reinitializeColumns.bind(this)),this.subscribe("column-hide",this.reinitializeColumns.bind(this)),this.subscribe("column-show",this.reinitializeColumns.bind(this)),this.subscribe("columns-loaded",this.reinitializeColumns.bind(this)),this.subscribe("table-redraw",this.layout.bind(this)),this.subscribe("layout-refreshing",this.blockLayout.bind(this)),this.subscribe("layout-refreshed",this.unblockLayout.bind(this)),this.subscribe("scrollbar-vertical",this.adjustForScrollbar.bind(this))}blockLayout(){this.blocked=!0}unblockLayout(){this.blocked=!1}layoutCell(a){this.layoutElement(a.element,a.column)}reinitializeColumns(){this.reset(),this.table.columnManager.columnsByIndex.forEach(a=>{this.initializeColumn(a)}),this.layout()}initializeColumn(a){var b={margin:0,edge:!1};a.isGroup||(this.frozenCheck(a)?(b.position=this.initializationMode,"left"==this.initializationMode?this.leftColumns.push(a):this.rightColumns.unshift(a),this.active=!0,a.modules.frozen=b):this.initializationMode="right")}frozenCheck(a){return(a.parent.isGroup&&a.definition.frozen&&console.warn("Frozen Column Error - Parent column group must be frozen, not individual columns or sub column groups"),a.parent.isGroup)?this.frozenCheck(a.parent):a.definition.frozen}layoutCalcRows(){this.table.modExists("columnCalcs")&&(this.table.modules.columnCalcs.topInitialized&&this.table.modules.columnCalcs.topRow&&this.layoutRow(this.table.modules.columnCalcs.topRow),this.table.modules.columnCalcs.botInitialized&&this.table.modules.columnCalcs.botRow&&this.layoutRow(this.table.modules.columnCalcs.botRow),this.table.modExists("groupRows")&&this.layoutGroupCalcs(this.table.modules.groupRows.getGroups()))}layoutGroupCalcs(a){a.forEach(a=>{a.calcs.top&&this.layoutRow(a.calcs.top),a.calcs.bottom&&this.layoutRow(a.calcs.bottom),a.groupList&&a.groupList.length&&this.layoutGroupCalcs(a.groupList)})}layoutColumnPosition(a){var b=[],c=0,d=0;this.leftColumns.forEach((d,e)=>{if(d.modules.frozen.marginValue=c,d.modules.frozen.margin=d.modules.frozen.marginValue+"px",d.visible&&(c+=d.getWidth()),e==this.leftColumns.length-1?d.modules.frozen.edge=!0:d.modules.frozen.edge=!1,d.parent.isGroup){var f=this.getColGroupParentElement(d);b.includes(f)||(this.layoutElement(f,d),b.push(f)),f.classList.toggle("tabulator-frozen-left",d.modules.frozen.edge&&"left"===d.modules.frozen.position),f.classList.toggle("tabulator-frozen-right",d.modules.frozen.edge&&"right"===d.modules.frozen.position)}else this.layoutElement(d.getElement(),d);a&&d.cells.forEach(a=>{this.layoutElement(a.getElement(!0),d)})}),this.rightColumns.forEach((b,c)=>{b.modules.frozen.marginValue=d,b.modules.frozen.margin=b.modules.frozen.marginValue+"px",b.visible&&(d+=b.getWidth()),c==this.rightColumns.length-1?b.modules.frozen.edge=!0:b.modules.frozen.edge=!1,b.parent.isGroup?this.layoutElement(this.getColGroupParentElement(b),b):this.layoutElement(b.getElement(),b),a&&b.cells.forEach(a=>{this.layoutElement(a.getElement(!0),b)})})}getColGroupParentElement(a){return a.parent.isGroup?this.getColGroupParentElement(a.parent):a.getElement()}layout(){this.active&&!this.blocked&&(this.layoutColumnPosition(),this.reinitializeRows(),this.layoutCalcRows())}reinitializeRows(){var a=this.table.rowManager.getVisibleRows(!0);this.table.rowManager.getRows().filter(b=>!a.includes(b)).forEach(a=>{a.deinitialize()}),a.forEach(a=>{"row"===a.type&&this.layoutRow(a)})}layoutRow(a){"fitDataFill"===this.table.options.layout&&this.rightColumns.length&&(this.table.rowManager.getTableElement().style.minWidth="calc(100% - "+this.rightMargin+")"),this.leftColumns.forEach(b=>{var c=a.getCell(b);c&&this.layoutElement(c.getElement(!0),b)}),this.rightColumns.forEach(b=>{var c=a.getCell(b);c&&this.layoutElement(c.getElement(!0),b)})}layoutElement(a,b){var c;b.modules.frozen&&a&&(a.style.position="sticky",c=this.table.rtl?"left"===b.modules.frozen.position?"right":"left":b.modules.frozen.position,a.style[c]=b.modules.frozen.margin,a.classList.add("tabulator-frozen"),a.classList.toggle("tabulator-frozen-left",b.modules.frozen.edge&&"left"===b.modules.frozen.position),a.classList.toggle("tabulator-frozen-right",b.modules.frozen.edge&&"right"===b.modules.frozen.position))}adjustForScrollbar(a){this.rightColumns.length&&(this.table.columnManager.getContentsElement().style.width="calc(100% - "+a+"px)")}getFrozenColumns(){return this.leftColumns.concat(this.rightColumns)}_calcSpace(a,b){var c=0;for(let d=0;d<b;d++)a[d].visible&&(c+=a[d].getWidth());return c}},FrozenRowsModule:class extends p{static moduleName="frozenRows";constructor(a){super(a),this.topElement=document.createElement("div"),this.rows=[],this.registerComponentFunction("row","freeze",this.freezeRow.bind(this)),this.registerComponentFunction("row","unfreeze",this.unfreezeRow.bind(this)),this.registerComponentFunction("row","isFrozen",this.isRowFrozen.bind(this)),this.registerTableOption("frozenRowsField","id"),this.registerTableOption("frozenRows",!1)}initialize(){var a=document.createDocumentFragment();this.rows=[],this.topElement.classList.add("tabulator-frozen-rows-holder"),a.appendChild(this.topElement),this.table.columnManager.getContentsElement().insertBefore(a,this.table.columnManager.headersElement.nextSibling),this.subscribe("row-deleting",this.detachRow.bind(this)),this.subscribe("rows-visible",this.visibleRows.bind(this)),this.registerDisplayHandler(this.getRows.bind(this),10),this.table.options.frozenRows&&(this.subscribe("data-processed",this.initializeRows.bind(this)),this.subscribe("row-added",this.initializeRow.bind(this)),this.subscribe("table-redrawing",this.resizeHolderWidth.bind(this)),this.subscribe("column-resized",this.resizeHolderWidth.bind(this)),this.subscribe("column-show",this.resizeHolderWidth.bind(this)),this.subscribe("column-hide",this.resizeHolderWidth.bind(this))),this.resizeHolderWidth()}resizeHolderWidth(){this.topElement.style.minWidth=this.table.columnManager.headersElement.offsetWidth+"px"}initializeRows(){this.table.rowManager.getRows().forEach(a=>{this.initializeRow(a)})}initializeRow(a){var b=this.table.options.frozenRows,c=typeof b;"number"===c?a.getPosition()&&a.getPosition()+this.rows.length<=b&&this.freezeRow(a):"function"===c?b.call(this.table,a.getComponent())&&this.freezeRow(a):Array.isArray(b)&&b.includes(a.data[this.options("frozenRowsField")])&&this.freezeRow(a)}isRowFrozen(a){return this.rows.indexOf(a)>-1}isFrozen(){return!!this.rows.length}visibleRows(a,b){return this.rows.forEach(a=>{b.push(a)}),b}getRows(a){var b=a.slice(0);return this.rows.forEach(function(a){var c=b.indexOf(a);c>-1&&b.splice(c,1)}),b}freezeRow(a){a.modules.frozen?console.warn("Freeze Error - Row is already frozen"):(a.modules.frozen=!0,this.topElement.appendChild(a.getElement()),a.initialize(),a.normalizeHeight(),this.rows.push(a),this.refreshData(!1,"display"),this.table.rowManager.adjustTableSize(),this.styleRows())}unfreezeRow(a){a.modules.frozen?(a.modules.frozen=!1,this.detachRow(a),this.table.rowManager.adjustTableSize(),this.refreshData(!1,"display"),this.rows.length&&this.styleRows()):console.warn("Freeze Error - Row is already unfrozen")}detachRow(a){var b=this.rows.indexOf(a);if(b>-1){var c=a.getElement();c.parentNode&&c.parentNode.removeChild(c),this.rows.splice(b,1)}}styleRows(a){this.rows.forEach((a,b)=>{this.table.rowManager.styleRow(a,b)})}},GroupRowsModule:class extends p{static moduleName="groupRows";constructor(a){super(a),this.groupIDLookups=!1,this.startOpen=[function(){return!1}],this.headerGenerator=[function(){return""}],this.groupList=[],this.allowedValues=!1,this.groups={},this.displayHandler=this.getRows.bind(this),this.blockRedraw=!1,this.registerTableOption("groupBy",!1),this.registerTableOption("groupStartOpen",!0),this.registerTableOption("groupValues",!1),this.registerTableOption("groupUpdateOnCellEdit",!1),this.registerTableOption("groupHeader",!1),this.registerTableOption("groupHeaderPrint",null),this.registerTableOption("groupHeaderClipboard",null),this.registerTableOption("groupHeaderHtmlOutput",null),this.registerTableOption("groupHeaderDownload",null),this.registerTableOption("groupToggleElement","arrow"),this.registerTableOption("groupClosedShowCalcs",!1),this.registerTableFunction("setGroupBy",this.setGroupBy.bind(this)),this.registerTableFunction("setGroupValues",this.setGroupValues.bind(this)),this.registerTableFunction("setGroupStartOpen",this.setGroupStartOpen.bind(this)),this.registerTableFunction("setGroupHeader",this.setGroupHeader.bind(this)),this.registerTableFunction("getGroups",this.userGetGroups.bind(this)),this.registerTableFunction("getGroupedData",this.userGetGroupedData.bind(this)),this.registerComponentFunction("row","getGroup",this.rowGetGroup.bind(this))}initialize(){this.subscribe("table-destroy",this._blockRedrawing.bind(this)),this.subscribe("rows-wipe",this._blockRedrawing.bind(this)),this.subscribe("rows-wiped",this._restore_redrawing.bind(this)),this.table.options.groupBy&&(this.table.options.groupUpdateOnCellEdit&&(this.subscribe("cell-value-updated",this.cellUpdated.bind(this)),this.subscribe("row-data-changed",this.reassignRowToGroup.bind(this),0)),this.subscribe("table-built",this.configureGroupSetup.bind(this)),this.subscribe("row-deleting",this.rowDeleting.bind(this)),this.subscribe("row-deleted",this.rowsUpdated.bind(this)),this.subscribe("scroll-horizontal",this.scrollHeaders.bind(this)),this.subscribe("rows-wipe",this.wipe.bind(this)),this.subscribe("rows-added",this.rowsUpdated.bind(this)),this.subscribe("row-moving",this.rowMoving.bind(this)),this.subscribe("row-adding-index",this.rowAddingIndex.bind(this)),this.subscribe("rows-sample",this.rowSample.bind(this)),this.subscribe("render-virtual-fill",this.virtualRenderFill.bind(this)),this.registerDisplayHandler(this.displayHandler,20),this.initialized=!0)}_blockRedrawing(){this.blockRedraw=!0}_restore_redrawing(){this.blockRedraw=!1}configureGroupSetup(){if(this.table.options.groupBy){var a=this.table.options.groupBy,b=this.table.options.groupStartOpen,c=this.table.options.groupHeader;this.allowedValues=this.table.options.groupValues,Array.isArray(a)&&Array.isArray(c)&&a.length>c.length&&console.warn("Error creating group headers, groupHeader array is shorter than groupBy array"),this.headerGenerator=[function(){return""}],this.startOpen=[function(){return!1}],this.langBind("groups|item",(a,b)=>{this.headerGenerator[0]=(c,d,e)=>(void 0===c?"":c)+"<span>("+d+" "+(1===d?a:b.groups.items)+")</span>"}),this.groupIDLookups=[],a?this.table.modExists("columnCalcs")&&"table"!=this.table.options.columnCalcs&&"both"!=this.table.options.columnCalcs&&this.table.modules.columnCalcs.removeCalcs():this.table.modExists("columnCalcs")&&"group"!=this.table.options.columnCalcs&&this.table.columnManager.getRealColumns().forEach(a=>{a.definition.topCalc&&this.table.modules.columnCalcs.initializeTopRow(),a.definition.bottomCalc&&this.table.modules.columnCalcs.initializeBottomRow()}),Array.isArray(a)||(a=[a]),a.forEach((a,b)=>{var c,d;c="function"==typeof a?a:(d=this.table.columnManager.getColumnByField(a))?function(a){return d.getFieldValue(a)}:function(b){return b[a]},this.groupIDLookups.push({field:"function"!=typeof a&&a,func:c,values:!!this.allowedValues&&this.allowedValues[b]})}),b&&(Array.isArray(b)||(b=[b]),b.forEach(a=>{}),this.startOpen=b),c&&(this.headerGenerator=Array.isArray(c)?c:[c])}else this.groupList=[],this.groups={}}rowSample(a,b){if(this.table.options.groupBy){var c=this.getGroups(!1)[0];b.push(c.getRows(!1)[0])}return b}virtualRenderFill(){var a=this.table.rowManager.tableElement,b=this.table.rowManager.getVisibleRows();if(!this.table.options.groupBy)return b;b=b.filter(a=>"group"!==a.type),a.style.minWidth=b.length?"":this.table.columnManager.getWidth()+"px"}rowAddingIndex(a,b,c){if(this.table.options.groupBy){this.assignRowToGroup(a);var d=a.modules.group.rows;return d.length>1&&(!b||b&&-1==d.indexOf(b)?c?d[0]!==a&&(b=d[0],this.table.rowManager.moveRowInArray(a.modules.group.rows,a,b,!c)):d[d.length-1]!==a&&(b=d[d.length-1],this.table.rowManager.moveRowInArray(a.modules.group.rows,a,b,!c)):this.table.rowManager.moveRowInArray(a.modules.group.rows,a,b,!c)),b}}trackChanges(){this.dispatch("group-changed")}setGroupBy(a){this.table.options.groupBy=a,this.initialized||this.initialize(),this.configureGroupSetup(),!a&&this.table.modExists("columnCalcs")&&!0===this.table.options.columnCalcs&&this.table.modules.columnCalcs.reinitializeCalcs(),this.refreshData(),this.trackChanges()}setGroupValues(a){this.table.options.groupValues=a,this.configureGroupSetup(),this.refreshData(),this.trackChanges()}setGroupStartOpen(a){this.table.options.groupStartOpen=a,this.configureGroupSetup(),this.table.options.groupBy?(this.refreshData(),this.trackChanges()):console.warn("Grouping Update - cant refresh view, no groups have been set")}setGroupHeader(a){this.table.options.groupHeader=a,this.configureGroupSetup(),this.table.options.groupBy?(this.refreshData(),this.trackChanges()):console.warn("Grouping Update - cant refresh view, no groups have been set")}userGetGroups(a){return this.getGroups(!0)}userGetGroupedData(){return this.table.options.groupBy?this.getGroupedData():this.getData()}rowGetGroup(a){return!!a.modules.group&&a.modules.group.getComponent()}rowMoving(a,b,c){if(this.table.options.groupBy){!c&&b instanceof _&&(b=this.table.rowManager.prevDisplayRow(a)||b);var d=b instanceof _?b:b.modules.group,e=a instanceof _?a:a.modules.group;d===e?this.table.rowManager.moveRowInArray(d.rows,a,b,c):(e&&e.removeRow(a),d.insertRow(a,b,c))}}rowDeleting(a){this.table.options.groupBy&&a.modules.group&&a.modules.group.removeRow(a)}rowsUpdated(a){this.table.options.groupBy&&this.updateGroupRows(!0)}cellUpdated(a){this.table.options.groupBy&&this.reassignRowToGroup(a.row)}getRows(a){return this.table.options.groupBy&&this.groupIDLookups.length?(this.dispatchExternal("dataGrouping"),this.generateGroups(a),this.subscribedExternal("dataGrouped")&&this.dispatchExternal("dataGrouped",this.getGroups(!0)),this.updateGroupRows()):a.slice(0)}getGroups(a){var b=[];return this.groupList.forEach(function(c){b.push(a?c.getComponent():c)}),b}getChildGroups(a){var b=[];return a||(a=this),a.groupList.forEach(a=>{a.groupList.length?b=b.concat(this.getChildGroups(a)):b.push(a)}),b}wipe(){this.table.options.groupBy&&(this.groupList.forEach(function(a){a.wipe()}),this.groupList=[],this.groups={})}pullGroupListData(a){var b=[];return a.forEach(a=>{var c={};c.level=0,c.rowCount=0,c.headerContent="";var d=[];a.hasSubGroups?(d=this.pullGroupListData(a.groupList),c.level=a.level,c.rowCount=d.length-a.groupList.length,c.headerContent=a.generator(a.key,c.rowCount,a.rows,a),b.push(c),b=b.concat(d)):(c.level=a.level,c.headerContent=a.generator(a.key,a.rows.length,a.rows,a),c.rowCount=a.getRows().length,b.push(c),a.getRows().forEach(a=>{b.push(a.getData("data"))}))}),b}getGroupedData(){return this.pullGroupListData(this.groupList)}getRowGroup(a){var b=!1;return this.options("dataTree")&&(a=this.table.modules.dataTree.getTreeParentRoot(a)),this.groupList.forEach(c=>{var d=c.getRowGroup(a);d&&(b=d)}),b}countGroups(){return this.groupList.length}generateGroups(a){var b=this.groups;this.groups={},this.groupList=[],this.allowedValues&&this.allowedValues[0]?(this.allowedValues[0].forEach(a=>{this.createGroup(a,0,b)}),a.forEach(a=>{this.assignRowToExistingGroup(a,b)})):a.forEach(a=>{this.assignRowToGroup(a,b)}),Object.values(b).forEach(a=>{a.wipe(!0)})}createGroup(a,b,c){var d,e=b+"_"+a;c=c||[],d=new _(this,!1,b,a,this.groupIDLookups[0].field,this.headerGenerator[0],c[e]),this.groups[e]=d,this.groupList.push(d)}assignRowToExistingGroup(a,b){var c="0_"+this.groupIDLookups[0].func(a.getData());this.groups[c]&&this.groups[c].addRow(a)}assignRowToGroup(a,b){var c=this.groupIDLookups[0].func(a.getData()),d=!this.groups["0_"+c];return d&&this.createGroup(c,0,b),this.groups["0_"+c].addRow(a),!d}reassignRowToGroup(a){if("row"===a.type){var b=a.modules.group,c=b.getPath(),d=this.getExpectedPath(a);c.length==d.length&&c.every((a,b)=>a===d[b])||(b.removeRow(a),this.assignRowToGroup(a,this.groups),this.refreshData(!0))}}getExpectedPath(a){var b=[],c=a.getData();return this.groupIDLookups.forEach(a=>{b.push(a.func(c))}),b}updateGroupRows(a){var b=[];return!this.blockRedraw&&(this.groupList.forEach(a=>{b=b.concat(a.getHeadersAndRows())}),a&&this.refreshData(!0)),b}scrollHeaders(a){this.table.options.groupBy&&("virtual"===this.table.options.renderHorizontal&&(a-=this.table.columnManager.renderer.vDomPadLeft),a+="px",this.groupList.forEach(b=>{b.scrollHeader(a)}))}removeGroup(a){var b,c=a.level+"_"+a.key;this.groups[c]&&(delete this.groups[c],(b=this.groupList.indexOf(a))>-1&&this.groupList.splice(b,1))}checkBasicModeGroupHeaderWidth(){var a=this.table.rowManager.tableElement,b=!0;this.table.rowManager.getDisplayRows().forEach((c,d)=>{this.table.rowManager.styleRow(c,d),a.appendChild(c.getElement()),c.initialize(!0),"group"!==c.type&&(b=!1)}),b?a.style.minWidth=this.table.columnManager.getWidth()+"px":a.style.minWidth=""}},HistoryModule:ad,HtmlTableImportModule:class extends p{static moduleName="htmlTableImport";constructor(a){super(a),this.fieldIndex=[],this.hasIndex=!1}initialize(){this.tableElementCheck()}tableElementCheck(){this.table.originalElement&&"TABLE"===this.table.originalElement.tagName&&(this.table.originalElement.childNodes.length?this.parseTable():console.warn("Unable to parse data from empty table tag, Tabulator should be initialized on a div tag unless importing data from a table element."))}parseTable(){var a=this.table.originalElement,b=this.table.options,c=a.getElementsByTagName("th"),d=a.getElementsByTagName("tbody")[0],e=[];this.hasIndex=!1,this.dispatchExternal("htmlImporting"),d=d?d.getElementsByTagName("tr"):[],this._extractOptions(a,b),c.length?this._extractHeaders(c,d):this._generateBlankHeaders(c,d);for(var f=0;f<d.length;f++){var g=d[f].getElementsByTagName("td"),h={};this.hasIndex||(h[b.index]=f);for(var i=0;i<g.length;i++){var j=g[i];void 0!==this.fieldIndex[i]&&(h[this.fieldIndex[i]]=j.innerHTML)}e.push(h)}b.data=e,this.dispatchExternal("htmlImported")}_extractOptions(a,b,c){var d=a.attributes,e=c?Object.keys(c):Object.keys(b),f={};for(var g in e.forEach(a=>{f[a.toLowerCase()]=a}),d){var h,i=d[g];i&&"object"==typeof i&&i.name&&0===i.name.indexOf("tabulator-")&&void 0!==f[h=i.name.replace("tabulator-","")]&&(b[f[h]]=this._attribValue(i.value))}}_attribValue(a){return"true"===a||"false"!==a&&a}_findCol(a){return this.table.options.columns.find(b=>b.title===a)||!1}_extractHeaders(a,b){for(var c=0;c<a.length;c++){var d,e=a[c],f=!1,g=this._findCol(e.textContent);g?f=!0:g={title:e.textContent.trim()},g.field||(g.field=e.textContent.trim().toLowerCase().replaceAll(" ","_")),(d=e.getAttribute("width"))&&!g.width&&(g.width=d),this._extractOptions(e,g,this.table.columnManager.optionsList.registeredDefaults),this.fieldIndex[c]=g.field,g.field==this.table.options.index&&(this.hasIndex=!0),f||this.table.options.columns.push(g)}}_generateBlankHeaders(a,b){for(var c=0;c<a.length;c++){var d=a[c],e={title:"",field:"col"+c};this.fieldIndex[c]=e.field;var f=d.getAttribute("width");f&&(e.width=f),this.table.options.columns.push(e)}}},ImportModule:af,InteractionModule:class extends p{static moduleName="interaction";constructor(a){super(a),this.eventMap={rowClick:"row-click",rowDblClick:"row-dblclick",rowContext:"row-contextmenu",rowMouseEnter:"row-mouseenter",rowMouseLeave:"row-mouseleave",rowMouseOver:"row-mouseover",rowMouseOut:"row-mouseout",rowMouseMove:"row-mousemove",rowMouseDown:"row-mousedown",rowMouseUp:"row-mouseup",rowTap:"row",rowDblTap:"row",rowTapHold:"row",cellClick:"cell-click",cellDblClick:"cell-dblclick",cellContext:"cell-contextmenu",cellMouseEnter:"cell-mouseenter",cellMouseLeave:"cell-mouseleave",cellMouseOver:"cell-mouseover",cellMouseOut:"cell-mouseout",cellMouseMove:"cell-mousemove",cellMouseDown:"cell-mousedown",cellMouseUp:"cell-mouseup",cellTap:"cell",cellDblTap:"cell",cellTapHold:"cell",headerClick:"column-click",headerDblClick:"column-dblclick",headerContext:"column-contextmenu",headerMouseEnter:"column-mouseenter",headerMouseLeave:"column-mouseleave",headerMouseOver:"column-mouseover",headerMouseOut:"column-mouseout",headerMouseMove:"column-mousemove",headerMouseDown:"column-mousedown",headerMouseUp:"column-mouseup",headerTap:"column",headerDblTap:"column",headerTapHold:"column",groupClick:"group-click",groupDblClick:"group-dblclick",groupContext:"group-contextmenu",groupMouseEnter:"group-mouseenter",groupMouseLeave:"group-mouseleave",groupMouseOver:"group-mouseover",groupMouseOut:"group-mouseout",groupMouseMove:"group-mousemove",groupMouseDown:"group-mousedown",groupMouseUp:"group-mouseup",groupTap:"group",groupDblTap:"group",groupTapHold:"group"},this.subscribers={},this.touchSubscribers={},this.columnSubscribers={},this.touchWatchers={row:{tap:null,tapDbl:null,tapHold:null},cell:{tap:null,tapDbl:null,tapHold:null},column:{tap:null,tapDbl:null,tapHold:null},group:{tap:null,tapDbl:null,tapHold:null}},this.registerColumnOption("headerClick"),this.registerColumnOption("headerDblClick"),this.registerColumnOption("headerContext"),this.registerColumnOption("headerMouseEnter"),this.registerColumnOption("headerMouseLeave"),this.registerColumnOption("headerMouseOver"),this.registerColumnOption("headerMouseOut"),this.registerColumnOption("headerMouseMove"),this.registerColumnOption("headerMouseDown"),this.registerColumnOption("headerMouseUp"),this.registerColumnOption("headerTap"),this.registerColumnOption("headerDblTap"),this.registerColumnOption("headerTapHold"),this.registerColumnOption("cellClick"),this.registerColumnOption("cellDblClick"),this.registerColumnOption("cellContext"),this.registerColumnOption("cellMouseEnter"),this.registerColumnOption("cellMouseLeave"),this.registerColumnOption("cellMouseOver"),this.registerColumnOption("cellMouseOut"),this.registerColumnOption("cellMouseMove"),this.registerColumnOption("cellMouseDown"),this.registerColumnOption("cellMouseUp"),this.registerColumnOption("cellTap"),this.registerColumnOption("cellDblTap"),this.registerColumnOption("cellTapHold")}initialize(){this.initializeExternalEvents(),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("cell-dblclick",this.cellContentsSelectionFixer.bind(this)),this.subscribe("scroll-horizontal",this.clearTouchWatchers.bind(this)),this.subscribe("scroll-vertical",this.clearTouchWatchers.bind(this))}clearTouchWatchers(){Object.values(this.touchWatchers).forEach(a=>{for(let b in a)a[b]=null})}cellContentsSelectionFixer(a,b){var c;if(!this.table.modExists("edit")||this.table.modules.edit.currentCell!==b){a.preventDefault();try{document.selection?((c=document.body.createTextRange()).moveToElementText(b.getElement()),c.select()):window.getSelection&&((c=document.createRange()).selectNode(b.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(c))}catch(a){}}}initializeExternalEvents(){for(let a in this.eventMap)this.subscriptionChangeExternal(a,this.subscriptionChanged.bind(this,a))}subscriptionChanged(a,b){b?this.subscribers[a]||(this.eventMap[a].includes("-")?(this.subscribers[a]=this.handle.bind(this,a),this.subscribe(this.eventMap[a],this.subscribers[a])):this.subscribeTouchEvents(a)):this.eventMap[a].includes("-")?!this.subscribers[a]||this.columnSubscribers[a]||this.subscribedExternal(a)||(this.unsubscribe(this.eventMap[a],this.subscribers[a]),delete this.subscribers[a]):this.unsubscribeTouchEvents(a)}subscribeTouchEvents(a){var b=this.eventMap[a];this.touchSubscribers[b+"-touchstart"]||(this.touchSubscribers[b+"-touchstart"]=this.handleTouch.bind(this,b,"start"),this.touchSubscribers[b+"-touchend"]=this.handleTouch.bind(this,b,"end"),this.subscribe(b+"-touchstart",this.touchSubscribers[b+"-touchstart"]),this.subscribe(b+"-touchend",this.touchSubscribers[b+"-touchend"])),this.subscribers[a]=!0}unsubscribeTouchEvents(a){var b=!0,c=this.eventMap[a];if(this.subscribers[a]&&!this.subscribedExternal(a)){for(let d in delete this.subscribers[a],this.eventMap)this.eventMap[d]===c&&this.subscribers[d]&&(b=!1);b&&(this.unsubscribe(c+"-touchstart",this.touchSubscribers[c+"-touchstart"]),this.unsubscribe(c+"-touchend",this.touchSubscribers[c+"-touchend"]),delete this.touchSubscribers[c+"-touchstart"],delete this.touchSubscribers[c+"-touchend"])}}initializeColumn(a){var b=a.definition;for(let c in this.eventMap)b[c]&&(this.subscriptionChanged(c,!0),this.columnSubscribers[c]||(this.columnSubscribers[c]=[]),this.columnSubscribers[c].push(a))}handle(a,b,c){this.dispatchEvent(a,b,c)}handleTouch(a,b,c,d){var e=this.touchWatchers[a];switch("column"===a&&(a="header"),b){case"start":e.tap=!0,clearTimeout(e.tapHold),e.tapHold=setTimeout(()=>{clearTimeout(e.tapHold),e.tapHold=null,e.tap=null,clearTimeout(e.tapDbl),e.tapDbl=null,this.dispatchEvent(a+"TapHold",c,d)},1e3);break;case"end":e.tap&&(e.tap=null,this.dispatchEvent(a+"Tap",c,d)),e.tapDbl?(clearTimeout(e.tapDbl),e.tapDbl=null,this.dispatchEvent(a+"DblTap",c,d)):e.tapDbl=setTimeout(()=>{clearTimeout(e.tapDbl),e.tapDbl=null},300),clearTimeout(e.tapHold),e.tapHold=null}}dispatchEvent(a,b,c){var d,e=c.getComponent();this.columnSubscribers[a]&&(c instanceof D?d=c.column.definition[a]:c instanceof G&&(d=c.definition[a]),d&&d(b,e)),this.dispatchExternal(a,b,e)}},KeybindingsModule:ai,MenuModule:class extends p{static moduleName="menu";constructor(a){super(a),this.menuContainer=null,this.nestedMenuBlock=!1,this.currentComponent=null,this.rootPopup=null,this.columnSubscribers={},this.registerTableOption("rowContextMenu",!1),this.registerTableOption("rowClickMenu",!1),this.registerTableOption("rowDblClickMenu",!1),this.registerTableOption("groupContextMenu",!1),this.registerTableOption("groupClickMenu",!1),this.registerTableOption("groupDblClickMenu",!1),this.registerColumnOption("headerContextMenu"),this.registerColumnOption("headerClickMenu"),this.registerColumnOption("headerDblClickMenu"),this.registerColumnOption("headerMenu"),this.registerColumnOption("headerMenuIcon"),this.registerColumnOption("contextMenu"),this.registerColumnOption("clickMenu"),this.registerColumnOption("dblClickMenu")}initialize(){this.deprecatedOptionsCheck(),this.initializeRowWatchers(),this.initializeGroupWatchers(),this.subscribe("column-init",this.initializeColumn.bind(this))}deprecatedOptionsCheck(){}initializeRowWatchers(){this.table.options.rowContextMenu&&(this.subscribe("row-contextmenu",this.loadMenuEvent.bind(this,this.table.options.rowContextMenu)),this.table.on("rowTapHold",this.loadMenuEvent.bind(this,this.table.options.rowContextMenu))),this.table.options.rowClickMenu&&this.subscribe("row-click",this.loadMenuEvent.bind(this,this.table.options.rowClickMenu)),this.table.options.rowDblClickMenu&&this.subscribe("row-dblclick",this.loadMenuEvent.bind(this,this.table.options.rowDblClickMenu))}initializeGroupWatchers(){this.table.options.groupContextMenu&&(this.subscribe("group-contextmenu",this.loadMenuEvent.bind(this,this.table.options.groupContextMenu)),this.table.on("groupTapHold",this.loadMenuEvent.bind(this,this.table.options.groupContextMenu))),this.table.options.groupClickMenu&&this.subscribe("group-click",this.loadMenuEvent.bind(this,this.table.options.groupClickMenu)),this.table.options.groupDblClickMenu&&this.subscribe("group-dblclick",this.loadMenuEvent.bind(this,this.table.options.groupDblClickMenu))}initializeColumn(a){var b=a.definition;b.headerContextMenu&&!this.columnSubscribers.headerContextMenu&&(this.columnSubscribers.headerContextMenu=this.loadMenuTableColumnEvent.bind(this,"headerContextMenu"),this.subscribe("column-contextmenu",this.columnSubscribers.headerContextMenu),this.table.on("headerTapHold",this.loadMenuTableColumnEvent.bind(this,"headerContextMenu"))),b.headerClickMenu&&!this.columnSubscribers.headerClickMenu&&(this.columnSubscribers.headerClickMenu=this.loadMenuTableColumnEvent.bind(this,"headerClickMenu"),this.subscribe("column-click",this.columnSubscribers.headerClickMenu)),b.headerDblClickMenu&&!this.columnSubscribers.headerDblClickMenu&&(this.columnSubscribers.headerDblClickMenu=this.loadMenuTableColumnEvent.bind(this,"headerDblClickMenu"),this.subscribe("column-dblclick",this.columnSubscribers.headerDblClickMenu)),b.headerMenu&&this.initializeColumnHeaderMenu(a),b.contextMenu&&!this.columnSubscribers.contextMenu&&(this.columnSubscribers.contextMenu=this.loadMenuTableCellEvent.bind(this,"contextMenu"),this.subscribe("cell-contextmenu",this.columnSubscribers.contextMenu),this.table.on("cellTapHold",this.loadMenuTableCellEvent.bind(this,"contextMenu"))),b.clickMenu&&!this.columnSubscribers.clickMenu&&(this.columnSubscribers.clickMenu=this.loadMenuTableCellEvent.bind(this,"clickMenu"),this.subscribe("cell-click",this.columnSubscribers.clickMenu)),b.dblClickMenu&&!this.columnSubscribers.dblClickMenu&&(this.columnSubscribers.dblClickMenu=this.loadMenuTableCellEvent.bind(this,"dblClickMenu"),this.subscribe("cell-dblclick",this.columnSubscribers.dblClickMenu))}initializeColumnHeaderMenu(a){var b,c=a.definition.headerMenuIcon;(b=document.createElement("span")).classList.add("tabulator-header-popup-button"),c?("function"==typeof c&&(c=c(a.getComponent())),c instanceof HTMLElement?b.appendChild(c):b.innerHTML=c):b.innerHTML="&vellip;",b.addEventListener("click",b=>{b.stopPropagation(),b.preventDefault(),this.loadMenuEvent(a.definition.headerMenu,b,a)}),a.titleElement.insertBefore(b,a.titleElement.firstChild)}loadMenuTableCellEvent(a,b,c){c._cell&&(c=c._cell),c.column.definition[a]&&this.loadMenuEvent(c.column.definition[a],b,c)}loadMenuTableColumnEvent(a,b,c){c._column&&(c=c._column),c.definition[a]&&this.loadMenuEvent(c.definition[a],b,c)}loadMenuEvent(a,b,c){c._group?c=c._group:c._row&&(c=c._row),a="function"==typeof a?a.call(this.table,b,c.getComponent()):a,this.loadMenu(b,c,a)}loadMenu(a,b,c,d,e){var f,g=!(a instanceof MouseEvent),h=document.createElement("div");if(h.classList.add("tabulator-menu"),g||a.preventDefault(),c&&c.length){if(d)f=e.child(h);else{if(this.nestedMenuBlock){if(this.rootPopup)return}else this.nestedMenuBlock=setTimeout(()=>{this.nestedMenuBlock=!1},100);this.rootPopup&&this.rootPopup.hide(),this.rootPopup=f=this.popup(h)}c.forEach(a=>{var c=document.createElement("div"),d=a.label,e=a.disabled;a.separator?c.classList.add("tabulator-menu-separator"):(c.classList.add("tabulator-menu-item"),"function"==typeof d&&(d=d.call(this.table,b.getComponent())),d instanceof Node?c.appendChild(d):c.innerHTML=d,"function"==typeof e&&(e=e.call(this.table,b.getComponent())),e?(c.classList.add("tabulator-menu-item-disabled"),c.addEventListener("click",a=>{a.stopPropagation()})):a.menu&&a.menu.length?c.addEventListener("click",d=>{d.stopPropagation(),this.loadMenu(d,b,a.menu,c,f)}):a.action&&c.addEventListener("click",c=>{a.action(c,b.getComponent())}),a.menu&&a.menu.length&&c.classList.add("tabulator-menu-item-submenu")),h.appendChild(c)}),h.addEventListener("click",a=>{this.rootPopup&&this.rootPopup.hide()}),f.show(d||a),f===this.rootPopup&&(this.rootPopup.hideOnBlur(()=>{this.rootPopup=null,this.currentComponent&&(this.dispatch("menu-closed",c,f),this.dispatchExternal("menuClosed",this.currentComponent.getComponent()),this.currentComponent=null)}),this.currentComponent=b,this.dispatch("menu-opened",c,f),this.dispatchExternal("menuOpened",b.getComponent()))}}},MoveColumnsModule:class extends p{static moduleName="moveColumn";constructor(a){super(a),this.placeholderElement=this.createPlaceholderElement(),this.hoverElement=!1,this.checkTimeout=!1,this.checkPeriod=250,this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.startX=0,this.autoScrollMargin=40,this.autoScrollStep=5,this.autoScrollTimeout=!1,this.touchMove=!1,this.moveHover=this.moveHover.bind(this),this.endMove=this.endMove.bind(this),this.registerTableOption("movableColumns",!1)}createPlaceholderElement(){var a=document.createElement("div");return a.classList.add("tabulator-col"),a.classList.add("tabulator-col-placeholder"),a}initialize(){this.table.options.movableColumns&&(this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("alert-show",this.abortMove.bind(this)))}abortMove(){clearTimeout(this.checkTimeout)}initializeColumn(a){var b,c=this,d={};a.modules.frozen||a.isGroup||a.isRowHeader||(b=a.getElement(),d.mousemove=(function(d){a.parent===c.moving.parent&&((c.touchMove?d.touches[0].pageX:d.pageX)-n.elOffset(b).left+c.table.columnManager.contentsElement.scrollLeft>a.getWidth()/2?c.toCol===a&&c.toColAfter||(b.parentNode.insertBefore(c.placeholderElement,b.nextSibling),c.moveColumn(a,!0)):(c.toCol!==a||c.toColAfter)&&(b.parentNode.insertBefore(c.placeholderElement,b),c.moveColumn(a,!1)))}).bind(c),b.addEventListener("mousedown",function(b){c.touchMove=!1,1===b.which&&(c.checkTimeout=setTimeout(function(){c.startMove(b,a)},c.checkPeriod))}),b.addEventListener("mouseup",function(a){1===a.which&&c.checkTimeout&&clearTimeout(c.checkTimeout)}),c.bindTouchEvents(a)),a.modules.moveColumn=d}bindTouchEvents(a){var b,c,d,e,f,g,h=a.getElement(),i=!1;h.addEventListener("touchstart",h=>{this.checkTimeout=setTimeout(()=>{this.touchMove=!0,d=(b=a.nextColumn())?b.getWidth()/2:0,e=(c=a.prevColumn())?c.getWidth()/2:0,f=0,g=0,i=!1,this.startMove(h,a)},this.checkPeriod)},{passive:!0}),h.addEventListener("touchmove",h=>{var j,k;this.moving&&(this.moveHover(h),i||(i=h.touches[0].pageX),(j=h.touches[0].pageX-i)>0?b&&j-f>d&&(k=b)!==a&&(i=h.touches[0].pageX,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement().nextSibling),this.moveColumn(k,!0)):c&&-j-g>e&&(k=c)!==a&&(i=h.touches[0].pageX,k.getElement().parentNode.insertBefore(this.placeholderElement,k.getElement()),this.moveColumn(k,!1)),k&&(b=k.nextColumn(),f=d,d=b?b.getWidth()/2:0,c=k.prevColumn(),g=e,e=c?c.getWidth()/2:0))},{passive:!0}),h.addEventListener("touchend",a=>{this.checkTimeout&&clearTimeout(this.checkTimeout),this.moving&&this.endMove(a)})}startMove(a,b){var c=b.getElement(),d=this.table.columnManager.getContentsElement(),e=this.table.columnManager.getHeadersElement();this.table.modules.selectRange&&this.table.modules.selectRange.columnSelection&&this.table.modules.selectRange.mousedown&&"column"===this.table.modules.selectRange.selecting||(this.moving=b,this.startX=(this.touchMove?a.touches[0].pageX:a.pageX)-n.elOffset(c).left,this.table.element.classList.add("tabulator-block-select"),this.placeholderElement.style.width=b.getWidth()+"px",this.placeholderElement.style.height=b.getHeight()+"px",c.parentNode.insertBefore(this.placeholderElement,c),c.parentNode.removeChild(c),this.hoverElement=c.cloneNode(!0),this.hoverElement.classList.add("tabulator-moving"),d.appendChild(this.hoverElement),this.hoverElement.style.left="0",this.hoverElement.style.bottom=d.clientHeight-e.offsetHeight+"px",this.touchMove||(this._bindMouseMove(),document.body.addEventListener("mousemove",this.moveHover),document.body.addEventListener("mouseup",this.endMove)),this.moveHover(a),this.dispatch("column-moving",a,this.moving))}_bindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(a){a.modules.moveColumn.mousemove&&a.getElement().addEventListener("mousemove",a.modules.moveColumn.mousemove)})}_unbindMouseMove(){this.table.columnManager.columnsByIndex.forEach(function(a){a.modules.moveColumn.mousemove&&a.getElement().removeEventListener("mousemove",a.modules.moveColumn.mousemove)})}moveColumn(a,b){var c=this.moving.getCells();this.toCol=a,this.toColAfter=b,b?a.getCells().forEach(function(a,b){var d=a.getElement(!0);d.parentNode&&c[b]&&d.parentNode.insertBefore(c[b].getElement(),d.nextSibling)}):a.getCells().forEach(function(a,b){var d=a.getElement(!0);d.parentNode&&c[b]&&d.parentNode.insertBefore(c[b].getElement(),d)})}endMove(a){(1===a.which||this.touchMove)&&(this._unbindMouseMove(),this.placeholderElement.parentNode.insertBefore(this.moving.getElement(),this.placeholderElement.nextSibling),this.placeholderElement.parentNode.removeChild(this.placeholderElement),this.hoverElement.parentNode.removeChild(this.hoverElement),this.table.element.classList.remove("tabulator-block-select"),this.toCol&&this.table.columnManager.moveColumnActual(this.moving,this.toCol,this.toColAfter),this.moving=!1,this.toCol=!1,this.toColAfter=!1,this.touchMove||(document.body.removeEventListener("mousemove",this.moveHover),document.body.removeEventListener("mouseup",this.endMove)))}moveHover(a){var b,c=this.table.columnManager.getContentsElement(),d=c.scrollLeft,e=(this.touchMove?a.touches[0].pageX:a.pageX)-n.elOffset(c).left+d;this.hoverElement.style.left=e-this.startX+"px",e-d<this.autoScrollMargin&&!this.autoScrollTimeout&&(this.autoScrollTimeout=setTimeout(()=>{b=Math.max(0,d-5),this.table.rowManager.getElement().scrollLeft=b,this.autoScrollTimeout=!1},1)),d+c.clientWidth-e<this.autoScrollMargin&&!this.autoScrollTimeout&&(this.autoScrollTimeout=setTimeout(()=>{b=Math.min(c.clientWidth,d+5),this.table.rowManager.getElement().scrollLeft=b,this.autoScrollTimeout=!1},1))}},MoveRowsModule:al,MutatorModule:an,PageModule:ap,PersistenceModule:as,PopupModule:class extends p{static moduleName="popup";constructor(a){super(a),this.columnSubscribers={},this.registerTableOption("rowContextPopup",!1),this.registerTableOption("rowClickPopup",!1),this.registerTableOption("rowDblClickPopup",!1),this.registerTableOption("groupContextPopup",!1),this.registerTableOption("groupClickPopup",!1),this.registerTableOption("groupDblClickPopup",!1),this.registerColumnOption("headerContextPopup"),this.registerColumnOption("headerClickPopup"),this.registerColumnOption("headerDblClickPopup"),this.registerColumnOption("headerPopup"),this.registerColumnOption("headerPopupIcon"),this.registerColumnOption("contextPopup"),this.registerColumnOption("clickPopup"),this.registerColumnOption("dblClickPopup"),this.registerComponentFunction("cell","popup",this._componentPopupCall.bind(this)),this.registerComponentFunction("column","popup",this._componentPopupCall.bind(this)),this.registerComponentFunction("row","popup",this._componentPopupCall.bind(this)),this.registerComponentFunction("group","popup",this._componentPopupCall.bind(this))}initialize(){this.initializeRowWatchers(),this.initializeGroupWatchers(),this.subscribe("column-init",this.initializeColumn.bind(this))}_componentPopupCall(a,b,c){this.loadPopupEvent(b,null,a,c)}initializeRowWatchers(){this.table.options.rowContextPopup&&(this.subscribe("row-contextmenu",this.loadPopupEvent.bind(this,this.table.options.rowContextPopup)),this.table.on("rowTapHold",this.loadPopupEvent.bind(this,this.table.options.rowContextPopup))),this.table.options.rowClickPopup&&this.subscribe("row-click",this.loadPopupEvent.bind(this,this.table.options.rowClickPopup)),this.table.options.rowDblClickPopup&&this.subscribe("row-dblclick",this.loadPopupEvent.bind(this,this.table.options.rowDblClickPopup))}initializeGroupWatchers(){this.table.options.groupContextPopup&&(this.subscribe("group-contextmenu",this.loadPopupEvent.bind(this,this.table.options.groupContextPopup)),this.table.on("groupTapHold",this.loadPopupEvent.bind(this,this.table.options.groupContextPopup))),this.table.options.groupClickPopup&&this.subscribe("group-click",this.loadPopupEvent.bind(this,this.table.options.groupClickPopup)),this.table.options.groupDblClickPopup&&this.subscribe("group-dblclick",this.loadPopupEvent.bind(this,this.table.options.groupDblClickPopup))}initializeColumn(a){var b=a.definition;b.headerContextPopup&&!this.columnSubscribers.headerContextPopup&&(this.columnSubscribers.headerContextPopup=this.loadPopupTableColumnEvent.bind(this,"headerContextPopup"),this.subscribe("column-contextmenu",this.columnSubscribers.headerContextPopup),this.table.on("headerTapHold",this.loadPopupTableColumnEvent.bind(this,"headerContextPopup"))),b.headerClickPopup&&!this.columnSubscribers.headerClickPopup&&(this.columnSubscribers.headerClickPopup=this.loadPopupTableColumnEvent.bind(this,"headerClickPopup"),this.subscribe("column-click",this.columnSubscribers.headerClickPopup)),b.headerDblClickPopup&&!this.columnSubscribers.headerDblClickPopup&&(this.columnSubscribers.headerDblClickPopup=this.loadPopupTableColumnEvent.bind(this,"headerDblClickPopup"),this.subscribe("column-dblclick",this.columnSubscribers.headerDblClickPopup)),b.headerPopup&&this.initializeColumnHeaderPopup(a),b.contextPopup&&!this.columnSubscribers.contextPopup&&(this.columnSubscribers.contextPopup=this.loadPopupTableCellEvent.bind(this,"contextPopup"),this.subscribe("cell-contextmenu",this.columnSubscribers.contextPopup),this.table.on("cellTapHold",this.loadPopupTableCellEvent.bind(this,"contextPopup"))),b.clickPopup&&!this.columnSubscribers.clickPopup&&(this.columnSubscribers.clickPopup=this.loadPopupTableCellEvent.bind(this,"clickPopup"),this.subscribe("cell-click",this.columnSubscribers.clickPopup)),b.dblClickPopup&&!this.columnSubscribers.dblClickPopup&&(this.columnSubscribers.dblClickPopup=this.loadPopupTableCellEvent.bind(this,"dblClickPopup"),this.subscribe("cell-click",this.columnSubscribers.dblClickPopup))}initializeColumnHeaderPopup(a){var b,c=a.definition.headerPopupIcon;(b=document.createElement("span")).classList.add("tabulator-header-popup-button"),c?("function"==typeof c&&(c=c(a.getComponent())),c instanceof HTMLElement?b.appendChild(c):b.innerHTML=c):b.innerHTML="&vellip;",b.addEventListener("click",b=>{b.stopPropagation(),b.preventDefault(),this.loadPopupEvent(a.definition.headerPopup,b,a)}),a.titleElement.insertBefore(b,a.titleElement.firstChild)}loadPopupTableCellEvent(a,b,c){c._cell&&(c=c._cell),c.column.definition[a]&&this.loadPopupEvent(c.column.definition[a],b,c)}loadPopupTableColumnEvent(a,b,c){c._column&&(c=c._column),c.definition[a]&&this.loadPopupEvent(c.definition[a],b,c)}loadPopupEvent(a,b,c,d){var e;c._group?c=c._group:c._row&&(c=c._row),a="function"==typeof a?a.call(this.table,b,c.getComponent(),function(a){e=a}):a,this.loadPopup(b,c,a,e,d)}loadPopup(a,b,c,d,e){var f,g,h=!(a instanceof MouseEvent);c instanceof HTMLElement?f=c:(f=document.createElement("div")).innerHTML=c,f.classList.add("tabulator-popup"),f.addEventListener("click",a=>{a.stopPropagation()}),h||a.preventDefault(),g=this.popup(f),"function"==typeof d&&g.renderCallback(d),a?g.show(a):g.show(b.getElement(),e||"center"),g.hideOnBlur(()=>{this.dispatchExternal("popupClosed",b.getComponent())}),this.dispatchExternal("popupOpened",b.getComponent())}},PrintModule:class extends p{static moduleName="print";constructor(a){super(a),this.element=!1,this.manualBlock=!1,this.beforeprintEventHandler=null,this.afterprintEventHandler=null,this.registerTableOption("printAsHtml",!1),this.registerTableOption("printFormatter",!1),this.registerTableOption("printHeader",!1),this.registerTableOption("printFooter",!1),this.registerTableOption("printStyled",!0),this.registerTableOption("printRowRange","visible"),this.registerTableOption("printConfig",{}),this.registerColumnOption("print"),this.registerColumnOption("titlePrint")}initialize(){this.table.options.printAsHtml&&(this.beforeprintEventHandler=this.replaceTable.bind(this),this.afterprintEventHandler=this.cleanup.bind(this),window.addEventListener("beforeprint",this.beforeprintEventHandler),window.addEventListener("afterprint",this.afterprintEventHandler),this.subscribe("table-destroy",this.destroy.bind(this))),this.registerTableFunction("print",this.printFullscreen.bind(this))}destroy(){this.table.options.printAsHtml&&(window.removeEventListener("beforeprint",this.beforeprintEventHandler),window.removeEventListener("afterprint",this.afterprintEventHandler))}replaceTable(){this.manualBlock||(this.element=document.createElement("div"),this.element.classList.add("tabulator-print-table"),this.element.appendChild(this.table.modules.export.generateTable(this.table.options.printConfig,this.table.options.printStyled,this.table.options.printRowRange,"print")),this.table.element.style.display="none",this.table.element.parentNode.insertBefore(this.element,this.table.element))}cleanup(){document.body.classList.remove("tabulator-print-fullscreen-hide"),this.element&&this.element.parentNode&&(this.element.parentNode.removeChild(this.element),this.table.element.style.display="")}printFullscreen(a,b,c){var d,e,f=window.scrollX,g=window.scrollY,h=document.createElement("div"),i=document.createElement("div"),j=this.table.modules.export.generateTable(void 0!==c?c:this.table.options.printConfig,void 0!==b?b:this.table.options.printStyled,a||this.table.options.printRowRange,"print");this.manualBlock=!0,this.element=document.createElement("div"),this.element.classList.add("tabulator-print-fullscreen"),this.table.options.printHeader&&(h.classList.add("tabulator-print-header"),"string"==typeof(d="function"==typeof this.table.options.printHeader?this.table.options.printHeader.call(this.table):this.table.options.printHeader)?h.innerHTML=d:h.appendChild(d),this.element.appendChild(h)),this.element.appendChild(j),this.table.options.printFooter&&(i.classList.add("tabulator-print-footer"),"string"==typeof(e="function"==typeof this.table.options.printFooter?this.table.options.printFooter.call(this.table):this.table.options.printFooter)?i.innerHTML=e:i.appendChild(e),this.element.appendChild(i)),document.body.classList.add("tabulator-print-fullscreen-hide"),document.body.appendChild(this.element),this.table.options.printFormatter&&this.table.options.printFormatter(this.element,j),window.print(),this.cleanup(),window.scrollTo(f,g),this.manualBlock=!1}},ReactiveDataModule:class extends p{static moduleName="reactiveData";constructor(a){super(a),this.data=!1,this.blocked=!1,this.origFuncs={},this.currentVersion=0,this.registerTableOption("reactiveData",!1)}initialize(){this.table.options.reactiveData&&(this.subscribe("cell-value-save-before",this.block.bind(this,"cellsave")),this.subscribe("cell-value-save-after",this.unblock.bind(this,"cellsave")),this.subscribe("row-data-save-before",this.block.bind(this,"rowsave")),this.subscribe("row-data-save-after",this.unblock.bind(this,"rowsave")),this.subscribe("row-data-init-after",this.watchRow.bind(this)),this.subscribe("data-processing",this.watchData.bind(this)),this.subscribe("table-destroy",this.unwatchData.bind(this)))}watchData(a){var b,c=this;this.currentVersion++,b=this.currentVersion,this.unwatchData(),this.data=a,this.origFuncs.push=a.push,Object.defineProperty(this.data,"push",{enumerable:!1,configurable:!0,value:function(){var d,e=Array.from(arguments);return c.blocked||b!==c.currentVersion||(c.block("data-push"),e.forEach(a=>{c.table.rowManager.addRowActual(a,!1)}),d=c.origFuncs.push.apply(a,arguments),c.unblock("data-push")),d}}),this.origFuncs.unshift=a.unshift,Object.defineProperty(this.data,"unshift",{enumerable:!1,configurable:!0,value:function(){var d,e=Array.from(arguments);return c.blocked||b!==c.currentVersion||(c.block("data-unshift"),e.forEach(a=>{c.table.rowManager.addRowActual(a,!0)}),d=c.origFuncs.unshift.apply(a,arguments),c.unblock("data-unshift")),d}}),this.origFuncs.shift=a.shift,Object.defineProperty(this.data,"shift",{enumerable:!1,configurable:!0,value:function(){var d,e;return c.blocked||b!==c.currentVersion||(c.block("data-shift"),c.data.length&&(d=c.table.rowManager.getRowFromDataObject(c.data[0]))&&d.deleteActual(),e=c.origFuncs.shift.call(a),c.unblock("data-shift")),e}}),this.origFuncs.pop=a.pop,Object.defineProperty(this.data,"pop",{enumerable:!1,configurable:!0,value:function(){var d,e;return c.blocked||b!==c.currentVersion||(c.block("data-pop"),c.data.length&&(d=c.table.rowManager.getRowFromDataObject(c.data[c.data.length-1]))&&d.deleteActual(),e=c.origFuncs.pop.call(a),c.unblock("data-pop")),e}}),this.origFuncs.splice=a.splice,Object.defineProperty(this.data,"splice",{enumerable:!1,configurable:!0,value:function(){var d,e,f=Array.from(arguments),g=f[0]<0?a.length+f[0]:f[0],h=f[1],i=!!f[2]&&f.slice(2);if(!c.blocked&&b===c.currentVersion){if(c.block("data-splice"),i&&((d=!!a[g]&&c.table.rowManager.getRowFromDataObject(a[g]))?i.forEach(a=>{c.table.rowManager.addRowActual(a,!0,d,!0)}):(i=i.slice().reverse()).forEach(a=>{c.table.rowManager.addRowActual(a,!0,!1,!0)})),0!==h){var j=a.slice(g,void 0===f[1]?f[1]:g+h);j.forEach((a,b)=>{var d=c.table.rowManager.getRowFromDataObject(a);d&&d.deleteActual(b!==j.length-1)})}(i||0!==h)&&c.table.rowManager.reRenderInPosition(),e=c.origFuncs.splice.apply(a,arguments),c.unblock("data-splice")}return e}})}unwatchData(){if(!1!==this.data)for(var a in this.origFuncs)Object.defineProperty(this.data,a,{enumerable:!0,configurable:!0,writable:!0,value:this.origFuncs[a]})}watchRow(a){var b=a.getData();for(var c in b)this.watchKey(a,b,c);this.table.options.dataTree&&this.watchTreeChildren(a)}watchTreeChildren(a){var b=this,c=a.getData()[this.table.options.dataTreeChildField],d={};c&&(d.push=c.push,Object.defineProperty(c,"push",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-push");var e=d.push.apply(c,arguments);this.rebuildTree(a),b.unblock("tree-push")}return e}}),d.unshift=c.unshift,Object.defineProperty(c,"unshift",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-unshift");var e=d.unshift.apply(c,arguments);this.rebuildTree(a),b.unblock("tree-unshift")}return e}}),d.shift=c.shift,Object.defineProperty(c,"shift",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-shift");var e=d.shift.call(c);this.rebuildTree(a),b.unblock("tree-shift")}return e}}),d.pop=c.pop,Object.defineProperty(c,"pop",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-pop");var e=d.pop.call(c);this.rebuildTree(a),b.unblock("tree-pop")}return e}}),d.splice=c.splice,Object.defineProperty(c,"splice",{enumerable:!1,configurable:!0,value:()=>{if(!b.blocked){b.block("tree-splice");var e=d.splice.apply(c,arguments);this.rebuildTree(a),b.unblock("tree-splice")}return e}}))}rebuildTree(a){this.table.modules.dataTree.initializeRow(a),this.table.modules.dataTree.layoutRow(a),this.table.rowManager.refreshActiveData("tree",!1,!0)}watchKey(a,b,c){var d=this,e=Object.getOwnPropertyDescriptor(b,c),f=b[c],g=this.currentVersion;Object.defineProperty(b,c,{set:b=>{if(f=b,!d.blocked&&g===d.currentVersion){d.block("key");var h={};h[c]=b,a.updateData(h),d.unblock("key")}e.set&&e.set(b)},get:()=>(e.get&&e.get(),f)})}unwatchRow(a){var b=a.getData();for(var c in b)Object.defineProperty(b,c,{value:b[c]})}block(a){this.blocked||(this.blocked=a)}unblock(a){this.blocked===a&&(this.blocked=!1)}},ResizeColumnsModule:class extends p{static moduleName="resizeColumns";constructor(a){super(a),this.startColumn=!1,this.startX=!1,this.startWidth=!1,this.latestX=!1,this.handle=null,this.initialNextColumn=null,this.nextColumn=null,this.initialized=!1,this.registerColumnOption("resizable",!0),this.registerTableOption("resizableColumnFit",!1),this.registerTableOption("resizableColumnGuide",!1)}initialize(){this.subscribe("column-rendered",this.layoutColumnHeader.bind(this))}initializeEventWatchers(){this.initialized||(this.subscribe("cell-rendered",this.layoutCellHandles.bind(this)),this.subscribe("cell-delete",this.deInitializeComponent.bind(this)),this.subscribe("cell-height",this.resizeHandle.bind(this)),this.subscribe("column-moved",this.columnLayoutUpdated.bind(this)),this.subscribe("column-hide",this.deInitializeColumn.bind(this)),this.subscribe("column-show",this.columnLayoutUpdated.bind(this)),this.subscribe("column-width",this.columnWidthUpdated.bind(this)),this.subscribe("column-delete",this.deInitializeComponent.bind(this)),this.subscribe("column-height",this.resizeHandle.bind(this)),this.initialized=!0)}layoutCellHandles(a){"row"===a.row.type&&(this.deInitializeComponent(a),this.initializeColumn("cell",a,a.column,a.element))}layoutColumnHeader(a){a.definition.resizable&&(this.initializeEventWatchers(),this.deInitializeComponent(a),this.initializeColumn("header",a,a,a.element))}columnLayoutUpdated(a){var b=a.prevColumn();this.reinitializeColumn(a),b&&this.reinitializeColumn(b)}columnWidthUpdated(a){a.modules.frozen&&(this.table.modules.frozenColumns.leftColumns.includes(a)?this.table.modules.frozenColumns.leftColumns.forEach(a=>{this.reinitializeColumn(a)}):this.table.modules.frozenColumns.rightColumns.includes(a)&&this.table.modules.frozenColumns.rightColumns.forEach(a=>{this.reinitializeColumn(a)}))}frozenColumnOffset(a){var b=!1;return a.modules.frozen&&(b=a.modules.frozen.marginValue,"left"===a.modules.frozen.position?b+=a.getWidth()-3:b&&(b-=3)),!1!==b&&b+"px"}reinitializeColumn(a){var b=this.frozenColumnOffset(a);a.cells.forEach(c=>{c.modules.resize&&c.modules.resize.handleEl&&(b&&(c.modules.resize.handleEl.style[a.modules.frozen.position]=b,c.modules.resize.handleEl.style["z-index"]=11),c.element.after(c.modules.resize.handleEl))}),a.modules.resize&&a.modules.resize.handleEl&&(b&&(a.modules.resize.handleEl.style[a.modules.frozen.position]=b),a.element.after(a.modules.resize.handleEl))}initializeColumn(a,b,c,d){var e=this,f=c.definition.resizable,g={},h=c.getLastColumn();if("header"===a&&(g={variableHeight:"textarea"==c.definition.formatter||c.definition.variableHeight}),(!0===f||f==a)&&this._checkResizability(h)){var i=document.createElement("span");i.className="tabulator-col-resize-handle",i.addEventListener("click",function(a){a.stopPropagation()});var j=function(a){e.startColumn=c,e.initialNextColumn=e.nextColumn=h.nextColumn(),e._mouseDown(a,h,i)};i.addEventListener("mousedown",j),i.addEventListener("touchstart",j,{passive:!0}),i.addEventListener("dblclick",a=>{var b=h.getWidth();a.stopPropagation(),h.reinitializeWidth(!0),b!==h.getWidth()&&(e.dispatch("column-resized",h),e.dispatchExternal("columnResized",h.getComponent()))}),c.modules.frozen&&(i.style.position="sticky",i.style[c.modules.frozen.position]=this.frozenColumnOffset(c)),g.handleEl=i,d.parentNode&&c.visible&&d.after(i)}b.modules.resize=g}deInitializeColumn(a){this.deInitializeComponent(a),a.cells.forEach(a=>{this.deInitializeComponent(a)})}deInitializeComponent(a){var b;a.modules.resize&&(b=a.modules.resize.handleEl)&&b.parentElement&&b.parentElement.removeChild(b)}resizeHandle(a,b){a.modules.resize&&a.modules.resize.handleEl&&(a.modules.resize.handleEl.style.height=b)}resize(a,b){var c,d,e=void 0===a.clientX?a.touches[0].clientX:a.clientX,f=e-this.startX,g=e-this.latestX;if(this.latestX=e,this.table.rtl&&(f=-f,g=-g),c=b.width==b.minWidth||b.width==b.maxWidth,b.setWidth(this.startWidth+f),d=b.width==b.minWidth||b.width==b.maxWidth,g<0&&(this.nextColumn=this.initialNextColumn),this.table.options.resizableColumnFit&&this.nextColumn&&!(c&&d)){let a=this.nextColumn.getWidth();g>0&&a<=this.nextColumn.minWidth&&(this.nextColumn=this.nextColumn.nextColumn()),this.nextColumn&&this.nextColumn.setWidth(this.nextColumn.getWidth()-g)}this.table.columnManager.rerenderColumns(!0),!this.table.browserSlow&&b.modules.resize&&b.modules.resize.variableHeight&&b.checkCellHeights()}calcGuidePosition(a,b,c){var d=void 0===a.clientX?a.touches[0].clientX:a.clientX,e=c.getBoundingClientRect().x-this.table.element.getBoundingClientRect().x,f=this.table.element.getBoundingClientRect().x,g=b.element.getBoundingClientRect().left-f,h=Math.max(e+(d-this.startX),g+b.minWidth);return b.maxWidth&&(h=Math.min(h,g+b.maxWidth)),h}_checkResizability(a){return a.definition.resizable}_mouseDown(a,b,c){var d,e=this;function f(a){e.table.options.resizableColumnGuide?d.style.left=e.calcGuidePosition(a,b,c)+"px":e.resize(a,b)}function g(a){e.table.options.resizableColumnGuide&&(e.resize(a,b),d.remove()),e.startColumn.modules.edit&&(e.startColumn.modules.edit.blocked=!1),e.table.browserSlow&&b.modules.resize&&b.modules.resize.variableHeight&&b.checkCellHeights(),document.body.removeEventListener("mouseup",g),document.body.removeEventListener("mousemove",f),c.removeEventListener("touchmove",f),c.removeEventListener("touchend",g),e.table.element.classList.remove("tabulator-block-select"),e.startWidth!==b.getWidth()&&(e.table.columnManager.verticalAlignHeaders(),e.dispatch("column-resized",b),e.dispatchExternal("columnResized",b.getComponent()))}this.dispatchExternal("columnResizing",b.getComponent()),e.table.options.resizableColumnGuide&&((d=document.createElement("span")).classList.add("tabulator-col-resize-guide"),e.table.element.appendChild(d),setTimeout(()=>{d.style.left=e.calcGuidePosition(a,b,c)+"px"})),e.table.element.classList.add("tabulator-block-select"),a.stopPropagation(),e.startColumn.modules.edit&&(e.startColumn.modules.edit.blocked=!0),e.startX=void 0===a.clientX?a.touches[0].clientX:a.clientX,e.latestX=e.startX,e.startWidth=b.getWidth(),document.body.addEventListener("mousemove",f),document.body.addEventListener("mouseup",g),c.addEventListener("touchmove",f,{passive:!0}),c.addEventListener("touchend",g)}},ResizeRowsModule:class extends p{static moduleName="resizeRows";constructor(a){super(a),this.startColumn=!1,this.startY=!1,this.startHeight=!1,this.handle=null,this.prevHandle=null,this.registerTableOption("resizableRows",!1),this.registerTableOption("resizableRowGuide",!1)}initialize(){this.table.options.resizableRows&&this.subscribe("row-layout-after",this.initializeRow.bind(this))}initializeRow(a){var b=this,c=a.getElement(),d=document.createElement("div");d.className="tabulator-row-resize-handle";var e=document.createElement("div");e.className="tabulator-row-resize-handle prev",d.addEventListener("click",function(a){a.stopPropagation()});var f=function(c){b.startRow=a,b._mouseDown(c,a,d)};d.addEventListener("mousedown",f),d.addEventListener("touchstart",f,{passive:!0}),e.addEventListener("click",function(a){a.stopPropagation()});var g=function(c){var d=b.table.rowManager.prevDisplayRow(a);d&&(b.startRow=d,b._mouseDown(c,d,e))};e.addEventListener("mousedown",g),e.addEventListener("touchstart",g,{passive:!0}),c.appendChild(d),c.appendChild(e)}resize(a,b){b.setHeight(this.startHeight+((void 0===a.screenY?a.touches[0].screenY:a.screenY)-this.startY))}calcGuidePosition(a,b,c){var d=void 0===a.screenY?a.touches[0].screenY:a.screenY,e=c.getBoundingClientRect().y-this.table.element.getBoundingClientRect().y,f=this.table.element.getBoundingClientRect().y,g=b.element.getBoundingClientRect().top-f;return Math.max(e+(d-this.startY),g)}_mouseDown(a,b,c){var d,e=this;function f(a){e.table.options.resizableRowGuide?d.style.top=e.calcGuidePosition(a,b,c)+"px":e.resize(a,b)}function g(a){e.table.options.resizableRowGuide&&(e.resize(a,b),d.remove()),document.body.removeEventListener("mouseup",f),document.body.removeEventListener("mousemove",f),c.removeEventListener("touchmove",f),c.removeEventListener("touchend",g),e.table.element.classList.remove("tabulator-block-select"),e.dispatchExternal("rowResized",b.getComponent())}e.dispatchExternal("rowResizing",b.getComponent()),e.table.options.resizableRowGuide&&((d=document.createElement("span")).classList.add("tabulator-row-resize-guide"),e.table.element.appendChild(d),setTimeout(()=>{d.style.top=e.calcGuidePosition(a,b,c)+"px"})),e.table.element.classList.add("tabulator-block-select"),a.stopPropagation(),e.startY=void 0===a.screenY?a.touches[0].screenY:a.screenY,e.startHeight=b.getHeight(),document.body.addEventListener("mousemove",f),document.body.addEventListener("mouseup",g),c.addEventListener("touchmove",f,{passive:!0}),c.addEventListener("touchend",g)}},ResizeTableModule:class extends p{static moduleName="resizeTable";constructor(a){super(a),this.binding=!1,this.visibilityObserver=!1,this.resizeObserver=!1,this.containerObserver=!1,this.tableHeight=0,this.tableWidth=0,this.containerHeight=0,this.containerWidth=0,this.autoResize=!1,this.visible=!1,this.initialized=!1,this.initialRedraw=!1,this.registerTableOption("autoResize",!0)}initialize(){if(this.table.options.autoResize){var a,b=this.table;this.tableHeight=b.element.clientHeight,this.tableWidth=b.element.clientWidth,b.element.parentNode&&(this.containerHeight=b.element.parentNode.clientHeight,this.containerWidth=b.element.parentNode.clientWidth),"u">typeof IntersectionObserver&&"u">typeof ResizeObserver&&"virtual"===b.rowManager.getRenderMode()?(this.initializeVisibilityObserver(),this.autoResize=!0,this.resizeObserver=new ResizeObserver(a=>{if(!b.browserMobile||b.browserMobile&&(!b.modules.edit||b.modules.edit&&!b.modules.edit.currentCell)){var c=Math.floor(a[0].contentRect.height),d=Math.floor(a[0].contentRect.width);(this.tableHeight!=c||this.tableWidth!=d)&&(this.tableHeight=c,this.tableWidth=d,b.element.parentNode&&(this.containerHeight=b.element.parentNode.clientHeight,this.containerWidth=b.element.parentNode.clientWidth),this.redrawTable())}}),this.resizeObserver.observe(b.element),a=window.getComputedStyle(b.element),this.table.element.parentNode&&!this.table.rowManager.fixedHeight&&(a.getPropertyValue("max-height")||a.getPropertyValue("min-height"))&&(this.containerObserver=new ResizeObserver(a=>{if(!b.browserMobile||b.browserMobile&&(!b.modules.edit||b.modules.edit&&!b.modules.edit.currentCell)){var c=Math.floor(a[0].contentRect.height),d=Math.floor(a[0].contentRect.width);(this.containerHeight!=c||this.containerWidth!=d)&&(this.containerHeight=c,this.containerWidth=d,this.tableHeight=b.element.clientHeight,this.tableWidth=b.element.clientWidth),this.redrawTable()}}),this.containerObserver.observe(this.table.element.parentNode)),this.subscribe("table-resize",this.tableResized.bind(this))):(this.binding=function(){b.browserMobile&&(!b.browserMobile||b.modules.edit&&(!b.modules.edit||b.modules.edit.currentCell))||(b.columnManager.rerenderColumns(!0),b.redraw())},window.addEventListener("resize",this.binding)),this.subscribe("table-destroy",this.clearBindings.bind(this))}}initializeVisibilityObserver(){this.visibilityObserver=new IntersectionObserver(a=>{this.visible=a[a.length-1].isIntersecting,this.initialized?this.visible&&(this.redrawTable(this.initialRedraw),this.initialRedraw=!1):(this.initialized=!0,this.initialRedraw=!this.visible)}),this.visibilityObserver.observe(this.table.element)}redrawTable(a){this.initialized&&this.visible&&(this.table.columnManager.rerenderColumns(!0),this.table.redraw(a))}tableResized(){this.table.rowManager.redraw()}clearBindings(){this.binding&&window.removeEventListener("resize",this.binding),this.resizeObserver&&this.resizeObserver.unobserve(this.table.element),this.visibilityObserver&&this.visibilityObserver.unobserve(this.table.element),this.containerObserver&&this.containerObserver.unobserve(this.table.element.parentNode)}},ResponsiveLayoutModule:class extends p{static moduleName="responsiveLayout";static moduleExtensions=at;constructor(a){super(a),this.columns=[],this.hiddenColumns=[],this.mode="",this.index=0,this.collapseFormatter=[],this.collapseStartOpen=!0,this.collapseHandleColumn=!1,this.registerTableOption("responsiveLayout",!1),this.registerTableOption("responsiveLayoutCollapseStartOpen",!0),this.registerTableOption("responsiveLayoutCollapseUseFormatters",!0),this.registerTableOption("responsiveLayoutCollapseFormatter",!1),this.registerColumnOption("responsive")}initialize(){this.table.options.responsiveLayout&&(this.subscribe("column-layout",this.initializeColumn.bind(this)),this.subscribe("column-show",this.updateColumnVisibility.bind(this)),this.subscribe("column-hide",this.updateColumnVisibility.bind(this)),this.subscribe("columns-loaded",this.initializeResponsivity.bind(this)),this.subscribe("column-moved",this.initializeResponsivity.bind(this)),this.subscribe("column-add",this.initializeResponsivity.bind(this)),this.subscribe("column-delete",this.initializeResponsivity.bind(this)),this.subscribe("table-redrawing",this.tableRedraw.bind(this)),"collapse"===this.table.options.responsiveLayout&&(this.subscribe("row-data-changed",this.generateCollapsedRowContent.bind(this)),this.subscribe("row-init",this.initializeRow.bind(this)),this.subscribe("row-layout",this.layoutRow.bind(this))))}tableRedraw(a){-1!==["fitColumns","fitDataStretch"].indexOf(this.layoutMode())||a||this.update()}initializeResponsivity(){var a=[];for(let b of(this.mode=this.table.options.responsiveLayout,this.collapseFormatter=this.table.options.responsiveLayoutCollapseFormatter||this.formatCollapsedData,this.collapseStartOpen=this.table.options.responsiveLayoutCollapseStartOpen,this.hiddenColumns=[],this.collapseFormatter&&(this.collapseFormatter=this.collapseFormatter.bind(this.table)),this.table.columnManager.columnsByIndex.forEach((b,c)=>{b.modules.responsive&&b.modules.responsive.order&&b.modules.responsive.visible&&(b.modules.responsive.index=c,a.push(b),b.visible||"collapse"!==this.mode||this.hiddenColumns.push(b))}),a=(a=a.reverse()).sort((a,b)=>b.modules.responsive.order-a.modules.responsive.order||b.modules.responsive.index-a.modules.responsive.index),this.columns=a,"collapse"===this.mode&&this.generateCollapsedContent(),this.table.columnManager.columnsByIndex))if("responsiveCollapse"==b.definition.formatter){this.collapseHandleColumn=b;break}this.collapseHandleColumn&&(this.hiddenColumns.length?this.collapseHandleColumn.show():this.collapseHandleColumn.hide())}initializeColumn(a){var b=a.getDefinition();a.modules.responsive={order:void 0===b.responsive?1:b.responsive,visible:!1!==b.visible}}initializeRow(a){var b;"calc"!==a.type&&((b=document.createElement("div")).classList.add("tabulator-responsive-collapse"),a.modules.responsiveLayout={element:b,open:this.collapseStartOpen},this.collapseStartOpen||(b.style.display="none"))}layoutRow(a){var b=a.getElement();a.modules.responsiveLayout&&(b.appendChild(a.modules.responsiveLayout.element),this.generateCollapsedRowContent(a))}updateColumnVisibility(a,b){!b&&a.modules.responsive&&(a.modules.responsive.visible=a.visible,this.initializeResponsivity())}hideColumn(a){var b=this.hiddenColumns.length;a.hide(!1,!0),"collapse"===this.mode&&(this.hiddenColumns.unshift(a),this.generateCollapsedContent(),this.collapseHandleColumn&&!b&&this.collapseHandleColumn.show())}showColumn(a){var b;a.show(!1,!0),a.setWidth(a.getWidth()),"collapse"===this.mode&&((b=this.hiddenColumns.indexOf(a))>-1&&this.hiddenColumns.splice(b,1),this.generateCollapsedContent(),this.collapseHandleColumn&&!this.hiddenColumns.length&&this.collapseHandleColumn.hide())}update(){for(var a=!0;a;){let b="fitColumns"==this.table.modules.layout.getMode()?this.table.columnManager.getFlexBaseWidth():this.table.columnManager.getWidth(),c=(this.table.options.headerVisible?this.table.columnManager.element.clientWidth:this.table.element.clientWidth)-b;if(c<0){let b=this.columns[this.index];b?(this.hideColumn(b),this.index++):a=!1}else{let b=this.columns[this.index-1];b&&c>0&&c>=b.getWidth()?(this.showColumn(b),this.index--):a=!1}this.table.rowManager.activeRowsCount||this.table.rowManager.renderEmptyScroll()}}generateCollapsedContent(){this.table.rowManager.getDisplayRows().forEach(a=>{this.generateCollapsedRowContent(a)})}generateCollapsedRowContent(a){var b,c;if(a.modules.responsiveLayout){for(b=a.modules.responsiveLayout.element;b.firstChild;)b.removeChild(b.firstChild);(c=this.collapseFormatter(this.generateCollapsedRowData(a)))&&b.appendChild(c),a.calcHeight(!0)}}generateCollapsedRowData(a){var b,c=a.getData(),d=[];return this.hiddenColumns.forEach(e=>{var f=e.getFieldValue(c);e.definition.title&&e.field&&(e.modules.format&&this.table.options.responsiveLayoutCollapseUseFormatters?(b={value:!1,data:{},getValue:function(){return f},getData:function(){return c},getType:function(){return"cell"},getElement:function(){return document.createElement("div")},getRow:function(){return a.getComponent()},getColumn:function(){return e.getComponent()},getTable:()=>this.table},d.push({field:e.field,title:e.definition.title,value:e.modules.format.formatter.call(this.table.modules.format,b,e.modules.format.params,function(a){a()})})):d.push({field:e.field,title:e.definition.title,value:f}))}),d}formatCollapsedData(a){var b=document.createElement("table");return a.forEach(a=>{var c,d=document.createElement("tr"),e=document.createElement("td"),f=document.createElement("td"),g=document.createElement("strong");e.appendChild(g),this.modules.localize.bind("columns|"+a.field,function(b){g.innerHTML=b||a.title}),a.value instanceof Node?((c=document.createElement("div")).appendChild(a.value),f.appendChild(c)):f.innerHTML=a.value,d.appendChild(e),d.appendChild(f),b.appendChild(d)}),Object.keys(a).length?b:""}},SelectRangeModule:class extends p{static moduleName="selectRange";static moduleInitOrder=1;static moduleExtensions=ax;constructor(a){super(a),this.selecting="cell",this.mousedown=!1,this.ranges=[],this.overlay=null,this.rowHeader=null,this.layoutChangeTimeout=null,this.columnSelection=!1,this.rowSelection=!1,this.maxRanges=0,this.activeRange=!1,this.blockKeydown=!1,this.keyDownEvent=this._handleKeyDown.bind(this),this.mouseUpEvent=this._handleMouseUp.bind(this),this.registerTableOption("selectableRange",!1),this.registerTableOption("selectableRangeColumns",!1),this.registerTableOption("selectableRangeRows",!1),this.registerTableOption("selectableRangeClearCells",!1),this.registerTableOption("selectableRangeClearCellsValue",void 0),this.registerTableOption("selectableRangeAutoFocus",!0),this.registerTableOption("selectableRangeBlurEditOnNavigate",void 0),this.registerTableFunction("getRangesData",this.getRangesData.bind(this)),this.registerTableFunction("getRanges",this.getRanges.bind(this)),this.registerTableFunction("addRange",this.addRangeFromComponent.bind(this)),this.registerComponentFunction("cell","getRanges",this.cellGetRanges.bind(this)),this.registerComponentFunction("row","getRanges",this.rowGetRanges.bind(this)),this.registerComponentFunction("column","getRanges",this.colGetRanges.bind(this))}initialize(){this.options("selectableRange")&&(this.options("selectableRows")?console.warn("SelectRange functionality cannot be used in conjunction with row selection"):(this.maxRanges=this.options("selectableRange"),this.initializeTable(),this.initializeWatchers()),this.options("columns").findIndex(a=>a.frozen)>0&&console.warn("Having frozen column in arbitrary position with selectRange option may result in unpredictable behavior."),this.options("columns").filter(a=>a.frozen)>1&&console.warn("Having multiple frozen columns with selectRange option may result in unpredictable behavior.")),this.subscribe("edit-nav-disabled",()=>!0)}initializeTable(){this.overlay=document.createElement("div"),this.overlay.classList.add("tabulator-range-overlay"),this.rangeContainer=document.createElement("div"),this.rangeContainer.classList.add("tabulator-range-container"),this.activeRangeCellElement=document.createElement("div"),this.activeRangeCellElement.classList.add("tabulator-range-cell-active"),this.overlay.appendChild(this.rangeContainer),this.overlay.appendChild(this.activeRangeCellElement),this.table.rowManager.element.addEventListener("keydown",this.keyDownEvent),this.resetRanges(),this.table.rowManager.element.appendChild(this.overlay),this.table.columnManager.element.setAttribute("tabindex",0),this.table.element.classList.add("tabulator-ranges")}initializeWatchers(){this.columnSelection=this.options("selectableRangeColumns"),this.rowSelection=this.options("selectableRangeRows"),this.subscribe("column-init",this.initializeColumn.bind(this)),this.subscribe("column-mousedown",this.handleColumnMouseDown.bind(this)),this.subscribe("column-mousemove",this.handleColumnMouseMove.bind(this)),this.subscribe("column-resized",this.handleColumnResized.bind(this)),this.subscribe("column-moving",this.handleColumnMoving.bind(this)),this.subscribe("column-moved",this.handleColumnMoved.bind(this)),this.subscribe("column-width",this.layoutChange.bind(this)),this.subscribe("column-height",this.layoutChange.bind(this)),this.subscribe("column-resized",this.layoutChange.bind(this)),this.subscribe("columns-loaded",this.updateHeaderColumn.bind(this)),this.subscribe("cell-height",this.layoutChange.bind(this)),this.subscribe("cell-rendered",this.renderCell.bind(this)),this.subscribe("cell-mousedown",this.handleCellMouseDown.bind(this)),this.subscribe("cell-mousemove",this.handleCellMouseMove.bind(this)),this.subscribe("cell-click",this.handleCellClick.bind(this)),this.subscribe("cell-editing",this.handleEditingCell.bind(this)),this.subscribe("page-changed",this.redraw.bind(this)),this.subscribe("scroll-vertical",this.layoutChange.bind(this)),this.subscribe("scroll-horizontal",this.layoutChange.bind(this)),this.subscribe("data-destroy",this.tableDestroyed.bind(this)),this.subscribe("data-processed",this.resetRanges.bind(this)),this.subscribe("table-layout",this.layoutElement.bind(this)),this.subscribe("table-redraw",this.redraw.bind(this)),this.subscribe("table-destroy",this.tableDestroyed.bind(this)),this.subscribe("edit-editor-clear",this.finishEditingCell.bind(this)),this.subscribe("edit-blur",this.restoreFocus.bind(this)),this.subscribe("keybinding-nav-prev",this.keyNavigate.bind(this,"prev")),this.subscribe("keybinding-nav-next",this.keyNavigate.bind(this,"next")),this.subscribe("keybinding-nav-left",this.keyNavigate.bind(this,"left")),this.subscribe("keybinding-nav-right",this.keyNavigate.bind(this,"right")),this.subscribe("keybinding-nav-up",this.keyNavigate.bind(this,"up")),this.subscribe("keybinding-nav-down",this.keyNavigate.bind(this,"down")),this.subscribe("keybinding-nav-range",this.keyNavigateRange.bind(this))}initializeColumn(a){this.columnSelection&&a.definition.headerSort&&"icon"!==this.options("headerSortClickElement")&&console.warn("Using column headerSort with selectableRangeColumns option may result in unpredictable behavior. Consider using headerSortClickElement: 'icon'.")}updateHeaderColumn(){var a;this.rowSelection&&(this.rowHeader=this.table.columnManager.getVisibleColumnsByIndex()[0],this.rowHeader&&(this.rowHeader.definition.cssClass=this.rowHeader.definition.cssClass+" tabulator-range-row-header",this.rowHeader.definition.headerSort&&console.warn("Using column headerSort with selectableRangeRows option may result in unpredictable behavior"),this.rowHeader.definition.editor&&console.warn("Using column editor with selectableRangeRows option may result in unpredictable behavior"))),this.table.modules.frozenColumns&&this.table.modules.frozenColumns.active&&((a=this.table.modules.frozenColumns.getFrozenColumns()).length>1||1===a.length&&a[0]!==this.rowHeader)&&console.warn("Using frozen columns that are not the range header in combination with the selectRange option may result in unpredictable behavior")}getRanges(){return this.ranges.map(a=>a.getComponent())}getRangesData(){return this.ranges.map(a=>a.getData())}addRangeFromComponent(a,b){return a=a?a._cell:null,b=b?b._cell:null,this.addRange(a,b)}cellGetRanges(a){return(a.column===this.rowHeader?this.ranges.filter(b=>b.occupiesRow(a.row)):this.ranges.filter(b=>b.occupies(a))).map(a=>a.getComponent())}rowGetRanges(a){return this.ranges.filter(b=>b.occupiesRow(a)).map(a=>a.getComponent())}colGetRanges(a){return this.ranges.filter(b=>b.occupiesColumn(a)).map(a=>a.getComponent())}_handleMouseUp(a){this.mousedown=!1,document.removeEventListener("mouseup",this.mouseUpEvent)}_handleKeyDown(a){if(!this.blockKeydown&&(!this.table.modules.edit||this.table.modules.edit&&!this.table.modules.edit.currentCell)){if("Enter"===a.key){if(this.table.modules.edit&&this.table.modules.edit.currentCell)return;this.table.modules.edit.editCell(this.getActiveCell()),a.preventDefault()}("Backspace"===a.key||"Delete"===a.key)&&this.options("selectableRangeClearCells")&&this.activeRange&&this.activeRange.clearValues()}}initializeFocus(a){var b;this.restoreFocus();try{document.selection?((b=document.body.createTextRange()).moveToElementText(a.getElement()),b.select()):window.getSelection&&((b=document.createRange()).selectNode(a.getElement()),window.getSelection().removeAllRanges(),window.getSelection().addRange(b))}catch(a){}}restoreFocus(a){return this.table.rowManager.element.focus(),!0}handleColumnResized(a){"column"!==this.selecting&&"all"!==this.selecting||this.ranges.some(b=>b.occupiesColumn(a))&&this.ranges.forEach(b=>{b.getColumns(!0).forEach(b=>{b!==a&&b.setWidth(a.width)})})}handleColumnMoving(a,b){this.resetRanges().setBounds(b),this.overlay.style.visibility="hidden"}handleColumnMoved(a,b,c){this.activeRange.setBounds(a),this.layoutElement()}handleColumnMouseDown(a,b){2===a.button&&("column"===this.selecting||"all"===this.selecting)&&this.activeRange.occupiesColumn(b)||this.table.options.movableColumns&&"column"===this.selecting&&this.activeRange.occupiesColumn(b)||(this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(a,b))}handleColumnMouseMove(a,b){b!==this.rowHeader&&this.mousedown&&"all"!==this.selecting&&this.activeRange.setBounds(!1,b,!0)}renderCell(a){var b=a.getElement(),c=this.ranges.findIndex(b=>b.occupies(a));b.classList.toggle("tabulator-range-selected",-1!==c),b.classList.toggle("tabulator-range-only-cell-selected",1===this.ranges.length&&this.ranges[0].atTopLeft(a)&&this.ranges[0].atBottomRight(a)),b.dataset.range=c}handleCellMouseDown(a,b){2===a.button&&(this.activeRange.occupies(b)||("row"===this.selecting||"all"===this.selecting)&&this.activeRange.occupiesRow(b.row))||(this.mousedown=!0,document.addEventListener("mouseup",this.mouseUpEvent),this.newSelection(a,b))}handleCellMouseMove(a,b){this.mousedown&&"all"!==this.selecting&&this.activeRange.setBounds(!1,b,!0)}handleCellClick(a,b){this.initializeFocus(b)}handleEditingCell(a){this.activeRange&&this.activeRange.setBounds(a)}finishEditingCell(){this.blockKeydown=!0,this.table.rowManager.element.focus(),setTimeout(()=>{this.blockKeydown=!1},10)}keyNavigate(a,b){if(this.options("selectableRangeBlurEditOnNavigate")&&this.chain("edit-check-editing"))if("next"!==a&&"prev"!==a)return!1;else this.dispatch("edit-cancel-cell");"prev"===a?a="left":"next"===a&&(a="right"),this.navigate(!1,!1,a)&&b.preventDefault()}keyNavigateRange(a,b,c,d){this.navigate(c,d,b)&&a.preventDefault()}navigate(a,b,c){var d,e,f,g,h,i,j,k,l,m,n;if(this.table.modules.edit&&this.table.modules.edit.currentCell)return!1;if(this.ranges.length>1&&(this.ranges=this.ranges.filter(a=>a===this.activeRange?(a.setEnd(a.start.row,a.start.col),!0):(a.destroy(),!1))),f={top:(d=this.activeRange).top,bottom:d.bottom,left:d.left,right:d.right},g=(e=b?d.end:d.start).row,h=e.col,a)switch(c){case"left":h=this.findJumpCellLeft(d.start.row,e.col);break;case"right":h=this.findJumpCellRight(d.start.row,e.col);break;case"up":g=this.findJumpCellUp(e.row,d.start.col);break;case"down":g=this.findJumpCellDown(e.row,d.start.col)}else{if(b&&("row"===this.selecting&&("left"===c||"right"===c)||"column"===this.selecting&&("up"===c||"down"===c)))return;switch(c){case"left":h=Math.max(h-1,0);break;case"right":h=Math.min(h+1,this.getTableColumns().length-1);break;case"up":g=Math.max(g-1,0);break;case"down":g=Math.min(g+1,this.getTableRows().length-1)}}return this.rowHeader&&0===h&&(h=1),b||d.setStart(g,h),d.setEnd(g,h),b||(this.selecting="cell"),(f.top!==d.top||f.bottom!==d.bottom||f.left!==d.left||f.right!==d.right)&&(i=this.getRowByRangePos(d.end.row),j=this.getColumnByRangePos(d.end.col),k=i.getElement().getBoundingClientRect(),m=j.getElement().getBoundingClientRect(),l=this.table.rowManager.getElement().getBoundingClientRect(),n=this.table.columnManager.getElement().getBoundingClientRect(),k.top>=l.top&&k.bottom<=l.bottom||(i.getElement().parentNode&&j.getElement().parentNode?this.autoScroll(d,i.getElement(),j.getElement()):i.getComponent().scrollTo(void 0,!1)),m.left>=n.left+this.getRowHeaderWidth()&&m.right<=n.right||(i.getElement().parentNode&&j.getElement().parentNode?this.autoScroll(d,i.getElement(),j.getElement()):j.getComponent().scrollTo(void 0,!1)),this.layoutElement()),!0}rangeRemoved(a){this.ranges=this.ranges.filter(b=>b!==a),this.activeRange===a&&(this.ranges.length?this.activeRange=this.ranges[this.ranges.length-1]:this.addRange()),this.layoutElement(!0)}findJumpRow(a,b,c,d,e){return c&&(b=b.reverse()),this.findJumpItem(d,e,b,function(b){return b.getData()[a.getField()]})}findJumpCol(a,b,c,d,e){return c&&(b=b.reverse()),this.findJumpItem(d,e,b,function(b){return a.getData()[b.getField()]})}findJumpItem(a,b,c,d){var e;for(let f of c){let c=d(f);if(a){if(e=f,c)break}else if(b){if(e=f,c)break}else if(c)e=f;else break}return e}findJumpCellLeft(a,b){var c=this.getRowByRangePos(a),d=this.getTableColumns(),e=this.isEmpty(c.getData()[d[b].getField()]),f=!!d[b-1]&&this.isEmpty(c.getData()[d[b-1].getField()]),g=this.rowHeader?d.slice(1,b):d.slice(0,b),h=this.findJumpCol(c,g,!0,e,f);return h?h.getPosition()-1:b}findJumpCellRight(a,b){var c=this.getRowByRangePos(a),d=this.getTableColumns(),e=this.isEmpty(c.getData()[d[b].getField()]),f=!!d[b+1]&&this.isEmpty(c.getData()[d[b+1].getField()]),g=this.findJumpCol(c,d.slice(b+1,d.length),!1,e,f);return g?g.getPosition()-1:b}findJumpCellUp(a,b){var c=this.getColumnByRangePos(b),d=this.getTableRows(),e=this.isEmpty(d[a].getData()[c.getField()]),f=!!d[a-1]&&this.isEmpty(d[a-1].getData()[c.getField()]),g=this.findJumpRow(c,d.slice(0,a),!0,e,f);return g?g.position-1:a}findJumpCellDown(a,b){var c=this.getColumnByRangePos(b),d=this.getTableRows(),e=this.isEmpty(d[a].getData()[c.getField()]),f=!!d[a+1]&&this.isEmpty(d[a+1].getData()[c.getField()]),g=this.findJumpRow(c,d.slice(a+1,d.length),!1,e,f);return g?g.position-1:a}newSelection(a,b){var c;if("column"===b.type){if(!this.columnSelection)return;if(b===this.rowHeader){c=this.resetRanges(),this.selecting="all";var d,e=this.getCell(-1,-1);d=this.rowHeader?this.getCell(0,1):this.getCell(0,0),c.setBounds(d,e);return}this.selecting="column"}else b.column===this.rowHeader?this.selecting="row":this.selecting="cell";a.shiftKey?this.activeRange.setBounds(!1,b,!0):a.ctrlKey?this.addRange().setBounds(b,void 0,!0):this.resetRanges().setBounds(b,void 0,!0)}autoScroll(a,b,c){var d,e,f,g,h=this.table.rowManager.element;void 0===b&&(b=this.getRowByRangePos(a.end.row).getElement()),void 0===c&&(c=this.getColumnByRangePos(a.end.col).getElement()),d={left:c.offsetLeft,right:c.offsetLeft+c.offsetWidth,top:b.offsetTop,bottom:b.offsetTop+b.offsetHeight},f=(e={left:h.scrollLeft+this.getRowHeaderWidth(),right:Math.ceil(h.scrollLeft+h.clientWidth),top:h.scrollTop,bottom:h.scrollTop+h.offsetHeight-this.table.rowManager.scrollbarWidth}).left<d.left&&d.left<e.right&&e.left<d.right&&d.right<e.right,g=e.top<d.top&&d.top<e.bottom&&e.top<d.bottom&&d.bottom<e.bottom,!f&&(d.left<e.left?h.scrollLeft=d.left-this.getRowHeaderWidth():d.right>e.right&&(h.scrollLeft=Math.min(d.right-h.clientWidth,d.left-this.getRowHeaderWidth()))),!g&&(d.top<e.top?h.scrollTop=d.top:d.bottom>e.bottom&&(h.scrollTop=d.bottom-h.clientHeight))}layoutChange(){this.overlay.style.visibility="hidden",clearTimeout(this.layoutChangeTimeout),this.layoutChangeTimeout=setTimeout(this.layoutRanges.bind(this),200)}redraw(a){a&&(this.selecting="cell",this.resetRanges(),this.layoutElement())}layoutElement(a){(a?this.table.rowManager.getVisibleRows(!0):this.table.rowManager.getRows()).forEach(a=>{"row"===a.type&&(this.layoutRow(a),a.cells.forEach(a=>this.renderCell(a)))}),this.getTableColumns().forEach(a=>{this.layoutColumn(a)}),this.layoutRanges()}layoutRow(a){var b=a.getElement(),c=!1,d=this.ranges.some(b=>b.occupiesRow(a));"row"===this.selecting?c=d:"all"===this.selecting&&(c=!0),b.classList.toggle("tabulator-range-selected",c),b.classList.toggle("tabulator-range-highlight",d)}layoutColumn(a){var b=a.getElement(),c=!1,d=this.ranges.some(b=>b.occupiesColumn(a));"column"===this.selecting?c=d:"all"===this.selecting&&(c=!0),b.classList.toggle("tabulator-range-selected",c),b.classList.toggle("tabulator-range-highlight",d)}layoutRanges(){var a,b,c;!this.table.initialized||(a=this.getActiveCell())&&(b=a.getElement(),c=a.row.getElement(),this.table.rtl?this.activeRangeCellElement.style.right=c.offsetWidth-b.offsetLeft-b.offsetWidth+"px":this.activeRangeCellElement.style.left=c.offsetLeft+b.offsetLeft+"px",this.activeRangeCellElement.style.top=c.offsetTop+"px",this.activeRangeCellElement.style.width=b.offsetWidth+"px",this.activeRangeCellElement.style.height=c.offsetHeight+"px",this.ranges.forEach(a=>a.layout()),this.overlay.style.visibility="visible")}getCell(a,b){var c;return b<0&&(b=this.getTableColumns().length+b)<0?null:(a<0&&(a=this.getTableRows().length+a),(c=this.table.rowManager.getRowFromPosition(a+1))?c.getCells(!1,!0).filter(a=>a.column.visible)[b]:null)}getActiveCell(){return this.getCell(this.activeRange.start.row,this.activeRange.start.col)}getRowByRangePos(a){return this.getTableRows()[a]}getColumnByRangePos(a){return this.getTableColumns()[a]}getTableRows(){return this.table.rowManager.getDisplayRows().filter(a=>"row"===a.type)}getTableColumns(){return this.table.columnManager.getVisibleColumnsByIndex()}addRange(a,b){var c;return!0!==this.maxRanges&&this.ranges.length>=this.maxRanges&&this.ranges.shift().destroy(),c=new aw(this.table,this,a,b),this.activeRange=c,this.ranges.push(c),this.rangeContainer.appendChild(c.element),c}resetRanges(){var a,b;return this.ranges.forEach(a=>a.destroy()),this.ranges=[],a=this.addRange(),this.table.rowManager.activeRows.length&&(b=this.table.rowManager.activeRows[0].cells.filter(a=>a.column.visible)[+!!this.rowHeader])&&(a.setBounds(b),this.options("selectableRangeAutoFocus")&&this.initializeFocus(b)),a}tableDestroyed(){document.removeEventListener("mouseup",this.mouseUpEvent),this.table.rowManager.element.removeEventListener("keydown",this.keyDownEvent)}selectedRows(a){return a?this.activeRange.getRows().map(a=>a.getComponent()):this.activeRange.getRows()}selectedColumns(a){return a?this.activeRange.getColumns().map(a=>a.getComponent()):this.activeRange.getColumns()}getRowHeaderWidth(){return this.rowHeader?this.rowHeader.getElement().offsetWidth:0}isEmpty(a){return null==a||""===a}},SelectRowModule:class extends p{static moduleName="selectRow";static moduleExtensions=au;constructor(a){super(a),this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],this.headerCheckboxElement=null,this.registerTableOption("selectableRows","highlight"),this.registerTableOption("selectableRowsRangeMode","drag"),this.registerTableOption("selectableRowsRollingSelection",!0),this.registerTableOption("selectableRowsPersistence",!0),this.registerTableOption("selectableRowsCheck",function(a,b){return!0}),this.registerTableFunction("selectRow",this.selectRows.bind(this)),this.registerTableFunction("deselectRow",this.deselectRows.bind(this)),this.registerTableFunction("toggleSelectRow",this.toggleRow.bind(this)),this.registerTableFunction("getSelectedRows",this.getSelectedRows.bind(this)),this.registerTableFunction("getSelectedData",this.getSelectedData.bind(this)),this.registerComponentFunction("row","select",this.selectRows.bind(this)),this.registerComponentFunction("row","deselect",this.deselectRows.bind(this)),this.registerComponentFunction("row","toggleSelect",this.toggleRow.bind(this)),this.registerComponentFunction("row","isSelected",this.isRowSelected.bind(this))}initialize(){this.deprecatedOptionsCheck(),"highlight"===this.table.options.selectableRows&&this.table.options.selectableRange&&(this.table.options.selectableRows=!1),!1!==this.table.options.selectableRows&&(this.subscribe("row-init",this.initializeRow.bind(this)),this.subscribe("row-deleting",this.rowDeleted.bind(this)),this.subscribe("rows-wipe",this.clearSelectionData.bind(this)),this.subscribe("rows-retrieve",this.rowRetrieve.bind(this)),this.table.options.selectableRows&&!this.table.options.selectableRowsPersistence&&this.subscribe("data-refreshing",this.deselectRows.bind(this)))}deprecatedOptionsCheck(){}rowRetrieve(a,b){return"selected"===a?this.selectedRows:b}rowDeleted(a){this._deselectRow(a,!0)}clearSelectionData(a){var b=this.selectedRows.length;this.selecting=!1,this.lastClickedRow=!1,this.selectPrev=[],this.selectedRows=[],b&&!0!==a&&this._rowSelectionChanged()}initializeRow(a){var b=this,c=b.checkRowSelectability(a),d=a.getElement(),e=function(){setTimeout(function(){b.selecting=!1},50),document.body.removeEventListener("mouseup",e)};a.modules.select={selected:!1},d.classList.toggle("tabulator-selectable",c),d.classList.toggle("tabulator-unselectable",!c),b.checkRowSelectability(a)&&b.table.options.selectableRows&&"highlight"!=b.table.options.selectableRows&&("click"===b.table.options.selectableRowsRangeMode?d.addEventListener("click",this.handleComplexRowClick.bind(this,a)):(d.addEventListener("click",function(c){b.table.modExists("edit")&&b.table.modules.edit.getCurrentCell()||b.table._clearSelection(),b.selecting||b.toggleRow(a)}),d.addEventListener("mousedown",function(c){if(c.shiftKey)return b.table._clearSelection(),b.selecting=!0,b.selectPrev=[],document.body.addEventListener("mouseup",e),document.body.addEventListener("keyup",e),b.toggleRow(a),!1}),d.addEventListener("mouseenter",function(c){b.selecting&&(b.table._clearSelection(),b.toggleRow(a),b.selectPrev[1]==a&&b.toggleRow(b.selectPrev[0]))}),d.addEventListener("mouseout",function(c){b.selecting&&(b.table._clearSelection(),b.selectPrev.unshift(a))})))}handleComplexRowClick(a,b){if(b.shiftKey){this.table._clearSelection(),this.lastClickedRow=this.lastClickedRow||a;var c=this.table.rowManager.getDisplayRowIndex(this.lastClickedRow),d=this.table.rowManager.getDisplayRowIndex(a),e=c<=d?c:d,f=this.table.rowManager.getDisplayRows().slice(0).splice(e,(c>=d?c:d)-e+1);b.ctrlKey||b.metaKey?(f.forEach(b=>{b!==this.lastClickedRow&&(!0===this.table.options.selectableRows||this.isRowSelected(a)?this.toggleRow(b):this.selectedRows.length<this.table.options.selectableRows&&this.toggleRow(b))}),this.lastClickedRow=a):(this.deselectRows(void 0,!0),!0!==this.table.options.selectableRows&&f.length>this.table.options.selectableRows&&(f=f.slice(0,this.table.options.selectableRows)),this.selectRows(f)),this.table._clearSelection()}else b.ctrlKey||b.metaKey?this.toggleRow(a):(this.deselectRows(void 0,!0),this.selectRows(a)),this.lastClickedRow=a}checkRowSelectability(a){return!!a&&"row"===a.type&&this.table.options.selectableRowsCheck.call(this.table,a.getComponent())}toggleRow(a){this.checkRowSelectability(a)&&(a.modules.select&&a.modules.select.selected?this._deselectRow(a):this._selectRow(a))}selectRows(a){var b,c,d=[];switch(typeof a){case"undefined":b=this.table.rowManager.rows;break;case"number":b=this.table.rowManager.findRow(a);break;case"string":(b=this.table.rowManager.findRow(a))||(b=this.table.rowManager.getRows(a));break;default:b=a}Array.isArray(b)?b.length&&(b.forEach(a=>{(c=this._selectRow(a,!0,!0))&&d.push(c)}),this._rowSelectionChanged(!1,d)):b&&this._selectRow(b,!1,!0)}_selectRow(a,b,c){if(!isNaN(this.table.options.selectableRows)&&!0!==this.table.options.selectableRows&&!c&&this.selectedRows.length>=this.table.options.selectableRows)if(!this.table.options.selectableRowsRollingSelection)return!1;else this._deselectRow(this.selectedRows[0]);var d=this.table.rowManager.findRow(a);if(d){if(-1==this.selectedRows.indexOf(d))return d.getElement().classList.add("tabulator-selected"),d.modules.select||(d.modules.select={}),d.modules.select.selected=!0,d.modules.select.checkboxEl&&(d.modules.select.checkboxEl.checked=!0),this.selectedRows.push(d),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(d,!0),this.dispatchExternal("rowSelected",d.getComponent()),this._rowSelectionChanged(b,d),d}else b||console.warn("Selection Error - No such row found, ignoring selection:"+a)}isRowSelected(a){return -1!==this.selectedRows.indexOf(a)}deselectRows(a,b){var c,d,e=[];switch(typeof a){case"undefined":c=Object.assign([],this.selectedRows);break;case"number":c=this.table.rowManager.findRow(a);break;case"string":(c=this.table.rowManager.findRow(a))||(c=this.table.rowManager.getRows(a));break;default:c=a}Array.isArray(c)?c.length&&(c.forEach(a=>{(d=this._deselectRow(a,!0,!0))&&e.push(d)}),this._rowSelectionChanged(b,[],e)):c&&this._deselectRow(c,b,!0)}_deselectRow(a,b){var c,d,e=this.table.rowManager.findRow(a);if(e){if((c=this.selectedRows.findIndex(function(a){return a==e}))>-1)return(d=e.getElement())&&d.classList.remove("tabulator-selected"),e.modules.select||(e.modules.select={}),e.modules.select.selected=!1,e.modules.select.checkboxEl&&(e.modules.select.checkboxEl.checked=!1),this.selectedRows.splice(c,1),this.table.options.dataTreeSelectPropagate&&this.childRowSelection(e,!1),this.dispatchExternal("rowDeselected",e.getComponent()),this._rowSelectionChanged(b,void 0,e),e}else b||console.warn("Deselection Error - No such row found, ignoring selection:"+a)}getSelectedData(){var a=[];return this.selectedRows.forEach(function(b){a.push(b.getData())}),a}getSelectedRows(){var a=[];return this.selectedRows.forEach(function(b){a.push(b.getComponent())}),a}_rowSelectionChanged(a,b=[],c=[]){this.headerCheckboxElement&&(0===this.selectedRows.length?(this.headerCheckboxElement.checked=!1,this.headerCheckboxElement.indeterminate=!1):this.table.rowManager.rows.length===this.selectedRows.length?(this.headerCheckboxElement.checked=!0,this.headerCheckboxElement.indeterminate=!1):(this.headerCheckboxElement.indeterminate=!0,this.headerCheckboxElement.checked=!1)),a||(Array.isArray(b)||(b=[b]),b=b.map(a=>a.getComponent()),Array.isArray(c)||(c=[c]),c=c.map(a=>a.getComponent()),this.dispatchExternal("rowSelectionChanged",this.getSelectedData(),this.getSelectedRows(),b,c))}registerRowSelectCheckbox(a,b){a._row.modules.select||(a._row.modules.select={}),a._row.modules.select.checkboxEl=b}registerHeaderSelectCheckbox(a){this.headerCheckboxElement=a}childRowSelection(a,b){var c=this.table.modules.dataTree.getChildren(a,!0,!0);if(b)for(let a of c)this._selectRow(a,!0);else for(let a of c)this._deselectRow(a,!0)}},SortModule:aA,SpreadsheetModule:class extends p{static moduleName="spreadsheet";constructor(a){super(a),this.sheets=[],this.element=null,this.registerTableOption("spreadsheet",!1),this.registerTableOption("spreadsheetRows",50),this.registerTableOption("spreadsheetColumns",50),this.registerTableOption("spreadsheetColumnDefinition",{}),this.registerTableOption("spreadsheetOutputFull",!1),this.registerTableOption("spreadsheetData",!1),this.registerTableOption("spreadsheetSheets",!1),this.registerTableOption("spreadsheetSheetTabs",!1),this.registerTableOption("spreadsheetSheetTabsElement",!1),this.registerTableFunction("setSheets",this.setSheets.bind(this)),this.registerTableFunction("addSheet",this.addSheet.bind(this)),this.registerTableFunction("getSheets",this.getSheets.bind(this)),this.registerTableFunction("getSheetDefinitions",this.getSheetDefinitions.bind(this)),this.registerTableFunction("setSheetData",this.setSheetData.bind(this)),this.registerTableFunction("getSheet",this.getSheet.bind(this)),this.registerTableFunction("getSheetData",this.getSheetData.bind(this)),this.registerTableFunction("clearSheet",this.clearSheet.bind(this)),this.registerTableFunction("removeSheet",this.removeSheetFunc.bind(this)),this.registerTableFunction("activeSheet",this.activeSheetFunc.bind(this))}initialize(){this.options("spreadsheet")&&(this.subscribe("table-initialized",this.tableInitialized.bind(this)),this.subscribe("data-loaded",this.loadRemoteData.bind(this)),this.table.options.index="_id",this.options("spreadsheetData")&&this.options("spreadsheetSheets")&&(console.warn("You cannot use spreadsheetData and spreadsheetSheets at the same time, ignoring spreadsheetData"),this.table.options.spreadsheetData=!1),this.compatibilityCheck(),this.options("spreadsheetSheetTabs")&&this.initializeTabset())}compatibilityCheck(){this.options("data")&&console.warn("Do not use the data option when working with spreadsheets, use either spreadsheetData or spreadsheetSheets to pass data into the table"),this.options("pagination")&&console.warn("The spreadsheet module is not compatible with the pagination module"),this.options("groupBy")&&console.warn("The spreadsheet module is not compatible with the row grouping module"),this.options("responsiveCollapse")&&console.warn("The spreadsheet module is not compatible with the responsive collapse module")}initializeTabset(){this.element=document.createElement("div"),this.element.classList.add("tabulator-spreadsheet-tabs");var a=this.options("spreadsheetSheetTabsElement");a&&!(a instanceof HTMLElement)&&((a=document.querySelector(a))||console.warn("Unable to find element matching spreadsheetSheetTabsElement selector:",this.options("spreadsheetSheetTabsElement"))),a?a.appendChild(this.element):this.footerAppend(this.element)}tableInitialized(){this.sheets.length?this.loadSheet(this.sheets[0]):this.options("spreadsheetSheets")?this.loadSheets(this.options("spreadsheetSheets")):this.options("spreadsheetData")&&this.loadData(this.options("spreadsheetData"))}loadRemoteData(a,b,c){return console.log("data",a,b,c),Array.isArray(a)?(this.table.dataLoader.clearAlert(),this.dispatchExternal("dataLoaded",a),!a.length||Array.isArray(a[0])?this.loadData(a):this.loadSheets(a)):console.error("Spreadsheet Loading Error - Unable to process remote data due to invalid data type \nExpecting: array \nReceived: ",typeof a,"\nData: ",a),!1}loadData(a){this.loadSheet(this.newSheet({data:a}))}destroySheets(){this.sheets.forEach(a=>{a.destroy()}),this.sheets=[],this.activeSheet=null}loadSheets(a){Array.isArray(a)||(a=[]),this.destroySheets(),a.forEach(a=>{this.newSheet(a)}),this.loadSheet(this.sheets[0])}loadSheet(a){this.activeSheet!==a&&(this.activeSheet&&this.activeSheet.unload(),this.activeSheet=a,a.load())}newSheet(a={}){var b;return a.rows||(a.rows=this.options("spreadsheetRows")),a.columns||(a.columns=this.options("spreadsheetColumns")),b=new aD(this,a),this.sheets.push(b),this.element&&this.element.appendChild(b.element),b}removeSheet(a){var b,c=this.sheets.indexOf(a);this.sheets.length>1?c>-1&&(this.sheets.splice(c,1),a.destroy(),this.activeSheet===a&&((b=this.sheets[c-1]||this.sheets[0])?this.loadSheet(b):this.activeSheet=null)):console.warn("Unable to remove sheet, at least one sheet must be active")}lookupSheet(a){return a?a instanceof aD?a:a instanceof aC?a._sheet:this.sheets.find(b=>b.key===a)||!1:this.activeSheet}setSheets(a){return this.loadSheets(a),this.getSheets()}addSheet(a){return this.newSheet(a).getComponent()}getSheetDefinitions(){return this.sheets.map(a=>a.getDefinition())}getSheets(){return this.sheets.map(a=>a.getComponent())}getSheet(a){var b=this.lookupSheet(a);return!!b&&b.getComponent()}setSheetData(a,b){a&&!b&&(b=a,a=!1);var c=this.lookupSheet(a);return!!c&&c.setData(b)}getSheetData(a){var b=this.lookupSheet(a);return!!b&&b.getData()}clearSheet(a){var b=this.lookupSheet(a);return!!b&&b.clear()}removeSheetFunc(a){var b=this.lookupSheet(a);b&&this.removeSheet(b)}activeSheetFunc(a){var b=this.lookupSheet(a);return!!b&&this.loadSheet(b)}},TooltipModule:class extends p{static moduleName="tooltip";constructor(a){super(a),this.tooltipSubscriber=null,this.headerSubscriber=null,this.timeout=null,this.popupInstance=null,this.registerTableOption("tooltipDelay",300),this.registerColumnOption("tooltip"),this.registerColumnOption("headerTooltip")}initialize(){this.deprecatedOptionsCheck(),this.subscribe("column-init",this.initializeColumn.bind(this))}deprecatedOptionsCheck(){}initializeColumn(a){a.definition.headerTooltip&&!this.headerSubscriber&&(this.headerSubscriber=!0,this.subscribe("column-mousemove",this.mousemoveCheck.bind(this,"headerTooltip")),this.subscribe("column-mouseout",this.mouseoutCheck.bind(this,"headerTooltip"))),a.definition.tooltip&&!this.tooltipSubscriber&&(this.tooltipSubscriber=!0,this.subscribe("cell-mousemove",this.mousemoveCheck.bind(this,"tooltip")),this.subscribe("cell-mouseout",this.mouseoutCheck.bind(this,"tooltip")))}mousemoveCheck(a,b,c){var d="tooltip"===a?c.column.definition.tooltip:c.definition.headerTooltip;d&&(this.clearPopup(),this.timeout=setTimeout(this.loadTooltip.bind(this,b,c,d),this.table.options.tooltipDelay))}mouseoutCheck(a,b,c){this.popupInstance||this.clearPopup()}clearPopup(a,b,c){clearTimeout(this.timeout),this.timeout=null,this.popupInstance&&this.popupInstance.hide()}loadTooltip(a,b,c){var d,e,f;"function"==typeof c&&(c=c(a,b.getComponent(),function(a){e=a})),c instanceof HTMLElement?d=c:(d=document.createElement("div"),!0===c&&(b instanceof D?c=b.value:b.definition.field?this.langBind("columns|"+b.definition.field,a=>{d.innerHTML=c=a||b.definition.title}):c=b.definition.title),d.innerHTML=c),(c||0===c||!1===c)&&(d.classList.add("tabulator-tooltip"),d.addEventListener("mousemove",a=>a.preventDefault()),this.popupInstance=this.popup(d),"function"==typeof e&&this.popupInstance.renderCallback(e),f=this.popupInstance.containerEventCoords(a),this.popupInstance.show(f.x+15,f.y+15).hideOnBlur(()=>{this.dispatchExternal("TooltipClosed",b.getComponent()),this.popupInstance=null}),this.dispatchExternal("TooltipOpened",b.getComponent()))}},ValidateModule:aF}),aH={debugEventsExternal:!1,debugEventsInternal:!1,debugInvalidOptions:!0,debugInvalidComponentFuncs:!0,debugInitialization:!0,debugDeprecation:!0,height:!1,minHeight:!1,maxHeight:!1,columnHeaderVertAlign:"top",popupContainer:!1,columns:[],columnDefaults:{},rowHeader:!1,data:!1,autoColumns:!1,autoColumnsDefinitions:!1,nestedFieldSeparator:".",footerElement:!1,index:"id",textDirection:"auto",addRowPos:"bottom",headerVisible:!0,renderVertical:"virtual",renderHorizontal:"basic",renderVerticalBuffer:0,scrollToRowPosition:"top",scrollToRowIfVisible:!0,scrollToColumnPosition:"left",scrollToColumnIfVisible:!0,rowFormatter:!1,rowFormatterPrint:null,rowFormatterClipboard:null,rowFormatterHtmlOutput:null,rowHeight:null,placeholder:!1,dataLoader:!0,dataLoaderLoading:!1,dataLoaderError:!1,dataLoaderErrorTimeout:3e3,dataSendParams:{},dataReceiveParams:{},dependencies:{}};class aI{constructor(a,b,c={}){this.table=a,this.msgType=b,this.registeredDefaults=Object.assign({},c)}register(a,b){this.registeredDefaults[a]=b}generate(a,b={}){var c=Object.assign({},this.registeredDefaults),d=this.table.options.debugInvalidOptions||!0===b.debugInvalidOptions;for(let e in Object.assign(c,a),b)c.hasOwnProperty(e)||(d&&console.warn("Invalid "+this.msgType+" option:",e),c[e]=b.key);for(let a in c)a in b?c[a]=b[a]:Array.isArray(c[a])?c[a]=Object.assign([],c[a]):"object"==typeof c[a]&&null!==c[a]?c[a]=Object.assign({},c[a]):void 0===c[a]&&delete c[a];return c}}class aJ extends m{constructor(a){super(a),this.elementVertical=a.rowManager.element,this.elementHorizontal=a.columnManager.element,this.tableElement=a.rowManager.tableElement,this.verticalFillMode="fit"}initialize(){}clearRows(){}clearColumns(){}reinitializeColumnWidths(a){}renderRows(){}renderColumns(){}rerenderRows(a){a&&a()}rerenderColumns(a,b){}renderRowCells(a){}rerenderRowCells(a,b){}scrollColumns(a,b){}scrollRows(a,b){}resize(){}scrollToRow(a){}scrollToRowNearestTop(a){}visibleRows(a){return[]}rows(){return this.table.rowManager.getDisplayRows()}styleRow(a,b){var c=a.getElement();b%2?(c.classList.add("tabulator-row-even"),c.classList.remove("tabulator-row-odd")):(c.classList.add("tabulator-row-odd"),c.classList.remove("tabulator-row-even"))}clear(){this.clearRows(),this.clearColumns()}render(){this.renderRows(),this.renderColumns()}rerender(a){this.rerenderRows(),this.rerenderColumns()}scrollToRowPosition(a,b,c){var d=this.rows().indexOf(a),e=a.getElement(),f=0;return new Promise((g,h)=>{if(d>-1){if(void 0===c&&(c=this.table.options.scrollToRowIfVisible),!c&&n.elVisible(e)&&(f=n.elOffset(e).top-n.elOffset(this.elementVertical).top)>0&&f<this.elementVertical.clientHeight-e.offsetHeight)return g(),!1;switch(void 0===b&&(b=this.table.options.scrollToRowPosition),"nearest"===b&&(b=this.scrollToRowNearestTop(a)?"top":"bottom"),this.scrollToRow(a),b){case"middle":case"center":this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight?this.elementVertical.scrollTop=this.elementVertical.scrollTop+(e.offsetTop-this.elementVertical.scrollTop)-(this.elementVertical.scrollHeight-e.offsetTop)/2:this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight/2;break;case"bottom":this.elementVertical.scrollHeight-this.elementVertical.scrollTop==this.elementVertical.clientHeight?this.elementVertical.scrollTop=this.elementVertical.scrollTop-(this.elementVertical.scrollHeight-e.offsetTop)+e.offsetHeight:this.elementVertical.scrollTop=this.elementVertical.scrollTop-this.elementVertical.clientHeight+e.offsetHeight;break;case"top":this.elementVertical.scrollTop=e.offsetTop}g()}else console.warn("Scroll Error - Row not visible"),h("Scroll Error - Row not visible")})}}class aK extends aJ{constructor(a){super(a)}renderRowCells(a,b){let c=document.createDocumentFragment();a.cells.forEach(a=>{c.appendChild(a.getElement())}),a.element.appendChild(c),b||a.cells.forEach(a=>{a.cellRendered()})}reinitializeColumnWidths(a){a.forEach(function(a){a.reinitializeWidth()})}}class aL extends aJ{constructor(a){super(a),this.leftCol=0,this.rightCol=0,this.scrollLeft=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0,this.fitDataColAvg=0,this.windowBuffer=200,this.visibleRows=null,this.initialized=!1,this.isFitData=!1,this.columns=[]}initialize(){this.compatibilityCheck(),this.layoutCheck(),this.vertScrollListen()}compatibilityCheck(){"fitDataTable"==this.options("layout")&&console.warn("Horizontal Virtual DOM is not compatible with fitDataTable layout mode"),this.options("responsiveLayout")&&console.warn("Horizontal Virtual DOM is not compatible with responsive columns"),this.options("rtl")&&console.warn("Horizontal Virtual DOM is not currently compatible with RTL text direction")}layoutCheck(){this.isFitData=this.options("layout").startsWith("fitData")}vertScrollListen(){this.subscribe("scroll-vertical",this.clearVisRowCache.bind(this)),this.subscribe("data-refreshed",this.clearVisRowCache.bind(this))}clearVisRowCache(){this.visibleRows=null}renderColumns(a,b){this.dataChange()}scrollColumns(a,b){this.scrollLeft!=a&&(this.scrollLeft=a,this.scroll(a-(this.vDomScrollPosLeft+this.windowBuffer)))}calcWindowBuffer(){var a=this.elementVertical.clientWidth;this.table.columnManager.columnsByIndex.forEach(b=>{if(b.visible){var c=b.getWidth();c>a&&(a=c)}}),this.windowBuffer=2*a}rerenderColumns(a,b){var c={cols:this.columns,leftCol:this.leftCol,rightCol:this.rightCol},d=0;(!a||this.initialized)&&(this.clear(),this.calcWindowBuffer(),this.scrollLeft=this.elementVertical.scrollLeft,this.vDomScrollPosLeft=this.scrollLeft-this.windowBuffer,this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,this.table.columnManager.columnsByIndex.forEach(a=>{var b,c={};a.visible&&!a.modules.frozen&&(b=a.getWidth(),c.leftPos=d,c.rightPos=d+b,c.width=b,this.isFitData&&(c.fitDataCheck=!a.modules.vdomHoz||a.modules.vdomHoz.fitDataCheck),d+b>this.vDomScrollPosLeft&&d<this.vDomScrollPosRight?(-1==this.leftCol&&(this.leftCol=this.columns.length,this.vDomPadLeft=d),this.rightCol=this.columns.length):-1!==this.leftCol&&(this.vDomPadRight+=b),this.columns.push(a),a.modules.vdomHoz=c,d+=b)}),this.tableElement.style.paddingLeft=this.vDomPadLeft+"px",this.tableElement.style.paddingRight=this.vDomPadRight+"px",this.initialized=!0,!b&&(!a||this.reinitChanged(c))&&this.reinitializeRows(),this.elementVertical.scrollLeft=this.scrollLeft)}renderRowCells(a){if(this.initialized)this.initializeRow(a);else{let b=document.createDocumentFragment();a.cells.forEach(a=>{b.appendChild(a.getElement())}),a.element.appendChild(b),a.cells.forEach(a=>{a.cellRendered()})}}rerenderRowCells(a,b){this.reinitializeRow(a,b)}reinitializeColumnWidths(a){for(let a=this.leftCol;a<=this.rightCol;a++){let b=this.columns[a];b&&b.reinitializeWidth()}}deinitialize(){this.initialized=!1}clear(){this.columns=[],this.leftCol=-1,this.rightCol=0,this.vDomScrollPosLeft=0,this.vDomScrollPosRight=0,this.vDomPadLeft=0,this.vDomPadRight=0}dataChange(){var a,b,c=!1;if(this.isFitData){if(this.table.columnManager.columnsByIndex.forEach(a=>{!a.definition.width&&a.visible&&(c=!0)}),c&&this.table.rowManager.getDisplayRows().length&&(this.vDomScrollPosRight=this.scrollLeft+this.elementVertical.clientWidth+this.windowBuffer,a=this.chain("rows-sample",[1],[],()=>this.table.rowManager.getDisplayRows())[0])){b=a.getElement(),a.generateCells(),this.tableElement.appendChild(b);for(let c=0;c<a.cells.length;c++){let d=a.cells[c];b.appendChild(d.getElement()),d.column.reinitializeWidth()}b.parentNode.removeChild(b),this.rerenderColumns(!1,!0)}}else"fitColumns"===this.options("layout")&&(this.layoutRefresh(),this.rerenderColumns(!1,!0))}reinitChanged(a){var b=!0;return a.cols.length!==this.columns.length||a.leftCol!==this.leftCol||a.rightCol!==this.rightCol||(a.cols.forEach((a,c)=>{a!==this.columns[c]&&(b=!1)}),!b)}reinitializeRows(){var a=this.getVisibleRows(),b=this.table.rowManager.getRows().filter(b=>!a.includes(b));a.forEach(a=>{this.reinitializeRow(a,!0)}),b.forEach(a=>{a.deinitialize()})}getVisibleRows(){return this.visibleRows||(this.visibleRows=this.table.rowManager.getVisibleRows()),this.visibleRows}scroll(a){this.vDomScrollPosLeft+=a,this.vDomScrollPosRight+=a,Math.abs(a)>this.windowBuffer/2?this.rerenderColumns():a>0?(this.addColRight(),this.removeColLeft()):(this.addColLeft(),this.removeColRight())}colPositionAdjust(a,b,c){for(let d=a;d<b;d++){let a=this.columns[d];a.modules.vdomHoz.leftPos+=c,a.modules.vdomHoz.rightPos+=c}}addColRight(){for(var a=!1,b=!0;b;){let c=this.columns[this.rightCol+1];c&&c.modules.vdomHoz.leftPos<=this.vDomScrollPosRight?(a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);a.getElement().insertBefore(b.getElement(),a.getCell(this.columns[this.rightCol]).getElement().nextSibling),b.cellRendered()}}),this.fitDataColActualWidthCheck(c),this.rightCol++,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.rightCol=this.rightCol)}),this.rightCol>=this.columns.length-1?this.vDomPadRight=0:this.vDomPadRight-=c.getWidth()):b=!1}a&&(this.tableElement.style.paddingRight=this.vDomPadRight+"px")}addColLeft(){for(var a=!1,b=!0;b;){let c=this.columns[this.leftCol-1];if(c)if(c.modules.vdomHoz.rightPos>=this.vDomScrollPosLeft){a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);a.getElement().insertBefore(b.getElement(),a.getCell(this.columns[this.leftCol]).getElement()),b.cellRendered()}}),this.leftCol--,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.leftCol=this.leftCol)}),this.leftCol<=0?this.vDomPadLeft=0:this.vDomPadLeft-=c.getWidth();let b=this.fitDataColActualWidthCheck(c);b&&(this.scrollLeft=this.elementVertical.scrollLeft=this.elementVertical.scrollLeft+b,this.vDomPadRight-=b)}else b=!1;else b=!1}a&&(this.tableElement.style.paddingLeft=this.vDomPadLeft+"px")}removeColRight(){for(var a=!1,b=!0;b;){let c=this.columns[this.rightCol];c&&c.modules.vdomHoz.leftPos>this.vDomScrollPosRight?(a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);try{a.getElement().removeChild(b.getElement())}catch(a){console.warn("Could not removeColRight",a.message)}}}),this.vDomPadRight+=c.getWidth(),this.rightCol--,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.rightCol=this.rightCol)})):b=!1}a&&(this.tableElement.style.paddingRight=this.vDomPadRight+"px")}removeColLeft(){for(var a=!1,b=!0;b;){let c=this.columns[this.leftCol];c&&c.modules.vdomHoz.rightPos<this.vDomScrollPosLeft?(a=!0,this.getVisibleRows().forEach(a=>{if("group"!==a.type){var b=a.getCell(c);try{a.getElement().removeChild(b.getElement())}catch(a){console.warn("Could not removeColLeft",a.message)}}}),this.vDomPadLeft+=c.getWidth(),this.leftCol++,this.getVisibleRows().forEach(a=>{"group"!==a.type&&(a.modules.vdomHoz.leftCol=this.leftCol)})):b=!1}a&&(this.tableElement.style.paddingLeft=this.vDomPadLeft+"px")}fitDataColActualWidthCheck(a){var b,c;return a.modules.vdomHoz.fitDataCheck&&(a.reinitializeWidth(),(c=(b=a.getWidth())-a.modules.vdomHoz.width)&&(a.modules.vdomHoz.rightPos+=c,a.modules.vdomHoz.width=b,this.colPositionAdjust(this.columns.indexOf(a)+1,this.columns.length,c)),a.modules.vdomHoz.fitDataCheck=!1),c}initializeRow(a){if("group"!==a.type){a.modules.vdomHoz={leftCol:this.leftCol,rightCol:this.rightCol},this.table.modules.frozenColumns&&this.table.modules.frozenColumns.leftColumns.forEach(b=>{this.appendCell(a,b)});for(let b=this.leftCol;b<=this.rightCol;b++)this.appendCell(a,this.columns[b]);this.table.modules.frozenColumns&&this.table.modules.frozenColumns.rightColumns.forEach(b=>{this.appendCell(a,b)})}}appendCell(a,b){if(b&&b.visible){let c=a.getCell(b);a.getElement().appendChild(c.getElement()),c.cellRendered()}}reinitializeRow(a,b){if("group"!==a.type&&(b||!a.modules.vdomHoz||a.modules.vdomHoz.leftCol!==this.leftCol||a.modules.vdomHoz.rightCol!==this.rightCol)){for(var c=a.getElement();c.firstChild;)c.removeChild(c.firstChild);this.initializeRow(a)}}}class aM extends m{constructor(a){super(a),this.blockHozScrollEvent=!1,this.headersElement=null,this.contentsElement=null,this.rowHeader=null,this.element=null,this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.scrollLeft=0,this.optionsList=new aI(this.table,"column definition",F),this.redrawBlock=!1,this.redrawBlockUpdate=null,this.renderer=null}initialize(){this.initializeRenderer(),this.headersElement=this.createHeadersElement(),this.contentsElement=this.createHeaderContentsElement(),this.element=this.createHeaderElement(),this.contentsElement.insertBefore(this.headersElement,this.contentsElement.firstChild),this.element.insertBefore(this.contentsElement,this.element.firstChild),this.initializeScrollWheelWatcher(),this.subscribe("scroll-horizontal",this.scrollHorizontal.bind(this)),this.subscribe("scrollbar-vertical",this.padVerticalScrollbar.bind(this))}padVerticalScrollbar(a){this.table.rtl?this.headersElement.style.marginLeft=a+"px":this.headersElement.style.marginRight=a+"px"}initializeRenderer(){var a;(a="string"==typeof this.table.options.renderHorizontal?({virtual:aL,basic:aK})[this.table.options.renderHorizontal]:this.table.options.renderHorizontal)?(this.renderer=new a(this.table,this.element,this.tableElement),this.renderer.initialize()):console.error("Unable to find matching renderer:",this.table.options.renderHorizontal)}createHeadersElement(){var a=document.createElement("div");return a.classList.add("tabulator-headers"),a.setAttribute("role","row"),a}createHeaderContentsElement(){var a=document.createElement("div");return a.classList.add("tabulator-header-contents"),a}createHeaderElement(){var a=document.createElement("div");return a.classList.add("tabulator-header"),a.setAttribute("role","rowgroup"),this.table.options.headerVisible||a.classList.add("tabulator-header-hidden"),a}getElement(){return this.element}getContentsElement(){return this.contentsElement}getHeadersElement(){return this.headersElement}scrollHorizontal(a){this.contentsElement.scrollLeft=a,this.scrollLeft=a,this.renderer.scrollColumns(a)}initializeScrollWheelWatcher(){this.contentsElement.addEventListener("wheel",a=>{var b;a.deltaX&&(b=this.contentsElement.scrollLeft+a.deltaX,this.table.rowManager.scrollHorizontal(b),this.table.columnManager.scrollHorizontal(b))})}generateColumnsFromRowData(a){var b=[],c={},d="full"===this.table.options.autoColumns?a:[a[0]],e=this.table.options.autoColumnsDefinitions;if(a&&a.length){if(d.forEach(a=>{Object.keys(a).forEach((d,e)=>{let f=a[d],g;c[d]?!0!==c[d]&&void 0!==f&&(c[d].sorter=this.calculateSorterFromValue(f),c[d]=!0):(g={field:d,title:d,sorter:this.calculateSorterFromValue(f)},b.splice(e,0,g),c[d]=void 0!==f||g)})}),e)switch(typeof e){case"function":this.table.options.columns=e.call(this.table,b);break;case"object":Array.isArray(e)?b.forEach(a=>{var b=e.find(b=>b.field===a.field);b&&Object.assign(a,b)}):b.forEach(a=>{e[a.field]&&Object.assign(a,e[a.field])}),this.table.options.columns=b}else this.table.options.columns=b;this.setColumns(this.table.options.columns)}}calculateSorterFromValue(a){var b;switch(typeof a){case"undefined":b="string";break;case"boolean":b="boolean";break;case"number":b="number";break;case"object":b=Array.isArray(a)?"array":"string";break;default:b=isNaN(a)||""===a?a.match(/((^[0-9]+[a-z]+)|(^[a-z]+[0-9]+))+$/i)?"alphanum":"string":"number"}return b}setColumns(a,b){for(;this.headersElement.firstChild;)this.headersElement.removeChild(this.headersElement.firstChild);this.columns=[],this.columnsByIndex=[],this.columnsByField={},this.dispatch("columns-loading"),this.dispatchExternal("columnsLoading"),this.table.options.rowHeader&&(this.rowHeader=new G(!0===this.table.options.rowHeader?{}:this.table.options.rowHeader,this,!0),this.columns.push(this.rowHeader),this.headersElement.appendChild(this.rowHeader.getElement()),this.rowHeader.columnRendered()),a.forEach((a,b)=>{this._addColumn(a)}),this._reIndexColumns(),this.dispatch("columns-loaded"),this.subscribedExternal("columnsLoaded")&&this.dispatchExternal("columnsLoaded",this.getComponents()),this.rerenderColumns(!1,!0),this.redraw(!0)}_addColumn(a,b,c){var d=new G(a,this),e=d.getElement(),f=c?this.findColumnIndex(c):c;if(b&&this.rowHeader&&(!c||c===this.rowHeader)&&(b=!1,c=this.rowHeader,f=0),c&&f>-1){var g=c.getTopColumn(),h=this.columns.indexOf(g),i=g.getElement();b?(this.columns.splice(h,0,d),i.parentNode.insertBefore(e,i)):(this.columns.splice(h+1,0,d),i.parentNode.insertBefore(e,i.nextSibling))}else b?(this.columns.unshift(d),this.headersElement.insertBefore(d.getElement(),this.headersElement.firstChild)):(this.columns.push(d),this.headersElement.appendChild(d.getElement()));return d.columnRendered(),d}registerColumnField(a){a.definition.field&&(this.columnsByField[a.definition.field]=a)}registerColumnPosition(a){this.columnsByIndex.push(a)}_reIndexColumns(){this.columnsByIndex=[],this.columns.forEach(function(a){a.reRegisterPosition()})}verticalAlignHeaders(){var a=0;this.redrawBlock||(this.headersElement.style.height="",this.columns.forEach(a=>{a.clearVerticalAlign()}),this.columns.forEach(b=>{var c=b.getHeight();c>a&&(a=c)}),this.headersElement.style.height=a+"px",this.columns.forEach(b=>{b.verticalAlign(this.table.options.columnHeaderVertAlign,a)}),this.table.rowManager.adjustTableSize())}findColumn(a){var b;return"object"!=typeof a?this.columnsByField[a]||!1:a instanceof G?a:a instanceof E?a._getSelf()||!1:!!("u">typeof HTMLElement&&a instanceof HTMLElement)&&(b=[],this.columns.forEach(a=>{b.push(a),b=b.concat(a.getColumns(!0))}),b.find(b=>b.element===a)||!1)}getColumnByField(a){return this.columnsByField[a]}getColumnsByFieldRoot(a){var b=[];return Object.keys(this.columnsByField).forEach(c=>{(this.table.options.nestedFieldSeparator?c.split(this.table.options.nestedFieldSeparator)[0]:c)===a&&b.push(this.columnsByField[c])}),b}getColumnByIndex(a){return this.columnsByIndex[a]}getFirstVisibleColumn(){var a=this.columnsByIndex.findIndex(a=>a.visible);return a>-1&&this.columnsByIndex[a]}getVisibleColumnsByIndex(){return this.columnsByIndex.filter(a=>a.visible)}getColumns(){return this.columns}findColumnIndex(a){return this.columnsByIndex.findIndex(b=>a===b)}getRealColumns(){return this.columnsByIndex}traverse(a){this.columnsByIndex.forEach((b,c)=>{a(b,c)})}getDefinitions(a){var b=[];return this.columnsByIndex.forEach(c=>{(!a||a&&c.visible)&&b.push(c.getDefinition())}),b}getDefinitionTree(){var a=[];return this.columns.forEach(b=>{a.push(b.getDefinition(!0))}),a}getComponents(a){var b=[];return(a?this.columns:this.columnsByIndex).forEach(a=>{b.push(a.getComponent())}),b}getWidth(){var a=0;return this.columnsByIndex.forEach(b=>{b.visible&&(a+=b.getWidth())}),a}moveColumn(a,b,c){b.element.parentNode.insertBefore(a.element,b.element),c&&b.element.parentNode.insertBefore(b.element,a.element),this.moveColumnActual(a,b,c),this.verticalAlignHeaders(),this.table.rowManager.reinitialize()}moveColumnActual(a,b,c){a.parent.isGroup?this._moveColumnInArray(a.parent.columns,a,b,c):this._moveColumnInArray(this.columns,a,b,c),this._moveColumnInArray(this.columnsByIndex,a,b,c,!0),this.rerenderColumns(!0),this.dispatch("column-moved",a,b,c),this.subscribedExternal("columnMoved")&&this.dispatchExternal("columnMoved",a.getComponent(),this.table.columnManager.getComponents())}_moveColumnInArray(a,b,c,d,e){var f,g=a.indexOf(b);g>-1&&(a.splice(g,1),(f=a.indexOf(c))>-1?d&&(f+=1):f=g,a.splice(f,0,b),e&&(this.chain("column-moving-rows",[b,c,d],null,[])||[]).concat(this.table.rowManager.rows).forEach(function(a){if(a.cells.length){var b=a.cells.splice(g,1)[0];a.cells.splice(f,0,b)}}))}scrollToColumn(a,b,c){var d=0,e=a.getLeftOffset(),f=0,g=a.getElement();return new Promise((h,i)=>{if(void 0===b&&(b=this.table.options.scrollToColumnPosition),void 0===c&&(c=this.table.options.scrollToColumnIfVisible),a.visible){switch(b){case"middle":case"center":f=-this.element.clientWidth/2;break;case"right":f=g.clientWidth-this.headersElement.clientWidth}if(!c&&e>0&&e+g.offsetWidth<this.element.clientWidth)return!1;d=Math.max(Math.min(d=e+f,this.table.rowManager.element.scrollWidth-this.table.rowManager.element.clientWidth),0),this.table.rowManager.scrollHorizontal(d),this.scrollHorizontal(d),h()}else console.warn("Scroll Error - Column not visible"),i("Scroll Error - Column not visible")})}generateCells(a){var b=[];return this.columnsByIndex.forEach(c=>{b.push(c.generateCell(a))}),b}getFlexBaseWidth(){var a=this.table.element.clientWidth,b=0;return this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(a-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),this.columnsByIndex.forEach(function(c){var d,e,f;c.visible&&(d=c.definition.width||0,e=parseInt(c.minWidth),f="string"==typeof d?d.indexOf("%")>-1?a/100*parseInt(d):parseInt(d):d,b+=f>e?f:e)}),b}addColumn(a,b,c){return new Promise((d,e)=>{var f=this._addColumn(a,b,c);this._reIndexColumns(),this.dispatch("column-add",a,b,c),"fitColumns"!=this.layoutMode()&&f.reinitializeWidth(),this.redraw(!0),this.table.rowManager.reinitialize(),this.rerenderColumns(),d(f)})}deregisterColumn(a){var b,c=a.getField();c&&delete this.columnsByField[c],(b=this.columnsByIndex.indexOf(a))>-1&&this.columnsByIndex.splice(b,1),(b=this.columns.indexOf(a))>-1&&this.columns.splice(b,1),this.verticalAlignHeaders(),this.redraw()}rerenderColumns(a,b){this.redrawBlock?(!1===a||!0===a&&null===this.redrawBlockUpdate)&&(this.redrawBlockUpdate=a):this.renderer.rerenderColumns(a,b)}blockRedraw(){this.redrawBlock=!0,this.redrawBlockUpdate=null}restoreRedraw(){this.redrawBlock=!1,this.verticalAlignHeaders(),this.renderer.rerenderColumns(this.redrawBlockUpdate)}redraw(a){n.elVisible(this.element)&&this.verticalAlignHeaders(),a&&(this.table.rowManager.resetScroll(),this.table.rowManager.reinitialize()),this.confirm("table-redrawing",a)||this.layoutRefresh(a),this.dispatch("table-redraw",a),this.table.footerManager.redraw()}}class aN extends aJ{constructor(a){super(a),this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0}clearRows(){for(var a=this.tableElement;a.firstChild;)a.removeChild(a.firstChild);a.scrollTop=0,a.scrollLeft=0,a.style.minWidth="",a.style.minHeight="",a.style.display="",a.style.visibility=""}renderRows(){var a=this.tableElement,b=!0,c=document.createDocumentFragment(),d=this.rows();d.forEach((a,d)=>{this.styleRow(a,d),a.initialize(!1,!0),"group"!==a.type&&(b=!1),c.appendChild(a.getElement())}),a.appendChild(c),d.forEach(a=>{a.rendered(),a.heightInitialized||a.calcHeight(!0)}),d.forEach(a=>{a.heightInitialized||a.setCellHeight()}),b?a.style.minWidth=this.table.columnManager.getWidth()+"px":a.style.minWidth=""}rerenderRows(a){this.clearRows(),a&&a(),this.renderRows(),this.rows().length||this.table.rowManager.tableEmpty()}scrollToRowNearestTop(a){var b=n.elOffset(a.getElement()).top;return!(Math.abs(this.elementVertical.scrollTop-b)>Math.abs(this.elementVertical.scrollTop+this.elementVertical.clientHeight-b))}scrollToRow(a){var b=a.getElement();this.elementVertical.scrollTop=n.elOffset(b).top-n.elOffset(this.elementVertical).top+this.elementVertical.scrollTop}visibleRows(a){return this.rows()}}class aO extends aJ{constructor(a){super(a),this.verticalFillMode="fill",this.scrollTop=0,this.scrollLeft=0,this.vDomRowHeight=20,this.vDomTop=0,this.vDomBottom=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomMaxRenderChain=90,this.vDomWindowBuffer=0,this.vDomWindowMinTotalRows=20,this.vDomWindowMinMarginRows=5,this.vDomTopNewRows=[],this.vDomBottomNewRows=[]}clearRows(){for(var a=this.tableElement;a.firstChild;)a.removeChild(a.firstChild);a.style.paddingTop="",a.style.paddingBottom="",a.style.minHeight="",a.style.display="",a.style.visibility="",this.elementVertical.scrollTop=0,this.elementVertical.scrollLeft=0,this.scrollTop=0,this.scrollLeft=0,this.vDomTop=0,this.vDomBottom=0,this.vDomTopPad=0,this.vDomBottomPad=0,this.vDomScrollPosTop=0,this.vDomScrollPosBottom=0}renderRows(){this._virtualRenderFill()}rerenderRows(a){for(var b=this.elementVertical.scrollTop,c=!1,d=!1,e=this.table.rowManager.scrollLeft,f=this.rows(),g=this.vDomTop;g<=this.vDomBottom;g++)if(f[g]){var h=b-f[g].getElement().offsetTop;if(!1===d||Math.abs(h)<d)d=h,c=g;else break}f.forEach(a=>{a.deinitializeHeight()}),a&&a(),this.rows().length?this._virtualRenderFill(!1===c?this.rows.length-1:c,!0,d||0):(this.clear(),this.table.rowManager.tableEmpty()),this.scrollColumns(e)}scrollColumns(a){this.table.rowManager.scrollHorizontal(a)}scrollRows(a,b){var c=a-this.vDomScrollPosTop,d=a-this.vDomScrollPosBottom,e=2*this.vDomWindowBuffer,f=this.rows();if(this.scrollTop=a,-c>e||d>e){var g=this.table.rowManager.scrollLeft;this._virtualRenderFill(Math.floor(this.elementVertical.scrollTop/this.elementVertical.scrollHeight*f.length)),this.scrollColumns(g)}else b?(c<0&&this._addTopRow(f,-c),d<0&&(this.vDomScrollHeight-this.scrollTop>this.vDomWindowBuffer?this._removeBottomRow(f,-d):this.vDomScrollPosBottom=this.scrollTop)):(d>=0&&this._addBottomRow(f,d),c>=0&&(this.scrollTop>this.vDomWindowBuffer?this._removeTopRow(f,c):this.vDomScrollPosTop=this.scrollTop))}resize(){this.vDomWindowBuffer=this.table.options.renderVerticalBuffer||this.elementVertical.clientHeight}scrollToRowNearestTop(a){var b=this.rows().indexOf(a);return!(Math.abs(this.vDomTop-b)>Math.abs(this.vDomBottom-b))}scrollToRow(a){var b=this.rows().indexOf(a);b>-1&&this._virtualRenderFill(b,!0)}visibleRows(a){var b=this.elementVertical.scrollTop,c=this.elementVertical.clientHeight+b,d=!1,e=0,f=0,g=this.rows();if(a)e=this.vDomTop,f=this.vDomBottom;else for(var h=this.vDomTop;h<=this.vDomBottom;h++)if(g[h])if(d)if(c-g[h].getElement().offsetTop>=0)f=h;else break;else if(b-g[h].getElement().offsetTop>=0)e=h;else if(d=!0,c-g[h].getElement().offsetTop>=0)f=h;else break;return g.slice(e,f+1)}_virtualRenderFill(a,b,c){var d,e,f=this.tableElement,g=this.elementVertical,h=0,i=0,j=0,k=0,l=0,m=0,o=this.rows(),p=o.length,q=0,r=[],s=0,t=0,u=this.table.rowManager.fixedHeight,v=this.elementVertical.clientHeight,w=this.table.options.rowHeight,x=!0;if(c=c||0,a=a||0){for(;f.firstChild;)f.removeChild(f.firstChild);(k=(p-a+1)*this.vDomRowHeight)<v&&(a-=Math.ceil((v-k)/this.vDomRowHeight))<0&&(a=0),h=Math.min(Math.max(Math.floor(this.vDomWindowBuffer/this.vDomRowHeight),this.vDomWindowMinMarginRows),a),a-=h}else this.clear();if(p&&n.elVisible(this.elementVertical)){for(this.vDomTop=a,this.vDomBottom=a-1,u||this.table.options.maxHeight?(w&&(t=v/w+this.vDomWindowBuffer/w),t=Math.max(this.vDomWindowMinTotalRows,Math.ceil(t))):t=p;(t==p||i<=v+this.vDomWindowBuffer||s<this.vDomWindowMinTotalRows)&&this.vDomBottom<p-1;){for(r=[],e=document.createDocumentFragment(),m=0;m<t&&this.vDomBottom<p-1;)d=o[q=this.vDomBottom+1],this.styleRow(d,q),d.initialize(!1,!0),d.heightInitialized||this.table.options.rowHeight||d.clearCellHeight(),e.appendChild(d.getElement()),r.push(d),this.vDomBottom++,m++;if(!r.length)break;f.appendChild(e),r.forEach(a=>{a.rendered()});let a=[];r.forEach(b=>{b.heightInitialized||(b.calcHeight(!0),a.push(b))}),a.forEach(a=>{a.setCellHeight()}),r.forEach(a=>{j=a.getHeight(),s<h?l+=j:i+=j,j>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*j),s++}),x=this.table.rowManager.adjustTableSize(),v=this.elementVertical.clientHeight,x&&(u||this.table.options.maxHeight)&&(w=i/s,t=Math.max(this.vDomWindowMinTotalRows,Math.ceil(v/w+this.vDomWindowBuffer/w)))}a?(this.vDomTopPad=b?this.vDomRowHeight*this.vDomTop+c:this.scrollTop-l,this.vDomBottomPad=this.vDomBottom==p-1?0:Math.max(this.vDomScrollHeight-this.vDomTopPad-i-l,0)):(this.vDomTopPad=0,this.vDomRowHeight=Math.floor((i+l)/s),this.vDomBottomPad=this.vDomRowHeight*(p-this.vDomBottom-1),this.vDomScrollHeight=l+i+this.vDomBottomPad-v),f.style.paddingTop=this.vDomTopPad+"px",f.style.paddingBottom=this.vDomBottomPad+"px",b&&(this.scrollTop=this.vDomTopPad+l+c-(this.elementVertical.scrollWidth>this.elementVertical.clientWidth?this.elementVertical.offsetHeight-v:0)),this.scrollTop=Math.min(this.scrollTop,this.elementVertical.scrollHeight-v),this.elementVertical.scrollWidth>this.elementVertical.clientWidth&&b&&(this.scrollTop+=this.elementVertical.offsetHeight-v),this.vDomScrollPosTop=this.scrollTop,this.vDomScrollPosBottom=this.scrollTop,g.scrollTop=this.scrollTop,this.dispatch("render-virtual-fill")}}_addTopRow(a,b){for(var c=this.tableElement,d=[],e=0,f=this.vDomTop-1,g=0,h=!0;h;)if(this.vDomTop){let i=a[f],j,k;i&&g<this.vDomMaxRenderChain?(j=i.getHeight()||this.vDomRowHeight,k=i.initialized,b>=j?(this.styleRow(i,f),c.insertBefore(i.getElement(),c.firstChild),i.initialized&&i.heightInitialized||d.push(i),i.initialize(),!k&&(j=i.getElement().offsetHeight)>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*j),b-=j,e+=j,this.vDomTop--,f--,g++):h=!1):h=!1}else h=!1;for(let a of d)a.clearCellHeight();this._quickNormalizeRowHeight(d),e&&(this.vDomTopPad-=e,this.vDomTopPad<0&&(this.vDomTopPad=f*this.vDomRowHeight),f<1&&(this.vDomTopPad=0),c.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop-=e)}_removeTopRow(a,b){for(var c=[],d=0,e=0,f=!0;f;){let g=a[this.vDomTop],h;g&&e<this.vDomMaxRenderChain?(h=g.getHeight()||this.vDomRowHeight,b>=h?(this.vDomTop++,b-=h,d+=h,c.push(g),e++):f=!1):f=!1}for(let a of c){let b=a.getElement();b.parentNode&&b.parentNode.removeChild(b)}d&&(this.vDomTopPad+=d,this.tableElement.style.paddingTop=this.vDomTopPad+"px",this.vDomScrollPosTop+=this.vDomTop?d:d+this.vDomWindowBuffer)}_addBottomRow(a,b){for(var c=this.tableElement,d=[],e=0,f=this.vDomBottom+1,g=0,h=!0;h;){let i=a[f],j,k;i&&g<this.vDomMaxRenderChain?(j=i.getHeight()||this.vDomRowHeight,k=i.initialized,b>=j?(this.styleRow(i,f),c.appendChild(i.getElement()),i.initialized&&i.heightInitialized||d.push(i),i.initialize(),!k&&(j=i.getElement().offsetHeight)>this.vDomWindowBuffer&&(this.vDomWindowBuffer=2*j),b-=j,e+=j,this.vDomBottom++,f++,g++):h=!1):h=!1}for(let a of d)a.clearCellHeight();this._quickNormalizeRowHeight(d),e&&(this.vDomBottomPad-=e,(this.vDomBottomPad<0||f==a.length-1)&&(this.vDomBottomPad=0),c.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom+=e)}_removeBottomRow(a,b){for(var c=[],d=0,e=0,f=!0;f;){let g=a[this.vDomBottom],h;g&&e<this.vDomMaxRenderChain?(h=g.getHeight()||this.vDomRowHeight,b>=h?(this.vDomBottom--,b-=h,d+=h,c.push(g),e++):f=!1):f=!1}for(let a of c){let b=a.getElement();b.parentNode&&b.parentNode.removeChild(b)}d&&(this.vDomBottomPad+=d,this.vDomBottomPad<0&&(this.vDomBottomPad=0),this.tableElement.style.paddingBottom=this.vDomBottomPad+"px",this.vDomScrollPosBottom-=d)}_quickNormalizeRowHeight(a){for(let b of a)b.calcHeight();for(let b of a)b.setCellHeight()}}class aP extends m{constructor(a){super(a),this.element=this.createHolderElement(),this.tableElement=this.createTableElement(),this.heightFixer=this.createTableElement(),this.placeholder=null,this.placeholderContents=null,this.firstRender=!1,this.renderMode="virtual",this.fixedHeight=!1,this.rows=[],this.activeRowsPipeline=[],this.activeRows=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0,this.scrollTop=0,this.scrollLeft=0,this.redrawBlock=!1,this.redrawBlockRestoreConfig=!1,this.redrawBlockRenderInPosition=!1,this.dataPipeline=[],this.displayPipeline=[],this.scrollbarWidth=0,this.renderer=null}createHolderElement(){var a=document.createElement("div");return a.classList.add("tabulator-tableholder"),a.setAttribute("tabindex",0),a}createTableElement(){var a=document.createElement("div");return a.classList.add("tabulator-table"),a.setAttribute("role","rowgroup"),a.setAttribute("id","tabulator-table-body"),a}initializePlaceholder(){var a=this.table.options.placeholder;if("function"==typeof a&&(a=a.call(this.table)),a=this.chain("placeholder",[a],a,a)||a){let b=document.createElement("div");if(b.classList.add("tabulator-placeholder"),"string"==typeof a){let c=document.createElement("div");c.classList.add("tabulator-placeholder-contents"),c.innerHTML=a,b.appendChild(c),this.placeholderContents=c}else"u">typeof HTMLElement&&a instanceof HTMLElement?(b.appendChild(a),this.placeholderContents=a):(console.warn("Invalid placeholder provided, must be string or HTML Element",a),this.el=null);this.placeholder=b}}getElement(){return this.element}getTableElement(){return this.tableElement}initialize(){this.initializePlaceholder(),this.initializeRenderer(),this.element.appendChild(this.tableElement),this.firstRender=!0,this.element.addEventListener("scroll",()=>{var a=this.element.scrollLeft,b=this.scrollLeft>a,c=this.element.scrollTop,d=this.scrollTop>c;this.scrollLeft!=a&&(this.scrollLeft=a,this.dispatch("scroll-horizontal",a,b),this.dispatchExternal("scrollHorizontal",a,b),this._positionPlaceholder()),this.scrollTop!=c&&(this.scrollTop=c,this.renderer.scrollRows(c,d),this.dispatch("scroll-vertical",c,d),this.dispatchExternal("scrollVertical",c,d))})}findRow(a){if("object"!=typeof a)return void 0!==a&&(this.rows.find(b=>b.data[this.table.options.index]==a)||!1);if(a instanceof I)return a;if(a instanceof H)return a._getSelf()||!1;else if("u">typeof HTMLElement&&a instanceof HTMLElement)return this.rows.find(b=>b.getElement()===a)||!1;return!1}getRowFromDataObject(a){return this.rows.find(b=>b.data===a)||!1}getRowFromPosition(a){return this.getDisplayRows().find(b=>"row"===b.type&&b.getPosition()===a&&b.isDisplayed())}scrollToRow(a,b,c){return this.renderer.scrollToRowPosition(a,b,c)}setData(a,b,c){return new Promise((d,e)=>{b&&this.getDisplayRows().length?this.table.options.pagination?this._setDataActual(a,!0):this.reRenderInPosition(()=>{this._setDataActual(a)}):(this.table.options.autoColumns&&c&&this.table.initialized&&this.table.columnManager.generateColumnsFromRowData(a),this.resetScroll(),this._setDataActual(a)),d()})}_setDataActual(a,b){this.dispatchExternal("dataProcessing",a),this._wipeElements(),Array.isArray(a)?(this.dispatch("data-processing",a),a.forEach((a,b)=>{if(a&&"object"==typeof a){var c=new I(a,this);this.rows.push(c)}else console.warn("Data Loading Warning - Invalid row data detected and ignored, expecting object but received:",a)}),this.refreshActiveData(!1,!1,b),this.dispatch("data-processed",a),this.dispatchExternal("dataProcessed",a)):console.error("Data Loading Error - Unable to process data due to invalid data type \nExpecting: array \nReceived: ",typeof a,"\nData: ",a)}_wipeElements(){this.dispatch("rows-wipe"),this.destroy(),this.adjustTableSize(),this.dispatch("rows-wiped")}destroy(){this.rows.forEach(a=>{a.wipe()}),this.rows=[],this.activeRows=[],this.activeRowsPipeline=[],this.activeRowsCount=0,this.displayRows=[],this.displayRowsCount=0}deleteRow(a,b){var c=this.rows.indexOf(a),d=this.activeRows.indexOf(a);d>-1&&this.activeRows.splice(d,1),c>-1&&this.rows.splice(c,1),this.setActiveRows(this.activeRows),this.displayRowIterator(b=>{var c=b.indexOf(a);c>-1&&b.splice(c,1)}),b||this.reRenderInPosition(),this.regenerateRowPositions(),this.dispatchExternal("rowDeleted",a.getComponent()),this.displayRowsCount||this.tableEmpty(),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.getData())}addRow(a,b,c,d){return this.addRowActual(a,b,c,d)}addRows(a,b,c,d){var e=[];return new Promise((f,g)=>{b=this.findAddRowPos(b),Array.isArray(a)||(a=[a]),(void 0===c&&b||void 0!==c&&!b)&&a.reverse(),a.forEach((a,d)=>{var f=this.addRow(a,b,c,!0);e.push(f),this.dispatch("row-added",f,a,b,c)}),this.refreshActiveData(!!d&&"displayPipeline",!1,!0),this.regenerateRowPositions(),this.displayRowsCount&&this._clearPlaceholder(),f(e)})}findAddRowPos(a){return void 0===a&&(a=this.table.options.addRowPos),"pos"===a&&(a=!0),"bottom"===a&&(a=!1),a}addRowActual(a,b,c,d){var e,f,g=a instanceof I?a:new I(a||{},this),h=this.findAddRowPos(b),i=-1;return c||(c=(f=this.chain("row-adding-position",[g,h],null,{index:c,top:h})).index,h=f.top),void 0!==c&&(c=this.findRow(c)),(c=this.chain("row-adding-index",[g,c,h],null,c))&&(i=this.rows.indexOf(c)),c&&i>-1?(e=this.activeRows.indexOf(c),this.displayRowIterator(function(a){var b=a.indexOf(c);b>-1&&a.splice(h?b:b+1,0,g)}),e>-1&&this.activeRows.splice(h?e:e+1,0,g),this.rows.splice(h?i:i+1,0,g)):h?(this.displayRowIterator(function(a){a.unshift(g)}),this.activeRows.unshift(g),this.rows.unshift(g)):(this.displayRowIterator(function(a){a.push(g)}),this.activeRows.push(g),this.rows.push(g)),this.setActiveRows(this.activeRows),this.dispatchExternal("rowAdded",g.getComponent()),this.subscribedExternal("dataChanged")&&this.dispatchExternal("dataChanged",this.table.rowManager.getData()),d||this.reRenderInPosition(),g}moveRow(a,b,c){this.dispatch("row-move",a,b,c),this.moveRowActual(a,b,c),this.regenerateRowPositions(),this.dispatch("row-moved",a,b,c),this.dispatchExternal("rowMoved",a.getComponent())}moveRowActual(a,b,c){this.moveRowInArray(this.rows,a,b,c),this.moveRowInArray(this.activeRows,a,b,c),this.displayRowIterator(d=>{this.moveRowInArray(d,a,b,c)}),this.dispatch("row-moving",a,b,c)}moveRowInArray(a,b,c,d){var e,f,g,h;if(b!==c&&((e=a.indexOf(b))>-1&&(a.splice(e,1),(f=a.indexOf(c))>-1?d?a.splice(f+1,0,b):a.splice(f,0,b):a.splice(e,0,b)),a===this.getDisplayRows())){g=e<f?e:f,h=f>e?f:e+1;for(let b=g;b<=h;b++)a[b]&&this.styleRow(a[b],b)}}clearData(){this.setData([])}getRowIndex(a){return this.findRowIndex(a,this.rows)}getDisplayRowIndex(a){var b=this.getDisplayRows().indexOf(a);return b>-1&&b}nextDisplayRow(a,b){var c=this.getDisplayRowIndex(a),d=!1;return(!1!==c&&c<this.displayRowsCount-1&&(d=this.getDisplayRows()[c+1]),!d||d instanceof I&&"row"==d.type)?d:this.nextDisplayRow(d,b)}prevDisplayRow(a,b){var c=this.getDisplayRowIndex(a),d=!1;return(c&&(d=this.getDisplayRows()[c-1]),!b||!d||d instanceof I&&"row"==d.type)?d:this.prevDisplayRow(d,b)}findRowIndex(a,b){var c;return!!((a=this.findRow(a))&&(c=b.indexOf(a))>-1)&&c}getData(a,b){var c=[];return this.getRows(a).forEach(function(a){"row"==a.type&&c.push(a.getData(b||"data"))}),c}getComponents(a){var b=[];return this.getRows(a).forEach(function(a){b.push(a.getComponent())}),b}getDataCount(a){return this.getRows(a).length}scrollHorizontal(a){this.scrollLeft=a,this.element.scrollLeft=a,this.dispatch("scroll-horizontal",a)}registerDataPipelineHandler(a,b){void 0!==b?(this.dataPipeline.push({handler:a,priority:b}),this.dataPipeline.sort((a,b)=>a.priority-b.priority)):console.error("Data pipeline handlers must have a priority in order to be registered")}registerDisplayPipelineHandler(a,b){void 0!==b?(this.displayPipeline.push({handler:a,priority:b}),this.displayPipeline.sort((a,b)=>a.priority-b.priority)):console.error("Display pipeline handlers must have a priority in order to be registered")}refreshActiveData(a,b,c){var d=this.table,e="",f=0,g=["all","dataPipeline","display","displayPipeline","end"];if(!this.table.destroyed){if("function"==typeof a)if((f=this.dataPipeline.findIndex(b=>b.handler===a))>-1)e="dataPipeline",b&&(f==this.dataPipeline.length-1?e="display":f++);else{if(!((f=this.displayPipeline.findIndex(b=>b.handler===a))>-1))return void console.error("Unable to refresh data, invalid handler provided",a);e="displayPipeline",b&&(f==this.displayPipeline.length-1?e="end":f++)}else e=a||"all",f=0;if(this.redrawBlock){(!this.redrawBlockRestoreConfig||this.redrawBlockRestoreConfig&&(this.redrawBlockRestoreConfig.stage===e&&f<this.redrawBlockRestoreConfig.index||g.indexOf(e)<g.indexOf(this.redrawBlockRestoreConfig.stage)))&&(this.redrawBlockRestoreConfig={handler:a,skipStage:b,renderInPosition:c,stage:e,index:f});return}n.elVisible(this.element)?c?this.reRenderInPosition(this.refreshPipelines.bind(this,a,e,f,c)):(this.refreshPipelines(a,e,f,c),a||this.table.columnManager.renderer.renderColumns(),this.renderTable(),d.options.layoutColumnsOnNewData&&this.table.columnManager.redraw(!0)):this.refreshPipelines(a,e,f,c),this.dispatch("data-refreshed")}}refreshPipelines(a,b,c,d){switch(this.dispatch("data-refreshing"),(!a||!this.activeRowsPipeline[0])&&(this.activeRowsPipeline[0]=this.rows.slice(0)),b){case"all":case"dataPipeline":for(let a=c;a<this.dataPipeline.length;a++){let b=this.dataPipeline[a].handler(this.activeRowsPipeline[a].slice(0));this.activeRowsPipeline[a+1]=b||this.activeRowsPipeline[a].slice(0)}this.setActiveRows(this.activeRowsPipeline[this.dataPipeline.length]);case"display":c=0,this.resetDisplayRows();case"displayPipeline":for(let a=c;a<this.displayPipeline.length;a++){let b=this.displayPipeline[a].handler((a?this.getDisplayRows(a-1):this.activeRows).slice(0),d);this.setDisplayRows(b||this.getDisplayRows(a-1).slice(0),a)}case"end":this.regenerateRowPositions()}this.getDisplayRows().length&&this._clearPlaceholder()}regenerateRowPositions(){var a=this.getDisplayRows(),b=1;a.forEach(a=>{"row"===a.type&&(a.setPosition(b),b++)})}setActiveRows(a){this.activeRows=this.activeRows=Object.assign([],a),this.activeRowsCount=this.activeRows.length}resetDisplayRows(){this.displayRows=[],this.displayRows.push(this.activeRows.slice(0)),this.displayRowsCount=this.displayRows[0].length}setDisplayRows(a,b){this.displayRows[b]=a,b==this.displayRows.length-1&&(this.displayRowsCount=this.displayRows[this.displayRows.length-1].length)}getDisplayRows(a){return void 0===a?this.displayRows.length?this.displayRows[this.displayRows.length-1]:[]:this.displayRows[a]||[]}getVisibleRows(a,b){var c=Object.assign([],this.renderer.visibleRows(!b));return a&&(c=this.chain("rows-visible",[b],c,c)),c}displayRowIterator(a){this.activeRowsPipeline.forEach(a),this.displayRows.forEach(a),this.displayRowsCount=this.displayRows[this.displayRows.length-1].length}getRows(a){var b=[];switch(a){case"active":b=this.activeRows;break;case"display":b=this.table.rowManager.getDisplayRows();break;case"visible":b=this.getVisibleRows(!1,!0);break;default:b=this.chain("rows-retrieve",a,null,this.rows)||this.rows}return b}reRenderInPosition(a){this.redrawBlock?a?a():this.redrawBlockRenderInPosition=!0:(this.dispatchExternal("renderStarted"),this.renderer.rerenderRows(a),this.fixedHeight||this.adjustTableSize(),this.scrollBarCheck(),this.dispatchExternal("renderComplete"))}scrollBarCheck(){var a=0;this.element.scrollHeight>this.element.clientHeight&&(a=this.element.offsetWidth-this.element.clientWidth),a!==this.scrollbarWidth&&(this.scrollbarWidth=a,this.dispatch("scrollbar-vertical",a))}initializeRenderer(){var a;(a="string"==typeof this.table.options.renderVertical?({virtual:aO,basic:aN})[this.table.options.renderVertical]:this.table.options.renderVertical)?(this.renderMode=this.table.options.renderVertical,this.renderer=new a(this.table,this.element,this.tableElement),this.renderer.initialize(),(this.table.element.clientHeight||this.table.options.height)&&!(this.table.options.minHeight&&this.table.options.maxHeight)?this.fixedHeight=!0:this.fixedHeight=!1):console.error("Unable to find matching renderer:",this.table.options.renderVertical)}getRenderMode(){return this.renderMode}renderTable(){this.dispatchExternal("renderStarted"),this.element.scrollTop=0,this._clearTable(),this.displayRowsCount?(this.renderer.renderRows(),this.firstRender&&(this.firstRender=!1,this.fixedHeight||this.adjustTableSize(),this.layoutRefresh(!0))):this.renderEmptyScroll(),this.fixedHeight||this.adjustTableSize(),this.dispatch("table-layout"),this.displayRowsCount||this._showPlaceholder(),this.scrollBarCheck(),this.dispatchExternal("renderComplete")}renderEmptyScroll(){this.placeholder?this.tableElement.style.display="none":this.tableElement.style.minWidth=this.table.columnManager.getWidth()+"px"}_clearTable(){this._clearPlaceholder(),this.scrollTop=0,this.scrollLeft=0,this.renderer.clearRows()}tableEmpty(){this.renderEmptyScroll(),this._showPlaceholder()}checkPlaceholder(){this.displayRowsCount?this._clearPlaceholder():this.tableEmpty()}_showPlaceholder(){this.placeholder&&(this.placeholder&&this.placeholder.parentNode&&this.placeholder.parentNode.removeChild(this.placeholder),this.initializePlaceholder(),this.placeholder.setAttribute("tabulator-render-mode",this.renderMode),this.getElement().appendChild(this.placeholder),this._positionPlaceholder(),this.adjustTableSize())}_clearPlaceholder(){this.placeholder&&this.placeholder.parentNode&&this.placeholder.parentNode.removeChild(this.placeholder),this.tableElement.style.minWidth="",this.tableElement.style.display=""}_positionPlaceholder(){this.placeholder&&this.placeholder.parentNode&&(this.placeholder.style.width=this.table.columnManager.getWidth()+"px",this.placeholderContents.style.width=this.table.rowManager.element.clientWidth+"px",this.placeholderContents.style.marginLeft=this.scrollLeft+"px")}styleRow(a,b){var c=a.getElement();b%2?(c.classList.add("tabulator-row-even"),c.classList.remove("tabulator-row-odd")):(c.classList.add("tabulator-row-odd"),c.classList.remove("tabulator-row-even"))}normalizeHeight(a){this.activeRows.forEach(function(b){b.normalizeHeight(a)})}adjustTableSize(){let a=this.element.clientHeight,b,c=!1;if("fill"===this.renderer.verticalFillMode){let d=Math.floor(this.table.columnManager.getElement().getBoundingClientRect().height+(this.table.footerManager&&this.table.footerManager.active&&!this.table.footerManager.external?this.table.footerManager.getElement().getBoundingClientRect().height:0));if(this.fixedHeight){b=isNaN(this.table.options.minHeight)?this.table.options.minHeight:this.table.options.minHeight+"px";let a="calc(100% - "+d+"px)";this.element.style.minHeight=b||"calc(100% - "+d+"px)",this.element.style.height=a,this.element.style.maxHeight=a}else this.element.style.height="",this.element.style.height=this.table.element.clientHeight-d+"px",this.element.scrollTop=this.scrollTop;this.renderer.resize(),!this.fixedHeight&&a!=this.element.clientHeight&&(c=!0,this.redrawing||(this.redrawing=!0,this.subscribed("table-resize")?this.dispatch("table-resize"):this.redraw(),this.redrawing=!1)),this.scrollBarCheck()}return this._positionPlaceholder(),c}reinitialize(){this.rows.forEach(function(a){a.reinitialize(!0)})}blockRedraw(){this.redrawBlock=!0,this.redrawBlockRestoreConfig=!1}restoreRedraw(){this.redrawBlock=!1,this.redrawBlockRestoreConfig?(this.refreshActiveData(this.redrawBlockRestoreConfig.handler,this.redrawBlockRestoreConfig.skipStage,this.redrawBlockRestoreConfig.renderInPosition),this.redrawBlockRestoreConfig=!1):this.redrawBlockRenderInPosition&&this.reRenderInPosition(),this.redrawBlockRenderInPosition=!1}redraw(a){this.adjustTableSize(),this.table.tableWidth=this.table.element.clientWidth,a?this.renderTable():(this.reRenderInPosition(),this.scrollHorizontal(this.scrollLeft))}resetScroll(){if(this.element.scrollLeft=0,this.element.scrollTop=0,"ie"===this.table.browser){var a=document.createEvent("Event");a.initEvent("scroll",!1,!0),this.element.dispatchEvent(a)}else this.element.dispatchEvent(new Event("scroll"))}}class aQ extends m{constructor(a){super(a),this.active=!1,this.element=this.createElement(),this.containerElement=this.createContainerElement(),this.external=!1}initialize(){this.initializeElement()}createElement(){var a=document.createElement("div");return a.classList.add("tabulator-footer"),a}createContainerElement(){var a=document.createElement("div");return a.classList.add("tabulator-footer-contents"),this.element.appendChild(a),a}initializeElement(){this.table.options.footerElement&&("string"==typeof this.table.options.footerElement?"<"===this.table.options.footerElement[0]?this.containerElement.innerHTML=this.table.options.footerElement:(this.external=!0,this.containerElement=document.querySelector(this.table.options.footerElement)):this.element=this.table.options.footerElement)}getElement(){return this.element}append(a){this.activate(),this.containerElement.appendChild(a),this.table.rowManager.adjustTableSize()}prepend(a){this.activate(),this.element.insertBefore(a,this.element.firstChild),this.table.rowManager.adjustTableSize()}remove(a){a.parentNode.removeChild(a),this.deactivate()}deactivate(a){(!this.element.firstChild||a)&&(this.external||this.element.parentNode.removeChild(this.element),this.active=!1)}activate(){!this.active&&(this.active=!0,this.external||(this.table.element.appendChild(this.getElement()),this.table.element.style.display=""))}redraw(){this.dispatch("footer-redraw")}}class aR extends m{constructor(a){super(a),this.el=null,this.abortClasses=["tabulator-headers","tabulator-table"],this.previousTargets={},this.listeners=["click","dblclick","contextmenu","mouseenter","mouseleave","mouseover","mouseout","mousemove","mouseup","mousedown","touchstart","touchend"],this.componentMap={"tabulator-cell":"cell","tabulator-row":"row","tabulator-group":"group","tabulator-col":"column"},this.pseudoTrackers={row:{subscriber:null,target:null},cell:{subscriber:null,target:null},group:{subscriber:null,target:null},column:{subscriber:null,target:null}},this.pseudoTracking=!1}initialize(){this.el=this.table.element,this.buildListenerMap(),this.bindSubscriptionWatchers()}buildListenerMap(){var a={};this.listeners.forEach(b=>{a[b]={handler:null,components:[]}}),this.listeners=a}bindPseudoEvents(){Object.keys(this.pseudoTrackers).forEach(a=>{this.pseudoTrackers[a].subscriber=this.pseudoMouseEnter.bind(this,a),this.subscribe(a+"-mouseover",this.pseudoTrackers[a].subscriber)}),this.pseudoTracking=!0}pseudoMouseEnter(a,b,c){this.pseudoTrackers[a].target!==c&&(this.pseudoTrackers[a].target&&this.dispatch(a+"-mouseleave",b,this.pseudoTrackers[a].target),this.pseudoMouseLeave(a,b),this.pseudoTrackers[a].target=c,this.dispatch(a+"-mouseenter",b,c))}pseudoMouseLeave(a,b){var c=Object.keys(this.pseudoTrackers),d={row:["cell"],cell:["row"]};(c=c.filter(b=>{var c=d[a];return b!==a&&(!c||c&&!c.includes(b))})).forEach(a=>{var c=this.pseudoTrackers[a].target;this.pseudoTrackers[a].target&&(this.dispatch(a+"-mouseleave",b,c),this.pseudoTrackers[a].target=null)})}bindSubscriptionWatchers(){var a=Object.keys(this.listeners);for(let b of Object.values(this.componentMap))for(let c of a){let a=b+"-"+c;this.subscriptionChange(a,this.subscriptionChanged.bind(this,b,c))}this.subscribe("table-destroy",this.clearWatchers.bind(this))}subscriptionChanged(a,b,c){var d=this.listeners[b].components,e=d.indexOf(a),f=!1;c?-1===e&&(d.push(a),f=!0):!this.subscribed(a+"-"+b)&&e>-1&&(d.splice(e,1),f=!0),"mouseenter"!==b&&"mouseleave"!==b||this.pseudoTracking||this.bindPseudoEvents(),f&&this.updateEventListeners()}updateEventListeners(){for(let a in this.listeners){let b=this.listeners[a];b.components.length?b.handler||(b.handler=this.track.bind(this,a),this.el.addEventListener(a,b.handler)):b.handler&&(this.el.removeEventListener(a,b.handler),b.handler=null)}}track(a,b){var c=b.composedPath&&b.composedPath()||b.path,d=this.findTargets(c);d=this.bindComponents(a,d),this.triggerEvents(a,b,d),this.pseudoTracking&&("mouseover"==a||"mouseleave"==a)&&!Object.keys(d).length&&this.pseudoMouseLeave("none",b)}findTargets(a){var b={};let c=Object.keys(this.componentMap);for(let d of a){let a=d.classList?[...d.classList]:[];if(a.filter(a=>this.abortClasses.includes(a)).length)break;for(let e of a.filter(a=>c.includes(a)))b[this.componentMap[e]]||(b[this.componentMap[e]]=d)}return b.group&&b.group===b.row&&delete b.row,b}bindComponents(a,b){var c=Object.keys(b).reverse(),d=this.listeners[a],e={},f={},g={};for(let a of c){let c,f=b[a],h=this.previousTargets[a];if(h&&h.target===f)c=h.component;else switch(a){case"row":case"group":(d.components.includes("row")||d.components.includes("cell")||d.components.includes("group"))&&(c=this.table.rowManager.getVisibleRows(!0).find(a=>a.getElement()===f),b.row&&b.row.parentNode&&b.row.parentNode.closest(".tabulator-row")&&(b[a]=!1));break;case"column":d.components.includes("column")&&(c=this.table.columnManager.findColumn(f));break;case"cell":d.components.includes("cell")&&(e.row instanceof I?c=e.row.findCell(f):b.row&&console.warn("Event Target Lookup Error - The row this cell is attached to cannot be found, has the table been reinitialized without being destroyed first?"))}c&&(e[a]=c,g[a]={target:f,component:c})}return this.previousTargets=g,Object.keys(b).forEach(a=>{let b=e[a];f[a]=b}),f}triggerEvents(a,b,c){var d=this.listeners[a];for(let e in c)c[e]&&d.components.includes(e)&&this.dispatch(e+"-"+a,b,c[e])}clearWatchers(){for(let a in this.listeners){let b=this.listeners[a];b.handler&&(this.el.removeEventListener(a,b.handler),b.handler=null)}}}class aS{constructor(a){this.table=a,this.bindings={}}bind(a,b,c){this.bindings[a]||(this.bindings[a]={}),this.bindings[a][b]?console.warn("Unable to bind component handler, a matching function name is already bound",a,b,c):this.bindings[a][b]=c}handle(a,b,c){if(this.bindings[a]&&this.bindings[a][c]&&"function"==typeof this.bindings[a][c].bind)return this.bindings[a][c].bind(null,b);"then"!==c&&"string"==typeof c&&!c.startsWith("_")&&this.table.options.debugInvalidComponentFuncs&&console.error("The "+a+" component does not have a "+c+" function, have you checked that you have the correct Tabulator module installed?")}}class aT extends m{constructor(a){super(a),this.requestOrder=0,this.loading=!1}initialize(){}load(a,b,c,d,e,f){var g=++this.requestOrder;return this.table.destroyed?Promise.resolve():(this.dispatchExternal("dataLoading",a),a&&(0==a.indexOf("{")||0==a.indexOf("["))&&(a=JSON.parse(a)),this.confirm("data-loading",[a,b,c,e]))?(this.loading=!0,e||this.alertLoader(),b=this.chain("data-params",[a,c,e],b||{},b||{}),b=this.mapParams(b,this.table.options.dataSendParams),this.chain("data-load",[a,b,c,e],!1,Promise.resolve([])).then(a=>{if(this.table.destroyed)console.warn("Data Load Response Blocked - Table has been destroyed");else{Array.isArray(a)||"object"!=typeof a||(a=this.mapParams(a,this.objectInvert(this.table.options.dataReceiveParams)));var b=this.chain("data-loaded",[a],null,a);g==this.requestOrder?(this.clearAlert(),!1!==b&&(this.dispatchExternal("dataLoaded",b),this.table.rowManager.setData(b,d,void 0===f?!d:f))):console.warn("Data Load Response Blocked - An active data load request was blocked by an attempt to change table data while the request was being made")}}).catch(a=>{console.error("Data Load Error: ",a),this.dispatchExternal("dataLoadError",a),e||this.alertError(),setTimeout(()=>{this.clearAlert()},this.table.options.dataLoaderErrorTimeout)}).finally(()=>{this.loading=!1})):(this.dispatchExternal("dataLoaded",a),a||(a=[]),this.table.rowManager.setData(a,d,void 0===f?!d:f),Promise.resolve())}mapParams(a,b){var c={};for(let d in a)c[b.hasOwnProperty(d)?b[d]:d]=a[d];return c}objectInvert(a){var b={};for(let c in a)b[a[c]]=c;return b}blockActiveLoad(){this.requestOrder++}alertLoader(){("function"==typeof this.table.options.dataLoader?this.table.options.dataLoader():this.table.options.dataLoader)&&this.table.alertManager.alert(this.table.options.dataLoaderLoading||this.langText("data|loading"))}alertError(){this.table.alertManager.alert(this.table.options.dataLoaderError||this.langText("data|error"),"error")}clearAlert(){this.table.alertManager.clear()}}class aU{constructor(a,b,c){this.table=a,this.events={},this.optionsList=b||{},this.subscriptionNotifiers={},this.dispatch=c?this._debugDispatch.bind(this):this._dispatch.bind(this),this.debug=c}subscriptionChange(a,b){this.subscriptionNotifiers[a]||(this.subscriptionNotifiers[a]=[]),this.subscriptionNotifiers[a].push(b),this.subscribed(a)&&this._notifySubscriptionChange(a,!0)}subscribe(a,b){this.events[a]||(this.events[a]=[]),this.events[a].push(b),this._notifySubscriptionChange(a,!0)}unsubscribe(a,b){var c;if(!this.events[a])return void console.warn("Cannot remove event, no events set on:",a);if(b){if(!((c=this.events[a].findIndex(a=>a===b))>-1))return void console.warn("Cannot remove event, no matching event found:",a,b);this.events[a].splice(c,1)}else delete this.events[a];this._notifySubscriptionChange(a,!1)}subscribed(a){return this.events[a]&&this.events[a].length}_notifySubscriptionChange(a,b){var c=this.subscriptionNotifiers[a];c&&c.forEach(a=>{a(b)})}_dispatch(){var a,b=Array.from(arguments),c=b.shift();return this.events[c]&&this.events[c].forEach((c,d)=>{let e=c.apply(this.table,b);d||(a=e)}),a}_debugDispatch(){var a=Array.from(arguments),b=a[0];return a[0]="ExternalEvent:"+a[0],(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._dispatch(...arguments)}}class aV{constructor(a){this.events={},this.subscriptionNotifiers={},this.dispatch=a?this._debugDispatch.bind(this):this._dispatch.bind(this),this.chain=a?this._debugChain.bind(this):this._chain.bind(this),this.confirm=a?this._debugConfirm.bind(this):this._confirm.bind(this),this.debug=a}subscriptionChange(a,b){this.subscriptionNotifiers[a]||(this.subscriptionNotifiers[a]=[]),this.subscriptionNotifiers[a].push(b),this.subscribed(a)&&this._notifySubscriptionChange(a,!0)}subscribe(a,b,c=1e4){this.events[a]||(this.events[a]=[]),this.events[a].push({callback:b,priority:c}),this.events[a].sort((a,b)=>a.priority-b.priority),this._notifySubscriptionChange(a,!0)}unsubscribe(a,b){var c;if(!this.events[a])return void console.warn("Cannot remove event, no events set on:",a);if(b){if(!((c=this.events[a].findIndex(a=>a.callback===b))>-1))return void console.warn("Cannot remove event, no matching event found:",a,b);this.events[a].splice(c,1)}this._notifySubscriptionChange(a,!1)}subscribed(a){return this.events[a]&&this.events[a].length}_chain(a,b,c,d){var e=c;return(Array.isArray(b)||(b=[b]),this.subscribed(a))?(this.events[a].forEach((a,c)=>{e=a.callback.apply(this,b.concat([e]))}),e):"function"==typeof d?d():d}_confirm(a,b){var c=!1;return Array.isArray(b)||(b=[b]),this.subscribed(a)&&this.events[a].forEach((a,d)=>{a.callback.apply(this,b)&&(c=!0)}),c}_notifySubscriptionChange(a,b){var c=this.subscriptionNotifiers[a];c&&c.forEach(a=>{a(b)})}_dispatch(){var a=Array.from(arguments),b=a.shift();this.events[b]&&this.events[b].forEach(b=>{b.callback.apply(this,a)})}_debugDispatch(){var a=Array.from(arguments),b=a[0];return a[0]="InternalEvent:"+b,(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._dispatch(...arguments)}_debugChain(){var a=Array.from(arguments),b=a[0];return a[0]="InternalEvent:"+b,(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._chain(...arguments)}_debugConfirm(){var a=Array.from(arguments),b=a[0];return a[0]="InternalEvent:"+b,(!0===this.debug||this.debug.includes(b))&&console.log(...a),this._confirm(...arguments)}}class aW extends m{constructor(a){super(a)}_warnUser(){this.options("debugDeprecation")&&console.warn(...arguments)}check(a,b,c){var d="";return void 0===this.options(a)||(d="Deprecated Setup Option - Use of the %c"+a+"%c option is now deprecated",b?(d=d+", Please use the %c"+b+"%c option instead",this._warnUser(d,"font-weight: bold;","font-weight: normal;","font-weight: bold;","font-weight: normal;"),c&&(this.table.options[b]=this.table.options[a])):this._warnUser(d,"font-weight: bold;","font-weight: normal;"),!1)}checkMsg(a,b){return void 0===this.options(a)||(this._warnUser("%cDeprecated Setup Option - Use of the %c"+a+" %c option is now deprecated, "+b,"font-weight: normal;","font-weight: bold;","font-weight: normal;"),!1)}msg(a){this._warnUser(a)}}class aX extends m{constructor(a){super(a),this.deps={},this.props={}}initialize(){this.deps=Object.assign({},this.options("dependencies"))}lookup(a,b,c){if(Array.isArray(a)){for(let c of a){var d=this.lookup(c,b,!0);if(d)break}if(d)return d;this.error(a)}else if(b)return this.lookupProp(a,b,c);else return this.lookupKey(a,c)}lookupProp(a,b,c){var d;return this.props[a]&&this.props[a][b]?this.props[a][b]:(d=this.lookupKey(a,c))?(this.props[a]||(this.props[a]={}),this.props[a][b]=d[b]||d,this.props[a][b]):void 0}lookupKey(a,b){var c;return this.deps[a]?c=this.deps[a]:window[a]?(this.deps[a]=window[a],c=this.deps[a]):b||this.error(a),c}error(a){console.error("Unable to find dependency",a,"Please check documentation and ensure you have imported the required library into your project")}}function aY(a,b){a.forEach(function(a){a.reinitializeWidth()}),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()}var aZ={fitData:function(a,b){b&&this.table.columnManager.renderer.reinitializeColumnWidths(a),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitDataFill:aY,fitDataTable:aY,fitDataStretch:function(a,b){var c=0,d=this.table.rowManager.element.clientWidth,e=0,f=!1;a.forEach((a,b)=>{a.widthFixed||a.reinitializeWidth(),(this.table.options.responsiveLayout?a.modules.responsive.visible:a.visible)&&(f=a),a.visible&&(c+=a.getWidth())}),f?(e=d-c+f.getWidth(),this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&(f.setWidth(0),this.table.modules.responsiveLayout.update()),e>0?f.setWidth(e):f.reinitializeWidth()):this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update()},fitColumns:function(a,b){var c=this.table.rowManager.element.getBoundingClientRect().width,d=0,e=0,f=0,g=0,h=[],i=[],j=0,k=0,l=0;function m(a){return"string"==typeof a?a.indexOf("%")>-1?c/100*parseInt(a):parseInt(a):a}function n(a,b,c,d){var e=[],g=0,h=0,i=0,j=f,k=0,l=0,o=[];function p(a){return c*(a.column.definition.widthGrow||1)}function q(a){return m(a.width)-c*(a.column.definition.widthShrink||0)}return a.forEach(function(a,f){var g=d?q(a):p(a);a.column.minWidth>=g?e.push(a):a.column.maxWidth&&a.column.maxWidth<g?(a.width=a.column.maxWidth,b-=a.column.maxWidth,(j-=d?a.column.definition.widthShrink||1:a.column.definition.widthGrow||1)&&(c=Math.floor(b/j))):(o.push(a),l+=d?a.column.definition.widthShrink||1:a.column.definition.widthGrow||1)}),e.length?(e.forEach(function(a){g+=d?a.width-a.column.minWidth:a.column.minWidth,a.width=a.column.minWidth}),h=b-g,i=l?Math.floor(h/l):h,k=n(o,h,i,d)):(k=l?b-Math.floor(b/l)*l:b,o.forEach(function(a){a.width=d?q(a):p(a)})),k}this.table.options.responsiveLayout&&this.table.modExists("responsiveLayout",!0)&&this.table.modules.responsiveLayout.update(),this.table.rowManager.element.scrollHeight>this.table.rowManager.element.clientHeight&&(c-=this.table.rowManager.element.offsetWidth-this.table.rowManager.element.clientWidth),a.forEach(function(a){var b,c,e;a.visible&&(b=a.definition.width,c=parseInt(a.minWidth),b?(e=m(b),d+=e>c?e:c,a.definition.widthShrink&&(i.push({column:a,width:e>c?e:c}),j+=a.definition.widthShrink)):(h.push({column:a,width:0}),f+=a.definition.widthGrow||1))}),g=Math.floor((e=c-d)/f),l=n(h,e,g,!1),h.length&&l>0&&(h[h.length-1].width+=l),h.forEach(function(a){e-=a.width}),(k=Math.abs(l)+e)>0&&j&&(l=n(i,k,Math.floor(k/j),!0)),l&&i.length&&(i[i.length-1].width-=l),h.forEach(function(a){a.column.setWidth(a.width)}),i.forEach(function(a){a.column.setWidth(a.width)})}};class a$ extends p{static moduleName="layout";static modes=aZ;constructor(a){super(a,"layout"),this.mode=null,this.registerTableOption("layout","fitData"),this.registerTableOption("layoutColumnsOnNewData",!1),this.registerColumnOption("widthGrow"),this.registerColumnOption("widthShrink")}initialize(){var a=this.table.options.layout;a$.modes[a]?this.mode=a:(console.warn("Layout Error - invalid mode set, defaulting to 'fitData' : "+a),this.mode="fitData"),this.table.element.setAttribute("tabulator-layout",this.mode),this.subscribe("column-init",this.initializeColumn.bind(this))}initializeColumn(a){a.definition.widthGrow&&(a.definition.widthGrow=Number(a.definition.widthGrow)),a.definition.widthShrink&&(a.definition.widthShrink=Number(a.definition.widthShrink))}getMode(){return this.mode}layout(a){var b=this.table.columnManager.columnsByIndex.find(a=>a.definition.variableHeight||"textarea"===a.definition.formatter);this.dispatch("layout-refreshing"),a$.modes[this.mode].call(this,this.table.columnManager.columnsByIndex,a),b&&this.table.rowManager.normalizeHeight(!0),this.dispatch("layout-refreshed")}}var a_={default:{groups:{item:"item",items:"items"},columns:{},data:{loading:"Loading",error:"Error"},pagination:{page_size:"Page Size",page_title:"Show Page",first:"First",first_title:"First Page",last:"Last",last_title:"Last Page",prev:"Prev",prev_title:"Prev Page",next:"Next",next_title:"Next Page",all:"All",counter:{showing:"Showing",of:"of",rows:"rows",pages:"pages"}},headerFilters:{default:"filter column...",columns:{}}}};class a0 extends p{static moduleName="localize";static langs=a_;constructor(a){super(a),this.locale="default",this.lang=!1,this.bindings={},this.langList={},this.registerTableOption("locale",!1),this.registerTableOption("langs",{})}initialize(){for(let a in this.langList=n.deepClone(a0.langs),!1!==this.table.options.columnDefaults.headerFilterPlaceholder&&this.setHeaderFilterPlaceholder(this.table.options.columnDefaults.headerFilterPlaceholder),this.table.options.langs)this.installLang(a,this.table.options.langs[a]);this.setLocale(this.table.options.locale),this.registerTableFunction("setLocale",this.setLocale.bind(this)),this.registerTableFunction("getLocale",this.getLocale.bind(this)),this.registerTableFunction("getLang",this.getLang.bind(this))}setHeaderFilterPlaceholder(a){this.langList.default.headerFilters.default=a}installLang(a,b){this.langList[a]?this._setLangProp(this.langList[a],b):this.langList[a]=b}_setLangProp(a,b){for(let c in b)a[c]&&"object"==typeof a[c]?this._setLangProp(a[c],b[c]):a[c]=b[c]}setLocale(a){if(!0===(a=a||"default")&&navigator.language&&(a=navigator.language.toLowerCase()),a&&!this.langList[a]){let b=a.split("-")[0];this.langList[b]?(console.warn("Localization Error - Exact matching locale not found, using closest match: ",a,b),a=b):(console.warn("Localization Error - Matching locale not found, using default: ",a),a="default")}this.locale=a,this.lang=n.deepClone(this.langList.default||{}),"default"!=a&&function a(b,c){for(var d in b)"object"==typeof b[d]?(c[d]||(c[d]={}),a(b[d],c[d])):c[d]=b[d]}(this.langList[a],this.lang),this.dispatchExternal("localized",this.locale,this.lang),this._executeBindings()}getLocale(a){return this.locale}getLang(a){return a?this.langList[a]:this.lang}getText(a,b){var c=(b?a+"|"+b:a).split("|");return this._getLangElement(c,this.locale)||""}_getLangElement(a,b){var c=this.lang;return a.forEach(function(a){var b;c&&(c=void 0!==(b=c[a])&&b)}),c}bind(a,b){this.bindings[a]||(this.bindings[a]=[]),this.bindings[a].push(b),b(this.getText(a),this.lang)}_executeBindings(){for(let a in this.bindings)this.bindings[a].forEach(b=>{b(this.getText(a),this.lang)})}}var a1=Object.freeze({__proto__:null,CommsModule:class extends p{static moduleName="comms";constructor(a){super(a)}initialize(){this.registerTableFunction("tableComms",this.receive.bind(this))}getConnections(a){var b=[];return this.table.constructor.registry.lookupTable(a).forEach(a=>{this.table!==a&&b.push(a)}),b}send(a,b,c,d){var e=this.getConnections(a);e.forEach(a=>{a.tableComms(this.table.element,b,c,d)}),!e.length&&a&&console.warn("Table Connection Error - No tables matching selector found",a)}receive(a,b,c,d){if(this.table.modExists(b))return this.table.modules[b].commsReceived(a,c,d);console.warn("Inter-table Comms Error - no such module:",b)}},LayoutModule:a$,LocalizeModule:a0});class a2{static registry={tables:[],register(a){a2.registry.tables.push(a)},deregister(a){var b=a2.registry.tables.indexOf(a);b>-1&&a2.registry.tables.splice(b,1)},lookupTable(a,b){var c,d,e=[];if("string"==typeof a){if((c=document.querySelectorAll(a)).length)for(var f=0;f<c.length;f++)(d=a2.registry.matchElement(c[f]))&&e.push(d)}else"u">typeof HTMLElement&&a instanceof HTMLElement||a instanceof a2?(d=a2.registry.matchElement(a))&&e.push(d):Array.isArray(a)?a.forEach(function(a){e=e.concat(a2.registry.lookupTable(a))}):b||console.warn("Table Connection Error - Invalid Selector",a);return e},matchElement:a=>a2.registry.tables.find(function(b){return a instanceof a2?b===a:b.element===a})};static findTable(a){var b=a2.registry.lookupTable(a,!0);return(!Array.isArray(b)||!!b.length)&&b}}class a3 extends a2{static moduleBindings={};static moduleExtensions={};static modulesRegistered=!1;static defaultModules=!1;constructor(){super()}static initializeModuleBinder(a){!a3.modulesRegistered&&(a3.modulesRegistered=!0,a3._registerModules(a1,!0),a&&a3._registerModules(a))}static _extendModule(a,b,c){if(a3.moduleBindings[a]){var d=a3.moduleBindings[a][b];if(d)if("object"==typeof c)for(let a in c)d[a]=c[a];else console.warn("Module Error - Invalid value type, it must be an object");else console.warn("Module Error - property does not exist:",b)}else console.warn("Module Error - module does not exist:",a)}static _registerModules(a,b){var c=Object.values(a);b&&c.forEach(a=>{a.prototype.moduleCore=!0}),a3._registerModule(c)}static _registerModule(a){Array.isArray(a)||(a=[a]),a.forEach(a=>{a3._registerModuleBinding(a),a3._registerModuleExtensions(a)})}static _registerModuleBinding(a){a.moduleName?a3.moduleBindings[a.moduleName]=a:console.error("Unable to bind module, no moduleName defined",a.moduleName)}static _registerModuleExtensions(a){var b=a.moduleExtensions;if(a.moduleExtensions)for(let a in b){let c=b[a];if(a3.moduleBindings[a])for(let b in c)a3._extendModule(a,b,c[b]);else for(let b in a3.moduleExtensions[a]||(a3.moduleExtensions[a]={}),c)a3.moduleExtensions[a][b]||(a3.moduleExtensions[a][b]={}),Object.assign(a3.moduleExtensions[a][b],c[b])}a3._extendModuleFromQueue(a)}static _extendModuleFromQueue(a){var b=a3.moduleExtensions[a.moduleName];if(b)for(let c in b)a3._extendModule(a.moduleName,c,b[c])}_bindModules(){var a=[],b=[],c=[];for(var d in this.modules={},a3.moduleBindings){let e=a3.moduleBindings[d],f=new e(this);this.modules[d]=f,e.prototype.moduleCore?this.modulesCore.push(f):e.moduleInitOrder?e.moduleInitOrder<0?a.push(f):b.push(f):c.push(f)}a.sort((a,b)=>a.moduleInitOrder>b.moduleInitOrder?1:-1),b.sort((a,b)=>a.moduleInitOrder>b.moduleInitOrder?1:-1),this.modulesRegular=a.concat(c.concat(b))}}class a4 extends m{constructor(a){super(a),this.element=this._createAlertElement(),this.msgElement=this._createMsgElement(),this.type=null,this.element.appendChild(this.msgElement)}_createAlertElement(){var a=document.createElement("div");return a.classList.add("tabulator-alert"),a}_createMsgElement(){var a=document.createElement("div");return a.classList.add("tabulator-alert-msg"),a.setAttribute("role","alert"),a}_typeClass(){return"tabulator-alert-state-"+this.type}alert(a,b="msg"){if(a){for(this.clear(),this.dispatch("alert-show",b),this.type=b;this.msgElement.firstChild;)this.msgElement.removeChild(this.msgElement.firstChild);this.msgElement.classList.add(this._typeClass()),"function"==typeof a&&(a=a()),a instanceof HTMLElement?this.msgElement.appendChild(a):this.msgElement.innerHTML=a,this.table.element.appendChild(this.element)}}clear(){this.dispatch("alert-hide",this.type),this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.msgElement.classList.remove(this._typeClass())}}class a5 extends a3{static defaultOptions=aH;static extendModule(){a5.initializeModuleBinder(),a5._extendModule(...arguments)}static registerModule(){a5.initializeModuleBinder(),a5._registerModule(...arguments)}constructor(a,b,c){super(),a5.initializeModuleBinder(c),this.options={},this.columnManager=null,this.rowManager=null,this.footerManager=null,this.alertManager=null,this.vdomHoz=null,this.externalEvents=null,this.eventBus=null,this.interactionMonitor=!1,this.browser="",this.browserSlow=!1,this.browserMobile=!1,this.rtl=!1,this.originalElement=null,this.componentFunctionBinder=new aS(this),this.dataLoader=!1,this.modules={},this.modulesCore=[],this.modulesRegular=[],this.deprecationAdvisor=new aW(this),this.optionsList=new aI(this,"table constructor"),this.dependencyRegistry=new aX(this),this.initialized=!1,this.destroyed=!1,this.initializeElement(a)&&(this.initializeCoreSystems(b),setTimeout(()=>{this._create()})),this.constructor.registry.register(this)}initializeElement(a){return"u">typeof HTMLElement&&a instanceof HTMLElement?(this.element=a,!0):"string"!=typeof a?(console.error("Tabulator Creation Error - Invalid element provided:",a),!1):(this.element=document.querySelector(a),!!this.element||(console.error("Tabulator Creation Error - no element found matching selector: ",a),!1))}initializeCoreSystems(a){this.columnManager=new aM(this),this.rowManager=new aP(this),this.footerManager=new aQ(this),this.dataLoader=new aT(this),this.alertManager=new a4(this),this._bindModules(),this.options=this.optionsList.generate(a5.defaultOptions,a),this._clearObjectPointers(),this._mapDeprecatedFunctionality(),this.externalEvents=new aU(this,this.options,this.options.debugEventsExternal),this.eventBus=new aV(this.options.debugEventsInternal),this.interactionMonitor=new aR(this),this.dataLoader.initialize(),this.footerManager.initialize(),this.dependencyRegistry.initialize()}_mapDeprecatedFunctionality(){}_clearSelection(){this.element.classList.add("tabulator-block-select"),window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty(),this.element.classList.remove("tabulator-block-select")}_create(){this.externalEvents.dispatch("tableBuilding"),this.eventBus.dispatch("table-building"),this._rtlCheck(),this._buildElement(),this._initializeTable(),this.initialized=!0,this._loadInitialData().finally(()=>{this.eventBus.dispatch("table-initialized"),this.externalEvents.dispatch("tableBuilt")})}_rtlCheck(){var a=window.getComputedStyle(this.element);switch(this.options.textDirection){case"auto":if("rtl"!==a.direction)break;case"rtl":this.element.classList.add("tabulator-rtl"),this.rtl=!0;break;case"ltr":this.element.classList.add("tabulator-ltr");default:this.rtl=!1}}_clearObjectPointers(){this.options.columns=this.options.columns.slice(0),Array.isArray(this.options.data)&&!this.options.reactiveData&&(this.options.data=this.options.data.slice(0))}_buildElement(){var a,b=this.element,c=this.options;if("TABLE"===b.tagName){this.originalElement=this.element,a=document.createElement("div");var d=b.attributes;for(var e in d)"object"==typeof d[e]&&a.setAttribute(d[e].name,d[e].value);b.parentNode.replaceChild(a,b),this.element=b=a}for(b.classList.add("tabulator"),b.setAttribute("role","grid"),b.setAttribute("aria-owns","tabulator-table-body");b.firstChild;)b.removeChild(b.firstChild);c.height&&(c.height=isNaN(c.height)?c.height:c.height+"px",b.style.height=c.height),!1!==c.minHeight&&(c.minHeight=isNaN(c.minHeight)?c.minHeight:c.minHeight+"px",b.style.minHeight=c.minHeight),!1!==c.maxHeight&&(c.maxHeight=isNaN(c.maxHeight)?c.maxHeight:c.maxHeight+"px",b.style.maxHeight=c.maxHeight)}_initializeTable(){var a=this.element,b=this.options;this.interactionMonitor.initialize(),this.columnManager.initialize(),this.rowManager.initialize(),this._detectBrowser(),this.modulesCore.forEach(a=>{a.initialize()}),a.appendChild(this.columnManager.getElement()),a.appendChild(this.rowManager.getElement()),b.footerElement&&this.footerManager.activate(),b.autoColumns&&b.data&&this.columnManager.generateColumnsFromRowData(this.options.data),this.modulesRegular.forEach(a=>{a.initialize()}),this.columnManager.setColumns(b.columns),this.eventBus.dispatch("table-built")}_loadInitialData(){return this.dataLoader.load(this.options.data).finally(()=>{this.columnManager.verticalAlignHeaders()})}destroy(){var a=this.element;for(this.destroyed=!0,this.constructor.registry.deregister(this),this.eventBus.dispatch("table-destroy"),this.rowManager.destroy();a.firstChild;)a.removeChild(a.firstChild);a.classList.remove("tabulator"),a.removeAttribute("tabulator-layout"),this.externalEvents.dispatch("tableDestroyed")}_detectBrowser(){var a=navigator.userAgent||navigator.vendor||window.opera;a.indexOf("Trident")>-1?(this.browser="ie",this.browserSlow=!0):a.indexOf("Edge")>-1?(this.browser="edge",this.browserSlow=!0):(a.indexOf("Firefox")>-1?this.browser="firefox":a.indexOf("Mac OS")>-1?this.browser="safari":this.browser="other",this.browserSlow=!1),this.browserMobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(a.slice(0,4))}initGuard(a,b){var c,d;return this.options.debugInitialization&&!this.initialized&&(a||(a=" "==(d="Error"==(c=Error().stack.split("\n"))[0]?c[2]:c[1])[0]?d.trim().split(" ")[1].split(".")[1]:d.trim().split("@")[0]),console.warn("Table Not Initialized - Calling the "+a+" function before the table is initialized may result in inconsistent behavior, Please wait for the `tableBuilt` event before calling this function."+(b?" "+b:""))),this.initialized}blockRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-blocking"),this.rowManager.blockRedraw(),this.columnManager.blockRedraw(),this.eventBus.dispatch("redraw-blocked")}restoreRedraw(){this.initGuard(),this.eventBus.dispatch("redraw-restoring"),this.rowManager.restoreRedraw(),this.columnManager.restoreRedraw(),this.eventBus.dispatch("redraw-restored")}setData(a,b,c){return this.initGuard(!1,"To set initial data please use the 'data' property in the table constructor."),this.dataLoader.load(a,b,c,!1)}clearData(){this.initGuard(),this.dataLoader.blockActiveLoad(),this.rowManager.clearData()}getData(a){return this.rowManager.getData(a)}getDataCount(a){return this.rowManager.getDataCount(a)}replaceData(a,b,c){return this.initGuard(),this.dataLoader.load(a,b,c,!0,!0)}updateData(a){var b=0;return this.initGuard(),new Promise((c,d)=>{this.dataLoader.blockActiveLoad(),"string"==typeof a&&(a=JSON.parse(a)),a&&a.length>0?a.forEach(a=>{var e=this.rowManager.findRow(a[this.options.index]);e?(b++,e.updateData(a).then(()=>{--b||c()}).catch(b=>{d("Update Error - Unable to update row",a,b)})):d("Update Error - Unable to find row",a)}):(console.warn("Update Error - No data provided"),d("Update Error - No data provided"))})}addData(a,b,c){return this.initGuard(),new Promise((d,e)=>{this.dataLoader.blockActiveLoad(),"string"==typeof a&&(a=JSON.parse(a)),a?this.rowManager.addRows(a,b,c).then(a=>{var b=[];a.forEach(function(a){b.push(a.getComponent())}),d(b)}):(console.warn("Update Error - No data provided"),e("Update Error - No data provided"))})}updateOrAddData(a){var b=[],c=0;return this.initGuard(),new Promise((d,e)=>{this.dataLoader.blockActiveLoad(),"string"==typeof a&&(a=JSON.parse(a)),a&&a.length>0?a.forEach(a=>{var e=this.rowManager.findRow(a[this.options.index]);c++,e?e.updateData(a).then(()=>{c--,b.push(e.getComponent()),c||d(b)}):this.rowManager.addRows(a).then(a=>{c--,b.push(a[0].getComponent()),c||d(b)})}):(console.warn("Update Error - No data provided"),e("Update Error - No data provided"))})}getRow(a){var b=this.rowManager.findRow(a);return b?b.getComponent():(console.warn("Find Error - No matching row found:",a),!1)}getRowFromPosition(a){var b=this.rowManager.getRowFromPosition(a);return b?b.getComponent():(console.warn("Find Error - No matching row found:",a),!1)}deleteRow(a){var b=[];for(let c of(this.initGuard(),Array.isArray(a)||(a=[a]),a)){let a=this.rowManager.findRow(c,!0);if(!a)return console.error("Delete Error - No matching row found:",c),Promise.reject("Delete Error - No matching row found");b.push(a)}return b.sort((a,b)=>this.rowManager.rows.indexOf(a)>this.rowManager.rows.indexOf(b)?1:-1),b.forEach(a=>{a.delete()}),this.rowManager.reRenderInPosition(),Promise.resolve()}addRow(a,b,c){return this.initGuard(),"string"==typeof a&&(a=JSON.parse(a)),this.rowManager.addRows(a,b,c,!0).then(a=>a[0].getComponent())}updateOrAddRow(a,b){var c=this.rowManager.findRow(a);return(this.initGuard(),"string"==typeof b&&(b=JSON.parse(b)),c)?c.updateData(b).then(()=>c.getComponent()):this.rowManager.addRows(b).then(a=>a[0].getComponent())}updateRow(a,b){var c=this.rowManager.findRow(a);return(this.initGuard(),"string"==typeof b&&(b=JSON.parse(b)),c)?c.updateData(b).then(()=>Promise.resolve(c.getComponent())):(console.warn("Update Error - No matching row found:",a),Promise.reject("Update Error - No matching row found"))}scrollToRow(a,b,c){var d=this.rowManager.findRow(a);return d?this.rowManager.scrollToRow(d,b,c):(console.warn("Scroll Error - No matching row found:",a),Promise.reject("Scroll Error - No matching row found"))}moveRow(a,b,c){var d=this.rowManager.findRow(a);this.initGuard(),d?d.moveToRow(b,c):console.warn("Move Error - No matching row found:",a)}getRows(a){return this.rowManager.getComponents(a)}getRowPosition(a){var b=this.rowManager.findRow(a);return b?b.getPosition():(console.warn("Position Error - No matching row found:",a),!1)}setColumns(a){this.initGuard(!1,"To set initial columns please use the 'columns' property in the table constructor"),this.columnManager.setColumns(a)}getColumns(a){return this.columnManager.getComponents(a)}getColumn(a){var b=this.columnManager.findColumn(a);return b?b.getComponent():(console.warn("Find Error - No matching column found:",a),!1)}getColumnDefinitions(){return this.columnManager.getDefinitionTree()}showColumn(a){var b=this.columnManager.findColumn(a);if(this.initGuard(),!b)return console.warn("Column Show Error - No matching column found:",a),!1;b.show()}hideColumn(a){var b=this.columnManager.findColumn(a);if(this.initGuard(),!b)return console.warn("Column Hide Error - No matching column found:",a),!1;b.hide()}toggleColumn(a){var b=this.columnManager.findColumn(a);if(this.initGuard(),!b)return console.warn("Column Visibility Toggle Error - No matching column found:",a),!1;b.visible?b.hide():b.show()}addColumn(a,b,c){var d=this.columnManager.findColumn(c);return this.initGuard(),this.columnManager.addColumn(a,b,d).then(a=>a.getComponent())}deleteColumn(a){var b=this.columnManager.findColumn(a);return(this.initGuard(),b)?b.delete():(console.warn("Column Delete Error - No matching column found:",a),Promise.reject())}updateColumnDefinition(a,b){var c=this.columnManager.findColumn(a);return(this.initGuard(),c)?c.updateDefinition(b):(console.warn("Column Update Error - No matching column found:",a),Promise.reject())}moveColumn(a,b,c){var d=this.columnManager.findColumn(a),e=this.columnManager.findColumn(b);this.initGuard(),d?e?this.columnManager.moveColumn(d,e,c):console.warn("Move Error - No matching column found:",e):console.warn("Move Error - No matching column found:",a)}scrollToColumn(a,b,c){return new Promise((d,e)=>{var f=this.columnManager.findColumn(a);return f?this.columnManager.scrollToColumn(f,b,c):(console.warn("Scroll Error - No matching column found:",a),Promise.reject("Scroll Error - No matching column found"))})}redraw(a){this.initGuard(),this.columnManager.redraw(a),this.rowManager.redraw(a)}setHeight(a){this.options.height=isNaN(a)?a:a+"px",this.element.style.height=this.options.height,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMaxHeight(a){this.options.maxHeight=isNaN(a)?a:a+"px",this.element.style.maxHeight=this.options.maxHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}setMinHeight(a){this.options.minHeight=isNaN(a)?a:a+"px",this.element.style.minHeight=this.options.minHeight,this.rowManager.initializeRenderer(),this.rowManager.redraw(!0)}on(a,b){this.externalEvents.subscribe(a,b)}off(a,b){this.externalEvents.unsubscribe(a,b)}dispatchEvent(){var a=Array.from(arguments);a.shift(),this.externalEvents.dispatch(...arguments)}alert(a,b){this.initGuard(),this.alertManager.alert(a,b)}clearAlert(){this.initGuard(),this.alertManager.clear()}modExists(a,b){return!!this.modules[a]||(b&&console.error("Tabulator Module Not Installed: "+a),!1)}module(a){var b=this.modules[a];return b||console.error("Tabulator module not installed: "+a),b}}class a6 extends a5{static extendModule(){a5.initializeModuleBinder(aG),a5._extendModule(...arguments)}static registerModule(){a5.initializeModuleBinder(aG),a5._registerModule(...arguments)}constructor(a,b,c){super(a,b,aG)}}var a7=a.i(85536);let a8={"action-needed":"Action Needed","in-progress":"In Progress",pending:"Pending",blocked:"Blocked",error:"Error",done:"Done"},a9='<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/><circle cx="12" cy="13" r="2"/><path d="M14 13h3"/><path d="M7 13h3"/></svg>';function ba(a){let b="u">typeof document?document.createElement("div"):null;return b?(b.textContent=a,b.innerHTML):a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function bb(a){if(a.getRow().getData()._isGroupHeader)return"";let b=a.getValue(),c=a8[b]??b;return`<span class="status-pill status-pill--${b}"><span class="status-dot"></span>${c}</span>`}function bc(a){if(a.getRow().getData()._isGroupHeader)return"";let b=a.getValue();return b?`<code style="font-size:12px;color:var(--color-muted-foreground,#64748b);font-family:var(--font-mono)">${ba(b)}</code>`:""}function bd(a){return a.getRow().getData()._isGroupHeader?"":ba(a.getValue())}function be(a){if(a.getRow().getData()._isGroupHeader)return"";let b=a.getValue();return`<span style="display:inline-flex;align-items:center;gap:6px">${a9}<span>${ba(b)}</span></span>`}function bf({data:a,className:c,onFeatureClick:e,groupBy:f=null,groupSortDir:g="asc",itemSortField:h="name",itemSortDir:i="asc"}){let j=(0,d.useRef)(null),k=(0,d.useRef)(null),l=(0,d.useRef)(e);l.current=e;let m=(0,d.useCallback)(a=>{l.current?.(a)},[]);return(0,d.useEffect)(()=>{if(!j.current)return;let b=!!f,c=function({onFeatureClick:a,groupBy:b}){let c=!!b;return[{title:"Name",field:"name",widthGrow:3,headerSort:!c,formatter:c?a=>{let c=a.getRow().getData();if(!c._isGroupHeader)return ba(a.getValue());let d=c._groupCount??0,e=1===d?"1 feature":`${d} features`;return`<span style="display:inline-flex;align-items:center;gap:8px;font-weight:600">${"repositoryName"===b?a9:'<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/><path d="m22.54 12.43-1.42-.65-8.28 3.78a2 2 0 0 1-1.66 0l-8.28-3.78-1.42.65a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z"/></svg>'}<span>${ba(c.name)}</span><span style="font-weight:400;color:var(--color-muted-foreground,#64748b);font-size:12px">${e}</span></span>`}:a=>ba(a.getValue()),...a?{cellClick:(b,c)=>{let d=c.getRow().getData();d._isGroupHeader||a(d.id)},cssClass:"cursor-pointer"}:{}},"repositoryName"!==b?{title:"Repository",field:"repositoryName",widthGrow:2,headerSort:!c,formatter:be}:null,"status"!==b?{title:"Status",field:"status",widthGrow:1.5,headerSort:!c,formatter:bb}:null,"lifecycle"!==b?{title:"Lifecycle",field:"lifecycle",widthGrow:1.5,headerSort:!c,formatter:bd}:null,{title:"Branch",field:"branch",widthGrow:2,headerSort:!c,formatter:bc}].filter(Boolean)}({onFeatureClick:m,groupBy:f}),d=b?function(a,b,c,d,e){let f=new Map;for(let c of a){let a=c[b]||"Unknown";f.has(a)||f.set(a,[]),f.get(a).push(c)}let g=a=>[...a].sort((a,b)=>{let c=String(a[d]??"").toLowerCase(),f=String(b[d]??"").toLowerCase(),g=c.localeCompare(f);return"asc"===e?g:-g}),h=[];for(let[a,c]of f){let d=g(c);h.push({id:`group-${b}-${a}`,name:"status"===b?a8[a]??a:a,status:"pending",lifecycle:"",branch:"",repositoryName:"",_isGroupHeader:!0,_groupCount:c.length,_children:d})}return h.sort((a,b)=>{let d=a.name.localeCompare(b.name);return"asc"===c?d:-d}),h}(a,f,g,h,i):a,e=new a6(j.current,{data:d,columns:c,layout:"fitColumns",height:"100%",placeholder:"No features found",...b?{dataTree:!0,dataTreeStartExpanded:!0,rowFormatter:a=>{a.getData()._isGroupHeader&&a.getElement().classList.add("tabulator-row-repo-group")}}:{initialSort:[{column:"repositoryName",dir:"asc"}]}});return k.current=e,()=>{e.destroy(),k.current=null}},[a,m,f,g,h,i]),(0,b.jsx)("div",{"data-testid":"feature-tree-table",className:(0,a7.cn)("h-full w-full",c),ref:j})}a.i(55135);var bg=a.i(75550);a.i(38702);var bh=a.i(16223),bi=a.i(90920),bj=a.i(18948),bk=a.i(58339),bl=a.i(59175);let bm={"action-needed":"Action Needed","in-progress":"In Progress",pending:"Pending",blocked:"Blocked",error:"Error",done:"Done"},bn={"action-needed":"bg-amber-500/15 text-amber-700 dark:text-amber-400 border-amber-500/20","in-progress":"bg-blue-500/15 text-blue-700 dark:text-blue-400 border-blue-500/20",pending:"bg-slate-500/15 text-slate-700 dark:text-slate-400 border-slate-500/20",blocked:"bg-gray-500/15 text-gray-700 dark:text-gray-400 border-gray-500/20",error:"bg-red-500/15 text-red-700 dark:text-red-400 border-red-500/20",done:"bg-emerald-500/15 text-emerald-700 dark:text-emerald-400 border-emerald-500/20"},bo={repositoryName:"Repository",status:"Status",lifecycle:"Lifecycle"},bp=[{value:"__none__",label:"No grouping"},{value:"repositoryName",label:"Repository"},{value:"status",label:"Status"},{value:"lifecycle",label:"Lifecycle"}];function bq(a){let b=[{value:"name",label:"Name"},{value:"repositoryName",label:"Repository"},{value:"status",label:"Status"},{value:"lifecycle",label:"Lifecycle"},{value:"branch",label:"Branch"}];return a?b.filter(b=>b.value!==a):b}function br(a){return"Archived"===a.lifecycle}function bs({features:a,repos:h}){let m=(0,c.useRouter)(),[n,o]=(0,d.useState)(""),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useState)("active"),[t,u]=(0,d.useState)(null),[v,w]=(0,d.useState)(!1),[x,y]=(0,d.useState)("repositoryName"),[z,A]=(0,d.useState)("asc"),[B,C]=(0,d.useState)("name"),[D,E]=(0,d.useState)("asc"),F=(0,d.useCallback)(a=>{m.push(`/feature/${a}/overview`)},[m]),G=(0,d.useMemo)(()=>{let b={"action-needed":0,"in-progress":0,pending:0,blocked:0,error:0,done:0};for(let c of a)b[c.status]++;return b},[a]),H=(0,d.useMemo)(()=>{let b=new Set;for(let c of a)b.add(c.repositoryName);return Array.from(b).sort()},[a]),I=(0,d.useMemo)(()=>{let b=n.toLowerCase();return a.filter(a=>{if("active"===r&&br(a)||"archived"===r&&!br(a)||p&&a.status!==p||t&&a.repositoryName!==t)return!1;if(b){let c=a.name.toLowerCase().includes(b),d=a.branch.toLowerCase().includes(b),e=a.repositoryName.toLowerCase().includes(b);if(!c&&!d&&!e)return!1}return!0})},[a,n,p,r,t]),J=""!==n||null!==p||"active"!==r||null!==t,K=()=>{o(""),q(null),s("active"),u(null)},L=(0,d.useMemo)(()=>a.filter(br).length,[a]),M=a.length-L,N=(0,d.useMemo)(()=>bq(x),[x]);return(0,b.jsxs)("div",{"data-testid":"feature-tree-page",className:"flex h-full flex-col gap-4",children:[(0,b.jsx)(bg.PageHeader,{title:"Inventory",description:"All repositories and features"}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative flex-1",children:[(0,b.jsx)(e.Search,{className:"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2"}),(0,b.jsx)(bi.Input,{placeholder:"Search by name, branch, or repository...",value:n,onChange:a=>o(a.target.value),className:"ps-9"}),n?(0,b.jsx)("button",{onClick:()=>o(""),className:"text-muted-foreground hover:text-foreground absolute top-1/2 right-3 -translate-y-1/2",children:(0,b.jsx)(j.X,{className:"size-4"})}):null]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium whitespace-nowrap",children:"Group by:"}),(0,b.jsxs)(bl.Select,{value:x??"__none__",onValueChange:a=>{let b="__none__"===a?null:a;y(b),b&&B===b&&C("name")},children:[(0,b.jsx)(bl.SelectTrigger,{className:"w-[150px]",children:(0,b.jsx)(bl.SelectValue,{})}),(0,b.jsx)(bl.SelectContent,{children:bp.map(a=>(0,b.jsx)(bl.SelectItem,{value:a.value,children:a.label},a.value))})]})]}),(0,b.jsxs)(bj.Button,{variant:v?"secondary":"outline",size:"sm",onClick:()=>w(a=>!a),className:"shrink-0",children:[(0,b.jsx)(f.SlidersHorizontal,{className:"mr-1.5 size-3.5"}),"Filters"]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("div",{className:"border-input flex items-center rounded-md border",children:[(0,b.jsxs)("button",{onClick:()=>s("active"),className:`flex items-center gap-1.5 rounded-l-md px-3 py-1.5 text-xs font-medium transition-colors ${"active"===r?"bg-primary text-primary-foreground":"hover:bg-muted"}`,children:[(0,b.jsx)(i,{className:"size-3.5"}),"Active",(0,b.jsxs)("span",{className:"opacity-70",children:["(",M,")"]})]}),(0,b.jsxs)("button",{onClick:()=>s("archived"),className:`flex items-center gap-1.5 border-x px-3 py-1.5 text-xs font-medium transition-colors ${"archived"===r?"bg-primary text-primary-foreground":"hover:bg-muted"}`,children:[(0,b.jsx)(g.Archive,{className:"size-3.5"}),"Archived",(0,b.jsxs)("span",{className:"opacity-70",children:["(",L,")"]})]}),(0,b.jsx)("button",{onClick:()=>s("all"),className:`rounded-r-md px-3 py-1.5 text-xs font-medium transition-colors ${"all"===r?"bg-primary text-primary-foreground":"hover:bg-muted"}`,children:"All"})]}),(0,b.jsx)("div",{className:"bg-border h-6 w-px"}),(0,b.jsx)("button",{onClick:()=>q(null),className:`rounded-full px-2.5 py-1 text-xs font-medium transition-colors ${null===p?"bg-foreground text-background":"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:"All Status"}),Object.entries(bm).map(([a,c])=>{let d=G[a];return 0===d?null:(0,b.jsxs)("button",{onClick:()=>q(p===a?null:a),className:`rounded-full px-2.5 py-1 text-xs font-medium transition-colors ${p===a?bn[a]:"bg-muted text-muted-foreground hover:bg-muted/80"}`,children:[c,(0,b.jsx)("span",{className:"ml-1 opacity-70",children:d})]},a)}),J?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"bg-border h-6 w-px"}),(0,b.jsxs)(bj.Button,{variant:"ghost",size:"sm",onClick:K,className:"h-7 text-xs",children:[(0,b.jsx)(j.X,{className:"mr-1 size-3"}),"Clear"]})]}):null]}),x?(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:bo[x]}),(0,b.jsxs)(bj.Button,{variant:"outline",size:"sm",className:"h-7 gap-1 text-xs",onClick:()=>A(a=>"asc"===a?"desc":"asc"),children:["asc"===z?(0,b.jsx)(k,{className:"size-3.5"}):(0,b.jsx)(l,{className:"size-3.5"}),"asc"===z?"A-Z":"Z-A"]})]}),(0,b.jsx)("div",{className:"bg-border h-5 w-px"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Sort by"}),(0,b.jsxs)(bl.Select,{value:B,onValueChange:C,children:[(0,b.jsx)(bl.SelectTrigger,{className:"h-7 w-[120px] text-xs",children:(0,b.jsx)(bl.SelectValue,{})}),(0,b.jsx)(bl.SelectContent,{children:N.map(a=>(0,b.jsx)(bl.SelectItem,{value:a.value,children:a.label},a.value))})]}),(0,b.jsxs)(bj.Button,{variant:"outline",size:"sm",className:"h-7 gap-1 text-xs",onClick:()=>E(a=>"asc"===a?"desc":"asc"),children:["asc"===D?(0,b.jsx)(k,{className:"size-3.5"}):(0,b.jsx)(l,{className:"size-3.5"}),"asc"===D?"A-Z":"Z-A"]})]})]}):null,v?(0,b.jsx)("div",{className:"bg-muted/50 flex flex-wrap items-center gap-3 rounded-lg border p-3",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-muted-foreground text-xs font-medium",children:"Repository"}),(0,b.jsxs)(bl.Select,{value:t??"__all__",onValueChange:a=>u("__all__"===a?null:a),children:[(0,b.jsx)(bl.SelectTrigger,{className:"h-8 w-[200px] text-xs",children:(0,b.jsx)(bl.SelectValue,{placeholder:"All repositories"})}),(0,b.jsxs)(bl.SelectContent,{children:[(0,b.jsx)(bl.SelectItem,{value:"__all__",children:"All repositories"}),H.map(a=>(0,b.jsx)(bl.SelectItem,{value:a,children:a},a))]})]})]})}):null]}),(0,b.jsxs)("div",{className:"text-muted-foreground flex items-center gap-2 text-xs",children:[(0,b.jsxs)("span",{children:[I.length," feature",1!==I.length?"s":""]}),J?(0,b.jsx)(bk.Badge,{variant:"secondary",className:"text-xs",children:"filtered"}):null]}),(0,b.jsx)("div",{className:"min-h-0 flex-1",children:I.length>0?(0,b.jsx)(bf,{data:I,repos:h,onFeatureClick:F,groupBy:x,groupSortDir:z,itemSortField:B,itemSortDir:D}):(0,b.jsx)(bh.EmptyState,{icon:(0,b.jsx)(e.Search,{className:"size-10"}),title:"No matching features",description:J?"No features match your current filters. Try adjusting your search or filters.":"No features found in any repository.",action:J?(0,b.jsx)(bj.Button,{variant:"outline",onClick:K,children:"Clear all filters"}):void 0})})]})}a.s(["FeatureTreePageClient",()=>bs,"getItemSortOptions",()=>bq,"isArchived",()=>br],71185)}];
9
9
 
10
10
  //# sourceMappingURL=src_presentation_web_app_features_feature-tree-page-client_tsx_34c5cbbf._.js.map