codex 1.8.0a10__py3-none-any.whl → 1.8.1__py3-none-any.whl

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.

Potentially problematic release.


This version of codex might be problematic. Click here for more details.

Files changed (410) hide show
  1. codex/librarian/scribe/importer/search/sync_m2m.py +12 -7
  2. codex/librarian/scribe/importer/search/update.py +50 -48
  3. codex/migrations/0034_comicbox2.py +6 -3
  4. codex/static_root/assets/{VCheckbox-B4PqoIra.e945a68b34c9.js → VCheckbox-afkeV3gf.e223fc0efcc6.js} +1 -1
  5. codex/static_root/assets/VCheckbox-afkeV3gf.e223fc0efcc6.js.br +0 -0
  6. codex/static_root/assets/VCheckbox-afkeV3gf.e223fc0efcc6.js.gz +0 -0
  7. codex/static_root/assets/{VCheckbox-B4PqoIra.js → VCheckbox-afkeV3gf.js} +1 -1
  8. codex/static_root/assets/VCheckbox-afkeV3gf.js.br +0 -0
  9. codex/static_root/assets/VCheckbox-afkeV3gf.js.gz +0 -0
  10. codex/static_root/assets/{VCheckboxBtn-CFTaQWbK.40dc97b2ff5e.js → VCheckboxBtn-BuJfvjlJ.d43c7974d111.js} +1 -1
  11. codex/static_root/assets/VCheckboxBtn-BuJfvjlJ.d43c7974d111.js.br +0 -0
  12. codex/static_root/assets/VCheckboxBtn-BuJfvjlJ.d43c7974d111.js.gz +0 -0
  13. codex/static_root/assets/{VCheckboxBtn-CFTaQWbK.js → VCheckboxBtn-BuJfvjlJ.js} +1 -1
  14. codex/static_root/assets/VCheckboxBtn-BuJfvjlJ.js.br +0 -0
  15. codex/static_root/assets/VCheckboxBtn-BuJfvjlJ.js.gz +0 -0
  16. codex/static_root/assets/{VCombobox-wVZMeYMo.21b9118da9ef.js → VCombobox-qrnOpYo4.dfc555d434c9.js} +1 -1
  17. codex/static_root/assets/VCombobox-qrnOpYo4.dfc555d434c9.js.br +0 -0
  18. codex/static_root/assets/VCombobox-qrnOpYo4.dfc555d434c9.js.gz +0 -0
  19. codex/static_root/assets/{VCombobox-wVZMeYMo.js → VCombobox-qrnOpYo4.js} +1 -1
  20. codex/static_root/assets/VCombobox-qrnOpYo4.js.br +0 -0
  21. codex/static_root/assets/VCombobox-qrnOpYo4.js.gz +0 -0
  22. codex/static_root/assets/{VDialog-BSgZ0BZI.25437849523d.js → VDialog-CJfu1Z_a.c45b8465c2df.js} +1 -1
  23. codex/static_root/assets/VDialog-CJfu1Z_a.c45b8465c2df.js.br +0 -0
  24. codex/static_root/assets/VDialog-CJfu1Z_a.c45b8465c2df.js.gz +0 -0
  25. codex/static_root/assets/{VDialog-BSgZ0BZI.js → VDialog-CJfu1Z_a.js} +1 -1
  26. codex/static_root/assets/VDialog-CJfu1Z_a.js.br +0 -0
  27. codex/static_root/assets/VDialog-CJfu1Z_a.js.gz +0 -0
  28. codex/static_root/assets/{VDivider-Bw29Ue4O.dcdc6427cf43.js → VDivider-DzC8v13-.2dacbe6c2fe6.js} +1 -1
  29. codex/static_root/assets/VDivider-DzC8v13-.2dacbe6c2fe6.js.br +0 -0
  30. codex/static_root/assets/VDivider-DzC8v13-.2dacbe6c2fe6.js.gz +0 -0
  31. codex/static_root/assets/{VDivider-Bw29Ue4O.js → VDivider-DzC8v13-.js} +1 -1
  32. codex/static_root/assets/VDivider-DzC8v13-.js.br +0 -0
  33. codex/static_root/assets/VDivider-DzC8v13-.js.gz +0 -0
  34. codex/static_root/assets/{VExpansionPanels-B-rMs1N2.c33757b02b44.js → VExpansionPanels-hBNzGXBb.977aaf0c6d18.js} +1 -1
  35. codex/static_root/assets/VExpansionPanels-hBNzGXBb.977aaf0c6d18.js.br +0 -0
  36. codex/static_root/assets/VExpansionPanels-hBNzGXBb.977aaf0c6d18.js.gz +0 -0
  37. codex/static_root/assets/{VExpansionPanels-B-rMs1N2.js → VExpansionPanels-hBNzGXBb.js} +1 -1
  38. codex/static_root/assets/VExpansionPanels-hBNzGXBb.js.br +0 -0
  39. codex/static_root/assets/VExpansionPanels-hBNzGXBb.js.gz +0 -0
  40. codex/static_root/assets/{VForm-C8AdZW-Z.0a1104e8f5f1.js → VForm-BoxUNC94.cc5a0a46d224.js} +1 -1
  41. codex/static_root/assets/VForm-BoxUNC94.cc5a0a46d224.js.br +0 -0
  42. codex/static_root/assets/VForm-BoxUNC94.cc5a0a46d224.js.gz +0 -0
  43. codex/static_root/assets/{VForm-C8AdZW-Z.js → VForm-BoxUNC94.js} +1 -1
  44. codex/static_root/assets/VForm-BoxUNC94.js.br +0 -0
  45. codex/static_root/assets/VForm-BoxUNC94.js.gz +0 -0
  46. codex/static_root/assets/{VRadioGroup-CH3bhv2K.f1ba82ea913c.js → VRadioGroup-D5A1XUMN.bb6d27080e6e.js} +1 -1
  47. codex/static_root/assets/VRadioGroup-D5A1XUMN.bb6d27080e6e.js.br +0 -0
  48. codex/static_root/assets/VRadioGroup-D5A1XUMN.bb6d27080e6e.js.gz +0 -0
  49. codex/static_root/assets/{VRadioGroup-CH3bhv2K.js → VRadioGroup-D5A1XUMN.js} +1 -1
  50. codex/static_root/assets/VRadioGroup-D5A1XUMN.js.br +0 -0
  51. codex/static_root/assets/VRadioGroup-D5A1XUMN.js.gz +0 -0
  52. codex/static_root/assets/{VSelect-B4pZF5N5.js → VSelect-CIZuwLM5.0d8e8794a7d2.js} +1 -1
  53. codex/static_root/assets/VSelect-CIZuwLM5.0d8e8794a7d2.js.br +0 -0
  54. codex/static_root/assets/VSelect-CIZuwLM5.0d8e8794a7d2.js.gz +0 -0
  55. codex/static_root/assets/{VSelect-B4pZF5N5.28cb69b70fba.js → VSelect-CIZuwLM5.js} +1 -1
  56. codex/static_root/assets/VSelect-CIZuwLM5.js.br +0 -0
  57. codex/static_root/assets/VSelect-CIZuwLM5.js.gz +0 -0
  58. codex/static_root/assets/{VSelectionControl-Cxd4vXuU.2913809193ca.js → VSelectionControl-CdDOSkFn.a0986913aa27.js} +1 -1
  59. codex/static_root/assets/VSelectionControl-CdDOSkFn.a0986913aa27.js.br +0 -0
  60. codex/static_root/assets/VSelectionControl-CdDOSkFn.a0986913aa27.js.gz +0 -0
  61. codex/static_root/assets/{VSelectionControl-Cxd4vXuU.js → VSelectionControl-CdDOSkFn.js} +1 -1
  62. codex/static_root/assets/VSelectionControl-CdDOSkFn.js.br +0 -0
  63. codex/static_root/assets/VSelectionControl-CdDOSkFn.js.gz +0 -0
  64. codex/static_root/assets/{VTable-CGMElk3T.6e82f037d13b.js → VTable-BJTvEmva.c85ef841f3d7.js} +1 -1
  65. codex/static_root/assets/VTable-BJTvEmva.c85ef841f3d7.js.br +0 -0
  66. codex/static_root/assets/VTable-BJTvEmva.c85ef841f3d7.js.gz +0 -0
  67. codex/static_root/assets/{VTable-CGMElk3T.js → VTable-BJTvEmva.js} +1 -1
  68. codex/static_root/assets/VTable-BJTvEmva.js.br +0 -0
  69. codex/static_root/assets/VTable-BJTvEmva.js.gz +0 -0
  70. codex/static_root/assets/{VWindowItem-Irv_pjC1.06c9f50c66bd.js → VWindowItem-BABReder.cac7b748f999.js} +1 -1
  71. codex/static_root/assets/VWindowItem-BABReder.cac7b748f999.js.br +0 -0
  72. codex/static_root/assets/VWindowItem-BABReder.cac7b748f999.js.gz +0 -0
  73. codex/static_root/assets/{VWindowItem-Irv_pjC1.js → VWindowItem-BABReder.js} +1 -1
  74. codex/static_root/assets/VWindowItem-BABReder.js.br +0 -0
  75. codex/static_root/assets/VWindowItem-BABReder.js.gz +0 -0
  76. codex/static_root/assets/{admin-XNjB-f-A.cf1ab995e7c6.js → admin-CI06zhKK.add9ca950a60.js} +1 -1
  77. codex/static_root/assets/admin-CI06zhKK.add9ca950a60.js.br +0 -0
  78. codex/static_root/assets/admin-CI06zhKK.add9ca950a60.js.gz +0 -0
  79. codex/static_root/assets/{admin-XNjB-f-A.js → admin-CI06zhKK.js} +1 -1
  80. codex/static_root/assets/admin-CI06zhKK.js.br +0 -0
  81. codex/static_root/assets/admin-CI06zhKK.js.gz +0 -0
  82. codex/static_root/assets/{admin-bj-I2_ft.efaf203a8a9a.js → admin-Df8XivzI.5e40ac28e101.js} +1 -1
  83. codex/static_root/assets/admin-Df8XivzI.5e40ac28e101.js.br +0 -0
  84. codex/static_root/assets/admin-Df8XivzI.5e40ac28e101.js.gz +0 -0
  85. codex/static_root/assets/{admin-bj-I2_ft.js → admin-Df8XivzI.js} +1 -1
  86. codex/static_root/assets/admin-Df8XivzI.js.br +0 -0
  87. codex/static_root/assets/admin-Df8XivzI.js.gz +0 -0
  88. codex/static_root/assets/{admin-menu-jEUO-jve.9d75737e5a25.js → admin-menu-duRZtHcp.b829e7d0238b.js} +1 -1
  89. codex/static_root/assets/admin-menu-duRZtHcp.b829e7d0238b.js.br +0 -0
  90. codex/static_root/assets/admin-menu-duRZtHcp.b829e7d0238b.js.gz +0 -0
  91. codex/static_root/assets/{admin-menu-jEUO-jve.js → admin-menu-duRZtHcp.js} +1 -1
  92. codex/static_root/assets/admin-menu-duRZtHcp.js.br +0 -0
  93. codex/static_root/assets/admin-menu-duRZtHcp.js.gz +0 -0
  94. codex/static_root/assets/{admin-settings-button-progress-4VJ2w5OE.c38d5a4dce7b.js → admin-settings-button-progress-BYYkGFMR.60c8bfc60fd1.js} +1 -1
  95. codex/static_root/assets/admin-settings-button-progress-BYYkGFMR.60c8bfc60fd1.js.br +0 -0
  96. codex/static_root/assets/admin-settings-button-progress-BYYkGFMR.60c8bfc60fd1.js.gz +0 -0
  97. codex/static_root/assets/{admin-settings-button-progress-4VJ2w5OE.js → admin-settings-button-progress-BYYkGFMR.js} +1 -1
  98. codex/static_root/assets/admin-settings-button-progress-BYYkGFMR.js.br +0 -0
  99. codex/static_root/assets/admin-settings-button-progress-BYYkGFMR.js.gz +0 -0
  100. codex/static_root/assets/{browser-C-BlNsxP.f81ad6dbbbbd.js → browser-BTBSpWWd.baec383e3076.js} +1 -1
  101. codex/static_root/assets/browser-BTBSpWWd.baec383e3076.js.br +0 -0
  102. codex/static_root/assets/browser-BTBSpWWd.baec383e3076.js.gz +0 -0
  103. codex/static_root/assets/{browser-C-BlNsxP.js → browser-BTBSpWWd.js} +1 -1
  104. codex/static_root/assets/browser-BTBSpWWd.js.br +0 -0
  105. codex/static_root/assets/browser-BTBSpWWd.js.gz +0 -0
  106. codex/static_root/assets/{change-password-dialog-Dj3XbuU8.17c9ea08d06e.js → change-password-dialog-61foCU8_.c2ad522875fd.js} +1 -1
  107. codex/static_root/assets/change-password-dialog-61foCU8_.c2ad522875fd.js.br +0 -0
  108. codex/static_root/assets/change-password-dialog-61foCU8_.c2ad522875fd.js.gz +0 -0
  109. codex/static_root/assets/{change-password-dialog-Dj3XbuU8.js → change-password-dialog-61foCU8_.js} +1 -1
  110. codex/static_root/assets/change-password-dialog-61foCU8_.js.br +0 -0
  111. codex/static_root/assets/change-password-dialog-61foCU8_.js.gz +0 -0
  112. codex/static_root/assets/{confirm-dialog-CTDnDBZ6.2e20ad32505b.js → confirm-dialog-BUagJxfy.42e74eb75f02.js} +1 -1
  113. codex/static_root/assets/confirm-dialog-BUagJxfy.42e74eb75f02.js.br +0 -0
  114. codex/static_root/assets/confirm-dialog-BUagJxfy.42e74eb75f02.js.gz +0 -0
  115. codex/static_root/assets/{confirm-dialog-CTDnDBZ6.js → confirm-dialog-BUagJxfy.js} +1 -1
  116. codex/static_root/assets/confirm-dialog-BUagJxfy.js.br +0 -0
  117. codex/static_root/assets/confirm-dialog-BUagJxfy.js.gz +0 -0
  118. codex/static_root/assets/{datetime-column-BQgsbdOJ.73d7db11e377.js → datetime-column-CwrGsjV_.37f05f83b406.js} +1 -1
  119. codex/static_root/assets/datetime-column-CwrGsjV_.37f05f83b406.js.br +1 -0
  120. codex/static_root/assets/datetime-column-CwrGsjV_.37f05f83b406.js.gz +0 -0
  121. codex/static_root/assets/{datetime-column-BQgsbdOJ.js → datetime-column-CwrGsjV_.js} +1 -1
  122. codex/static_root/assets/datetime-column-CwrGsjV_.js.br +1 -0
  123. codex/static_root/assets/datetime-column-CwrGsjV_.js.gz +0 -0
  124. codex/static_root/assets/{filter-CDDr_38H.1eddcad8e12b.js → filter-DD9yjMX8.75315deb5b80.js} +1 -1
  125. codex/static_root/assets/filter-DD9yjMX8.75315deb5b80.js.br +0 -0
  126. codex/static_root/assets/filter-DD9yjMX8.75315deb5b80.js.gz +0 -0
  127. codex/static_root/assets/{filter-CDDr_38H.js → filter-DD9yjMX8.js} +1 -1
  128. codex/static_root/assets/filter-DD9yjMX8.js.br +0 -0
  129. codex/static_root/assets/filter-DD9yjMX8.js.gz +0 -0
  130. codex/static_root/assets/{flag-tab-CU3jhd_v.c72c9c420b45.js → flag-tab-C0oENyTw.6bd14f4d80f0.js} +1 -1
  131. codex/static_root/assets/flag-tab-C0oENyTw.6bd14f4d80f0.js.br +0 -0
  132. codex/static_root/assets/flag-tab-C0oENyTw.6bd14f4d80f0.js.gz +0 -0
  133. codex/static_root/assets/{flag-tab-CU3jhd_v.js → flag-tab-C0oENyTw.js} +1 -1
  134. codex/static_root/assets/flag-tab-C0oENyTw.js.br +0 -0
  135. codex/static_root/assets/flag-tab-C0oENyTw.js.gz +0 -0
  136. codex/static_root/assets/{forwardRefs-B8RvndnX.js → forwardRefs-CZYoc6_3.27473c097c2e.js} +1 -1
  137. codex/static_root/assets/forwardRefs-CZYoc6_3.27473c097c2e.js.br +0 -0
  138. codex/static_root/assets/forwardRefs-CZYoc6_3.27473c097c2e.js.gz +0 -0
  139. codex/static_root/assets/{forwardRefs-B8RvndnX.984dc3ddc339.js → forwardRefs-CZYoc6_3.js} +1 -1
  140. codex/static_root/assets/forwardRefs-CZYoc6_3.js.br +0 -0
  141. codex/static_root/assets/forwardRefs-CZYoc6_3.js.gz +0 -0
  142. codex/static_root/assets/{group-tab-BgE8owSQ.75d3e268e255.js → group-tab-FOnHmpV2.83fbaf7a43ec.js} +1 -1
  143. codex/static_root/assets/group-tab-FOnHmpV2.83fbaf7a43ec.js.br +0 -0
  144. codex/static_root/assets/group-tab-FOnHmpV2.83fbaf7a43ec.js.gz +0 -0
  145. codex/static_root/assets/{group-tab-BgE8owSQ.js → group-tab-FOnHmpV2.js} +1 -1
  146. codex/static_root/assets/group-tab-FOnHmpV2.js.br +0 -0
  147. codex/static_root/assets/group-tab-FOnHmpV2.js.gz +0 -0
  148. codex/static_root/assets/{http-error-DHFtZUft.788eeef7d1c8.js → http-error-B1pahiC7.c38c7135e0bb.js} +1 -1
  149. codex/static_root/assets/http-error-B1pahiC7.c38c7135e0bb.js.br +0 -0
  150. codex/static_root/assets/http-error-B1pahiC7.c38c7135e0bb.js.gz +0 -0
  151. codex/static_root/assets/{http-error-DHFtZUft.js → http-error-B1pahiC7.js} +1 -1
  152. codex/static_root/assets/http-error-B1pahiC7.js.br +0 -0
  153. codex/static_root/assets/http-error-B1pahiC7.js.gz +0 -0
  154. codex/static_root/assets/{index-Da2i75ei.eb31dfb138c8.js → index-DEyi69UD.9720afe51f86.js} +1 -1
  155. codex/static_root/assets/index-DEyi69UD.9720afe51f86.js.br +0 -0
  156. codex/static_root/assets/index-DEyi69UD.9720afe51f86.js.gz +0 -0
  157. codex/static_root/assets/{index-Da2i75ei.js → index-DEyi69UD.js} +1 -1
  158. codex/static_root/assets/index-DEyi69UD.js.br +0 -0
  159. codex/static_root/assets/index-DEyi69UD.js.gz +0 -0
  160. codex/static_root/assets/{library-tab-BDpA0iVH.js → library-tab-rVyVp_XV.3f728b93df18.js} +1 -1
  161. codex/static_root/assets/library-tab-rVyVp_XV.3f728b93df18.js.br +0 -0
  162. codex/static_root/assets/library-tab-rVyVp_XV.3f728b93df18.js.gz +0 -0
  163. codex/static_root/assets/{library-tab-BDpA0iVH.00a176b0120d.js → library-tab-rVyVp_XV.js} +1 -1
  164. codex/static_root/assets/library-tab-rVyVp_XV.js.br +0 -0
  165. codex/static_root/assets/library-tab-rVyVp_XV.js.gz +0 -0
  166. codex/static_root/assets/{main-Co2IERXA.f661cbd30f32.js → main-DAMpW2P5.77f34c4ee5c6.js} +3 -3
  167. codex/static_root/assets/main-DAMpW2P5.77f34c4ee5c6.js.br +0 -0
  168. codex/static_root/assets/main-DAMpW2P5.77f34c4ee5c6.js.gz +0 -0
  169. codex/static_root/assets/{main-Co2IERXA.js → main-DAMpW2P5.js} +3 -3
  170. codex/static_root/assets/main-DAMpW2P5.js.br +0 -0
  171. codex/static_root/assets/main-DAMpW2P5.js.gz +0 -0
  172. codex/static_root/assets/pager-full-pdf-Km70DHGy.96b4c3116a9e.js +1 -0
  173. codex/static_root/assets/pager-full-pdf-Km70DHGy.96b4c3116a9e.js.br +5 -0
  174. codex/static_root/assets/pager-full-pdf-Km70DHGy.96b4c3116a9e.js.gz +0 -0
  175. codex/static_root/assets/pager-full-pdf-Km70DHGy.js +1 -0
  176. codex/static_root/assets/pager-full-pdf-Km70DHGy.js.br +5 -0
  177. codex/static_root/assets/pager-full-pdf-Km70DHGy.js.gz +0 -0
  178. codex/static_root/assets/{pagination-toolbar-klxDDn6n.161a4c1a1fd2.js → pagination-toolbar-CKUxpGAs.4162e103ab47.js} +1 -1
  179. codex/static_root/assets/pagination-toolbar-CKUxpGAs.4162e103ab47.js.br +0 -0
  180. codex/static_root/assets/pagination-toolbar-CKUxpGAs.4162e103ab47.js.gz +0 -0
  181. codex/static_root/assets/{pagination-toolbar-klxDDn6n.js → pagination-toolbar-CKUxpGAs.js} +1 -1
  182. codex/static_root/assets/pagination-toolbar-CKUxpGAs.js.br +0 -0
  183. codex/static_root/assets/pagination-toolbar-CKUxpGAs.js.gz +0 -0
  184. codex/static_root/assets/{pdf-doc-DAr30X4m.f6ccfafbee2b.js → pdf-doc-CLTnkguC.9a59ebaadcb4.js} +1 -1
  185. codex/static_root/assets/pdf-doc-CLTnkguC.9a59ebaadcb4.js.br +0 -0
  186. codex/static_root/assets/pdf-doc-CLTnkguC.9a59ebaadcb4.js.gz +0 -0
  187. codex/static_root/assets/{pdf-doc-DAr30X4m.js → pdf-doc-CLTnkguC.js} +1 -1
  188. codex/static_root/assets/pdf-doc-CLTnkguC.js.br +0 -0
  189. codex/static_root/assets/pdf-doc-CLTnkguC.js.gz +0 -0
  190. codex/static_root/assets/{reader-RTMdK1tk.js → reader-D505f_GJ.7b510c5cf3db.js} +2 -2
  191. codex/static_root/assets/reader-D505f_GJ.7b510c5cf3db.js.br +0 -0
  192. codex/static_root/assets/reader-D505f_GJ.7b510c5cf3db.js.gz +0 -0
  193. codex/static_root/assets/{reader-RTMdK1tk.497d2ae4ce5f.js → reader-D505f_GJ.js} +2 -2
  194. codex/static_root/assets/reader-D505f_GJ.js.br +0 -0
  195. codex/static_root/assets/reader-D505f_GJ.js.gz +0 -0
  196. codex/static_root/assets/{relation-chips-MrBUv8LE.3905ce4512b7.js → relation-chips-DthMrp6Q.e4038058cd37.js} +1 -1
  197. codex/static_root/assets/relation-chips-DthMrp6Q.e4038058cd37.js.br +0 -0
  198. codex/static_root/assets/relation-chips-DthMrp6Q.e4038058cd37.js.gz +0 -0
  199. codex/static_root/assets/{relation-chips-MrBUv8LE.js → relation-chips-DthMrp6Q.js} +1 -1
  200. codex/static_root/assets/relation-chips-DthMrp6Q.js.br +0 -0
  201. codex/static_root/assets/relation-chips-DthMrp6Q.js.gz +0 -0
  202. codex/static_root/assets/{settings-drawer-BmfIO8yN.8fbb95927573.js → settings-drawer-_WxUQTwQ.8ba15a52bd5d.js} +2 -2
  203. codex/static_root/assets/settings-drawer-_WxUQTwQ.8ba15a52bd5d.js.br +0 -0
  204. codex/static_root/assets/settings-drawer-_WxUQTwQ.8ba15a52bd5d.js.gz +0 -0
  205. codex/static_root/assets/{settings-drawer-BmfIO8yN.js → settings-drawer-_WxUQTwQ.js} +2 -2
  206. codex/static_root/assets/settings-drawer-_WxUQTwQ.js.br +0 -0
  207. codex/static_root/assets/settings-drawer-_WxUQTwQ.js.gz +0 -0
  208. codex/static_root/assets/{ssrBoot-CpHvQ_lR.4a530165baa2.js → ssrBoot-RZh6t9MK.66814289fcad.js} +1 -1
  209. codex/static_root/assets/ssrBoot-RZh6t9MK.66814289fcad.js.br +0 -0
  210. codex/static_root/assets/ssrBoot-RZh6t9MK.66814289fcad.js.gz +0 -0
  211. codex/static_root/assets/{ssrBoot-CpHvQ_lR.js → ssrBoot-RZh6t9MK.js} +1 -1
  212. codex/static_root/assets/ssrBoot-RZh6t9MK.js.br +0 -0
  213. codex/static_root/assets/ssrBoot-RZh6t9MK.js.gz +0 -0
  214. codex/static_root/assets/{stats-tab-DhgZJhi0.d94c64c7fe44.js → stats-tab-CRrQRODZ.bfd8f70dcb0d.js} +1 -1
  215. codex/static_root/assets/stats-tab-CRrQRODZ.bfd8f70dcb0d.js.br +0 -0
  216. codex/static_root/assets/stats-tab-CRrQRODZ.bfd8f70dcb0d.js.gz +0 -0
  217. codex/static_root/assets/{stats-tab-DhgZJhi0.js → stats-tab-CRrQRODZ.js} +1 -1
  218. codex/static_root/assets/stats-tab-CRrQRODZ.js.br +0 -0
  219. codex/static_root/assets/stats-tab-CRrQRODZ.js.gz +0 -0
  220. codex/static_root/assets/{task-tab-Dk-VPKv-.1c3a1c17f24c.js → task-tab-Ch9OAMF8.89b0dc8dae77.js} +1 -1
  221. codex/static_root/assets/task-tab-Ch9OAMF8.89b0dc8dae77.js.br +0 -0
  222. codex/static_root/assets/task-tab-Ch9OAMF8.89b0dc8dae77.js.gz +0 -0
  223. codex/static_root/assets/{task-tab-Dk-VPKv-.js → task-tab-Ch9OAMF8.js} +1 -1
  224. codex/static_root/assets/task-tab-Ch9OAMF8.js.br +0 -0
  225. codex/static_root/assets/task-tab-Ch9OAMF8.js.gz +0 -0
  226. codex/static_root/assets/{unauthorized-tnyoCOZ_.5b0beb14dd3b.js → unauthorized-BD-_2n1x.1d79476f96cb.js} +1 -1
  227. codex/static_root/assets/unauthorized-BD-_2n1x.1d79476f96cb.js.br +0 -0
  228. codex/static_root/assets/unauthorized-BD-_2n1x.1d79476f96cb.js.gz +0 -0
  229. codex/static_root/assets/{unauthorized-tnyoCOZ_.js → unauthorized-BD-_2n1x.js} +1 -1
  230. codex/static_root/assets/unauthorized-BD-_2n1x.js.br +0 -0
  231. codex/static_root/assets/unauthorized-BD-_2n1x.js.gz +0 -0
  232. codex/static_root/assets/{user-tab-Drkjzwrl.7d43bb10328a.js → user-tab-BBcQGQ6Y.2aa3a3b88e9f.js} +1 -1
  233. codex/static_root/assets/user-tab-BBcQGQ6Y.2aa3a3b88e9f.js.br +0 -0
  234. codex/static_root/assets/user-tab-BBcQGQ6Y.2aa3a3b88e9f.js.gz +0 -0
  235. codex/static_root/assets/{user-tab-Drkjzwrl.js → user-tab-BBcQGQ6Y.js} +1 -1
  236. codex/static_root/assets/user-tab-BBcQGQ6Y.js.br +0 -0
  237. codex/static_root/assets/user-tab-BBcQGQ6Y.js.gz +0 -0
  238. codex/static_root/{manifest.e860f1e10a2d.json → manifest.3be3161cc0ba.json} +309 -309
  239. codex/static_root/manifest.3be3161cc0ba.json.br +0 -0
  240. codex/static_root/manifest.3be3161cc0ba.json.gz +0 -0
  241. codex/static_root/manifest.json +309 -309
  242. codex/static_root/manifest.json.br +0 -0
  243. codex/static_root/manifest.json.gz +0 -0
  244. codex/static_root/staticfiles.json +1 -1
  245. {codex-1.8.0a10.dist-info → codex-1.8.1.dist-info}/METADATA +2 -2
  246. {codex-1.8.0a10.dist-info → codex-1.8.1.dist-info}/RECORD +249 -250
  247. codex/migrations/0035_alter_librarianstatus_status_type.py +0 -72
  248. codex/static_root/assets/VCheckbox-B4PqoIra.e945a68b34c9.js.br +0 -0
  249. codex/static_root/assets/VCheckbox-B4PqoIra.e945a68b34c9.js.gz +0 -0
  250. codex/static_root/assets/VCheckbox-B4PqoIra.js.br +0 -0
  251. codex/static_root/assets/VCheckbox-B4PqoIra.js.gz +0 -0
  252. codex/static_root/assets/VCheckboxBtn-CFTaQWbK.40dc97b2ff5e.js.br +0 -0
  253. codex/static_root/assets/VCheckboxBtn-CFTaQWbK.40dc97b2ff5e.js.gz +0 -0
  254. codex/static_root/assets/VCheckboxBtn-CFTaQWbK.js.br +0 -0
  255. codex/static_root/assets/VCheckboxBtn-CFTaQWbK.js.gz +0 -0
  256. codex/static_root/assets/VCombobox-wVZMeYMo.21b9118da9ef.js.br +0 -0
  257. codex/static_root/assets/VCombobox-wVZMeYMo.21b9118da9ef.js.gz +0 -0
  258. codex/static_root/assets/VCombobox-wVZMeYMo.js.br +0 -0
  259. codex/static_root/assets/VCombobox-wVZMeYMo.js.gz +0 -0
  260. codex/static_root/assets/VDialog-BSgZ0BZI.25437849523d.js.br +0 -0
  261. codex/static_root/assets/VDialog-BSgZ0BZI.25437849523d.js.gz +0 -0
  262. codex/static_root/assets/VDialog-BSgZ0BZI.js.br +0 -0
  263. codex/static_root/assets/VDialog-BSgZ0BZI.js.gz +0 -0
  264. codex/static_root/assets/VDivider-Bw29Ue4O.dcdc6427cf43.js.br +0 -0
  265. codex/static_root/assets/VDivider-Bw29Ue4O.dcdc6427cf43.js.gz +0 -0
  266. codex/static_root/assets/VDivider-Bw29Ue4O.js.br +0 -0
  267. codex/static_root/assets/VDivider-Bw29Ue4O.js.gz +0 -0
  268. codex/static_root/assets/VExpansionPanels-B-rMs1N2.c33757b02b44.js.br +0 -0
  269. codex/static_root/assets/VExpansionPanels-B-rMs1N2.c33757b02b44.js.gz +0 -0
  270. codex/static_root/assets/VExpansionPanels-B-rMs1N2.js.br +0 -0
  271. codex/static_root/assets/VExpansionPanels-B-rMs1N2.js.gz +0 -0
  272. codex/static_root/assets/VForm-C8AdZW-Z.0a1104e8f5f1.js.br +0 -0
  273. codex/static_root/assets/VForm-C8AdZW-Z.0a1104e8f5f1.js.gz +0 -0
  274. codex/static_root/assets/VForm-C8AdZW-Z.js.br +0 -0
  275. codex/static_root/assets/VForm-C8AdZW-Z.js.gz +0 -0
  276. codex/static_root/assets/VRadioGroup-CH3bhv2K.f1ba82ea913c.js.br +0 -0
  277. codex/static_root/assets/VRadioGroup-CH3bhv2K.f1ba82ea913c.js.gz +0 -0
  278. codex/static_root/assets/VRadioGroup-CH3bhv2K.js.br +0 -0
  279. codex/static_root/assets/VRadioGroup-CH3bhv2K.js.gz +0 -0
  280. codex/static_root/assets/VSelect-B4pZF5N5.28cb69b70fba.js.br +0 -0
  281. codex/static_root/assets/VSelect-B4pZF5N5.28cb69b70fba.js.gz +0 -0
  282. codex/static_root/assets/VSelect-B4pZF5N5.js.br +0 -0
  283. codex/static_root/assets/VSelect-B4pZF5N5.js.gz +0 -0
  284. codex/static_root/assets/VSelectionControl-Cxd4vXuU.2913809193ca.js.br +0 -0
  285. codex/static_root/assets/VSelectionControl-Cxd4vXuU.2913809193ca.js.gz +0 -0
  286. codex/static_root/assets/VSelectionControl-Cxd4vXuU.js.br +0 -0
  287. codex/static_root/assets/VSelectionControl-Cxd4vXuU.js.gz +0 -0
  288. codex/static_root/assets/VTable-CGMElk3T.6e82f037d13b.js.br +0 -0
  289. codex/static_root/assets/VTable-CGMElk3T.6e82f037d13b.js.gz +0 -0
  290. codex/static_root/assets/VTable-CGMElk3T.js.br +0 -0
  291. codex/static_root/assets/VTable-CGMElk3T.js.gz +0 -0
  292. codex/static_root/assets/VWindowItem-Irv_pjC1.06c9f50c66bd.js.br +0 -0
  293. codex/static_root/assets/VWindowItem-Irv_pjC1.06c9f50c66bd.js.gz +0 -0
  294. codex/static_root/assets/VWindowItem-Irv_pjC1.js.br +0 -0
  295. codex/static_root/assets/VWindowItem-Irv_pjC1.js.gz +0 -0
  296. codex/static_root/assets/admin-XNjB-f-A.cf1ab995e7c6.js.br +0 -0
  297. codex/static_root/assets/admin-XNjB-f-A.cf1ab995e7c6.js.gz +0 -0
  298. codex/static_root/assets/admin-XNjB-f-A.js.br +0 -0
  299. codex/static_root/assets/admin-XNjB-f-A.js.gz +0 -0
  300. codex/static_root/assets/admin-bj-I2_ft.efaf203a8a9a.js.br +0 -0
  301. codex/static_root/assets/admin-bj-I2_ft.efaf203a8a9a.js.gz +0 -0
  302. codex/static_root/assets/admin-bj-I2_ft.js.br +0 -0
  303. codex/static_root/assets/admin-bj-I2_ft.js.gz +0 -0
  304. codex/static_root/assets/admin-menu-jEUO-jve.9d75737e5a25.js.br +0 -0
  305. codex/static_root/assets/admin-menu-jEUO-jve.9d75737e5a25.js.gz +0 -0
  306. codex/static_root/assets/admin-menu-jEUO-jve.js.br +0 -0
  307. codex/static_root/assets/admin-menu-jEUO-jve.js.gz +0 -0
  308. codex/static_root/assets/admin-settings-button-progress-4VJ2w5OE.c38d5a4dce7b.js.br +0 -4
  309. codex/static_root/assets/admin-settings-button-progress-4VJ2w5OE.c38d5a4dce7b.js.gz +0 -0
  310. codex/static_root/assets/admin-settings-button-progress-4VJ2w5OE.js.br +0 -4
  311. codex/static_root/assets/admin-settings-button-progress-4VJ2w5OE.js.gz +0 -0
  312. codex/static_root/assets/browser-C-BlNsxP.f81ad6dbbbbd.js.br +0 -0
  313. codex/static_root/assets/browser-C-BlNsxP.f81ad6dbbbbd.js.gz +0 -0
  314. codex/static_root/assets/browser-C-BlNsxP.js.br +0 -0
  315. codex/static_root/assets/browser-C-BlNsxP.js.gz +0 -0
  316. codex/static_root/assets/change-password-dialog-Dj3XbuU8.17c9ea08d06e.js.br +0 -0
  317. codex/static_root/assets/change-password-dialog-Dj3XbuU8.17c9ea08d06e.js.gz +0 -0
  318. codex/static_root/assets/change-password-dialog-Dj3XbuU8.js.br +0 -0
  319. codex/static_root/assets/change-password-dialog-Dj3XbuU8.js.gz +0 -0
  320. codex/static_root/assets/confirm-dialog-CTDnDBZ6.2e20ad32505b.js.br +0 -0
  321. codex/static_root/assets/confirm-dialog-CTDnDBZ6.2e20ad32505b.js.gz +0 -0
  322. codex/static_root/assets/confirm-dialog-CTDnDBZ6.js.br +0 -0
  323. codex/static_root/assets/confirm-dialog-CTDnDBZ6.js.gz +0 -0
  324. codex/static_root/assets/datetime-column-BQgsbdOJ.73d7db11e377.js.br +0 -0
  325. codex/static_root/assets/datetime-column-BQgsbdOJ.73d7db11e377.js.gz +0 -0
  326. codex/static_root/assets/datetime-column-BQgsbdOJ.js.br +0 -0
  327. codex/static_root/assets/datetime-column-BQgsbdOJ.js.gz +0 -0
  328. codex/static_root/assets/filter-CDDr_38H.1eddcad8e12b.js.br +0 -0
  329. codex/static_root/assets/filter-CDDr_38H.1eddcad8e12b.js.gz +0 -0
  330. codex/static_root/assets/filter-CDDr_38H.js.br +0 -0
  331. codex/static_root/assets/filter-CDDr_38H.js.gz +0 -0
  332. codex/static_root/assets/flag-tab-CU3jhd_v.c72c9c420b45.js.br +0 -0
  333. codex/static_root/assets/flag-tab-CU3jhd_v.c72c9c420b45.js.gz +0 -0
  334. codex/static_root/assets/flag-tab-CU3jhd_v.js.br +0 -0
  335. codex/static_root/assets/flag-tab-CU3jhd_v.js.gz +0 -0
  336. codex/static_root/assets/forwardRefs-B8RvndnX.984dc3ddc339.js.br +0 -0
  337. codex/static_root/assets/forwardRefs-B8RvndnX.984dc3ddc339.js.gz +0 -0
  338. codex/static_root/assets/forwardRefs-B8RvndnX.js.br +0 -0
  339. codex/static_root/assets/forwardRefs-B8RvndnX.js.gz +0 -0
  340. codex/static_root/assets/group-tab-BgE8owSQ.75d3e268e255.js.br +0 -0
  341. codex/static_root/assets/group-tab-BgE8owSQ.75d3e268e255.js.gz +0 -0
  342. codex/static_root/assets/group-tab-BgE8owSQ.js.br +0 -0
  343. codex/static_root/assets/group-tab-BgE8owSQ.js.gz +0 -0
  344. codex/static_root/assets/http-error-DHFtZUft.788eeef7d1c8.js.br +0 -0
  345. codex/static_root/assets/http-error-DHFtZUft.788eeef7d1c8.js.gz +0 -0
  346. codex/static_root/assets/http-error-DHFtZUft.js.br +0 -0
  347. codex/static_root/assets/http-error-DHFtZUft.js.gz +0 -0
  348. codex/static_root/assets/index-Da2i75ei.eb31dfb138c8.js.br +0 -0
  349. codex/static_root/assets/index-Da2i75ei.eb31dfb138c8.js.gz +0 -0
  350. codex/static_root/assets/index-Da2i75ei.js.br +0 -0
  351. codex/static_root/assets/index-Da2i75ei.js.gz +0 -0
  352. codex/static_root/assets/library-tab-BDpA0iVH.00a176b0120d.js.br +0 -0
  353. codex/static_root/assets/library-tab-BDpA0iVH.00a176b0120d.js.gz +0 -0
  354. codex/static_root/assets/library-tab-BDpA0iVH.js.br +0 -0
  355. codex/static_root/assets/library-tab-BDpA0iVH.js.gz +0 -0
  356. codex/static_root/assets/main-Co2IERXA.f661cbd30f32.js.br +0 -0
  357. codex/static_root/assets/main-Co2IERXA.f661cbd30f32.js.gz +0 -0
  358. codex/static_root/assets/main-Co2IERXA.js.br +0 -0
  359. codex/static_root/assets/main-Co2IERXA.js.gz +0 -0
  360. codex/static_root/assets/pager-full-pdf-BWRR53mF.a9b7bb20dfb7.js +0 -1
  361. codex/static_root/assets/pager-full-pdf-BWRR53mF.a9b7bb20dfb7.js.br +0 -0
  362. codex/static_root/assets/pager-full-pdf-BWRR53mF.a9b7bb20dfb7.js.gz +0 -0
  363. codex/static_root/assets/pager-full-pdf-BWRR53mF.js +0 -1
  364. codex/static_root/assets/pager-full-pdf-BWRR53mF.js.br +0 -0
  365. codex/static_root/assets/pager-full-pdf-BWRR53mF.js.gz +0 -0
  366. codex/static_root/assets/pagination-toolbar-klxDDn6n.161a4c1a1fd2.js.br +0 -0
  367. codex/static_root/assets/pagination-toolbar-klxDDn6n.161a4c1a1fd2.js.gz +0 -0
  368. codex/static_root/assets/pagination-toolbar-klxDDn6n.js.br +0 -0
  369. codex/static_root/assets/pagination-toolbar-klxDDn6n.js.gz +0 -0
  370. codex/static_root/assets/pdf-doc-DAr30X4m.f6ccfafbee2b.js.br +0 -0
  371. codex/static_root/assets/pdf-doc-DAr30X4m.f6ccfafbee2b.js.gz +0 -0
  372. codex/static_root/assets/pdf-doc-DAr30X4m.js.br +0 -0
  373. codex/static_root/assets/pdf-doc-DAr30X4m.js.gz +0 -0
  374. codex/static_root/assets/reader-RTMdK1tk.497d2ae4ce5f.js.br +0 -0
  375. codex/static_root/assets/reader-RTMdK1tk.497d2ae4ce5f.js.gz +0 -0
  376. codex/static_root/assets/reader-RTMdK1tk.js.br +0 -0
  377. codex/static_root/assets/reader-RTMdK1tk.js.gz +0 -0
  378. codex/static_root/assets/relation-chips-MrBUv8LE.3905ce4512b7.js.br +0 -0
  379. codex/static_root/assets/relation-chips-MrBUv8LE.3905ce4512b7.js.gz +0 -0
  380. codex/static_root/assets/relation-chips-MrBUv8LE.js.br +0 -0
  381. codex/static_root/assets/relation-chips-MrBUv8LE.js.gz +0 -0
  382. codex/static_root/assets/settings-drawer-BmfIO8yN.8fbb95927573.js.br +0 -0
  383. codex/static_root/assets/settings-drawer-BmfIO8yN.8fbb95927573.js.gz +0 -0
  384. codex/static_root/assets/settings-drawer-BmfIO8yN.js.br +0 -0
  385. codex/static_root/assets/settings-drawer-BmfIO8yN.js.gz +0 -0
  386. codex/static_root/assets/ssrBoot-CpHvQ_lR.4a530165baa2.js.br +0 -0
  387. codex/static_root/assets/ssrBoot-CpHvQ_lR.4a530165baa2.js.gz +0 -0
  388. codex/static_root/assets/ssrBoot-CpHvQ_lR.js.br +0 -0
  389. codex/static_root/assets/ssrBoot-CpHvQ_lR.js.gz +0 -0
  390. codex/static_root/assets/stats-tab-DhgZJhi0.d94c64c7fe44.js.br +0 -0
  391. codex/static_root/assets/stats-tab-DhgZJhi0.d94c64c7fe44.js.gz +0 -0
  392. codex/static_root/assets/stats-tab-DhgZJhi0.js.br +0 -0
  393. codex/static_root/assets/stats-tab-DhgZJhi0.js.gz +0 -0
  394. codex/static_root/assets/task-tab-Dk-VPKv-.1c3a1c17f24c.js.br +0 -0
  395. codex/static_root/assets/task-tab-Dk-VPKv-.1c3a1c17f24c.js.gz +0 -0
  396. codex/static_root/assets/task-tab-Dk-VPKv-.js.br +0 -0
  397. codex/static_root/assets/task-tab-Dk-VPKv-.js.gz +0 -0
  398. codex/static_root/assets/unauthorized-tnyoCOZ_.5b0beb14dd3b.js.br +0 -0
  399. codex/static_root/assets/unauthorized-tnyoCOZ_.5b0beb14dd3b.js.gz +0 -0
  400. codex/static_root/assets/unauthorized-tnyoCOZ_.js.br +0 -0
  401. codex/static_root/assets/unauthorized-tnyoCOZ_.js.gz +0 -0
  402. codex/static_root/assets/user-tab-Drkjzwrl.7d43bb10328a.js.br +0 -0
  403. codex/static_root/assets/user-tab-Drkjzwrl.7d43bb10328a.js.gz +0 -0
  404. codex/static_root/assets/user-tab-Drkjzwrl.js.br +0 -0
  405. codex/static_root/assets/user-tab-Drkjzwrl.js.gz +0 -0
  406. codex/static_root/manifest.e860f1e10a2d.json.br +0 -0
  407. codex/static_root/manifest.e860f1e10a2d.json.gz +0 -0
  408. {codex-1.8.0a10.dist-info → codex-1.8.1.dist-info}/WHEEL +0 -0
  409. {codex-1.8.0a10.dist-info → codex-1.8.1.dist-info}/entry_points.txt +0 -0
  410. {codex-1.8.0a10.dist-info → codex-1.8.1.dist-info}/licenses/LICENSE +0 -0
