codex 1.8.0a3__py3-none-any.whl → 1.8.0a4__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/failed/query.py +9 -6
  2. codex/librarian/scribe/importer/search/update.py +37 -22
  3. codex/librarian/status_controller.py +27 -18
  4. codex/librarian/watchdog/const.py +19 -24
  5. codex/static_root/assets/{VCheckbox-DOvv8UEO.e3653c1670c8.js → VCheckbox--x5j8A4a.47af0eec9cc5.js} +1 -1
  6. codex/static_root/assets/VCheckbox--x5j8A4a.47af0eec9cc5.js.br +0 -0
  7. codex/static_root/assets/VCheckbox--x5j8A4a.47af0eec9cc5.js.gz +0 -0
  8. codex/static_root/assets/{VCheckbox-DOvv8UEO.js → VCheckbox--x5j8A4a.js} +1 -1
  9. codex/static_root/assets/VCheckbox--x5j8A4a.js.br +0 -0
  10. codex/static_root/assets/VCheckbox--x5j8A4a.js.gz +0 -0
  11. codex/static_root/assets/{VCheckboxBtn-BeZZDumo.59731a32657e.js → VCheckboxBtn-C44aiFUU.3d08a2da4b68.js} +1 -1
  12. codex/static_root/assets/VCheckboxBtn-C44aiFUU.3d08a2da4b68.js.br +0 -0
  13. codex/static_root/assets/VCheckboxBtn-C44aiFUU.3d08a2da4b68.js.gz +0 -0
  14. codex/static_root/assets/{VCheckboxBtn-BeZZDumo.js → VCheckboxBtn-C44aiFUU.js} +1 -1
  15. codex/static_root/assets/VCheckboxBtn-C44aiFUU.js.br +0 -0
  16. codex/static_root/assets/VCheckboxBtn-C44aiFUU.js.gz +0 -0
  17. codex/static_root/assets/{VCombobox-BRJRW2px.369544360b22.js → VCombobox-DuJ5WhJs.d4d57278cd15.js} +1 -1
  18. codex/static_root/assets/VCombobox-DuJ5WhJs.d4d57278cd15.js.br +0 -0
  19. codex/static_root/assets/VCombobox-DuJ5WhJs.d4d57278cd15.js.gz +0 -0
  20. codex/static_root/assets/{VCombobox-BRJRW2px.js → VCombobox-DuJ5WhJs.js} +1 -1
  21. codex/static_root/assets/VCombobox-DuJ5WhJs.js.br +0 -0
  22. codex/static_root/assets/VCombobox-DuJ5WhJs.js.gz +0 -0
  23. codex/static_root/assets/{VDialog-D_vkvatj.83e078fa850c.js → VDialog-BxuI97hb.250bc105e373.js} +1 -1
  24. codex/static_root/assets/VDialog-BxuI97hb.250bc105e373.js.br +0 -0
  25. codex/static_root/assets/VDialog-BxuI97hb.250bc105e373.js.gz +0 -0
  26. codex/static_root/assets/{VDialog-D_vkvatj.js → VDialog-BxuI97hb.js} +1 -1
  27. codex/static_root/assets/VDialog-BxuI97hb.js.br +0 -0
  28. codex/static_root/assets/VDialog-BxuI97hb.js.gz +0 -0
  29. codex/static_root/assets/{VDivider-BH2Oj58Z.83d2c907faff.js → VDivider-DSzkVD8n.9346c2b22bde.js} +1 -1
  30. codex/static_root/assets/VDivider-DSzkVD8n.9346c2b22bde.js.br +0 -0
  31. codex/static_root/assets/VDivider-DSzkVD8n.9346c2b22bde.js.gz +0 -0
  32. codex/static_root/assets/{VDivider-BH2Oj58Z.js → VDivider-DSzkVD8n.js} +1 -1
  33. codex/static_root/assets/VDivider-DSzkVD8n.js.br +0 -0
  34. codex/static_root/assets/VDivider-DSzkVD8n.js.gz +0 -0
  35. codex/static_root/assets/{VExpansionPanels-Ccv4gBFD.ed063db2e518.js → VExpansionPanels-7DSA7BWQ.7fc1339ad9d6.js} +1 -1
  36. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.7fc1339ad9d6.js.br +0 -0
  37. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.7fc1339ad9d6.js.gz +0 -0
  38. codex/static_root/assets/{VExpansionPanels-Ccv4gBFD.js → VExpansionPanels-7DSA7BWQ.js} +1 -1
  39. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.js.br +0 -0
  40. codex/static_root/assets/VExpansionPanels-7DSA7BWQ.js.gz +0 -0
  41. codex/static_root/assets/{VForm-S5eiHGJ0.d304a07dc6d1.js → VForm-BZtlScrY.bf87851b598f.js} +1 -1
  42. codex/static_root/assets/VForm-BZtlScrY.bf87851b598f.js.br +0 -0
  43. codex/static_root/assets/VForm-BZtlScrY.bf87851b598f.js.gz +0 -0
  44. codex/static_root/assets/{VForm-S5eiHGJ0.js → VForm-BZtlScrY.js} +1 -1
  45. codex/static_root/assets/VForm-BZtlScrY.js.br +0 -0
  46. codex/static_root/assets/VForm-BZtlScrY.js.gz +0 -0
  47. codex/static_root/assets/{VRadioGroup-CyCYk3Z_.4309dbf0173c.js → VRadioGroup-CRzhTpe9.1fc9e0e7a980.js} +1 -1
  48. codex/static_root/assets/VRadioGroup-CRzhTpe9.1fc9e0e7a980.js.br +0 -0
  49. codex/static_root/assets/VRadioGroup-CRzhTpe9.1fc9e0e7a980.js.gz +0 -0
  50. codex/static_root/assets/{VRadioGroup-CyCYk3Z_.js → VRadioGroup-CRzhTpe9.js} +1 -1
  51. codex/static_root/assets/VRadioGroup-CRzhTpe9.js.br +0 -0
  52. codex/static_root/assets/VRadioGroup-CRzhTpe9.js.gz +0 -0
  53. codex/static_root/assets/{VSelect-BOhtkCV1.057479737b7f.js → VSelect-_Cduank3.65530f781519.js} +1 -1
  54. codex/static_root/assets/VSelect-_Cduank3.65530f781519.js.br +0 -0
  55. codex/static_root/assets/VSelect-_Cduank3.65530f781519.js.gz +0 -0
  56. codex/static_root/assets/{VSelect-BOhtkCV1.js → VSelect-_Cduank3.js} +1 -1
  57. codex/static_root/assets/VSelect-_Cduank3.js.br +0 -0
  58. codex/static_root/assets/VSelect-_Cduank3.js.gz +0 -0
  59. codex/static_root/assets/{VSelectionControl-CmXEFw20.js → VSelectionControl-C0Md0bXa.0b96d6d65ba2.js} +1 -1
  60. codex/static_root/assets/VSelectionControl-C0Md0bXa.0b96d6d65ba2.js.br +0 -0
  61. codex/static_root/assets/VSelectionControl-C0Md0bXa.0b96d6d65ba2.js.gz +0 -0
  62. codex/static_root/assets/{VSelectionControl-CmXEFw20.e256f0d0f97d.js → VSelectionControl-C0Md0bXa.js} +1 -1
  63. codex/static_root/assets/VSelectionControl-C0Md0bXa.js.br +0 -0
  64. codex/static_root/assets/VSelectionControl-C0Md0bXa.js.gz +0 -0
  65. codex/static_root/assets/{VTable-BDxzw_rH.24ce227e6076.js → VTable-lswnBwdy.f27115046a94.js} +1 -1
  66. codex/static_root/assets/VTable-lswnBwdy.f27115046a94.js.br +0 -0
  67. codex/static_root/assets/VTable-lswnBwdy.f27115046a94.js.gz +0 -0
  68. codex/static_root/assets/{VTable-BDxzw_rH.js → VTable-lswnBwdy.js} +1 -1
  69. codex/static_root/assets/VTable-lswnBwdy.js.br +0 -0
  70. codex/static_root/assets/VTable-lswnBwdy.js.gz +0 -0
  71. codex/static_root/assets/{VWindowItem-CuDwxsEy.4d68002250ae.js → VWindowItem-hsPEpCj_.4bf66f9ba4b1.js} +1 -1
  72. codex/static_root/assets/VWindowItem-hsPEpCj_.4bf66f9ba4b1.js.br +0 -0
  73. codex/static_root/assets/VWindowItem-hsPEpCj_.4bf66f9ba4b1.js.gz +0 -0
  74. codex/static_root/assets/{VWindowItem-CuDwxsEy.js → VWindowItem-hsPEpCj_.js} +1 -1
  75. codex/static_root/assets/VWindowItem-hsPEpCj_.js.br +0 -0
  76. codex/static_root/assets/VWindowItem-hsPEpCj_.js.gz +0 -0
  77. codex/static_root/assets/{admin-BZQmoFts.d8e6303f8aee.js → admin-6qrzqcJO.2b8351e2c2c6.js} +1 -1
  78. codex/static_root/assets/admin-6qrzqcJO.2b8351e2c2c6.js.br +0 -0
  79. codex/static_root/assets/admin-6qrzqcJO.2b8351e2c2c6.js.gz +0 -0
  80. codex/static_root/assets/{admin-BZQmoFts.js → admin-6qrzqcJO.js} +1 -1
  81. codex/static_root/assets/admin-6qrzqcJO.js.br +0 -0
  82. codex/static_root/assets/admin-6qrzqcJO.js.gz +0 -0
  83. codex/static_root/assets/{admin-U3AawSbo.f171316d0a93.js → admin-CVe4N6vl.5e8ec2bd60d3.js} +1 -1
  84. codex/static_root/assets/admin-CVe4N6vl.5e8ec2bd60d3.js.br +0 -0
  85. codex/static_root/assets/admin-CVe4N6vl.5e8ec2bd60d3.js.gz +0 -0
  86. codex/static_root/assets/{admin-U3AawSbo.js → admin-CVe4N6vl.js} +1 -1
  87. codex/static_root/assets/admin-CVe4N6vl.js.br +0 -0
  88. codex/static_root/assets/admin-CVe4N6vl.js.gz +0 -0
  89. codex/static_root/assets/{admin-menu-D9RDVBlr.3b62ee7a8b95.js → admin-menu-B6raGfpC.790d01e1ec98.js} +1 -1
  90. codex/static_root/assets/admin-menu-B6raGfpC.790d01e1ec98.js.br +0 -0
  91. codex/static_root/assets/admin-menu-B6raGfpC.790d01e1ec98.js.gz +0 -0
  92. codex/static_root/assets/{admin-menu-D9RDVBlr.js → admin-menu-B6raGfpC.js} +1 -1
  93. codex/static_root/assets/admin-menu-B6raGfpC.js.br +0 -0
  94. codex/static_root/assets/admin-menu-B6raGfpC.js.gz +0 -0
  95. codex/static_root/assets/{admin-settings-button-progress-DwWq9uM1.fbacafc0db08.js → admin-settings-button-progress-D0jgpe2z.f9d1511fe4a7.js} +1 -1
  96. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.f9d1511fe4a7.js.br +0 -0
  97. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.f9d1511fe4a7.js.gz +0 -0
  98. codex/static_root/assets/{admin-settings-button-progress-DwWq9uM1.js → admin-settings-button-progress-D0jgpe2z.js} +1 -1
  99. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.js.br +0 -0
  100. codex/static_root/assets/admin-settings-button-progress-D0jgpe2z.js.gz +0 -0
  101. codex/static_root/assets/{browser-DFM_JsAK.js → browser-DPWgTJvq.aa42fd45fdc5.js} +1 -1
  102. codex/static_root/assets/browser-DPWgTJvq.aa42fd45fdc5.js.br +0 -0
  103. codex/static_root/assets/browser-DPWgTJvq.aa42fd45fdc5.js.gz +0 -0
  104. codex/static_root/assets/{browser-DFM_JsAK.bffd4eb259d8.js → browser-DPWgTJvq.js} +1 -1
  105. codex/static_root/assets/browser-DPWgTJvq.js.br +0 -0
  106. codex/static_root/assets/browser-DPWgTJvq.js.gz +0 -0
  107. codex/static_root/assets/{change-password-dialog-yLNkzMp9.50da9f352709.js → change-password-dialog-f0bnLsTX.ad5174bfd6b9.js} +1 -1
  108. codex/static_root/assets/change-password-dialog-f0bnLsTX.ad5174bfd6b9.js.br +0 -0
  109. codex/static_root/assets/change-password-dialog-f0bnLsTX.ad5174bfd6b9.js.gz +0 -0
  110. codex/static_root/assets/{change-password-dialog-yLNkzMp9.js → change-password-dialog-f0bnLsTX.js} +1 -1
  111. codex/static_root/assets/change-password-dialog-f0bnLsTX.js.br +0 -0
  112. codex/static_root/assets/change-password-dialog-f0bnLsTX.js.gz +0 -0
  113. codex/static_root/assets/{confirm-dialog-q6RAb_qs.120460c84883.js → confirm-dialog-D2RCUHSr.ccb67b05d69e.js} +1 -1
  114. codex/static_root/assets/confirm-dialog-D2RCUHSr.ccb67b05d69e.js.br +0 -0
  115. codex/static_root/assets/confirm-dialog-D2RCUHSr.ccb67b05d69e.js.gz +0 -0
  116. codex/static_root/assets/{confirm-dialog-q6RAb_qs.js → confirm-dialog-D2RCUHSr.js} +1 -1
  117. codex/static_root/assets/confirm-dialog-D2RCUHSr.js.br +0 -0
  118. codex/static_root/assets/confirm-dialog-D2RCUHSr.js.gz +0 -0
  119. codex/static_root/assets/{datetime-column-HJ5dvW99.ba0a30b3fc0d.js → datetime-column-C544paek.4b5c5cd44e86.js} +1 -1
  120. codex/static_root/assets/datetime-column-C544paek.4b5c5cd44e86.js.br +0 -0
  121. codex/static_root/assets/datetime-column-C544paek.4b5c5cd44e86.js.gz +0 -0
  122. codex/static_root/assets/{datetime-column-HJ5dvW99.js → datetime-column-C544paek.js} +1 -1
  123. codex/static_root/assets/datetime-column-C544paek.js.br +0 -0
  124. codex/static_root/assets/datetime-column-C544paek.js.gz +0 -0
  125. codex/static_root/assets/{filter-r_zFj-tS.161a85ef1860.js → filter-C2tmS7Gm.59b3cb2ccc7e.js} +1 -1
  126. codex/static_root/assets/filter-C2tmS7Gm.59b3cb2ccc7e.js.br +0 -0
  127. codex/static_root/assets/filter-C2tmS7Gm.59b3cb2ccc7e.js.gz +0 -0
  128. codex/static_root/assets/{filter-r_zFj-tS.js → filter-C2tmS7Gm.js} +1 -1
  129. codex/static_root/assets/filter-C2tmS7Gm.js.br +0 -0
  130. codex/static_root/assets/filter-C2tmS7Gm.js.gz +0 -0
  131. codex/static_root/assets/{flag-tab-D0Z4uhsg.06e720e71319.js → flag-tab-BVUqzGNH.307659fba7b5.js} +1 -1
  132. codex/static_root/assets/flag-tab-BVUqzGNH.307659fba7b5.js.br +0 -0
  133. codex/static_root/assets/flag-tab-BVUqzGNH.307659fba7b5.js.gz +0 -0
  134. codex/static_root/assets/{flag-tab-D0Z4uhsg.js → flag-tab-BVUqzGNH.js} +1 -1
  135. codex/static_root/assets/flag-tab-BVUqzGNH.js.br +0 -0
  136. codex/static_root/assets/flag-tab-BVUqzGNH.js.gz +0 -0
  137. codex/static_root/assets/{forwardRefs-Nj5UEeg5.js → forwardRefs-Byns6lbl.018798a57db2.js} +1 -1
  138. codex/static_root/assets/forwardRefs-Byns6lbl.018798a57db2.js.br +0 -0
  139. codex/static_root/assets/forwardRefs-Byns6lbl.018798a57db2.js.gz +0 -0
  140. codex/static_root/assets/{forwardRefs-Nj5UEeg5.50a55d7d8b68.js → forwardRefs-Byns6lbl.js} +1 -1
  141. codex/static_root/assets/forwardRefs-Byns6lbl.js.br +0 -0
  142. codex/static_root/assets/forwardRefs-Byns6lbl.js.gz +0 -0
  143. codex/static_root/assets/{group-tab-lamd9pcq.604a78bd4e4f.js → group-tab-TNxZJJZ6.6d88969a9263.js} +1 -1
  144. codex/static_root/assets/group-tab-TNxZJJZ6.6d88969a9263.js.br +0 -0
  145. codex/static_root/assets/group-tab-TNxZJJZ6.6d88969a9263.js.gz +0 -0
  146. codex/static_root/assets/{group-tab-lamd9pcq.js → group-tab-TNxZJJZ6.js} +1 -1
  147. codex/static_root/assets/group-tab-TNxZJJZ6.js.br +0 -0
  148. codex/static_root/assets/group-tab-TNxZJJZ6.js.gz +0 -0
  149. codex/static_root/assets/{http-error-DRYA5ir1.46f4babacf15.js → http-error-D3uGBdtN.39e149587f96.js} +1 -1
  150. codex/static_root/assets/http-error-D3uGBdtN.39e149587f96.js.br +0 -0
  151. codex/static_root/assets/http-error-D3uGBdtN.39e149587f96.js.gz +0 -0
  152. codex/static_root/assets/{http-error-DRYA5ir1.js → http-error-D3uGBdtN.js} +1 -1
  153. codex/static_root/assets/http-error-D3uGBdtN.js.br +0 -0
  154. codex/static_root/assets/http-error-D3uGBdtN.js.gz +0 -0
  155. codex/static_root/assets/{index-Cl7tPJIx.c0a239cf7069.js → index-J6F_OMTQ.2a8861f7acc1.js} +1 -1
  156. codex/static_root/assets/index-J6F_OMTQ.2a8861f7acc1.js.br +0 -0
  157. codex/static_root/assets/index-J6F_OMTQ.2a8861f7acc1.js.gz +0 -0
  158. codex/static_root/assets/{index-Cl7tPJIx.js → index-J6F_OMTQ.js} +1 -1
  159. codex/static_root/assets/index-J6F_OMTQ.js.br +0 -0
  160. codex/static_root/assets/index-J6F_OMTQ.js.gz +0 -0
  161. codex/static_root/assets/{library-tab-2UucZZAW.f4541a086231.js → library-tab-DX9ZW9uM.8419900ed9b8.js} +1 -1
  162. codex/static_root/assets/library-tab-DX9ZW9uM.8419900ed9b8.js.br +0 -0
  163. codex/static_root/assets/library-tab-DX9ZW9uM.8419900ed9b8.js.gz +0 -0
  164. codex/static_root/assets/{library-tab-2UucZZAW.js → library-tab-DX9ZW9uM.js} +1 -1
  165. codex/static_root/assets/library-tab-DX9ZW9uM.js.br +0 -0
  166. codex/static_root/assets/library-tab-DX9ZW9uM.js.gz +0 -0
  167. codex/static_root/assets/{main-BX4TjIpG.dc79406e2a7b.js → main-CXE4elND.b45c7c290af2.js} +3 -3
  168. codex/static_root/assets/main-CXE4elND.b45c7c290af2.js.br +0 -0
  169. codex/static_root/assets/main-CXE4elND.b45c7c290af2.js.gz +0 -0
  170. codex/static_root/assets/{main-BX4TjIpG.js → main-CXE4elND.js} +3 -3
  171. codex/static_root/assets/main-CXE4elND.js.br +0 -0
  172. codex/static_root/assets/main-CXE4elND.js.gz +0 -0
  173. codex/static_root/assets/pager-full-pdf-C8QcluEe.99a4c4dddf53.js +1 -0
  174. codex/static_root/assets/pager-full-pdf-C8QcluEe.99a4c4dddf53.js.br +0 -0
  175. codex/static_root/assets/pager-full-pdf-C8QcluEe.99a4c4dddf53.js.gz +0 -0
  176. codex/static_root/assets/pager-full-pdf-C8QcluEe.js +1 -0
  177. codex/static_root/assets/pager-full-pdf-C8QcluEe.js.br +0 -0
  178. codex/static_root/assets/pager-full-pdf-C8QcluEe.js.gz +0 -0
  179. codex/static_root/assets/{pagination-toolbar-48pwYEe_.892375c5aa51.js → pagination-toolbar-BqvFln9z.d38452f8ce48.js} +1 -1
  180. codex/static_root/assets/pagination-toolbar-BqvFln9z.d38452f8ce48.js.br +0 -0
  181. codex/static_root/assets/pagination-toolbar-BqvFln9z.d38452f8ce48.js.gz +0 -0
  182. codex/static_root/assets/{pagination-toolbar-48pwYEe_.js → pagination-toolbar-BqvFln9z.js} +1 -1
  183. codex/static_root/assets/pagination-toolbar-BqvFln9z.js.br +0 -0
  184. codex/static_root/assets/pagination-toolbar-BqvFln9z.js.gz +0 -0
  185. codex/static_root/assets/{pdf-doc-GyrCvyP5.54b26ba8d93c.js → pdf-doc-BeNzjayP.e6b65a74287b.js} +1 -1
  186. codex/static_root/assets/pdf-doc-BeNzjayP.e6b65a74287b.js.br +0 -0
  187. codex/static_root/assets/pdf-doc-BeNzjayP.e6b65a74287b.js.gz +0 -0
  188. codex/static_root/assets/{pdf-doc-GyrCvyP5.js → pdf-doc-BeNzjayP.js} +1 -1
  189. codex/static_root/assets/pdf-doc-BeNzjayP.js.br +0 -0
  190. codex/static_root/assets/pdf-doc-BeNzjayP.js.gz +0 -0
  191. codex/static_root/assets/{reader-lmk4MiSj.js → reader-DG9FVXqI.366a61e33d8b.js} +2 -2
  192. codex/static_root/assets/reader-DG9FVXqI.366a61e33d8b.js.br +0 -0
  193. codex/static_root/assets/reader-DG9FVXqI.366a61e33d8b.js.gz +0 -0
  194. codex/static_root/assets/{reader-lmk4MiSj.9239243e1be1.js → reader-DG9FVXqI.js} +2 -2
  195. codex/static_root/assets/reader-DG9FVXqI.js.br +0 -0
  196. codex/static_root/assets/reader-DG9FVXqI.js.gz +0 -0
  197. codex/static_root/assets/{relation-chips-Dgb6LQdZ.c028ab2df979.js → relation-chips-BrO8HnXq.fa4a7390c640.js} +1 -1
  198. codex/static_root/assets/relation-chips-BrO8HnXq.fa4a7390c640.js.br +0 -0
  199. codex/static_root/assets/relation-chips-BrO8HnXq.fa4a7390c640.js.gz +0 -0
  200. codex/static_root/assets/{relation-chips-Dgb6LQdZ.js → relation-chips-BrO8HnXq.js} +1 -1
  201. codex/static_root/assets/relation-chips-BrO8HnXq.js.br +0 -0
  202. codex/static_root/assets/relation-chips-BrO8HnXq.js.gz +0 -0
  203. codex/static_root/assets/{settings-drawer-CRmLEncr.js → settings-drawer-a2xwlRQb.41475006862d.js} +2 -2
  204. codex/static_root/assets/settings-drawer-a2xwlRQb.41475006862d.js.br +0 -0
  205. codex/static_root/assets/settings-drawer-a2xwlRQb.41475006862d.js.gz +0 -0
  206. codex/static_root/assets/{settings-drawer-CRmLEncr.6937d45e18af.js → settings-drawer-a2xwlRQb.js} +2 -2
  207. codex/static_root/assets/settings-drawer-a2xwlRQb.js.br +0 -0
  208. codex/static_root/assets/settings-drawer-a2xwlRQb.js.gz +0 -0
  209. codex/static_root/assets/{ssrBoot-CCKPlpgB.c90fa83e0817.js → ssrBoot-BUdwZUw6.964a0734eff2.js} +1 -1
  210. codex/static_root/assets/ssrBoot-BUdwZUw6.964a0734eff2.js.br +0 -0
  211. codex/static_root/assets/ssrBoot-BUdwZUw6.964a0734eff2.js.gz +0 -0
  212. codex/static_root/assets/{ssrBoot-CCKPlpgB.js → ssrBoot-BUdwZUw6.js} +1 -1
  213. codex/static_root/assets/ssrBoot-BUdwZUw6.js.br +0 -0
  214. codex/static_root/assets/ssrBoot-BUdwZUw6.js.gz +0 -0
  215. codex/static_root/assets/{stats-tab-CrU_p2gC.e12768f9423d.js → stats-tab-D_Sf0W-w.7dd721aef1d7.js} +1 -1
  216. codex/static_root/assets/stats-tab-D_Sf0W-w.7dd721aef1d7.js.br +0 -0
  217. codex/static_root/assets/stats-tab-D_Sf0W-w.7dd721aef1d7.js.gz +0 -0
  218. codex/static_root/assets/{stats-tab-CrU_p2gC.js → stats-tab-D_Sf0W-w.js} +1 -1
  219. codex/static_root/assets/stats-tab-D_Sf0W-w.js.br +0 -0
  220. codex/static_root/assets/stats-tab-D_Sf0W-w.js.gz +0 -0
  221. codex/static_root/assets/{task-tab-Bp0wsH4V.2a5135c30818.js → task-tab-CuZPm55f.827f36543dcc.js} +1 -1
  222. codex/static_root/assets/task-tab-CuZPm55f.827f36543dcc.js.br +0 -0
  223. codex/static_root/assets/task-tab-CuZPm55f.827f36543dcc.js.gz +0 -0
  224. codex/static_root/assets/{task-tab-Bp0wsH4V.js → task-tab-CuZPm55f.js} +1 -1
  225. codex/static_root/assets/task-tab-CuZPm55f.js.br +0 -0
  226. codex/static_root/assets/task-tab-CuZPm55f.js.gz +0 -0
  227. codex/static_root/assets/{unauthorized-DObmibd6.b47434919de7.js → unauthorized-Bx_I2aj6.4846dbaf53c3.js} +1 -1
  228. codex/static_root/assets/unauthorized-Bx_I2aj6.4846dbaf53c3.js.br +0 -0
  229. codex/static_root/assets/unauthorized-Bx_I2aj6.4846dbaf53c3.js.gz +0 -0
  230. codex/static_root/assets/{unauthorized-DObmibd6.js → unauthorized-Bx_I2aj6.js} +1 -1
  231. codex/static_root/assets/unauthorized-Bx_I2aj6.js.br +0 -0
  232. codex/static_root/assets/unauthorized-Bx_I2aj6.js.gz +0 -0
  233. codex/static_root/assets/{user-tab-DedY8MbN.624af3a6a978.js → user-tab-6FMrYQKf.ac405e881ade.js} +1 -1
  234. codex/static_root/assets/user-tab-6FMrYQKf.ac405e881ade.js.br +0 -0
  235. codex/static_root/assets/user-tab-6FMrYQKf.ac405e881ade.js.gz +0 -0
  236. codex/static_root/assets/{user-tab-DedY8MbN.js → user-tab-6FMrYQKf.js} +1 -1
  237. codex/static_root/assets/user-tab-6FMrYQKf.js.br +0 -0
  238. codex/static_root/assets/user-tab-6FMrYQKf.js.gz +0 -0
  239. codex/static_root/{manifest.4217bf6f9edb.json → manifest.dfd8ee684697.json} +320 -320
  240. codex/static_root/manifest.dfd8ee684697.json.br +0 -0
  241. codex/static_root/manifest.dfd8ee684697.json.gz +0 -0
  242. codex/static_root/manifest.json +320 -320
  243. codex/static_root/manifest.json.br +0 -0
  244. codex/static_root/manifest.json.gz +0 -0
  245. codex/static_root/staticfiles.json +1 -1
  246. {codex-1.8.0a3.dist-info → codex-1.8.0a4.dist-info}/METADATA +1 -1
  247. {codex-1.8.0a3.dist-info → codex-1.8.0a4.dist-info}/RECORD +250 -250
  248. codex/static_root/assets/VCheckbox-DOvv8UEO.e3653c1670c8.js.br +0 -0
  249. codex/static_root/assets/VCheckbox-DOvv8UEO.e3653c1670c8.js.gz +0 -0
  250. codex/static_root/assets/VCheckbox-DOvv8UEO.js.br +0 -0
  251. codex/static_root/assets/VCheckbox-DOvv8UEO.js.gz +0 -0
  252. codex/static_root/assets/VCheckboxBtn-BeZZDumo.59731a32657e.js.br +0 -0
  253. codex/static_root/assets/VCheckboxBtn-BeZZDumo.59731a32657e.js.gz +0 -0
  254. codex/static_root/assets/VCheckboxBtn-BeZZDumo.js.br +0 -0
  255. codex/static_root/assets/VCheckboxBtn-BeZZDumo.js.gz +0 -0
  256. codex/static_root/assets/VCombobox-BRJRW2px.369544360b22.js.br +0 -0
  257. codex/static_root/assets/VCombobox-BRJRW2px.369544360b22.js.gz +0 -0
  258. codex/static_root/assets/VCombobox-BRJRW2px.js.br +0 -0
  259. codex/static_root/assets/VCombobox-BRJRW2px.js.gz +0 -0
  260. codex/static_root/assets/VDialog-D_vkvatj.83e078fa850c.js.br +0 -0
  261. codex/static_root/assets/VDialog-D_vkvatj.83e078fa850c.js.gz +0 -0
  262. codex/static_root/assets/VDialog-D_vkvatj.js.br +0 -0
  263. codex/static_root/assets/VDialog-D_vkvatj.js.gz +0 -0
  264. codex/static_root/assets/VDivider-BH2Oj58Z.83d2c907faff.js.br +0 -0
  265. codex/static_root/assets/VDivider-BH2Oj58Z.83d2c907faff.js.gz +0 -0
  266. codex/static_root/assets/VDivider-BH2Oj58Z.js.br +0 -0
  267. codex/static_root/assets/VDivider-BH2Oj58Z.js.gz +0 -0
  268. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.ed063db2e518.js.br +0 -0
  269. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.ed063db2e518.js.gz +0 -0
  270. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.js.br +0 -0
  271. codex/static_root/assets/VExpansionPanels-Ccv4gBFD.js.gz +0 -0
  272. codex/static_root/assets/VForm-S5eiHGJ0.d304a07dc6d1.js.br +0 -0
  273. codex/static_root/assets/VForm-S5eiHGJ0.d304a07dc6d1.js.gz +0 -0
  274. codex/static_root/assets/VForm-S5eiHGJ0.js.br +0 -0
  275. codex/static_root/assets/VForm-S5eiHGJ0.js.gz +0 -0
  276. codex/static_root/assets/VRadioGroup-CyCYk3Z_.4309dbf0173c.js.br +0 -0
  277. codex/static_root/assets/VRadioGroup-CyCYk3Z_.4309dbf0173c.js.gz +0 -0
  278. codex/static_root/assets/VRadioGroup-CyCYk3Z_.js.br +0 -0
  279. codex/static_root/assets/VRadioGroup-CyCYk3Z_.js.gz +0 -0
  280. codex/static_root/assets/VSelect-BOhtkCV1.057479737b7f.js.br +0 -0
  281. codex/static_root/assets/VSelect-BOhtkCV1.057479737b7f.js.gz +0 -0
  282. codex/static_root/assets/VSelect-BOhtkCV1.js.br +0 -0
  283. codex/static_root/assets/VSelect-BOhtkCV1.js.gz +0 -0
  284. codex/static_root/assets/VSelectionControl-CmXEFw20.e256f0d0f97d.js.br +0 -0
  285. codex/static_root/assets/VSelectionControl-CmXEFw20.e256f0d0f97d.js.gz +0 -0
  286. codex/static_root/assets/VSelectionControl-CmXEFw20.js.br +0 -0
  287. codex/static_root/assets/VSelectionControl-CmXEFw20.js.gz +0 -0
  288. codex/static_root/assets/VTable-BDxzw_rH.24ce227e6076.js.br +0 -0
  289. codex/static_root/assets/VTable-BDxzw_rH.24ce227e6076.js.gz +0 -0
  290. codex/static_root/assets/VTable-BDxzw_rH.js.br +0 -0
  291. codex/static_root/assets/VTable-BDxzw_rH.js.gz +0 -0
  292. codex/static_root/assets/VWindowItem-CuDwxsEy.4d68002250ae.js.br +0 -0
  293. codex/static_root/assets/VWindowItem-CuDwxsEy.4d68002250ae.js.gz +0 -0
  294. codex/static_root/assets/VWindowItem-CuDwxsEy.js.br +0 -0
  295. codex/static_root/assets/VWindowItem-CuDwxsEy.js.gz +0 -0
  296. codex/static_root/assets/admin-BZQmoFts.d8e6303f8aee.js.br +0 -0
  297. codex/static_root/assets/admin-BZQmoFts.d8e6303f8aee.js.gz +0 -0
  298. codex/static_root/assets/admin-BZQmoFts.js.br +0 -0
  299. codex/static_root/assets/admin-BZQmoFts.js.gz +0 -0
  300. codex/static_root/assets/admin-U3AawSbo.f171316d0a93.js.br +0 -0
  301. codex/static_root/assets/admin-U3AawSbo.f171316d0a93.js.gz +0 -0
  302. codex/static_root/assets/admin-U3AawSbo.js.br +0 -0
  303. codex/static_root/assets/admin-U3AawSbo.js.gz +0 -0
  304. codex/static_root/assets/admin-menu-D9RDVBlr.3b62ee7a8b95.js.br +0 -0
  305. codex/static_root/assets/admin-menu-D9RDVBlr.3b62ee7a8b95.js.gz +0 -0
  306. codex/static_root/assets/admin-menu-D9RDVBlr.js.br +0 -0
  307. codex/static_root/assets/admin-menu-D9RDVBlr.js.gz +0 -0
  308. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.fbacafc0db08.js.br +0 -0
  309. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.fbacafc0db08.js.gz +0 -0
  310. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.js.br +0 -0
  311. codex/static_root/assets/admin-settings-button-progress-DwWq9uM1.js.gz +0 -0
  312. codex/static_root/assets/browser-DFM_JsAK.bffd4eb259d8.js.br +0 -0
  313. codex/static_root/assets/browser-DFM_JsAK.bffd4eb259d8.js.gz +0 -0
  314. codex/static_root/assets/browser-DFM_JsAK.js.br +0 -0
  315. codex/static_root/assets/browser-DFM_JsAK.js.gz +0 -0
  316. codex/static_root/assets/change-password-dialog-yLNkzMp9.50da9f352709.js.br +0 -0
  317. codex/static_root/assets/change-password-dialog-yLNkzMp9.50da9f352709.js.gz +0 -0
  318. codex/static_root/assets/change-password-dialog-yLNkzMp9.js.br +0 -0
  319. codex/static_root/assets/change-password-dialog-yLNkzMp9.js.gz +0 -0
  320. codex/static_root/assets/confirm-dialog-q6RAb_qs.120460c84883.js.br +0 -0
  321. codex/static_root/assets/confirm-dialog-q6RAb_qs.120460c84883.js.gz +0 -0
  322. codex/static_root/assets/confirm-dialog-q6RAb_qs.js.br +0 -0
  323. codex/static_root/assets/confirm-dialog-q6RAb_qs.js.gz +0 -0
  324. codex/static_root/assets/datetime-column-HJ5dvW99.ba0a30b3fc0d.js.br +0 -0
  325. codex/static_root/assets/datetime-column-HJ5dvW99.ba0a30b3fc0d.js.gz +0 -0
  326. codex/static_root/assets/datetime-column-HJ5dvW99.js.br +0 -0
  327. codex/static_root/assets/datetime-column-HJ5dvW99.js.gz +0 -0
  328. codex/static_root/assets/filter-r_zFj-tS.161a85ef1860.js.br +0 -0
  329. codex/static_root/assets/filter-r_zFj-tS.161a85ef1860.js.gz +0 -0
  330. codex/static_root/assets/filter-r_zFj-tS.js.br +0 -0
  331. codex/static_root/assets/filter-r_zFj-tS.js.gz +0 -0
  332. codex/static_root/assets/flag-tab-D0Z4uhsg.06e720e71319.js.br +0 -0
  333. codex/static_root/assets/flag-tab-D0Z4uhsg.06e720e71319.js.gz +0 -0
  334. codex/static_root/assets/flag-tab-D0Z4uhsg.js.br +0 -0
  335. codex/static_root/assets/flag-tab-D0Z4uhsg.js.gz +0 -0
  336. codex/static_root/assets/forwardRefs-Nj5UEeg5.50a55d7d8b68.js.br +0 -0
  337. codex/static_root/assets/forwardRefs-Nj5UEeg5.50a55d7d8b68.js.gz +0 -0
  338. codex/static_root/assets/forwardRefs-Nj5UEeg5.js.br +0 -0
  339. codex/static_root/assets/forwardRefs-Nj5UEeg5.js.gz +0 -0
  340. codex/static_root/assets/group-tab-lamd9pcq.604a78bd4e4f.js.br +0 -0
  341. codex/static_root/assets/group-tab-lamd9pcq.604a78bd4e4f.js.gz +0 -0
  342. codex/static_root/assets/group-tab-lamd9pcq.js.br +0 -0
  343. codex/static_root/assets/group-tab-lamd9pcq.js.gz +0 -0
  344. codex/static_root/assets/http-error-DRYA5ir1.46f4babacf15.js.br +0 -0
  345. codex/static_root/assets/http-error-DRYA5ir1.46f4babacf15.js.gz +0 -0
  346. codex/static_root/assets/http-error-DRYA5ir1.js.br +0 -0
  347. codex/static_root/assets/http-error-DRYA5ir1.js.gz +0 -0
  348. codex/static_root/assets/index-Cl7tPJIx.c0a239cf7069.js.br +0 -0
  349. codex/static_root/assets/index-Cl7tPJIx.c0a239cf7069.js.gz +0 -0
  350. codex/static_root/assets/index-Cl7tPJIx.js.br +0 -0
  351. codex/static_root/assets/index-Cl7tPJIx.js.gz +0 -0
  352. codex/static_root/assets/library-tab-2UucZZAW.f4541a086231.js.br +0 -0
  353. codex/static_root/assets/library-tab-2UucZZAW.f4541a086231.js.gz +0 -0
  354. codex/static_root/assets/library-tab-2UucZZAW.js.br +0 -0
  355. codex/static_root/assets/library-tab-2UucZZAW.js.gz +0 -0
  356. codex/static_root/assets/main-BX4TjIpG.dc79406e2a7b.js.br +0 -0
  357. codex/static_root/assets/main-BX4TjIpG.dc79406e2a7b.js.gz +0 -0
  358. codex/static_root/assets/main-BX4TjIpG.js.br +0 -0
  359. codex/static_root/assets/main-BX4TjIpG.js.gz +0 -0
  360. codex/static_root/assets/pager-full-pdf-KI4NQUMe.762b6bef9373.js +0 -1
  361. codex/static_root/assets/pager-full-pdf-KI4NQUMe.762b6bef9373.js.br +0 -0
  362. codex/static_root/assets/pager-full-pdf-KI4NQUMe.762b6bef9373.js.gz +0 -0
  363. codex/static_root/assets/pager-full-pdf-KI4NQUMe.js +0 -1
  364. codex/static_root/assets/pager-full-pdf-KI4NQUMe.js.br +0 -0
  365. codex/static_root/assets/pager-full-pdf-KI4NQUMe.js.gz +0 -0
  366. codex/static_root/assets/pagination-toolbar-48pwYEe_.892375c5aa51.js.br +0 -0
  367. codex/static_root/assets/pagination-toolbar-48pwYEe_.892375c5aa51.js.gz +0 -0
  368. codex/static_root/assets/pagination-toolbar-48pwYEe_.js.br +0 -0
  369. codex/static_root/assets/pagination-toolbar-48pwYEe_.js.gz +0 -0
  370. codex/static_root/assets/pdf-doc-GyrCvyP5.54b26ba8d93c.js.br +0 -0
  371. codex/static_root/assets/pdf-doc-GyrCvyP5.54b26ba8d93c.js.gz +0 -0
  372. codex/static_root/assets/pdf-doc-GyrCvyP5.js.br +0 -0
  373. codex/static_root/assets/pdf-doc-GyrCvyP5.js.gz +0 -0
  374. codex/static_root/assets/reader-lmk4MiSj.9239243e1be1.js.br +0 -0
  375. codex/static_root/assets/reader-lmk4MiSj.9239243e1be1.js.gz +0 -0
  376. codex/static_root/assets/reader-lmk4MiSj.js.br +0 -0
  377. codex/static_root/assets/reader-lmk4MiSj.js.gz +0 -0
  378. codex/static_root/assets/relation-chips-Dgb6LQdZ.c028ab2df979.js.br +0 -0
  379. codex/static_root/assets/relation-chips-Dgb6LQdZ.c028ab2df979.js.gz +0 -0
  380. codex/static_root/assets/relation-chips-Dgb6LQdZ.js.br +0 -0
  381. codex/static_root/assets/relation-chips-Dgb6LQdZ.js.gz +0 -0
  382. codex/static_root/assets/settings-drawer-CRmLEncr.6937d45e18af.js.br +0 -0
  383. codex/static_root/assets/settings-drawer-CRmLEncr.6937d45e18af.js.gz +0 -0
  384. codex/static_root/assets/settings-drawer-CRmLEncr.js.br +0 -0
  385. codex/static_root/assets/settings-drawer-CRmLEncr.js.gz +0 -0
  386. codex/static_root/assets/ssrBoot-CCKPlpgB.c90fa83e0817.js.br +0 -0
  387. codex/static_root/assets/ssrBoot-CCKPlpgB.c90fa83e0817.js.gz +0 -0
  388. codex/static_root/assets/ssrBoot-CCKPlpgB.js.br +0 -0
  389. codex/static_root/assets/ssrBoot-CCKPlpgB.js.gz +0 -0
  390. codex/static_root/assets/stats-tab-CrU_p2gC.e12768f9423d.js.br +0 -0
  391. codex/static_root/assets/stats-tab-CrU_p2gC.e12768f9423d.js.gz +0 -0
  392. codex/static_root/assets/stats-tab-CrU_p2gC.js.br +0 -0
  393. codex/static_root/assets/stats-tab-CrU_p2gC.js.gz +0 -0
  394. codex/static_root/assets/task-tab-Bp0wsH4V.2a5135c30818.js.br +0 -0
  395. codex/static_root/assets/task-tab-Bp0wsH4V.2a5135c30818.js.gz +0 -0
  396. codex/static_root/assets/task-tab-Bp0wsH4V.js.br +0 -0
  397. codex/static_root/assets/task-tab-Bp0wsH4V.js.gz +0 -0
  398. codex/static_root/assets/unauthorized-DObmibd6.b47434919de7.js.br +0 -0
  399. codex/static_root/assets/unauthorized-DObmibd6.b47434919de7.js.gz +0 -0
  400. codex/static_root/assets/unauthorized-DObmibd6.js.br +0 -0
  401. codex/static_root/assets/unauthorized-DObmibd6.js.gz +0 -0
  402. codex/static_root/assets/user-tab-DedY8MbN.624af3a6a978.js.br +0 -0
  403. codex/static_root/assets/user-tab-DedY8MbN.624af3a6a978.js.gz +0 -0
  404. codex/static_root/assets/user-tab-DedY8MbN.js.br +0 -0
  405. codex/static_root/assets/user-tab-DedY8MbN.js.gz +0 -0
  406. codex/static_root/manifest.4217bf6f9edb.json.br +0 -0
  407. codex/static_root/manifest.4217bf6f9edb.json.gz +0 -0
  408. {codex-1.8.0a3.dist-info → codex-1.8.0a4.dist-info}/WHEEL +0 -0
  409. {codex-1.8.0a3.dist-info → codex-1.8.0a4.dist-info}/entry_points.txt +0 -0
  410. {codex-1.8.0a3.dist-info → codex-1.8.0a4.dist-info}/licenses/LICENSE +0 -0