@@ -43,7 +43,7 @@ class SearchIndexSyncManyToManyImporter(FinishImporter):
43
43
  fts_value = self._get_fts_m2m_concat(field_name)
44
44
  model_pks = self.metadata[FTS_UPDATED_M2MS].pop(field_name)
45
45
  self.log.debug(
46
- "Preparing {len(model_pks)} search entries for {field_name} updates."
46
+ f"Preparing {len(model_pks)} search entries for {field_name} updates."
47
47
  )
48
48
  comicftss = (
49
49
  ComicFTS.objects.filter(**{rel: model_pks})
@@ -59,23 +59,28 @@ class SearchIndexSyncManyToManyImporter(FinishImporter):
59
59
  def sync_fts_for_m2m_updates(self, already_updated_comicfts_pks: tuple[int, ...]):
60
60
  """Update fts entries for foreign keys."""
61
61
  count = 0
62
- field_names = tuple(self.metadata[FTS_UPDATED_M2MS].keys())
62
+ update_field_names = tuple(self.metadata.get(FTS_UPDATED_M2MS, {}).keys())
63
+ if not update_field_names:
64
+ self.metadata.pop(FTS_UPDATED_M2MS)
65
+ return
63
66
 
64
- update_fields = field_names # tuple(sorted(model.__name__.lower() + "s" for model in models))
65
67
  update_objs = []
66
- for field_name in field_names:
68
+ for field_name in update_field_names:
67
69
  if self.abort_event.is_set():
68
70
  return
69
71
  self._sync_fts_for_m2m_updates_model(
70
- field_name, already_updated_comicfts_pks, update_fields, update_objs
72
+ field_name,
73
+ already_updated_comicfts_pks,
74
+ update_field_names,
75
+ update_objs,
71
76
  )
72
77
  count += len(update_objs)
73
- tags = ", ".join(update_fields)
78
+ tags = ", ".join(update_field_names)
74
79
  self.log.debug(
75
80
  f"Updating {count} search index entries for comics linked to updated tags: {tags}"
76
81
  )
77
82
  if count:
78
- ComicFTS.objects.bulk_update(update_objs, update_fields)
83
+ ComicFTS.objects.bulk_update(update_objs, update_field_names)
79
84
  level = "INFO" if count else "DEBUG"
80
85
  self.log.log(
81
86
  level,
@@ -122,27 +122,6 @@ class SearchIndexCreateUpdateImporter(SearchIndexSyncManyToManyImporter):
122
122
  status.increment_complete()
123
123
  self.status_controller.update(status)
124
124
 
125
- def _update_search_index_create_or_update(
126
- self,
127
- obj_list: list[ComicFTS],
128
- status,
129
- *,
130
- create: bool,
131
- ):
132
- if not obj_list or self.abort_event.is_set():
133
- return
134
- verb = "create" if create else "update"
135
- verbing = (verb[:-1] + "ing").capitalize()
136
- num_comic_fts = len(obj_list)
137
-
138
- batch_position = f"({status.complete}/{status.total})"
139
- self.log.debug(f"{verbing} {num_comic_fts} {batch_position} search entries...")
140
- if create:
141
- ComicFTS.objects.bulk_create(obj_list)
142
- else:
143
- ComicFTS.objects.bulk_update(obj_list, COMICFTS_UPDATE_FIELDS)
144
- obj_list.clear()
145
-
146
125
  def _update_search_index_operate_get_status(
147
126
  self, total_entries: int, *, create: bool
148
127
  ) -> ImporterFTSStatus:
@@ -150,26 +129,27 @@ class SearchIndexCreateUpdateImporter(SearchIndexSyncManyToManyImporter):
150
129
  return status_class(total=total_entries)
151
130
 
152
131
  def _update_search_index_operate_create(
153
- self, obj_list: list, status: ImporterFTSStatus
154
- ):
132
+ self, status: ImporterFTSStatus
133
+ ) -> tuple[tuple[ComicFTS, ...], tuple[int, ...]]:
155
134
  entries = self.metadata.pop(FTS_CREATE, {})
156
- pks = tuple(entries.keys())
135
+ pks = tuple(sorted(entries.keys()))
136
+ obj_list = []
157
137
  for pk in pks:
158
138
  if self.abort_event.is_set():
159
- return ()
160
-
139
+ return tuple(obj_list), ()
161
140
  entry = entries.pop(pk)
162
141
  self._create_comicfts_entry(pk, entry, obj_list, status)
163
- return pks
142
+ return tuple(obj_list), pks
164
143
 
165
144
  def _update_search_index_operate_update(
166
- self, obj_list: list, status: ImporterFTSStatus
167
- ):
168
- if pks := tuple(self.metadata.get(FTS_UPDATE, {}).keys()):
145
+ self, status: ImporterFTSStatus
146
+ ) -> tuple[tuple[ComicFTS, ...], tuple[int, ...]]:
147
+ obj_list = []
148
+ if pks := tuple(sorted(self.metadata.get(FTS_UPDATE, {}).keys())):
169
149
  comicftss = ComicFTS.objects.filter(comic_id__in=pks)