@@ -39,12 +39,15 @@ class FailedImportsQueryImporter(DeletedImporter):
39
39
  for path in possibly_missing_failed_import_paths:
40
40
  name = path.casefold()
41
41
  # Case sensitive matching. exists() and is_file() are case insensitive.
42
- # This will fail if there is a parent directory case mismatch and need to be replaced
43
- # with a recursive level by level matcher.
44
- for path_obj in Path(path).parent.iterdir():
45
- if path_obj.name.casefold() == name:
46
- break
47
- else:
42
+ # This will fail if there is a parent directory case mismatch.
43
+ # Rather than do a recursive solution, add it to missing if it fails.
44
+ try:
45
+ for path_obj in Path(path).parent.iterdir():
46
+ if path_obj.name.casefold() == name:
47
+ break
48
+ else:
49
+ missing_failed_import_paths.add(path)
50
+ except FileNotFoundError:
48
51
  missing_failed_import_paths.add(path)
49
52
 
50
53
  return succeeded_failed_imports | missing_failed_import_paths
@@ -22,6 +22,7 @@ from codex.librarian.scribe.importer.search.sync_m2m import (
22
22
  )
23
23
  from codex.librarian.scribe.importer.statii.search import (
24
24
  ImporterFTSCreateStatus,
25
+ ImporterFTSStatus,
25
26
  ImporterFTSUpdateStatus,
26
27
  )