170
150
  for comicfts in comicftss:
171
151
  if self.abort_event.is_set():
172
- return ()
152
+ return tuple(obj_list), ()
173
153
  self._update_comicfts_entry(comicfts, obj_list, status)
174
154
  if self.metadata[FTS_UPDATE]:
175
155
  # If updates not popped, turn them into creates.
@@ -177,57 +157,79 @@ class SearchIndexCreateUpdateImporter(SearchIndexSyncManyToManyImporter):
177
157
  self.metadata[FTS_CREATE] = {}
178
158
  self.metadata[FTS_CREATE].update(self.metadata[FTS_UPDATE])
179
159
  self.metadata.pop(FTS_UPDATE)
180
- return pks
160
+ return tuple(obj_list), ()
181
161
 
182
- def _update_search_index_operate(self, *, create: bool) -> tuple[int, ...]:
162
+ def _update_search_index_create_or_update(
163
+ self,
164
+ obj_list: tuple[ComicFTS, ...],
165
+ status,
166
+ *,
167
+ create: bool,
168
+ ) -> int:
169
+ if not obj_list or self.abort_event.is_set():
170
+ return 0
171
+ verb = "create" if create else "update"
172
+ verbing = (verb[:-1] + "ing").capitalize()
173
+ num_comic_fts = len(obj_list)
174
+
175
+ batch_position = f"({status.complete}/{status.total})"
176
+ self.log.debug(f"{verbing} {num_comic_fts} {batch_position} search entries...")
177
+ if create:
178
+ ComicFTS.objects.bulk_create(obj_list)
179
+ else:
180
+ ComicFTS.objects.bulk_update(obj_list, COMICFTS_UPDATE_FIELDS)
181
+ return len(obj_list)
182
+
183
+ def _update_search_index_operate(self, *, create: bool) -> int:
183
184
  key = FTS_CREATE if create else FTS_UPDATE
184
185
  total_entries = len(self.metadata.get(key, {}))
185
186
  status = self._update_search_index_operate_get_status(
186
187
  total_entries, create=create
187
188
  )
188
- updated_pks = ()
189
+ count = 0
189
190
  try:
190
191
  verb = "create" if create else "update"
191
192
  if not total_entries:
192
193
  self.log.debug(f"No search entries to {verb}.")
193
- return updated_pks
194
+ return count
194
195
  self.status_controller.start(status)
195
196
  verbing = "creating" if create else "updating"
196
197
  self.log.debug(
197
198
  f"Preparing {total_entries} comics for search index {verbing}..."
198
199
  )
199
200
 
200
- obj_list = []
201
201
  if create:
202
- updated_pks = self._update_search_index_operate_create(obj_list, status)
202
+ obj_list, created_comic_pks = self._update_search_index_operate_create(
203
+ status
204
+ )
203
205
  else:
204
- updated_pks = self._update_search_index_operate_update(obj_list, status)
206
+ obj_list, created_comic_pks = self._update_search_index_operate_update(
207
+ status
208
+ )
205
209
  self.log.debug(
206
210
  f"Prepared {len(obj_list)} comics for search index {verbing}..."
207
211
  )
208
212
  if self.abort_event.is_set():
209
- return updated_pks
213
+ return count
210
214
 