27
28
  from codex.librarian.status import Status
@@ -144,10 +145,40 @@ class SearchIndexCreateUpdateImporter(SearchIndexSyncManyToManyImporter):
144
145
 
145
146
  def _update_search_index_operate_get_status(
146
147
  self, total_entries: int, *, create: bool
147
- ):
148
+ ) -> ImporterFTSStatus:
148
149
  status_class = ImporterFTSCreateStatus if create else ImporterFTSUpdateStatus
149
150
  return status_class(total=total_entries)
150
151
 
152
+ def _update_search_index_operate_create(
153
+ self, obj_list: list, status: ImporterFTSStatus
154
+ ):
155
+ entries = self.metadata.pop(FTS_CREATE, {})
156
+ pks = tuple(entries.keys())
157
+ for pk in pks:
158
+ if self.abort_event.is_set():
159
+ return ()
160
+
161
+ entry = entries.pop(pk)
162
+ self._create_comicfts_entry(pk, entry, obj_list, status)
163
+ return pks
164
+
165
+ def _update_search_index_operate_update(
166
+ self, obj_list: list, status: ImporterFTSStatus
167
+ ):
168
+ if pks := tuple(self.metadata.get(FTS_UPDATE, {}).keys()):
169
+ comicftss = ComicFTS.objects.filter(comic_id__in=pks)
170
+ for comicfts in comicftss:
171
+ if self.abort_event.is_set():
172
+ return ()
173
+ self._update_comicfts_entry(comicfts, obj_list, status)
174
+ if self.metadata[FTS_UPDATE]:
175
+ # If updates not popped, turn them into creates.
176
+ if FTS_CREATE not in self.metadata:
177
+ self.metadata[FTS_CREATE] = {}
178
+ self.metadata[FTS_CREATE].update(self.metadata[FTS_UPDATE])
179
+ self.metadata.pop(FTS_UPDATE)
180
+ return pks
181
+
151
182
  def _update_search_index_operate(self, *, create: bool) -> tuple[int, ...]:
152
183
  key = FTS_CREATE if create else FTS_UPDATE
153
184
  total_entries = len(self.metadata.get(key, {}))
@@ -168,36 +199,20 @@ class SearchIndexCreateUpdateImporter(SearchIndexSyncManyToManyImporter):
168
199
 
169
200
  obj_list = []
170
201
  if create:
171
- entries = self.metadata.pop(FTS_CREATE, {})
172
- pks = tuple(entries.keys())
173
- for pk in pks:
174
- if self.abort_event.is_set():
175
- return updated_pks
176
- entry = entries.pop(pk)
177
- self._create_comicfts_entry(pk, entry, obj_list, status)
178
- updated_pks = pks
202
+ updated_pks = self._update_search_index_operate_create(obj_list, status)
179
203
  else:
180
- if pks := tuple(self.metadata[FTS_UPDATE].keys()):
181
- comicftss = ComicFTS.objects.filter(comic_id__in=pks)
182
- for comicfts in comicftss:
183
- if self.abort_event.is_set():
184
- return updated_pks
185
- self._update_comicfts_entry(comicfts, obj_list, status)
186
- if self.metadata[FTS_UPDATE]:
187
- # If updates not popped, turn them into creates.
188
- if FTS_CREATE not in self.metadata:
189
- self.metadata[FTS_CREATE] = {}
190
- self.metadata[FTS_CREATE].update(self.metadata[FTS_UPDATE])
191
- self.metadata.pop(FTS_UPDATE)
204
+ updated_pks = self._update_search_index_operate_update(obj_list, status)
192
205
  self.log.debug(
193
206
  f"Prepared {len(obj_list)} comics for search index {verbing}..."
194
207
  )
208
+ if self.abort_event.is_set():
209
+ return updated_pks
210
+
195
211
  self._update_search_index_create_or_update(
196
212
  obj_list,
197
213
  status,
198
214
  create=create,
199
215
  )
200
- updated_pks = pks
201
216
 
202
217
  finally:
203
218
  self.status_controller.finish(status)
@@ -138,6 +138,29 @@ class StatusController:
138
138
 
139
139
  self.log.log(level, f"{prefix}{suffix}.")
140
140
 
141
+ @staticmethod
142
+ def _finish_status_prepare(
143
+ positive_statii: MappingProxyType[str, Status | type[Status]],
144
+ updates: dict[str, Any],
145
+ ):
146
+ # Filter on submitted codes or all statii if nothing.
147
+ ls_filter_dict: dict[str, Any] = (
148
+ {"status_type__in": positive_statii.keys()} if positive_statii else {}
149
+ )
150
+ # Filter all active or preactive statii
151
+ ls_filter = (Q(active__isnull=False) | Q(preactive__isnull=False)) & Q(
152
+ **ls_filter_dict
153
+ )
154
+ lses = LibrarianStatus.objects.filter(ls_filter)
155
+ update_ls = []
156
+ log_statii = []
157
+ for ls in lses.iterator():
158
+ for key, value in updates.items():
159
+ setattr(ls, key, value)
160
+ update_ls.append(ls)
161
+ log_statii.append(positive_statii[ls.status_type])
162
+ return update_ls, log_statii
163
+
141
164
  def finish_many(
142
165
  self, statii: Iterable[Status | type[Status] | None], *, notify: bool = True
143
166
  ):