211
- self._update_search_index_create_or_update(
215
+ count = self._update_search_index_create_or_update(
212
216
  obj_list,
213
217
  status,
214
218
  create=create,
215
219
  )
220
+ self.sync_fts_for_m2m_updates(created_comic_pks)
216
221
 
217
222
  finally:
218
223
  self.status_controller.finish(status)
219
- return updated_pks
224
+ return count
220
225
 
221
- def _update_search_index_update(self):
226
+ def _update_search_index_update(self) -> int:
222
227
  """Update out of date search entries."""
223
- self._update_search_index_operate(create=False)
228
+ return self._update_search_index_operate(create=False)
224
229
 
225
- def _update_search_index_create(self):
230
+ def _update_search_index_create(self) -> int:
226
231
  """Create missing search entries."""
227
- pks = self._update_search_index_operate(create=True)
228
- if self.abort_event.is_set():
229
- return
230
- self.sync_fts_for_m2m_updates(pks)
232
+ return self._update_search_index_operate(create=True)
231
233
 
232
234
  def _update_search_index(self, cleaned_count: int):
233
235
  """Update or Rebuild the search index."""
@@ -1,4 +1,4 @@
1
- """Generated by Django 5.2.4 on 2025-07-09 18:16."""
1
+ """Generated by Django 5.2.4 on 2025-07-21 15:05."""
2
2
 
3
3
  import django.db.models.deletion
4
4
  from django.db import migrations, models
@@ -743,8 +743,11 @@ class Migration(migrations.Migration):
743
743
  ("ICC", "Create Comics"),
744
744
  ("ICT", "Create Tags"),
745
745
  ("ICV", "Create Custom Covers"),
746
- ("IFI", "Mark Failed Imports"),
747
- ("IGU", "Operate Items"),
746
+ ("IFC", "Mark Failed Failed Imports"),
747
+ ("IFD", "Clean Up Failed Imports"),
748
+ ("IFQ", "Query Failed Imports"),
749
+ ("IFU", "Update Failed Imports"),
750
+ ("IGU", "Update Timestamps For Browser Groups"),
748
751
  ("ILT", "Link Tags"),
749
752
  ("ILV", "Link Custom Covers"),
750
753
  ("IQC", "Query Comics"),
@@ -1 +1 @@
1
- import{m as I,V as r}from"./VCheckboxBtn-CFTaQWbK.js";import{u as A,m as F,g as u}from"./VSelectionControl-Cxd4vXuU.js";import{f as R}from"./forwardRefs-B8RvndnX.js";import{g as B,p as U,e as w,r as D,u as M,o as N,bt as $,bu as j,a as l,m as d}from"./main-Co2IERXA.js";const q=U({...F(),...N(I(),["inline"])},"VCheckbox"),J=B()({name:"VCheckbox",inheritAttrs:!1,props:q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:n,slots:a}=c;const s=w(e,"modelValue"),{isFocused:i,focus:m,blur:f}=A(e),t=D(),V=$();return M(()=>{const[p,b]=j(n),k=u.filterProps(e),v=r.filterProps(e);return l(u,d({ref:t,class:["v-checkbox",e.class]},p,k,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:e.id||`checkbox-${V}`,focused:i.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:C,isValid:y}=o;return l(r,d(v,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:C.value},b,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":g=>s.value=g,onFocus:m,onBlur:f}),a)}})}),R({},t)}});export{J as V};
1
+ import{m as I,V as r}from"./VCheckboxBtn-BuJfvjlJ.js";import{u as A,m as F,g as u}from"./VSelectionControl-CdDOSkFn.js";import{f as R}from"./forwardRefs-CZYoc6_3.js";import{g as B,p as U,e as w,r as D,u as M,o as N,bt as $,bu as j,a as l,m as d}from"./main-DAMpW2P5.js";const q=U({...F(),...N(I(),["inline"])},"VCheckbox"),J=B()({name:"VCheckbox",inheritAttrs:!1,props:q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:n,slots:a}=c;const s=w(e,"modelValue"),{isFocused:i,focus:m,blur:f}=A(e),t=D(),V=$();return M(()=>{const[p,b]=j(n),k=u.filterProps(e),v=r.filterProps(e);return l(u,d({ref:t,class:["v-checkbox",e.class]},p,k,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:e.id||`checkbox-${V}`,focused:i.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:C,isValid:y}=o;return l(r,d(v,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:C.value},b,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":g=>s.value=g,onFocus:m,onBlur:f}),a)}})}),R({},t)}});export{J as V};
@@ -1 +1 @@
1
- import{m as I,V as r}from"./VCheckboxBtn-CFTaQWbK.js";import{u as A,m as F,g as u}from"./VSelectionControl-Cxd4vXuU.js";import{f as R}from"./forwardRefs-B8RvndnX.js";import{g as B,p as U,e as w,r as D,u as M,o as N,bt as $,bu as j,a as l,m as d}from"./main-Co2IERXA.js";const q=U({...F(),...N(I(),["inline"])},"VCheckbox"),J=B()({name:"VCheckbox",inheritAttrs:!1,props:q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:n,slots:a}=c;const s=w(e,"modelValue"),{isFocused:i,focus:m,blur:f}=A(e),t=D(),V=$();return M(()=>{const[p,b]=j(n),k=u.filterProps(e),v=r.filterProps(e);return l(u,d({ref:t,class:["v-checkbox",e.class]},p,k,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:e.id||`checkbox-${V}`,focused:i.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:C,isValid:y}=o;return l(r,d(v,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:C.value},b,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":g=>s.value=g,onFocus:m,onBlur:f}),a)}})}),R({},t)}});export{J as V};
1
+ import{m as I,V as r}from"./VCheckboxBtn-BuJfvjlJ.js";import{u as A,m as F,g as u}from"./VSelectionControl-CdDOSkFn.js";import{f as R}from"./forwardRefs-CZYoc6_3.js";import{g as B,p as U,e as w,r as D,u as M,o as N,bt as $,bu as j,a as l,m as d}from"./main-DAMpW2P5.js";const q=U({...F(),...N(I(),["inline"])},"VCheckbox"),J=B()({name:"VCheckbox",inheritAttrs:!1,props:q(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,c){let{attrs:n,slots:a}=c;const s=w(e,"modelValue"),{isFocused:i,focus:m,blur:f}=A(e),t=D(),V=$();return M(()=>{const[p,b]=j(n),k=u.filterProps(e),v=r.filterProps(e);return l(u,d({ref:t,class:["v-checkbox",e.class]},p,k,{modelValue:s.value,"onUpdate:modelValue":o=>s.value=o,id:e.id||`checkbox-${V}`,focused:i.value,style:e.style}),{...a,default:o=>{let{id:x,messagesId:h,isDisabled:P,isReadonly:C,isValid:y}=o;return l(r,d(v,{id:x.value,"aria-describedby":h.value,disabled:P.value,readonly:C.value},b,{error:y.value===!1,modelValue:s.value,"onUpdate:modelValue":g=>s.value=g,onFocus:m,onBlur:f}),a)}})}),R({},t)}});export{J as V};
@@ -1 +1 @@
1
- import{l as f,k as a}from"./VSelectionControl-Cxd4vXuU.js";import{p as V,K as k,g as v,e as c,t as l,u as I,o as x,a as h,m as b}from"./main-Co2IERXA.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=v()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:s}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function u(o){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),m=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const o=x(a.filterProps(e),["modelValue"]);return h(a,b(o,{modelValue:n.value,"onUpdate:modelValue":[d=>n.value=d,u],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:m.value,"aria-checked":t.value?"mixed":void 0}),s)}),{}}});export{B as V,C as m};
1
+ import{l as f,k as a}from"./VSelectionControl-CdDOSkFn.js";import{p as V,K as k,g as v,e as c,t as l,u as I,o as x,a as h,m as b}from"./main-DAMpW2P5.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=v()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:s}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function u(o){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),m=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const o=x(a.filterProps(e),["modelValue"]);return h(a,b(o,{modelValue:n.value,"onUpdate:modelValue":[d=>n.value=d,u],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:m.value,"aria-checked":t.value?"mixed":void 0}),s)}),{}}});export{B as V,C as m};
@@ -1 +1 @@
1
- import{l as f,k as a}from"./VSelectionControl-Cxd4vXuU.js";import{p as V,K as k,g as v,e as c,t as l,u as I,o as x,a as h,m as b}from"./main-Co2IERXA.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=v()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:s}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function u(o){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),m=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const o=x(a.filterProps(e),["modelValue"]);return h(a,b(o,{modelValue:n.value,"onUpdate:modelValue":[d=>n.value=d,u],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:m.value,"aria-checked":t.value?"mixed":void 0}),s)}),{}}});export{B as V,C as m};
1
+ import{l as f,k as a}from"./VSelectionControl-CdDOSkFn.js";import{p as V,K as k,g as v,e as c,t as l,u as I,o as x,a as h,m as b}from"./main-DAMpW2P5.js";const C=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:"$checkboxIndeterminate"},...f({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),B=v()({name:"VCheckboxBtn",props:C(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,r){let{slots:s}=r;const t=c(e,"indeterminate"),n=c(e,"modelValue");function u(o){t.value&&(t.value=!1)}const i=l(()=>t.value?e.indeterminateIcon:e.falseIcon),m=l(()=>t.value?e.indeterminateIcon:e.trueIcon);return I(()=>{const o=x(a.filterProps(e),["modelValue"]);return h(a,b(o,{modelValue:n.value,"onUpdate:modelValue":[d=>n.value=d,u],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:m.value,"aria-checked":t.value?"mixed":void 0}),s)}),{}}});export{B as V,C as m};
@@ -1 +1 @@
1
- import{u as xe,t as I,e as Ve,m as pe,a as ke,V as Ce,b as we,f as Se,d as Ie}from"./VSelect-B4pZF5N5.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-Cxd4vXuU.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-B8RvndnX.js";import{u as Te,m as Me,h as _e}from"./filter-CDDr_38H.js";import{g as Ne,p as Be,aB as Le,r as _,aT as F,e as G,bD as Ke,c as y,aW as z,t as Oe,aU as D,bE as J,u as Ue,a as d,m as k,o as ze,bF as $e,bG as Q,bs as qe,b as C,bH as He,F as $,bI as je,n as We,d as Ge,y as Je}from"./main-Co2IERXA.js";import{a as X,g as Qe}from"./VDialog-BSgZ0BZI.js";import{a as Xe}from"./VDivider-Bw29Ue4O.js";import{V as Ye}from"./VCheckboxBtn-CFTaQWbK.js";const Ze=Be({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Me({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...ze(De({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Ae({transition:!1})},"VCombobox"),sl=Ne()({name:"VCombobox",props:Ze(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,Y){let{emit:Z,slots:r}=Y;const{t:N}=Le(),m=_(),b=F(!1),x=F(!0),B=F(!1),q=_(),P=_(),o=F(-1);let L=!1;const{items:ee,transformIn:le,transformOut:ae}=xe(e),{textColorClasses:te,textColorStyles:ue}=Pe(()=>m.value?.color),u=G(e,"modelValue",[],l=>le(Ke(l)),l=>{const n=ae(l);return e.multiple?n:n[0]??null}),R=Fe(e),A=y(()=>!!(e.chips||r.chip)),g=y(()=>A.value||!!r.selection),V=F(!e.multiple&&!g.value?u.value[0]?.title??"":""),c=y({get:()=>V.value,set:l=>{if(V.value=l??"",!e.multiple&&!g.value&&(u.value=[I(e,l)],z(()=>P.value?.scrollToIndex(0))),l&&e.multiple&&e.delimiters?.length){const n=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));n.length>1&&(n.forEach(i=>{i=i.trim(),i&&h(I(e,i))}),V.value="")}l||(o.value=-1),x.value=!l}}),ne=y(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?u.value.length:c.value.length),{filteredItems:E,getMatches:oe}=Te(e,ee,()=>x.value?"":c.value),p=y(()=>e.hideSelected?E.value.filter(l=>!u.value.some(n=>n.value===l.value)):E.value),T=y(()=>e.hideNoData&&!p.value.length||R.isReadonly.value||R.isDisabled.value),K=G(e,"menu"),s=y({get:()=>K.value,set:l=>{K.value&&!l&&q.value?.ΨopenChildren.size||l&&T.value||(K.value=l)}}),H=Oe(()=>s.value?e.closeText:e.openText);D(V,l=>{L?z(()=>L=!1):b.value&&!s.value&&(s.value=!0),Z("update:search",l)}),D(u,l=>{!e.multiple&&!g.value&&(V.value=l[0]?.title??"")});const ie=y(()=>u.value.map(l=>l.value)),O=y(()=>(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&c.value===p.value[0]?.title)&&p.value.length>0&&!x.value&&!B.value),U=_(),se=Ve(U,m);function re(l){L=!0,e.openOnClear&&(s.value=!0)}function ce(){T.value||(s.value=!0)}function ve(l){T.value||(b.value&&(l.preventDefault(),l.stopPropagation()),s.value=!s.value)}function de(l){(Q(l)||l.key==="Backspace")&&m.value?.focus()}function fe(l){if($e(l)||R.isReadonly.value)return;const n=m.value?.selectionStart,i=u.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(l.key)&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(s.value=!0),["Escape"].includes(l.key)&&(s.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(O.value&&["Enter","Tab"].includes(l.key)&&!u.value.some(a=>{let{value:t}=a;return t===p.value[0].value})&&h(E.value[0]),x.value=!0),l.key==="ArrowDown"&&O.value&&U.value?.focus("next"),l.key==="Enter"&&c.value&&(h(I(e,c.value)),g.value&&(V.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&g.value&&u.value.length>0&&!c.value)return h(u.value[0],!1);if(~o.value){l.preventDefault();const a=o.value;h(u.value[o.value],!1),o.value=a>=i-1?i-2:a}else l.key==="Backspace"&&!c.value&&(o.value=i-1);return}if(e.multiple)if(l.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const a=o.value>-1?o.value-1:i-1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(c.value.length,c.value.length))}else if(l.key==="ArrowRight"){if(o.value<0)return;const a=o.value+1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(0,0))}else~o.value&&Q(l)&&(o.value=-1)}function me(){e.eager&&P.value?.calculateVisibleItems()}function he(){b.value&&(x.value=!0,m.value?.focus())}function h(l){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const i=u.value.findIndex(t=>(e.valueComparator||J)(t.value,l.value)),a=n??!~i;if(~i){const t=a?[...u.value,l]:[...u.value];t.splice(i,1),u.value=t}else a&&(u.value=[...u.value,l]);e.clearOnSelect&&(c.value="")}else{const i=n!==!1;u.value=i?[l]:[],V.value=i&&!g.value?l.title:"",z(()=>{s.value=!1,x.value=!0})}}function be(l){b.value=!0,setTimeout(()=>{B.value=!0})}function ge(l){B.value=!1}function ye(l){(l==null||l===""&&!e.multiple&&!g.value)&&(u.value=[])}return D(b,(l,n)=>{if(!(l||l===n)&&(o.value=-1,s.value=!1,c.value)){if(e.multiple){h(I(e,c.value));return}if(!g.value)return;u.value.some(i=>{let{title:a}=i;return a===c.value})?V.value="":h(I(e,c.value))}}),D(s,()=>{if(!e.hideSelected&&s.value&&u.value.length){const l=p.value.findIndex(n=>u.value.some(i=>(e.valueComparator||J)(i.value,n.value)));qe&&window.requestAnimationFrame(()=>{l>=0&&P.value?.scrollToIndex(l)})}}),D(()=>e.items,(l,n)=>{s.value||b.value&&!n.length&&l.length&&(s.value=!0)}),Ue(()=>{const l=!!(!e.hideNoData||p.value.length||r["prepend-item"]||r["append-item"]||r["no-data"]),n=u.value.length>0,i=j.filterProps(e);return d(j,k({ref:m},i,{modelValue:c.value,"onUpdate:modelValue":[a=>c.value=a,ye],focused:b.value,"onUpdate:focused":a=>b.value=a,validationValue:u.externalValue,counterValue:ne.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":s.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!g.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:R.isReadonly.value,placeholder:n?void 0:e.placeholder,"onClick:clear":re,"onMousedown:control":ce,onKeydown:fe}),{...r,default:()=>C($,null,[d(ke,k({ref:q,modelValue:s.value,"onUpdate:modelValue":a=>s.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:T.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:me,onAfterLeave:he},e.menuProps),{default:()=>[l&&d(Ce,k({ref:U,filterable:!0,selected:ie.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:be,onFocusout:ge,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},se,e.listProps),{default:()=>[r["prepend-item"]?.(),!p.value.length&&!e.hideNoData&&(r["no-data"]?.()??d(X,{key:"no-data",title:N(e.noDataText)},null)),d(we,{ref:P,renderless:!0,items:p.value,itemKey:"value"},{default:a=>{let{item:t,index:v,itemRef:M}=a;const w=k(t.props,{ref:M,key:t.value,active:O.value&&v===0?!0:void 0,onClick:()=>h(t,null)});return t.type==="divider"?r.divider?.({props:t.raw,index:v})??d(Xe,k(t.props,{key:`divider-${v}`}),null):t.type==="subheader"?r.subheader?.({props:t.raw,index:v})??d(Se,k(t.props,{key:`subheader-${v}`}),null):r.item?.({item:t,index:v,props:w})??d(X,k(w,{role:"option"}),{prepend:S=>{let{isSelected:f}=S;return C($,null,[e.multiple&&!e.hideSelected?d(Ye,{key:t.value,modelValue:f,ripple:!1,tabindex:"-1"},null):void 0,t.props.prependAvatar&&d(Qe,{image:t.props.prependAvatar},null),t.props.prependIcon&&d(W,{icon:t.props.prependIcon},null)])},title:()=>x.value?t.title:_e("v-combobox",t.title,oe(t)?.title)})}}),r["append-item"]?.()]})]}),u.value.map((a,t)=>{function v(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const M={"onClick:close":v,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),v(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},w=A.value?!!r.chip:!!r.selection,S=w?je(A.value?r.chip({item:a,index:t,props:M}):r.selection({item:a,index:t})):void 0;if(!(w&&!S))return C("div",{key:a.value,class:Ge(["v-combobox__selection",t===o.value&&["v-combobox__selection--selected",te.value]]),style:We(t===o.value?ue.value:{})},[A.value?r.chip?d(Ee,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):d(Ie,k({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},M),null):S??C("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&t<u.value.length-1&&C("span",{class:"v-combobox__selection-comma"},[Je(",")])])])})]),"append-inner":function(){for(var a=arguments.length,t=new Array(a),v=0;v<a;v++)t[v]=arguments[v];return C($,null,[r["append-inner"]?.(...t),(!e.hideNoData||e.items.length)&&e.menuIcon?d(W,{class:"v-combobox__menu-icon",color:m.value?.fieldIconColor,icon:e.menuIcon,onMousedown:ve,onClick:He,"aria-label":N(H.value),title:N(H.value),tabindex:"-1"},null):void 0])}})}),Re({isFocused:b,isPristine:x,menu:s,search:c,selectionIndex:o,filteredItems:E,select:h},m)}});export{sl as V};
1
+ import{u as xe,t as I,e as Ve,m as pe,a as ke,V as Ce,b as we,f as Se,d as Ie}from"./VSelect-CIZuwLM5.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-CdDOSkFn.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-CZYoc6_3.js";import{u as Te,m as Me,h as _e}from"./filter-DD9yjMX8.js";import{g as Ne,p as Be,aB as Le,r as _,aT as F,e as G,bD as Ke,c as y,aW as z,t as Oe,aU as D,bE as J,u as Ue,a as d,m as k,o as ze,bF as $e,bG as Q,bs as qe,b as C,bH as He,F as $,bI as je,n as We,d as Ge,y as Je}from"./main-DAMpW2P5.js";import{a as X,g as Qe}from"./VDialog-CJfu1Z_a.js";import{a as Xe}from"./VDivider-DzC8v13-.js";import{V as Ye}from"./VCheckboxBtn-BuJfvjlJ.js";const Ze=Be({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Me({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...ze(De({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Ae({transition:!1})},"VCombobox"),sl=Ne()({name:"VCombobox",props:Ze(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,Y){let{emit:Z,slots:r}=Y;const{t:N}=Le(),m=_(),b=F(!1),x=F(!0),B=F(!1),q=_(),P=_(),o=F(-1);let L=!1;const{items:ee,transformIn:le,transformOut:ae}=xe(e),{textColorClasses:te,textColorStyles:ue}=Pe(()=>m.value?.color),u=G(e,"modelValue",[],l=>le(Ke(l)),l=>{const n=ae(l);return e.multiple?n:n[0]??null}),R=Fe(e),A=y(()=>!!(e.chips||r.chip)),g=y(()=>A.value||!!r.selection),V=F(!e.multiple&&!g.value?u.value[0]?.title??"":""),c=y({get:()=>V.value,set:l=>{if(V.value=l??"",!e.multiple&&!g.value&&(u.value=[I(e,l)],z(()=>P.value?.scrollToIndex(0))),l&&e.multiple&&e.delimiters?.length){const n=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));n.length>1&&(n.forEach(i=>{i=i.trim(),i&&h(I(e,i))}),V.value="")}l||(o.value=-1),x.value=!l}}),ne=y(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?u.value.length:c.value.length),{filteredItems:E,getMatches:oe}=Te(e,ee,()=>x.value?"":c.value),p=y(()=>e.hideSelected?E.value.filter(l=>!u.value.some(n=>n.value===l.value)):E.value),T=y(()=>e.hideNoData&&!p.value.length||R.isReadonly.value||R.isDisabled.value),K=G(e,"menu"),s=y({get:()=>K.value,set:l=>{K.value&&!l&&q.value?.ΨopenChildren.size||l&&T.value||(K.value=l)}}),H=Oe(()=>s.value?e.closeText:e.openText);D(V,l=>{L?z(()=>L=!1):b.value&&!s.value&&(s.value=!0),Z("update:search",l)}),D(u,l=>{!e.multiple&&!g.value&&(V.value=l[0]?.title??"")});const ie=y(()=>u.value.map(l=>l.value)),O=y(()=>(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&c.value===p.value[0]?.title)&&p.value.length>0&&!x.value&&!B.value),U=_(),se=Ve(U,m);function re(l){L=!0,e.openOnClear&&(s.value=!0)}function ce(){T.value||(s.value=!0)}function ve(l){T.value||(b.value&&(l.preventDefault(),l.stopPropagation()),s.value=!s.value)}function de(l){(Q(l)||l.key==="Backspace")&&m.value?.focus()}function fe(l){if($e(l)||R.isReadonly.value)return;const n=m.value?.selectionStart,i=u.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(l.key)&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(s.value=!0),["Escape"].includes(l.key)&&(s.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(O.value&&["Enter","Tab"].includes(l.key)&&!u.value.some(a=>{let{value:t}=a;return t===p.value[0].value})&&h(E.value[0]),x.value=!0),l.key==="ArrowDown"&&O.value&&U.value?.focus("next"),l.key==="Enter"&&c.value&&(h(I(e,c.value)),g.value&&(V.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&g.value&&u.value.length>0&&!c.value)return h(u.value[0],!1);if(~o.value){l.preventDefault();const a=o.value;h(u.value[o.value],!1),o.value=a>=i-1?i-2:a}else l.key==="Backspace"&&!c.value&&(o.value=i-1);return}if(e.multiple)if(l.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const a=o.value>-1?o.value-1:i-1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(c.value.length,c.value.length))}else if(l.key==="ArrowRight"){if(o.value<0)return;const a=o.value+1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(0,0))}else~o.value&&Q(l)&&(o.value=-1)}function me(){e.eager&&P.value?.calculateVisibleItems()}function he(){b.value&&(x.value=!0,m.value?.focus())}function h(l){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const i=u.value.findIndex(t=>(e.valueComparator||J)(t.value,l.value)),a=n??!~i;if(~i){const t=a?[...u.value,l]:[...u.value];t.splice(i,1),u.value=t}else a&&(u.value=[...u.value,l]);e.clearOnSelect&&(c.value="")}else{const i=n!==!1;u.value=i?[l]:[],V.value=i&&!g.value?l.title:"",z(()=>{s.value=!1,x.value=!0})}}function be(l){b.value=!0,setTimeout(()=>{B.value=!0})}function ge(l){B.value=!1}function ye(l){(l==null||l===""&&!e.multiple&&!g.value)&&(u.value=[])}return D(b,(l,n)=>{if(!(l||l===n)&&(o.value=-1,s.value=!1,c.value)){if(e.multiple){h(I(e,c.value));return}if(!g.value)return;u.value.some(i=>{let{title:a}=i;return a===c.value})?V.value="":h(I(e,c.value))}}),D(s,()=>{if(!e.hideSelected&&s.value&&u.value.length){const l=p.value.findIndex(n=>u.value.some(i=>(e.valueComparator||J)(i.value,n.value)));qe&&window.requestAnimationFrame(()=>{l>=0&&P.value?.scrollToIndex(l)})}}),D(()=>e.items,(l,n)=>{s.value||b.value&&!n.length&&l.length&&(s.value=!0)}),Ue(()=>{const l=!!(!e.hideNoData||p.value.length||r["prepend-item"]||r["append-item"]||r["no-data"]),n=u.value.length>0,i=j.filterProps(e);return d(j,k({ref:m},i,{modelValue:c.value,"onUpdate:modelValue":[a=>c.value=a,ye],focused:b.value,"onUpdate:focused":a=>b.value=a,validationValue:u.externalValue,counterValue:ne.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":s.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!g.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:R.isReadonly.value,placeholder:n?void 0:e.placeholder,"onClick:clear":re,"onMousedown:control":ce,onKeydown:fe}),{...r,default:()=>C($,null,[d(ke,k({ref:q,modelValue:s.value,"onUpdate:modelValue":a=>s.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:T.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:me,onAfterLeave:he},e.menuProps),{default:()=>[l&&d(Ce,k({ref:U,filterable:!0,selected:ie.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:be,onFocusout:ge,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},se,e.listProps),{default:()=>[r["prepend-item"]?.(),!p.value.length&&!e.hideNoData&&(r["no-data"]?.()??d(X,{key:"no-data",title:N(e.noDataText)},null)),d(we,{ref:P,renderless:!0,items:p.value,itemKey:"value"},{default:a=>{let{item:t,index:v,itemRef:M}=a;const w=k(t.props,{ref:M,key:t.value,active:O.value&&v===0?!0:void 0,onClick:()=>h(t,null)});return t.type==="divider"?r.divider?.({props:t.raw,index:v})??d(Xe,k(t.props,{key:`divider-${v}`}),null):t.type==="subheader"?r.subheader?.({props:t.raw,index:v})??d(Se,k(t.props,{key:`subheader-${v}`}),null):r.item?.({item:t,index:v,props:w})??d(X,k(w,{role:"option"}),{prepend:S=>{let{isSelected:f}=S;return C($,null,[e.multiple&&!e.hideSelected?d(Ye,{key:t.value,modelValue:f,ripple:!1,tabindex:"-1"},null):void 0,t.props.prependAvatar&&d(Qe,{image:t.props.prependAvatar},null),t.props.prependIcon&&d(W,{icon:t.props.prependIcon},null)])},title:()=>x.value?t.title:_e("v-combobox",t.title,oe(t)?.title)})}}),r["append-item"]?.()]})]}),u.value.map((a,t)=>{function v(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const M={"onClick:close":v,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),v(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},w=A.value?!!r.chip:!!r.selection,S=w?je(A.value?r.chip({item:a,index:t,props:M}):r.selection({item:a,index:t})):void 0;if(!(w&&!S))return C("div",{key:a.value,class:Ge(["v-combobox__selection",t===o.value&&["v-combobox__selection--selected",te.value]]),style:We(t===o.value?ue.value:{})},[A.value?r.chip?d(Ee,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):d(Ie,k({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},M),null):S??C("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&t<u.value.length-1&&C("span",{class:"v-combobox__selection-comma"},[Je(",")])])])})]),"append-inner":function(){for(var a=arguments.length,t=new Array(a),v=0;v<a;v++)t[v]=arguments[v];return C($,null,[r["append-inner"]?.(...t),(!e.hideNoData||e.items.length)&&e.menuIcon?d(W,{class:"v-combobox__menu-icon",color:m.value?.fieldIconColor,icon:e.menuIcon,onMousedown:ve,onClick:He,"aria-label":N(H.value),title:N(H.value),tabindex:"-1"},null):void 0])}})}),Re({isFocused:b,isPristine:x,menu:s,search:c,selectionIndex:o,filteredItems:E,select:h},m)}});export{sl as V};
@@ -1 +1 @@
1
- import{u as xe,t as I,e as Ve,m as pe,a as ke,V as Ce,b as we,f as Se,d as Ie}from"./VSelect-B4pZF5N5.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-Cxd4vXuU.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-B8RvndnX.js";import{u as Te,m as Me,h as _e}from"./filter-CDDr_38H.js";import{g as Ne,p as Be,aB as Le,r as _,aT as F,e as G,bD as Ke,c as y,aW as z,t as Oe,aU as D,bE as J,u as Ue,a as d,m as k,o as ze,bF as $e,bG as Q,bs as qe,b as C,bH as He,F as $,bI as je,n as We,d as Ge,y as Je}from"./main-Co2IERXA.js";import{a as X,g as Qe}from"./VDialog-BSgZ0BZI.js";import{a as Xe}from"./VDivider-Bw29Ue4O.js";import{V as Ye}from"./VCheckboxBtn-CFTaQWbK.js";const Ze=Be({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Me({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...ze(De({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Ae({transition:!1})},"VCombobox"),sl=Ne()({name:"VCombobox",props:Ze(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,Y){let{emit:Z,slots:r}=Y;const{t:N}=Le(),m=_(),b=F(!1),x=F(!0),B=F(!1),q=_(),P=_(),o=F(-1);let L=!1;const{items:ee,transformIn:le,transformOut:ae}=xe(e),{textColorClasses:te,textColorStyles:ue}=Pe(()=>m.value?.color),u=G(e,"modelValue",[],l=>le(Ke(l)),l=>{const n=ae(l);return e.multiple?n:n[0]??null}),R=Fe(e),A=y(()=>!!(e.chips||r.chip)),g=y(()=>A.value||!!r.selection),V=F(!e.multiple&&!g.value?u.value[0]?.title??"":""),c=y({get:()=>V.value,set:l=>{if(V.value=l??"",!e.multiple&&!g.value&&(u.value=[I(e,l)],z(()=>P.value?.scrollToIndex(0))),l&&e.multiple&&e.delimiters?.length){const n=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));n.length>1&&(n.forEach(i=>{i=i.trim(),i&&h(I(e,i))}),V.value="")}l||(o.value=-1),x.value=!l}}),ne=y(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?u.value.length:c.value.length),{filteredItems:E,getMatches:oe}=Te(e,ee,()=>x.value?"":c.value),p=y(()=>e.hideSelected?E.value.filter(l=>!u.value.some(n=>n.value===l.value)):E.value),T=y(()=>e.hideNoData&&!p.value.length||R.isReadonly.value||R.isDisabled.value),K=G(e,"menu"),s=y({get:()=>K.value,set:l=>{K.value&&!l&&q.value?.ΨopenChildren.size||l&&T.value||(K.value=l)}}),H=Oe(()=>s.value?e.closeText:e.openText);D(V,l=>{L?z(()=>L=!1):b.value&&!s.value&&(s.value=!0),Z("update:search",l)}),D(u,l=>{!e.multiple&&!g.value&&(V.value=l[0]?.title??"")});const ie=y(()=>u.value.map(l=>l.value)),O=y(()=>(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&c.value===p.value[0]?.title)&&p.value.length>0&&!x.value&&!B.value),U=_(),se=Ve(U,m);function re(l){L=!0,e.openOnClear&&(s.value=!0)}function ce(){T.value||(s.value=!0)}function ve(l){T.value||(b.value&&(l.preventDefault(),l.stopPropagation()),s.value=!s.value)}function de(l){(Q(l)||l.key==="Backspace")&&m.value?.focus()}function fe(l){if($e(l)||R.isReadonly.value)return;const n=m.value?.selectionStart,i=u.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(l.key)&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(s.value=!0),["Escape"].includes(l.key)&&(s.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(O.value&&["Enter","Tab"].includes(l.key)&&!u.value.some(a=>{let{value:t}=a;return t===p.value[0].value})&&h(E.value[0]),x.value=!0),l.key==="ArrowDown"&&O.value&&U.value?.focus("next"),l.key==="Enter"&&c.value&&(h(I(e,c.value)),g.value&&(V.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&g.value&&u.value.length>0&&!c.value)return h(u.value[0],!1);if(~o.value){l.preventDefault();const a=o.value;h(u.value[o.value],!1),o.value=a>=i-1?i-2:a}else l.key==="Backspace"&&!c.value&&(o.value=i-1);return}if(e.multiple)if(l.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const a=o.value>-1?o.value-1:i-1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(c.value.length,c.value.length))}else if(l.key==="ArrowRight"){if(o.value<0)return;const a=o.value+1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(0,0))}else~o.value&&Q(l)&&(o.value=-1)}function me(){e.eager&&P.value?.calculateVisibleItems()}function he(){b.value&&(x.value=!0,m.value?.focus())}function h(l){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const i=u.value.findIndex(t=>(e.valueComparator||J)(t.value,l.value)),a=n??!~i;if(~i){const t=a?[...u.value,l]:[...u.value];t.splice(i,1),u.value=t}else a&&(u.value=[...u.value,l]);e.clearOnSelect&&(c.value="")}else{const i=n!==!1;u.value=i?[l]:[],V.value=i&&!g.value?l.title:"",z(()=>{s.value=!1,x.value=!0})}}function be(l){b.value=!0,setTimeout(()=>{B.value=!0})}function ge(l){B.value=!1}function ye(l){(l==null||l===""&&!e.multiple&&!g.value)&&(u.value=[])}return D(b,(l,n)=>{if(!(l||l===n)&&(o.value=-1,s.value=!1,c.value)){if(e.multiple){h(I(e,c.value));return}if(!g.value)return;u.value.some(i=>{let{title:a}=i;return a===c.value})?V.value="":h(I(e,c.value))}}),D(s,()=>{if(!e.hideSelected&&s.value&&u.value.length){const l=p.value.findIndex(n=>u.value.some(i=>(e.valueComparator||J)(i.value,n.value)));qe&&window.requestAnimationFrame(()=>{l>=0&&P.value?.scrollToIndex(l)})}}),D(()=>e.items,(l,n)=>{s.value||b.value&&!n.length&&l.length&&(s.value=!0)}),Ue(()=>{const l=!!(!e.hideNoData||p.value.length||r["prepend-item"]||r["append-item"]||r["no-data"]),n=u.value.length>0,i=j.filterProps(e);return d(j,k({ref:m},i,{modelValue:c.value,"onUpdate:modelValue":[a=>c.value=a,ye],focused:b.value,"onUpdate:focused":a=>b.value=a,validationValue:u.externalValue,counterValue:ne.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":s.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!g.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:R.isReadonly.value,placeholder:n?void 0:e.placeholder,"onClick:clear":re,"onMousedown:control":ce,onKeydown:fe}),{...r,default:()=>C($,null,[d(ke,k({ref:q,modelValue:s.value,"onUpdate:modelValue":a=>s.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:T.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:me,onAfterLeave:he},e.menuProps),{default:()=>[l&&d(Ce,k({ref:U,filterable:!0,selected:ie.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:be,onFocusout:ge,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},se,e.listProps),{default:()=>[r["prepend-item"]?.(),!p.value.length&&!e.hideNoData&&(r["no-data"]?.()??d(X,{key:"no-data",title:N(e.noDataText)},null)),d(we,{ref:P,renderless:!0,items:p.value,itemKey:"value"},{default:a=>{let{item:t,index:v,itemRef:M}=a;const w=k(t.props,{ref:M,key:t.value,active:O.value&&v===0?!0:void 0,onClick:()=>h(t,null)});return t.type==="divider"?r.divider?.({props:t.raw,index:v})??d(Xe,k(t.props,{key:`divider-${v}`}),null):t.type==="subheader"?r.subheader?.({props:t.raw,index:v})??d(Se,k(t.props,{key:`subheader-${v}`}),null):r.item?.({item:t,index:v,props:w})??d(X,k(w,{role:"option"}),{prepend:S=>{let{isSelected:f}=S;return C($,null,[e.multiple&&!e.hideSelected?d(Ye,{key:t.value,modelValue:f,ripple:!1,tabindex:"-1"},null):void 0,t.props.prependAvatar&&d(Qe,{image:t.props.prependAvatar},null),t.props.prependIcon&&d(W,{icon:t.props.prependIcon},null)])},title:()=>x.value?t.title:_e("v-combobox",t.title,oe(t)?.title)})}}),r["append-item"]?.()]})]}),u.value.map((a,t)=>{function v(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const M={"onClick:close":v,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),v(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},w=A.value?!!r.chip:!!r.selection,S=w?je(A.value?r.chip({item:a,index:t,props:M}):r.selection({item:a,index:t})):void 0;if(!(w&&!S))return C("div",{key:a.value,class:Ge(["v-combobox__selection",t===o.value&&["v-combobox__selection--selected",te.value]]),style:We(t===o.value?ue.value:{})},[A.value?r.chip?d(Ee,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):d(Ie,k({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},M),null):S??C("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&t<u.value.length-1&&C("span",{class:"v-combobox__selection-comma"},[Je(",")])])])})]),"append-inner":function(){for(var a=arguments.length,t=new Array(a),v=0;v<a;v++)t[v]=arguments[v];return C($,null,[r["append-inner"]?.(...t),(!e.hideNoData||e.items.length)&&e.menuIcon?d(W,{class:"v-combobox__menu-icon",color:m.value?.fieldIconColor,icon:e.menuIcon,onMousedown:ve,onClick:He,"aria-label":N(H.value),title:N(H.value),tabindex:"-1"},null):void 0])}})}),Re({isFocused:b,isPristine:x,menu:s,search:c,selectionIndex:o,filteredItems:E,select:h},m)}});export{sl as V};
1
+ import{u as xe,t as I,e as Ve,m as pe,a as ke,V as Ce,b as we,f as Se,d as Ie}from"./VSelect-CIZuwLM5.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-CdDOSkFn.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-CZYoc6_3.js";import{u as Te,m as Me,h as _e}from"./filter-DD9yjMX8.js";import{g as Ne,p as Be,aB as Le,r as _,aT as F,e as G,bD as Ke,c as y,aW as z,t as Oe,aU as D,bE as J,u as Ue,a as d,m as k,o as ze,bF as $e,bG as Q,bs as qe,b as C,bH as He,F as $,bI as je,n as We,d as Ge,y as Je}from"./main-DAMpW2P5.js";import{a as X,g as Qe}from"./VDialog-CJfu1Z_a.js";import{a as Xe}from"./VDivider-DzC8v13-.js";import{V as Ye}from"./VCheckboxBtn-BuJfvjlJ.js";const Ze=Be({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Me({filterKeys:["title"]}),...pe({hideNoData:!0,returnObject:!0}),...ze(De({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...Ae({transition:!1})},"VCombobox"),sl=Ne()({name:"VCombobox",props:Ze(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,Y){let{emit:Z,slots:r}=Y;const{t:N}=Le(),m=_(),b=F(!1),x=F(!0),B=F(!1),q=_(),P=_(),o=F(-1);let L=!1;const{items:ee,transformIn:le,transformOut:ae}=xe(e),{textColorClasses:te,textColorStyles:ue}=Pe(()=>m.value?.color),u=G(e,"modelValue",[],l=>le(Ke(l)),l=>{const n=ae(l);return e.multiple?n:n[0]??null}),R=Fe(e),A=y(()=>!!(e.chips||r.chip)),g=y(()=>A.value||!!r.selection),V=F(!e.multiple&&!g.value?u.value[0]?.title??"":""),c=y({get:()=>V.value,set:l=>{if(V.value=l??"",!e.multiple&&!g.value&&(u.value=[I(e,l)],z(()=>P.value?.scrollToIndex(0))),l&&e.multiple&&e.delimiters?.length){const n=l.split(new RegExp(`(?:${e.delimiters.join("|")})+`));n.length>1&&(n.forEach(i=>{i=i.trim(),i&&h(I(e,i))}),V.value="")}l||(o.value=-1),x.value=!l}}),ne=y(()=>typeof e.counterValue=="function"?e.counterValue(u.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?u.value.length:c.value.length),{filteredItems:E,getMatches:oe}=Te(e,ee,()=>x.value?"":c.value),p=y(()=>e.hideSelected?E.value.filter(l=>!u.value.some(n=>n.value===l.value)):E.value),T=y(()=>e.hideNoData&&!p.value.length||R.isReadonly.value||R.isDisabled.value),K=G(e,"menu"),s=y({get:()=>K.value,set:l=>{K.value&&!l&&q.value?.ΨopenChildren.size||l&&T.value||(K.value=l)}}),H=Oe(()=>s.value?e.closeText:e.openText);D(V,l=>{L?z(()=>L=!1):b.value&&!s.value&&(s.value=!0),Z("update:search",l)}),D(u,l=>{!e.multiple&&!g.value&&(V.value=l[0]?.title??"")});const ie=y(()=>u.value.map(l=>l.value)),O=y(()=>(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&c.value===p.value[0]?.title)&&p.value.length>0&&!x.value&&!B.value),U=_(),se=Ve(U,m);function re(l){L=!0,e.openOnClear&&(s.value=!0)}function ce(){T.value||(s.value=!0)}function ve(l){T.value||(b.value&&(l.preventDefault(),l.stopPropagation()),s.value=!s.value)}function de(l){(Q(l)||l.key==="Backspace")&&m.value?.focus()}function fe(l){if($e(l)||R.isReadonly.value)return;const n=m.value?.selectionStart,i=u.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(l.key)&&l.preventDefault(),["Enter","ArrowDown"].includes(l.key)&&(s.value=!0),["Escape"].includes(l.key)&&(s.value=!1),["Enter","Escape","Tab"].includes(l.key)&&(O.value&&["Enter","Tab"].includes(l.key)&&!u.value.some(a=>{let{value:t}=a;return t===p.value[0].value})&&h(E.value[0]),x.value=!0),l.key==="ArrowDown"&&O.value&&U.value?.focus("next"),l.key==="Enter"&&c.value&&(h(I(e,c.value)),g.value&&(V.value="")),["Backspace","Delete"].includes(l.key)){if(!e.multiple&&g.value&&u.value.length>0&&!c.value)return h(u.value[0],!1);if(~o.value){l.preventDefault();const a=o.value;h(u.value[o.value],!1),o.value=a>=i-1?i-2:a}else l.key==="Backspace"&&!c.value&&(o.value=i-1);return}if(e.multiple)if(l.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const a=o.value>-1?o.value-1:i-1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(c.value.length,c.value.length))}else if(l.key==="ArrowRight"){if(o.value<0)return;const a=o.value+1;u.value[a]?o.value=a:(o.value=-1,m.value?.setSelectionRange(0,0))}else~o.value&&Q(l)&&(o.value=-1)}function me(){e.eager&&P.value?.calculateVisibleItems()}function he(){b.value&&(x.value=!0,m.value?.focus())}function h(l){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!l||l.props.disabled))if(e.multiple){const i=u.value.findIndex(t=>(e.valueComparator||J)(t.value,l.value)),a=n??!~i;if(~i){const t=a?[...u.value,l]:[...u.value];t.splice(i,1),u.value=t}else a&&(u.value=[...u.value,l]);e.clearOnSelect&&(c.value="")}else{const i=n!==!1;u.value=i?[l]:[],V.value=i&&!g.value?l.title:"",z(()=>{s.value=!1,x.value=!0})}}function be(l){b.value=!0,setTimeout(()=>{B.value=!0})}function ge(l){B.value=!1}function ye(l){(l==null||l===""&&!e.multiple&&!g.value)&&(u.value=[])}return D(b,(l,n)=>{if(!(l||l===n)&&(o.value=-1,s.value=!1,c.value)){if(e.multiple){h(I(e,c.value));return}if(!g.value)return;u.value.some(i=>{let{title:a}=i;return a===c.value})?V.value="":h(I(e,c.value))}}),D(s,()=>{if(!e.hideSelected&&s.value&&u.value.length){const l=p.value.findIndex(n=>u.value.some(i=>(e.valueComparator||J)(i.value,n.value)));qe&&window.requestAnimationFrame(()=>{l>=0&&P.value?.scrollToIndex(l)})}}),D(()=>e.items,(l,n)=>{s.value||b.value&&!n.length&&l.length&&(s.value=!0)}),Ue(()=>{const l=!!(!e.hideNoData||p.value.length||r["prepend-item"]||r["append-item"]||r["no-data"]),n=u.value.length>0,i=j.filterProps(e);return d(j,k({ref:m},i,{modelValue:c.value,"onUpdate:modelValue":[a=>c.value=a,ye],focused:b.value,"onUpdate:focused":a=>b.value=a,validationValue:u.externalValue,counterValue:ne.value,dirty:n,class:["v-combobox",{"v-combobox--active-menu":s.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!g.value,"v-combobox--selecting-index":o.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:R.isReadonly.value,placeholder:n?void 0:e.placeholder,"onClick:clear":re,"onMousedown:control":ce,onKeydown:fe}),{...r,default:()=>C($,null,[d(ke,k({ref:q,modelValue:s.value,"onUpdate:modelValue":a=>s.value=a,activator:"parent",contentClass:"v-combobox__content",disabled:T.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:me,onAfterLeave:he},e.menuProps),{default:()=>[l&&d(Ce,k({ref:U,filterable:!0,selected:ie.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:a=>a.preventDefault(),onKeydown:de,onFocusin:be,onFocusout:ge,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},se,e.listProps),{default:()=>[r["prepend-item"]?.(),!p.value.length&&!e.hideNoData&&(r["no-data"]?.()??d(X,{key:"no-data",title:N(e.noDataText)},null)),d(we,{ref:P,renderless:!0,items:p.value,itemKey:"value"},{default:a=>{let{item:t,index:v,itemRef:M}=a;const w=k(t.props,{ref:M,key:t.value,active:O.value&&v===0?!0:void 0,onClick:()=>h(t,null)});return t.type==="divider"?r.divider?.({props:t.raw,index:v})??d(Xe,k(t.props,{key:`divider-${v}`}),null):t.type==="subheader"?r.subheader?.({props:t.raw,index:v})??d(Se,k(t.props,{key:`subheader-${v}`}),null):r.item?.({item:t,index:v,props:w})??d(X,k(w,{role:"option"}),{prepend:S=>{let{isSelected:f}=S;return C($,null,[e.multiple&&!e.hideSelected?d(Ye,{key:t.value,modelValue:f,ripple:!1,tabindex:"-1"},null):void 0,t.props.prependAvatar&&d(Qe,{image:t.props.prependAvatar},null),t.props.prependIcon&&d(W,{icon:t.props.prependIcon},null)])},title:()=>x.value?t.title:_e("v-combobox",t.title,oe(t)?.title)})}}),r["append-item"]?.()]})]}),u.value.map((a,t)=>{function v(f){f.stopPropagation(),f.preventDefault(),h(a,!1)}const M={"onClick:close":v,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),v(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},w=A.value?!!r.chip:!!r.selection,S=w?je(A.value?r.chip({item:a,index:t,props:M}):r.selection({item:a,index:t})):void 0;if(!(w&&!S))return C("div",{key:a.value,class:Ge(["v-combobox__selection",t===o.value&&["v-combobox__selection--selected",te.value]]),style:We(t===o.value?ue.value:{})},[A.value?r.chip?d(Ee,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:a.title}}},{default:()=>[S]}):d(Ie,k({key:"chip",closable:e.closableChips,size:"small",text:a.title,disabled:a.props.disabled},M),null):S??C("span",{class:"v-combobox__selection-text"},[a.title,e.multiple&&t<u.value.length-1&&C("span",{class:"v-combobox__selection-comma"},[Je(",")])])])})]),"append-inner":function(){for(var a=arguments.length,t=new Array(a),v=0;v<a;v++)t[v]=arguments[v];return C($,null,[r["append-inner"]?.(...t),(!e.hideNoData||e.items.length)&&e.menuIcon?d(W,{class:"v-combobox__menu-icon",color:m.value?.fieldIconColor,icon:e.menuIcon,onMousedown:ve,onClick:He,"aria-label":N(H.value),title:N(H.value),tabindex:"-1"},null):void 0])}})}),Re({isFocused:b,isPristine:x,menu:s,search:c,selectionIndex:o,filteredItems:E,select:h},m)}});export{sl as V};