@@ -150,27 +173,13 @@ class StatusController:
150
173
  # if statii has elements but they were all None, this is a noop.
151
174
  # But if statii was empty this is a finish all command.
152
175
  return
153
- # Filter on submitted codes or all statii if nothing.
154
- ls_filter_dict: dict[str, Any] = (
155
- {"status_type__in": positive_statii.keys()} if positive_statii else {}
156
- )
157
- # Filter all active or preactive statii
158
- ls_filter = (Q(active__isnull=False) | Q(preactive__isnull=False)) & Q(
159
- **ls_filter_dict
160
- )
161
176
  updates = {**STATUS_DEFAULTS, "updated_at": Now()}
162
- lses = LibrarianStatus.objects.filter(ls_filter)
163
- update_ls = []
164
- log_statii = []
165
- for ls in lses.iterator():
166
- for key, value in updates.items():
167
- setattr(ls, key, value)
168
- update_ls.append(ls)
169
- log_statii.append(positive_statii[ls.status_type])
170
-
177
+ update_ls, log_statii = self._finish_status_prepare(
178
+ positive_statii, updates
179
+ )
171
180
  LibrarianStatus.objects.bulk_update(update_ls, tuple(updates.keys()))
172
181
  self._enqueue_notifier_task(notify=notify)
173
- if not ls_filter_dict:
182
+ if not positive_statii:
174
183
  self.log.info("Cleared all librarian statuses")
175
184
  for status in log_statii:
176
185
  self._log_finish(status)
@@ -9,17 +9,13 @@ from watchdog.events import (
9
9
  EVENT_TYPE_CREATED,
10
10
  EVENT_TYPE_DELETED,
11
11
  EVENT_TYPE_MODIFIED,
12
- DirCreatedEvent,
13
12
  DirDeletedEvent,
14
13
  DirModifiedEvent,
15
14
  DirMovedEvent,
16
- FileClosedEvent,
17
- FileClosedNoWriteEvent,
18
15
  FileCreatedEvent,
19
16
  FileDeletedEvent,
20
17
  FileModifiedEvent,
21
18
  FileMovedEvent,
22
- FileOpenedEvent,
23
19
  FileSystemEvent,
24
20
  )
25
21
 
@@ -31,6 +27,24 @@ from codex.librarian.watchdog.events import (
31
27
  CoverMovedEvent,
32
28
  )
33
29
 
30
+ #############
31
+ # Observers #
32
+ #############
33
+ EVENT_FILTER: tuple[type[FileSystemEvent], ...] = (
34
+ # FileClosed,
35
+ # FileClosedNoWriteEvent,
36
+ FileCreatedEvent,
37
+ FileDeletedEvent,
38
+ FileModifiedEvent,
39
+ FileMovedEvent,
40
+ # FileSystemMovedEvent
41
+ # FileOpenedEvent,
42
+ # DirCreatedEvent,
43
+ DirDeletedEvent,
44
+ DirMovedEvent,
45
+ DirModifiedEvent,
46
+ )
47
+
34
48
  ###########
35
49
  # Emitter #
36
50
  ###########
@@ -47,30 +61,11 @@ ATTR_EVENT_MAP = MappingProxyType(
47
61
  )
48
62
  DIR_NOT_FOUND_TIMEOUT = 15 * 60
49
63
  POLLING_EVENT_FILTER: tuple[type[FileSystemEvent], ...] = (
50
- FileMovedEvent,
51
- FileModifiedEvent,
52
- FileCreatedEvent,
53
- FileDeletedEvent,
54
- # FileClosedEvent,
55
- # FileOpenedEvent,
56
- DirMovedEvent,
57
- DirModifiedEvent,
58
- DirDeletedEvent,
59
- # DirCreatedEvent,
64
+ *EVENT_FILTER,
60
65
  CodexPollEvent,
61
66
  )
62
67
  DOCKER_UNMOUNTED_FN = "DOCKER_UNMOUNTED_VOLUME"
63
68
 
64
- #############
65
- # Observers #
66
- #############
67
- EVENT_FILTER: tuple[type[FileSystemEvent], ...] = (
68
- DirCreatedEvent,
69
- FileClosedEvent,
70
- FileClosedNoWriteEvent,
71
- FileOpenedEvent,
72
- )
73
-
74
69
  ############
75
70
  # Handlers #
76
71
  ############
@@ -1 +1 @@
1
- import{m as I,V as r}from"./VCheckboxBtn-BeZZDumo.js";import{u as A,m as F,g as u}from"./VSelectionControl-CmXEFw20.js";import{f as R}from"./forwardRefs-Nj5UEeg5.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-BX4TjIpG.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-C44aiFUU.js";import{u as A,m as F,g as u}from"./VSelectionControl-C0Md0bXa.js";import{f as R}from"./forwardRefs-Byns6lbl.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-CXE4elND.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-BeZZDumo.js";import{u as A,m as F,g as u}from"./VSelectionControl-CmXEFw20.js";import{f as R}from"./forwardRefs-Nj5UEeg5.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-BX4TjIpG.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-C44aiFUU.js";import{u as A,m as F,g as u}from"./VSelectionControl-C0Md0bXa.js";import{f as R}from"./forwardRefs-Byns6lbl.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-CXE4elND.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-CmXEFw20.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-BX4TjIpG.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-C0Md0bXa.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-CXE4elND.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-CmXEFw20.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-BX4TjIpG.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-C0Md0bXa.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-CXE4elND.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-BOhtkCV1.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-CmXEFw20.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-Nj5UEeg5.js";import{u as Te,m as Me,h as _e}from"./filter-r_zFj-tS.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-BX4TjIpG.js";import{a as X,g as Qe}from"./VDialog-D_vkvatj.js";import{a as Xe}from"./VDivider-BH2Oj58Z.js";import{V as Ye}from"./VCheckboxBtn-BeZZDumo.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-_Cduank3.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-C0Md0bXa.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-Byns6lbl.js";import{u as Te,m as Me,h as _e}from"./filter-C2tmS7Gm.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-CXE4elND.js";import{a as X,g as Qe}from"./VDialog-BxuI97hb.js";import{a as Xe}from"./VDivider-DSzkVD8n.js";import{V as Ye}from"./VCheckboxBtn-C44aiFUU.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-BOhtkCV1.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-CmXEFw20.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-Nj5UEeg5.js";import{u as Te,m as Me,h as _e}from"./filter-r_zFj-tS.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-BX4TjIpG.js";import{a as X,g as Qe}from"./VDialog-D_vkvatj.js";import{a as Xe}from"./VDivider-BH2Oj58Z.js";import{V as Ye}from"./VCheckboxBtn-BeZZDumo.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-_Cduank3.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-C0Md0bXa.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-Byns6lbl.js";import{u as Te,m as Me,h as _e}from"./filter-C2tmS7Gm.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-CXE4elND.js";import{a as X,g as Qe}from"./VDialog-BxuI97hb.js";import{a as Xe}from"./VDivider-DSzkVD8n.js";import{V as Ye}from"./VCheckboxBtn-C44aiFUU.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};