codex 1.8.5__py3-none-any.whl → 1.8.6__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 (425) hide show
  1. codex/librarian/scribe/importer/delete/comics.py +2 -2
  2. codex/librarian/scribe/scribed.py +2 -13
  3. codex/librarian/scribe/search/sync.py +74 -78
  4. codex/librarian/status_controller.py +25 -27
  5. codex/librarian/watchdog/event_batcherd.py +1 -1
  6. codex/settings/__init__.py +9 -10
  7. codex/static_root/assets/{VCheckbox-DxJUMufz.9a175cfa72c8.js → VCheckbox--IZv20K5.121e571f623b.js} +1 -1
  8. codex/static_root/assets/VCheckbox--IZv20K5.121e571f623b.js.br +0 -0
  9. codex/static_root/assets/VCheckbox--IZv20K5.121e571f623b.js.gz +0 -0
  10. codex/static_root/assets/{VCheckbox-DxJUMufz.js → VCheckbox--IZv20K5.js} +1 -1
  11. codex/static_root/assets/VCheckbox--IZv20K5.js.br +0 -0
  12. codex/static_root/assets/VCheckbox--IZv20K5.js.gz +0 -0
  13. codex/static_root/assets/{VCheckboxBtn-BE6yrQ80.4a42f2c068f5.js → VCheckboxBtn-BzgViWAb.1400a41af9da.js} +1 -1
  14. codex/static_root/assets/VCheckboxBtn-BzgViWAb.1400a41af9da.js.br +0 -0
  15. codex/static_root/assets/VCheckboxBtn-BzgViWAb.1400a41af9da.js.gz +0 -0
  16. codex/static_root/assets/{VCheckboxBtn-BE6yrQ80.js → VCheckboxBtn-BzgViWAb.js} +1 -1
  17. codex/static_root/assets/VCheckboxBtn-BzgViWAb.js.br +0 -0
  18. codex/static_root/assets/VCheckboxBtn-BzgViWAb.js.gz +0 -0
  19. codex/static_root/assets/{VCombobox-Bfyp0szs.b51553d29c8c.js → VCombobox-0VKjtXTP.f7c9bb8e7f77.js} +1 -1
  20. codex/static_root/assets/VCombobox-0VKjtXTP.f7c9bb8e7f77.js.br +0 -0
  21. codex/static_root/assets/VCombobox-0VKjtXTP.f7c9bb8e7f77.js.gz +0 -0
  22. codex/static_root/assets/{VCombobox-Bfyp0szs.js → VCombobox-0VKjtXTP.js} +1 -1
  23. codex/static_root/assets/VCombobox-0VKjtXTP.js.br +0 -0
  24. codex/static_root/assets/VCombobox-0VKjtXTP.js.gz +0 -0
  25. codex/static_root/assets/{VDialog-Cy6wFjb9.9253a3f54f22.js → VDialog-Oz6-kM3S.2244675141c7.js} +1 -1
  26. codex/static_root/assets/VDialog-Oz6-kM3S.2244675141c7.js.br +0 -0
  27. codex/static_root/assets/VDialog-Oz6-kM3S.2244675141c7.js.gz +0 -0
  28. codex/static_root/assets/{VDialog-Cy6wFjb9.js → VDialog-Oz6-kM3S.js} +1 -1
  29. codex/static_root/assets/VDialog-Oz6-kM3S.js.br +0 -0
  30. codex/static_root/assets/VDialog-Oz6-kM3S.js.gz +0 -0
  31. codex/static_root/assets/{VDivider-BEpvozL4.c9fd95940cb5.js → VDivider-CSRFyKQO.5f8e1ffafbaf.js} +1 -1
  32. codex/static_root/assets/VDivider-CSRFyKQO.5f8e1ffafbaf.js.br +0 -0
  33. codex/static_root/assets/VDivider-CSRFyKQO.5f8e1ffafbaf.js.gz +0 -0
  34. codex/static_root/assets/{VDivider-BEpvozL4.js → VDivider-CSRFyKQO.js} +1 -1
  35. codex/static_root/assets/VDivider-CSRFyKQO.js.br +0 -0
  36. codex/static_root/assets/VDivider-CSRFyKQO.js.gz +0 -0
  37. codex/static_root/assets/{VExpansionPanels-BzyHQUL4.7e54cedf021c.js → VExpansionPanels-82Ocr2Kh.1ccaea91f07c.js} +1 -1
  38. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.1ccaea91f07c.js.br +0 -0
  39. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.1ccaea91f07c.js.gz +0 -0
  40. codex/static_root/assets/{VExpansionPanels-BzyHQUL4.js → VExpansionPanels-82Ocr2Kh.js} +1 -1
  41. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.js.br +0 -0
  42. codex/static_root/assets/VExpansionPanels-82Ocr2Kh.js.gz +0 -0
  43. codex/static_root/assets/{VForm-CmVlbmJK.887eb47d3534.js → VForm-BaeKMRS9.be058cf1518f.js} +1 -1
  44. codex/static_root/assets/VForm-BaeKMRS9.be058cf1518f.js.br +0 -0
  45. codex/static_root/assets/VForm-BaeKMRS9.be058cf1518f.js.gz +0 -0
  46. codex/static_root/assets/{VForm-CmVlbmJK.js → VForm-BaeKMRS9.js} +1 -1
  47. codex/static_root/assets/VForm-BaeKMRS9.js.br +0 -0
  48. codex/static_root/assets/VForm-BaeKMRS9.js.gz +0 -0
  49. codex/static_root/assets/{VRadioGroup-DWzKkq9W.daaabd353889.js → VRadioGroup-DeB10IRm.4ea874709ffb.js} +1 -1
  50. codex/static_root/assets/VRadioGroup-DeB10IRm.4ea874709ffb.js.br +0 -0
  51. codex/static_root/assets/VRadioGroup-DeB10IRm.4ea874709ffb.js.gz +0 -0
  52. codex/static_root/assets/{VRadioGroup-DWzKkq9W.js → VRadioGroup-DeB10IRm.js} +1 -1
  53. codex/static_root/assets/VRadioGroup-DeB10IRm.js.br +0 -0
  54. codex/static_root/assets/VRadioGroup-DeB10IRm.js.gz +0 -0
  55. codex/static_root/assets/{VSelect-Cqjdw0PV.ab01020c5ef4.js → VSelect-4ozzBEef.36f749b6f4ab.js} +1 -1
  56. codex/static_root/assets/VSelect-4ozzBEef.36f749b6f4ab.js.br +0 -0
  57. codex/static_root/assets/VSelect-4ozzBEef.36f749b6f4ab.js.gz +0 -0
  58. codex/static_root/assets/{VSelect-Cqjdw0PV.js → VSelect-4ozzBEef.js} +1 -1
  59. codex/static_root/assets/VSelect-4ozzBEef.js.br +0 -0
  60. codex/static_root/assets/VSelect-4ozzBEef.js.gz +0 -0
  61. codex/static_root/assets/{VSelectionControl-Dk52iIPb.fe2504c50db4.js → VSelectionControl-D3h7FjSM.6cf4ba197995.js} +1 -1
  62. codex/static_root/assets/VSelectionControl-D3h7FjSM.6cf4ba197995.js.br +0 -0
  63. codex/static_root/assets/VSelectionControl-D3h7FjSM.6cf4ba197995.js.gz +0 -0
  64. codex/static_root/assets/{VSelectionControl-Dk52iIPb.js → VSelectionControl-D3h7FjSM.js} +1 -1
  65. codex/static_root/assets/VSelectionControl-D3h7FjSM.js.br +0 -0
  66. codex/static_root/assets/VSelectionControl-D3h7FjSM.js.gz +0 -0
  67. codex/static_root/assets/{VTable-Ch5ZSNsk.c38a2cb589fa.js → VTable-Dj5EC5Aq.7abc9daf78be.js} +1 -1
  68. codex/static_root/assets/VTable-Dj5EC5Aq.7abc9daf78be.js.br +0 -0
  69. codex/static_root/assets/VTable-Dj5EC5Aq.7abc9daf78be.js.gz +0 -0
  70. codex/static_root/assets/{VTable-Ch5ZSNsk.js → VTable-Dj5EC5Aq.js} +1 -1
  71. codex/static_root/assets/VTable-Dj5EC5Aq.js.br +0 -0
  72. codex/static_root/assets/VTable-Dj5EC5Aq.js.gz +0 -0
  73. codex/static_root/assets/{VWindowItem-DBU8ce0X.4bbcffa75b9a.js → VWindowItem-Dwb7oeu0.6a4505330db3.js} +1 -1
  74. codex/static_root/assets/VWindowItem-Dwb7oeu0.6a4505330db3.js.br +0 -0
  75. codex/static_root/assets/VWindowItem-Dwb7oeu0.6a4505330db3.js.gz +0 -0
  76. codex/static_root/assets/{VWindowItem-DBU8ce0X.js → VWindowItem-Dwb7oeu0.js} +1 -1
  77. codex/static_root/assets/VWindowItem-Dwb7oeu0.js.br +0 -0
  78. codex/static_root/assets/VWindowItem-Dwb7oeu0.js.gz +0 -0
  79. codex/static_root/assets/{admin-Bt81XU3H.ca36b1a1b799.js → admin-mQ-F7brp.cc388b064f3a.js} +1 -1
  80. codex/static_root/assets/admin-mQ-F7brp.cc388b064f3a.js.br +0 -0
  81. codex/static_root/assets/admin-mQ-F7brp.cc388b064f3a.js.gz +0 -0
  82. codex/static_root/assets/{admin-Bt81XU3H.js → admin-mQ-F7brp.js} +1 -1
  83. codex/static_root/assets/admin-mQ-F7brp.js.br +0 -0
  84. codex/static_root/assets/admin-mQ-F7brp.js.gz +0 -0
  85. codex/static_root/assets/{admin-menu-Db5b3nba.09d034934b88.js → admin-menu-CfGPKhvz.1e224da855f5.js} +1 -1
  86. codex/static_root/assets/admin-menu-CfGPKhvz.1e224da855f5.js.br +0 -0
  87. codex/static_root/assets/admin-menu-CfGPKhvz.1e224da855f5.js.gz +0 -0
  88. codex/static_root/assets/{admin-menu-Db5b3nba.js → admin-menu-CfGPKhvz.js} +1 -1
  89. codex/static_root/assets/admin-menu-CfGPKhvz.js.br +0 -0
  90. codex/static_root/assets/admin-menu-CfGPKhvz.js.gz +0 -0
  91. codex/static_root/assets/{admin-CfqMNEyt.bebc609836d0.js → admin-nYIgbfe8.d2acbae0b198.js} +1 -1
  92. codex/static_root/assets/admin-nYIgbfe8.d2acbae0b198.js.br +0 -0
  93. codex/static_root/assets/admin-nYIgbfe8.d2acbae0b198.js.gz +0 -0
  94. codex/static_root/assets/{admin-CfqMNEyt.js → admin-nYIgbfe8.js} +1 -1
  95. codex/static_root/assets/admin-nYIgbfe8.js.br +0 -0
  96. codex/static_root/assets/admin-nYIgbfe8.js.gz +0 -0
  97. codex/static_root/assets/{admin-settings-button-progress-BPQGNinn.53e05963f557.js → admin-settings-button-progress-BBRW69l3.697026d00887.js} +1 -1
  98. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.697026d00887.js.br +0 -0
  99. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.697026d00887.js.gz +0 -0
  100. codex/static_root/assets/{admin-settings-button-progress-BPQGNinn.js → admin-settings-button-progress-BBRW69l3.js} +1 -1
  101. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.js.br +0 -0
  102. codex/static_root/assets/admin-settings-button-progress-BBRW69l3.js.gz +0 -0
  103. codex/static_root/assets/{browser-C19hTg9r.9b5d0eadd6d4.js → browser-BzV_-1Jg.e39184a92bab.js} +1 -1
  104. codex/static_root/assets/browser-BzV_-1Jg.e39184a92bab.js.br +0 -0
  105. codex/static_root/assets/browser-BzV_-1Jg.e39184a92bab.js.gz +0 -0
  106. codex/static_root/assets/{browser-C19hTg9r.js → browser-BzV_-1Jg.js} +1 -1
  107. codex/static_root/assets/browser-BzV_-1Jg.js.br +0 -0
  108. codex/static_root/assets/browser-BzV_-1Jg.js.gz +0 -0
  109. codex/static_root/assets/{change-password-dialog-DPAIPGJa.7c4c436e259e.js → change-password-dialog-DpqXgZ53.3f22c3114669.js} +1 -1
  110. codex/static_root/assets/change-password-dialog-DpqXgZ53.3f22c3114669.js.br +0 -0
  111. codex/static_root/assets/change-password-dialog-DpqXgZ53.3f22c3114669.js.gz +0 -0
  112. codex/static_root/assets/{change-password-dialog-DPAIPGJa.js → change-password-dialog-DpqXgZ53.js} +1 -1
  113. codex/static_root/assets/change-password-dialog-DpqXgZ53.js.br +0 -0
  114. codex/static_root/assets/change-password-dialog-DpqXgZ53.js.gz +0 -0
  115. codex/static_root/assets/{confirm-dialog-CgSU27R5.0127ce62d24c.js → confirm-dialog-uoXMmYq3.0ec4c4eba588.js} +1 -1
  116. codex/static_root/assets/confirm-dialog-uoXMmYq3.0ec4c4eba588.js.br +0 -0
  117. codex/static_root/assets/confirm-dialog-uoXMmYq3.0ec4c4eba588.js.gz +0 -0
  118. codex/static_root/assets/{confirm-dialog-CgSU27R5.js → confirm-dialog-uoXMmYq3.js} +1 -1
  119. codex/static_root/assets/confirm-dialog-uoXMmYq3.js.br +0 -0
  120. codex/static_root/assets/confirm-dialog-uoXMmYq3.js.gz +0 -0
  121. codex/static_root/assets/{datetime-column-Dw9zxZLR.cd8791cda91b.js → datetime-column-GkTrMP1-.bf4adfaa4e02.js} +1 -1
  122. codex/static_root/assets/datetime-column-GkTrMP1-.bf4adfaa4e02.js.br +0 -0
  123. codex/static_root/assets/datetime-column-GkTrMP1-.bf4adfaa4e02.js.gz +0 -0
  124. codex/static_root/assets/{datetime-column-Dw9zxZLR.js → datetime-column-GkTrMP1-.js} +1 -1
  125. codex/static_root/assets/datetime-column-GkTrMP1-.js.br +0 -0
  126. codex/static_root/assets/datetime-column-GkTrMP1-.js.gz +0 -0
  127. codex/static_root/assets/{filter-BNTCrH8l.c00298a8fccf.js → filter-CRnAKgPp.cc654b8f8155.js} +1 -1
  128. codex/static_root/assets/filter-CRnAKgPp.cc654b8f8155.js.br +0 -0
  129. codex/static_root/assets/filter-CRnAKgPp.cc654b8f8155.js.gz +0 -0
  130. codex/static_root/assets/{filter-BNTCrH8l.js → filter-CRnAKgPp.js} +1 -1
  131. codex/static_root/assets/filter-CRnAKgPp.js.br +0 -0
  132. codex/static_root/assets/filter-CRnAKgPp.js.gz +0 -0
  133. codex/static_root/assets/{flag-tab-Xpq_xAF5.3f14de61afcc.js → flag-tab-BA4kiUXn.408cc0a71ec1.js} +1 -1
  134. codex/static_root/assets/flag-tab-BA4kiUXn.408cc0a71ec1.js.br +0 -0
  135. codex/static_root/assets/flag-tab-BA4kiUXn.408cc0a71ec1.js.gz +0 -0
  136. codex/static_root/assets/{flag-tab-Xpq_xAF5.js → flag-tab-BA4kiUXn.js} +1 -1
  137. codex/static_root/assets/flag-tab-BA4kiUXn.js.br +0 -0
  138. codex/static_root/assets/flag-tab-BA4kiUXn.js.gz +0 -0
  139. codex/static_root/assets/{forwardRefs-fUake9mW.js → forwardRefs-FxOC1qa_.6e14881eedf1.js} +1 -1
  140. codex/static_root/assets/forwardRefs-FxOC1qa_.6e14881eedf1.js.br +0 -0
  141. codex/static_root/assets/forwardRefs-FxOC1qa_.6e14881eedf1.js.gz +0 -0
  142. codex/static_root/assets/{forwardRefs-fUake9mW.12c1018cd1e3.js → forwardRefs-FxOC1qa_.js} +1 -1
  143. codex/static_root/assets/forwardRefs-FxOC1qa_.js.br +0 -0
  144. codex/static_root/assets/forwardRefs-FxOC1qa_.js.gz +0 -0
  145. codex/static_root/assets/{group-tab-E_R0glEI.82e1d92be747.js → group-tab-BD9iJZwB.b3e2b1b68d3a.js} +1 -1
  146. codex/static_root/assets/group-tab-BD9iJZwB.b3e2b1b68d3a.js.br +0 -0
  147. codex/static_root/assets/group-tab-BD9iJZwB.b3e2b1b68d3a.js.gz +0 -0
  148. codex/static_root/assets/{group-tab-E_R0glEI.js → group-tab-BD9iJZwB.js} +1 -1
  149. codex/static_root/assets/group-tab-BD9iJZwB.js.br +0 -0
  150. codex/static_root/assets/group-tab-BD9iJZwB.js.gz +0 -0
  151. codex/static_root/assets/{http-error-C6bKTzfv.168d047d5219.js → http-error-D-b5OfHC.e661fa6e0000.js} +1 -1
  152. codex/static_root/assets/http-error-D-b5OfHC.e661fa6e0000.js.br +2 -0
  153. codex/static_root/assets/http-error-D-b5OfHC.e661fa6e0000.js.gz +0 -0
  154. codex/static_root/assets/{http-error-C6bKTzfv.js → http-error-D-b5OfHC.js} +1 -1
  155. codex/static_root/assets/http-error-D-b5OfHC.js.br +2 -0
  156. codex/static_root/assets/http-error-D-b5OfHC.js.gz +0 -0
  157. codex/static_root/assets/{index-j9jeRHe0.294b614eaea1.js → index-DCZ6v5x6.848976e7722c.js} +1 -1
  158. codex/static_root/assets/index-DCZ6v5x6.848976e7722c.js.br +0 -0
  159. codex/static_root/assets/index-DCZ6v5x6.848976e7722c.js.gz +0 -0
  160. codex/static_root/assets/{index-j9jeRHe0.js → index-DCZ6v5x6.js} +1 -1
  161. codex/static_root/assets/index-DCZ6v5x6.js.br +0 -0
  162. codex/static_root/assets/index-DCZ6v5x6.js.gz +0 -0
  163. codex/static_root/assets/{library-tab-DPYjRIWp.58e434354594.js → library-tab-ju4WtRth.97949bf344d7.js} +1 -1
  164. codex/static_root/assets/library-tab-ju4WtRth.97949bf344d7.js.br +0 -0
  165. codex/static_root/assets/library-tab-ju4WtRth.97949bf344d7.js.gz +0 -0
  166. codex/static_root/assets/{library-tab-DPYjRIWp.js → library-tab-ju4WtRth.js} +1 -1
  167. codex/static_root/assets/library-tab-ju4WtRth.js.br +0 -0
  168. codex/static_root/assets/library-tab-ju4WtRth.js.gz +0 -0
  169. codex/static_root/assets/{main-Cnq2ldv_.1c0766500281.js → main-Bmi4BPiO.d75c8b55081b.js} +4 -4
  170. codex/static_root/assets/main-Bmi4BPiO.d75c8b55081b.js.br +0 -0
  171. codex/static_root/assets/main-Bmi4BPiO.d75c8b55081b.js.gz +0 -0
  172. codex/static_root/assets/{main-Cnq2ldv_.js → main-Bmi4BPiO.js} +4 -4
  173. codex/static_root/assets/main-Bmi4BPiO.js.br +0 -0
  174. codex/static_root/assets/main-Bmi4BPiO.js.gz +0 -0
  175. codex/static_root/assets/pager-full-pdf-BjSr3CzH.ffbe3d735455.js +1 -0
  176. codex/static_root/assets/pager-full-pdf-BjSr3CzH.ffbe3d735455.js.br +0 -0
  177. codex/static_root/assets/pager-full-pdf-BjSr3CzH.ffbe3d735455.js.gz +0 -0
  178. codex/static_root/assets/pager-full-pdf-BjSr3CzH.js +1 -0
  179. codex/static_root/assets/pager-full-pdf-BjSr3CzH.js.br +0 -0
  180. codex/static_root/assets/pager-full-pdf-BjSr3CzH.js.gz +0 -0
  181. codex/static_root/assets/{pagination-toolbar-BFBKOWOc.3355103910ff.js → pagination-toolbar-DpMVSiz_.86ce692ff9b4.js} +1 -1
  182. codex/static_root/assets/pagination-toolbar-DpMVSiz_.86ce692ff9b4.js.br +0 -0
  183. codex/static_root/assets/pagination-toolbar-DpMVSiz_.86ce692ff9b4.js.gz +0 -0
  184. codex/static_root/assets/{pagination-toolbar-BFBKOWOc.js → pagination-toolbar-DpMVSiz_.js} +1 -1
  185. codex/static_root/assets/pagination-toolbar-DpMVSiz_.js.br +0 -0
  186. codex/static_root/assets/pagination-toolbar-DpMVSiz_.js.gz +0 -0
  187. codex/static_root/assets/{pdf-doc-XAg2nqnS.5a33f918a28a.js → pdf-doc-DQBmNe4l.8dbdebf30643.js} +1 -1
  188. codex/static_root/assets/pdf-doc-DQBmNe4l.8dbdebf30643.js.br +0 -0
  189. codex/static_root/assets/pdf-doc-DQBmNe4l.8dbdebf30643.js.gz +0 -0
  190. codex/static_root/assets/{pdf-doc-XAg2nqnS.js → pdf-doc-DQBmNe4l.js} +1 -1
  191. codex/static_root/assets/pdf-doc-DQBmNe4l.js.br +0 -0
  192. codex/static_root/assets/pdf-doc-DQBmNe4l.js.gz +0 -0
  193. codex/static_root/assets/{reader-BZ4Dp-_5.js → reader-BQVYc_LF.e327430a14a1.js} +2 -2
  194. codex/static_root/assets/reader-BQVYc_LF.e327430a14a1.js.br +0 -0
  195. codex/static_root/assets/reader-BQVYc_LF.e327430a14a1.js.gz +0 -0
  196. codex/static_root/assets/{reader-BZ4Dp-_5.ecd9d42077af.js → reader-BQVYc_LF.js} +2 -2
  197. codex/static_root/assets/reader-BQVYc_LF.js.br +0 -0
  198. codex/static_root/assets/reader-BQVYc_LF.js.gz +0 -0
  199. codex/static_root/assets/{relation-chips-B_z9ixOK.8f144f1cf119.js → relation-chips-TRmABTTI.918cb21596f9.js} +1 -1
  200. codex/static_root/assets/relation-chips-TRmABTTI.918cb21596f9.js.br +0 -0
  201. codex/static_root/assets/relation-chips-TRmABTTI.918cb21596f9.js.gz +0 -0
  202. codex/static_root/assets/{relation-chips-B_z9ixOK.js → relation-chips-TRmABTTI.js} +1 -1
  203. codex/static_root/assets/relation-chips-TRmABTTI.js.br +0 -0
  204. codex/static_root/assets/relation-chips-TRmABTTI.js.gz +0 -0
  205. codex/static_root/assets/{settings-drawer-CpS_aX4Z.9d4d9533d033.css → settings-drawer-B-pwZRSy.8fc8b237bb52.css} +1 -1
  206. codex/static_root/assets/settings-drawer-B-pwZRSy.8fc8b237bb52.css.br +0 -0
  207. codex/static_root/assets/settings-drawer-B-pwZRSy.8fc8b237bb52.css.gz +0 -0
  208. codex/static_root/assets/{settings-drawer-CpS_aX4Z.css → settings-drawer-B-pwZRSy.css} +1 -1
  209. codex/static_root/assets/settings-drawer-B-pwZRSy.css.br +0 -0
  210. codex/static_root/assets/settings-drawer-B-pwZRSy.css.gz +0 -0
  211. codex/static_root/assets/settings-drawer-BoAnrKCI.46b6a030c81f.js +2 -0
  212. codex/static_root/assets/settings-drawer-BoAnrKCI.46b6a030c81f.js.br +0 -0
  213. codex/static_root/assets/settings-drawer-BoAnrKCI.46b6a030c81f.js.gz +0 -0
  214. codex/static_root/assets/settings-drawer-BoAnrKCI.js +2 -0
  215. codex/static_root/assets/settings-drawer-BoAnrKCI.js.br +0 -0
  216. codex/static_root/assets/settings-drawer-BoAnrKCI.js.gz +0 -0
  217. codex/static_root/assets/{ssrBoot-CoIsTnhp.ab2c4669478d.js → ssrBoot-B6P0M2z2.38ab2f4bde57.js} +1 -1
  218. codex/static_root/assets/ssrBoot-B6P0M2z2.38ab2f4bde57.js.br +0 -0
  219. codex/static_root/assets/ssrBoot-B6P0M2z2.38ab2f4bde57.js.gz +0 -0
  220. codex/static_root/assets/{ssrBoot-CoIsTnhp.js → ssrBoot-B6P0M2z2.js} +1 -1
  221. codex/static_root/assets/ssrBoot-B6P0M2z2.js.br +0 -0
  222. codex/static_root/assets/ssrBoot-B6P0M2z2.js.gz +0 -0
  223. codex/static_root/assets/{stats-tab-Bncgetpc.94f90b6a111b.js → stats-tab-C5m62fu3.8482d96809e9.js} +1 -1
  224. codex/static_root/assets/stats-tab-C5m62fu3.8482d96809e9.js.br +0 -0
  225. codex/static_root/assets/stats-tab-C5m62fu3.8482d96809e9.js.gz +0 -0
  226. codex/static_root/assets/{stats-tab-Bncgetpc.js → stats-tab-C5m62fu3.js} +1 -1
  227. codex/static_root/assets/stats-tab-C5m62fu3.js.br +0 -0
  228. codex/static_root/assets/stats-tab-C5m62fu3.js.gz +0 -0
  229. codex/static_root/assets/{task-tab-BWkw24-u.0e981a767773.js → task-tab-B3WOGyYT.508fce185a28.js} +1 -1
  230. codex/static_root/assets/task-tab-B3WOGyYT.508fce185a28.js.br +0 -0
  231. codex/static_root/assets/task-tab-B3WOGyYT.508fce185a28.js.gz +0 -0
  232. codex/static_root/assets/{task-tab-BWkw24-u.js → task-tab-B3WOGyYT.js} +1 -1
  233. codex/static_root/assets/task-tab-B3WOGyYT.js.br +0 -0
  234. codex/static_root/assets/task-tab-B3WOGyYT.js.gz +0 -0
  235. codex/static_root/assets/{unauthorized-IXAh-oLS.be484d21eb2a.js → unauthorized-DXoWE_v2.19c70a140f9b.js} +1 -1
  236. codex/static_root/assets/unauthorized-DXoWE_v2.19c70a140f9b.js.br +0 -0
  237. codex/static_root/assets/unauthorized-DXoWE_v2.19c70a140f9b.js.gz +0 -0
  238. codex/static_root/assets/{unauthorized-IXAh-oLS.js → unauthorized-DXoWE_v2.js} +1 -1
  239. codex/static_root/assets/unauthorized-DXoWE_v2.js.br +0 -0
  240. codex/static_root/assets/unauthorized-DXoWE_v2.js.gz +0 -0
  241. codex/static_root/assets/{user-tab-CtQh6PJE.6b9a1d0e733a.js → user-tab-DhsQxTkZ.8a8167f9f2c4.js} +1 -1
  242. codex/static_root/assets/user-tab-DhsQxTkZ.8a8167f9f2c4.js.br +0 -0
  243. codex/static_root/assets/user-tab-DhsQxTkZ.8a8167f9f2c4.js.gz +0 -0
  244. codex/static_root/assets/{user-tab-CtQh6PJE.js → user-tab-DhsQxTkZ.js} +1 -1
  245. codex/static_root/assets/user-tab-DhsQxTkZ.js.br +0 -0
  246. codex/static_root/assets/user-tab-DhsQxTkZ.js.gz +0 -0
  247. codex/static_root/{manifest.92b1b461eee2.json → manifest.db295ed1ca03.json} +287 -287
  248. codex/static_root/manifest.db295ed1ca03.json.br +0 -0
  249. codex/static_root/manifest.db295ed1ca03.json.gz +0 -0
  250. codex/static_root/manifest.json +287 -287
  251. codex/static_root/manifest.json.br +0 -0
  252. codex/static_root/manifest.json.gz +0 -0
  253. codex/static_root/staticfiles.json +1 -1
  254. {codex-1.8.5.dist-info → codex-1.8.6.dist-info}/METADATA +1 -1
  255. {codex-1.8.5.dist-info → codex-1.8.6.dist-info}/RECORD +259 -259
  256. codex/static_root/assets/VCheckbox-DxJUMufz.9a175cfa72c8.js.br +0 -0
  257. codex/static_root/assets/VCheckbox-DxJUMufz.9a175cfa72c8.js.gz +0 -0
  258. codex/static_root/assets/VCheckbox-DxJUMufz.js.br +0 -0
  259. codex/static_root/assets/VCheckbox-DxJUMufz.js.gz +0 -0
  260. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.4a42f2c068f5.js.br +0 -0
  261. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.4a42f2c068f5.js.gz +0 -0
  262. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.js.br +0 -0
  263. codex/static_root/assets/VCheckboxBtn-BE6yrQ80.js.gz +0 -0
  264. codex/static_root/assets/VCombobox-Bfyp0szs.b51553d29c8c.js.br +0 -0
  265. codex/static_root/assets/VCombobox-Bfyp0szs.b51553d29c8c.js.gz +0 -0
  266. codex/static_root/assets/VCombobox-Bfyp0szs.js.br +0 -0
  267. codex/static_root/assets/VCombobox-Bfyp0szs.js.gz +0 -0
  268. codex/static_root/assets/VDialog-Cy6wFjb9.9253a3f54f22.js.br +0 -0
  269. codex/static_root/assets/VDialog-Cy6wFjb9.9253a3f54f22.js.gz +0 -0
  270. codex/static_root/assets/VDialog-Cy6wFjb9.js.br +0 -0
  271. codex/static_root/assets/VDialog-Cy6wFjb9.js.gz +0 -0
  272. codex/static_root/assets/VDivider-BEpvozL4.c9fd95940cb5.js.br +0 -0
  273. codex/static_root/assets/VDivider-BEpvozL4.c9fd95940cb5.js.gz +0 -0
  274. codex/static_root/assets/VDivider-BEpvozL4.js.br +0 -0
  275. codex/static_root/assets/VDivider-BEpvozL4.js.gz +0 -0
  276. codex/static_root/assets/VExpansionPanels-BzyHQUL4.7e54cedf021c.js.br +0 -0
  277. codex/static_root/assets/VExpansionPanels-BzyHQUL4.7e54cedf021c.js.gz +0 -0
  278. codex/static_root/assets/VExpansionPanels-BzyHQUL4.js.br +0 -0
  279. codex/static_root/assets/VExpansionPanels-BzyHQUL4.js.gz +0 -0
  280. codex/static_root/assets/VForm-CmVlbmJK.887eb47d3534.js.br +0 -0
  281. codex/static_root/assets/VForm-CmVlbmJK.887eb47d3534.js.gz +0 -0
  282. codex/static_root/assets/VForm-CmVlbmJK.js.br +0 -0
  283. codex/static_root/assets/VForm-CmVlbmJK.js.gz +0 -0
  284. codex/static_root/assets/VRadioGroup-DWzKkq9W.daaabd353889.js.br +0 -0
  285. codex/static_root/assets/VRadioGroup-DWzKkq9W.daaabd353889.js.gz +0 -0
  286. codex/static_root/assets/VRadioGroup-DWzKkq9W.js.br +0 -0
  287. codex/static_root/assets/VRadioGroup-DWzKkq9W.js.gz +0 -0
  288. codex/static_root/assets/VSelect-Cqjdw0PV.ab01020c5ef4.js.br +0 -0
  289. codex/static_root/assets/VSelect-Cqjdw0PV.ab01020c5ef4.js.gz +0 -0
  290. codex/static_root/assets/VSelect-Cqjdw0PV.js.br +0 -0
  291. codex/static_root/assets/VSelect-Cqjdw0PV.js.gz +0 -0
  292. codex/static_root/assets/VSelectionControl-Dk52iIPb.fe2504c50db4.js.br +0 -0
  293. codex/static_root/assets/VSelectionControl-Dk52iIPb.fe2504c50db4.js.gz +0 -0
  294. codex/static_root/assets/VSelectionControl-Dk52iIPb.js.br +0 -0
  295. codex/static_root/assets/VSelectionControl-Dk52iIPb.js.gz +0 -0
  296. codex/static_root/assets/VTable-Ch5ZSNsk.c38a2cb589fa.js.br +0 -0
  297. codex/static_root/assets/VTable-Ch5ZSNsk.c38a2cb589fa.js.gz +0 -0
  298. codex/static_root/assets/VTable-Ch5ZSNsk.js.br +0 -0
  299. codex/static_root/assets/VTable-Ch5ZSNsk.js.gz +0 -0
  300. codex/static_root/assets/VWindowItem-DBU8ce0X.4bbcffa75b9a.js.br +0 -0
  301. codex/static_root/assets/VWindowItem-DBU8ce0X.4bbcffa75b9a.js.gz +0 -0
  302. codex/static_root/assets/VWindowItem-DBU8ce0X.js.br +0 -0
  303. codex/static_root/assets/VWindowItem-DBU8ce0X.js.gz +0 -0
  304. codex/static_root/assets/admin-Bt81XU3H.ca36b1a1b799.js.br +0 -0
  305. codex/static_root/assets/admin-Bt81XU3H.ca36b1a1b799.js.gz +0 -0
  306. codex/static_root/assets/admin-Bt81XU3H.js.br +0 -0
  307. codex/static_root/assets/admin-Bt81XU3H.js.gz +0 -0
  308. codex/static_root/assets/admin-CfqMNEyt.bebc609836d0.js.br +0 -0
  309. codex/static_root/assets/admin-CfqMNEyt.bebc609836d0.js.gz +0 -0
  310. codex/static_root/assets/admin-CfqMNEyt.js.br +0 -0
  311. codex/static_root/assets/admin-CfqMNEyt.js.gz +0 -0
  312. codex/static_root/assets/admin-menu-Db5b3nba.09d034934b88.js.br +0 -0
  313. codex/static_root/assets/admin-menu-Db5b3nba.09d034934b88.js.gz +0 -0
  314. codex/static_root/assets/admin-menu-Db5b3nba.js.br +0 -0
  315. codex/static_root/assets/admin-menu-Db5b3nba.js.gz +0 -0
  316. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.53e05963f557.js.br +0 -0
  317. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.53e05963f557.js.gz +0 -0
  318. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.js.br +0 -0
  319. codex/static_root/assets/admin-settings-button-progress-BPQGNinn.js.gz +0 -0
  320. codex/static_root/assets/browser-C19hTg9r.9b5d0eadd6d4.js.br +0 -0
  321. codex/static_root/assets/browser-C19hTg9r.9b5d0eadd6d4.js.gz +0 -0
  322. codex/static_root/assets/browser-C19hTg9r.js.br +0 -0
  323. codex/static_root/assets/browser-C19hTg9r.js.gz +0 -0
  324. codex/static_root/assets/change-password-dialog-DPAIPGJa.7c4c436e259e.js.br +0 -0
  325. codex/static_root/assets/change-password-dialog-DPAIPGJa.7c4c436e259e.js.gz +0 -0
  326. codex/static_root/assets/change-password-dialog-DPAIPGJa.js.br +0 -0
  327. codex/static_root/assets/change-password-dialog-DPAIPGJa.js.gz +0 -0
  328. codex/static_root/assets/confirm-dialog-CgSU27R5.0127ce62d24c.js.br +0 -0
  329. codex/static_root/assets/confirm-dialog-CgSU27R5.0127ce62d24c.js.gz +0 -0
  330. codex/static_root/assets/confirm-dialog-CgSU27R5.js.br +0 -0
  331. codex/static_root/assets/confirm-dialog-CgSU27R5.js.gz +0 -0
  332. codex/static_root/assets/datetime-column-Dw9zxZLR.cd8791cda91b.js.br +0 -0
  333. codex/static_root/assets/datetime-column-Dw9zxZLR.cd8791cda91b.js.gz +0 -0
  334. codex/static_root/assets/datetime-column-Dw9zxZLR.js.br +0 -0
  335. codex/static_root/assets/datetime-column-Dw9zxZLR.js.gz +0 -0
  336. codex/static_root/assets/filter-BNTCrH8l.c00298a8fccf.js.br +0 -0
  337. codex/static_root/assets/filter-BNTCrH8l.c00298a8fccf.js.gz +0 -0
  338. codex/static_root/assets/filter-BNTCrH8l.js.br +0 -0
  339. codex/static_root/assets/filter-BNTCrH8l.js.gz +0 -0
  340. codex/static_root/assets/flag-tab-Xpq_xAF5.3f14de61afcc.js.br +0 -0
  341. codex/static_root/assets/flag-tab-Xpq_xAF5.3f14de61afcc.js.gz +0 -0
  342. codex/static_root/assets/flag-tab-Xpq_xAF5.js.br +0 -0
  343. codex/static_root/assets/flag-tab-Xpq_xAF5.js.gz +0 -0
  344. codex/static_root/assets/forwardRefs-fUake9mW.12c1018cd1e3.js.br +0 -0
  345. codex/static_root/assets/forwardRefs-fUake9mW.12c1018cd1e3.js.gz +0 -0
  346. codex/static_root/assets/forwardRefs-fUake9mW.js.br +0 -0
  347. codex/static_root/assets/forwardRefs-fUake9mW.js.gz +0 -0
  348. codex/static_root/assets/group-tab-E_R0glEI.82e1d92be747.js.br +0 -0
  349. codex/static_root/assets/group-tab-E_R0glEI.82e1d92be747.js.gz +0 -0
  350. codex/static_root/assets/group-tab-E_R0glEI.js.br +0 -0
  351. codex/static_root/assets/group-tab-E_R0glEI.js.gz +0 -0
  352. codex/static_root/assets/http-error-C6bKTzfv.168d047d5219.js.br +0 -5
  353. codex/static_root/assets/http-error-C6bKTzfv.168d047d5219.js.gz +0 -0
  354. codex/static_root/assets/http-error-C6bKTzfv.js.br +0 -5
  355. codex/static_root/assets/http-error-C6bKTzfv.js.gz +0 -0
  356. codex/static_root/assets/index-j9jeRHe0.294b614eaea1.js.br +0 -0
  357. codex/static_root/assets/index-j9jeRHe0.294b614eaea1.js.gz +0 -0
  358. codex/static_root/assets/index-j9jeRHe0.js.br +0 -0
  359. codex/static_root/assets/index-j9jeRHe0.js.gz +0 -0
  360. codex/static_root/assets/library-tab-DPYjRIWp.58e434354594.js.br +0 -0
  361. codex/static_root/assets/library-tab-DPYjRIWp.58e434354594.js.gz +0 -0
  362. codex/static_root/assets/library-tab-DPYjRIWp.js.br +0 -0
  363. codex/static_root/assets/library-tab-DPYjRIWp.js.gz +0 -0
  364. codex/static_root/assets/main-Cnq2ldv_.1c0766500281.js.br +0 -0
  365. codex/static_root/assets/main-Cnq2ldv_.1c0766500281.js.gz +0 -0
  366. codex/static_root/assets/main-Cnq2ldv_.js.br +0 -0
  367. codex/static_root/assets/main-Cnq2ldv_.js.gz +0 -0
  368. codex/static_root/assets/pager-full-pdf-CdHAL6P3.cb6bc541ca5c.js +0 -1
  369. codex/static_root/assets/pager-full-pdf-CdHAL6P3.cb6bc541ca5c.js.br +0 -0
  370. codex/static_root/assets/pager-full-pdf-CdHAL6P3.cb6bc541ca5c.js.gz +0 -0
  371. codex/static_root/assets/pager-full-pdf-CdHAL6P3.js +0 -1
  372. codex/static_root/assets/pager-full-pdf-CdHAL6P3.js.br +0 -0
  373. codex/static_root/assets/pager-full-pdf-CdHAL6P3.js.gz +0 -0
  374. codex/static_root/assets/pagination-toolbar-BFBKOWOc.3355103910ff.js.br +0 -0
  375. codex/static_root/assets/pagination-toolbar-BFBKOWOc.3355103910ff.js.gz +0 -0
  376. codex/static_root/assets/pagination-toolbar-BFBKOWOc.js.br +0 -0
  377. codex/static_root/assets/pagination-toolbar-BFBKOWOc.js.gz +0 -0
  378. codex/static_root/assets/pdf-doc-XAg2nqnS.5a33f918a28a.js.br +0 -0
  379. codex/static_root/assets/pdf-doc-XAg2nqnS.5a33f918a28a.js.gz +0 -0
  380. codex/static_root/assets/pdf-doc-XAg2nqnS.js.br +0 -0
  381. codex/static_root/assets/pdf-doc-XAg2nqnS.js.gz +0 -0
  382. codex/static_root/assets/reader-BZ4Dp-_5.ecd9d42077af.js.br +0 -0
  383. codex/static_root/assets/reader-BZ4Dp-_5.ecd9d42077af.js.gz +0 -0
  384. codex/static_root/assets/reader-BZ4Dp-_5.js.br +0 -0
  385. codex/static_root/assets/reader-BZ4Dp-_5.js.gz +0 -0
  386. codex/static_root/assets/relation-chips-B_z9ixOK.8f144f1cf119.js.br +0 -0
  387. codex/static_root/assets/relation-chips-B_z9ixOK.8f144f1cf119.js.gz +0 -0
  388. codex/static_root/assets/relation-chips-B_z9ixOK.js.br +0 -0
  389. codex/static_root/assets/relation-chips-B_z9ixOK.js.gz +0 -0
  390. codex/static_root/assets/settings-drawer-Cd3M0s-h.c5216209feb4.js +0 -2
  391. codex/static_root/assets/settings-drawer-Cd3M0s-h.c5216209feb4.js.br +0 -0
  392. codex/static_root/assets/settings-drawer-Cd3M0s-h.c5216209feb4.js.gz +0 -0
  393. codex/static_root/assets/settings-drawer-Cd3M0s-h.js +0 -2
  394. codex/static_root/assets/settings-drawer-Cd3M0s-h.js.br +0 -0
  395. codex/static_root/assets/settings-drawer-Cd3M0s-h.js.gz +0 -0
  396. codex/static_root/assets/settings-drawer-CpS_aX4Z.9d4d9533d033.css.br +0 -0
  397. codex/static_root/assets/settings-drawer-CpS_aX4Z.9d4d9533d033.css.gz +0 -0
  398. codex/static_root/assets/settings-drawer-CpS_aX4Z.css.br +0 -0
  399. codex/static_root/assets/settings-drawer-CpS_aX4Z.css.gz +0 -0
  400. codex/static_root/assets/ssrBoot-CoIsTnhp.ab2c4669478d.js.br +0 -0
  401. codex/static_root/assets/ssrBoot-CoIsTnhp.ab2c4669478d.js.gz +0 -0
  402. codex/static_root/assets/ssrBoot-CoIsTnhp.js.br +0 -0
  403. codex/static_root/assets/ssrBoot-CoIsTnhp.js.gz +0 -0
  404. codex/static_root/assets/stats-tab-Bncgetpc.94f90b6a111b.js.br +0 -0
  405. codex/static_root/assets/stats-tab-Bncgetpc.94f90b6a111b.js.gz +0 -0
  406. codex/static_root/assets/stats-tab-Bncgetpc.js.br +0 -0
  407. codex/static_root/assets/stats-tab-Bncgetpc.js.gz +0 -0
  408. codex/static_root/assets/task-tab-BWkw24-u.0e981a767773.js.br +0 -0
  409. codex/static_root/assets/task-tab-BWkw24-u.0e981a767773.js.gz +0 -0
  410. codex/static_root/assets/task-tab-BWkw24-u.js.br +0 -0
  411. codex/static_root/assets/task-tab-BWkw24-u.js.gz +0 -0
  412. codex/static_root/assets/unauthorized-IXAh-oLS.be484d21eb2a.js.br +0 -0
  413. codex/static_root/assets/unauthorized-IXAh-oLS.be484d21eb2a.js.gz +0 -0
  414. codex/static_root/assets/unauthorized-IXAh-oLS.js.br +0 -0
  415. codex/static_root/assets/unauthorized-IXAh-oLS.js.gz +0 -0
  416. codex/static_root/assets/user-tab-CtQh6PJE.6b9a1d0e733a.js.br +0 -0
  417. codex/static_root/assets/user-tab-CtQh6PJE.6b9a1d0e733a.js.gz +0 -0
  418. codex/static_root/assets/user-tab-CtQh6PJE.js.br +0 -0
  419. codex/static_root/assets/user-tab-CtQh6PJE.js.gz +0 -0
  420. codex/static_root/manifest.92b1b461eee2.json.br +0 -0
  421. codex/static_root/manifest.92b1b461eee2.json.gz +0 -0
  422. /codex/librarian/{watchdog/memory.py → memory.py} +0 -0
  423. {codex-1.8.5.dist-info → codex-1.8.6.dist-info}/WHEEL +0 -0
  424. {codex-1.8.5.dist-info → codex-1.8.6.dist-info}/entry_points.txt +0 -0
  425. {codex-1.8.5.dist-info → codex-1.8.6.dist-info}/licenses/LICENSE +0 -0
@@ -4,7 +4,7 @@ from codex.librarian.scribe.importer.const import ALL_COMIC_GROUP_FIELD_NAMES
4
4
  from codex.librarian.scribe.importer.delete.covers import DeletedCoversImporter
5
5
  from codex.librarian.scribe.importer.statii.delete import ImporterRemoveComicsStatus
6
6
  from codex.models import Comic, Folder, StoryArc
7
- from codex.settings import MAX_CHUNK_SIZE
7
+ from codex.settings import DELETE_MAX_CHUNK_SIZE
8
8
 
9
9
 
10
10
  class DeletedComicsImporter(DeletedCoversImporter):
@@ -29,7 +29,7 @@ class DeletedComicsImporter(DeletedCoversImporter):
29
29
  comics_deleted_qs = delete_qs.only(
30
30
  *ALL_COMIC_GROUP_FIELD_NAMES
31
31
  ).prefetch_related("story_arc_numbers__story_arc")
32
- for comic in comics_deleted_qs.iterator(chunk_size=MAX_CHUNK_SIZE):
32
+ for comic in comics_deleted_qs.iterator(chunk_size=DELETE_MAX_CHUNK_SIZE):
33
33
  for field_name in ALL_COMIC_GROUP_FIELD_NAMES:
34
34
  if field_name == "story_arc_numbers":
35
35
  for san in comic.story_arc_numbers.select_related("story_arc").only(
@@ -29,23 +29,12 @@ from codex.librarian.scribe.tasks import (
29
29
  )
30
30
  from codex.librarian.scribe.timestamp_update import TimestampUpdater
31
31
  from codex.librarian.threads import QueuedThread
32
- from codex.settings import SEARCH_INDEX_BATCH_SIZE
33
32
 
34
- _ABORT_SEARCH_UPDATE_TASKS = (
33
+ ABORT_SEARCH_UPDATE_TASKS = (
35
34
  SearchIndexClearTask,
36
35
  SearchIndexSyncAbortTask,
37
36
  JanitorFTSRebuildTask,
38
37
  )
39
- _ABORT_SEARCH_UPDATE_ON_IMPORT_TASKS = (
40
- ImportTask,
41
- JanitorAdoptOrphanFoldersTask,
42
- )
43
- _ABORT_SEARCH_UPDATE_ON_IMPORT_BATCH_SIZE = 1000
44
- ABORT_SEARCH_UPDATE_TASKS = (
45
- _ABORT_SEARCH_UPDATE_TASKS + _ABORT_SEARCH_UPDATE_ON_IMPORT_TASKS
46
- if SEARCH_INDEX_BATCH_SIZE <= _ABORT_SEARCH_UPDATE_ON_IMPORT_BATCH_SIZE
47
- else _ABORT_SEARCH_UPDATE_TASKS
48
- )
49
38
 
50
39
 
51
40
  class ScribeThread(QueuedThread):
@@ -118,7 +107,7 @@ class ScribeThread(QueuedThread):
118
107
  self.log.debug("Abort cleanup db signal given.")
119
108
  elif isinstance(task, SearchIndexSyncAbortTask):
120
109
  self.log.debug(
121
- "Search Index Update abort signal given. May take a bit for the current import subtask to finish."
110
+ "Search Index Sync abort signal given. It may take a while for the current import chunk to finish."
122
111
  )
123
112
  return
124
113
  elif isinstance(task, ImportAbortTask):
@@ -1,7 +1,9 @@
1
1
  """Search Index update."""
2
2
 
3
3
  from datetime import datetime
4
+ from math import floor
4
5
  from time import time
6
+ from typing import TYPE_CHECKING
5
7
  from zoneinfo import ZoneInfo
6
8
 
7
9
  from comicbox.enums.maps.identifiers import ID_SOURCE_NAME_MAP
@@ -12,6 +14,7 @@ from django.db.models.functions.datetime import Now
12
14
  from django.db.models.query import QuerySet
13
15
  from humanize import intcomma, naturaldelta
14
16
 
17
+ from codex.librarian.memory import get_mem_limit
15
18
  from codex.librarian.scribe.search.remove import SearchIndexerRemove
16
19
  from codex.librarian.scribe.search.status import (
17
20
  SEARCH_INDEX_STATII,
@@ -20,12 +23,14 @@ from codex.librarian.scribe.search.status import (
20
23
  SearchIndexSyncCreateStatus,
21
24
  SearchIndexSyncUpdateStatus,
22
25
  )
23
- from codex.librarian.status import Status
24
26
  from codex.models import Comic
25
27
  from codex.models.comic import ComicFTS
26
28
  from codex.models.functions import GroupConcat
27
29
  from codex.serializers.fields.browser import CountryField, LanguageField, PyCountryField
28
- from codex.settings import SEARCH_INDEX_BATCH_SIZE
30
+ from codex.settings import SEARCH_SYNC_BATCH_MEMORY_RATIO
31
+
32
+ if TYPE_CHECKING:
33
+ from codex.librarian.status import Status
29
34
 
30
35
  _COMICFTS_ATTRIBUTES = (
31
36
  "collection_title",
@@ -69,7 +74,6 @@ _COMICFTS_UPDATE_FIELDS = (
69
74
  *_COMICFTS_M2MS,
70
75
  )
71
76
  _MIN_UTC_DATE = datetime.min.replace(tzinfo=ZoneInfo("UTC"))
72
- _CHUNK_HUMAN_SIZE = intcomma(SEARCH_INDEX_BATCH_SIZE)
73
77
 
74
78
 
75
79
  class SearchIndexerSync(SearchIndexerRemove):
@@ -184,32 +188,19 @@ class SearchIndexerSync(SearchIndexerRemove):
184
188
  names.append(long_name)
185
189
  return ",".join(names)
186
190
 
187
- def _update_search_index_create_or_update(
188
- self,
189
- obj_list: list[ComicFTS],
190
- status,
191
- *,
192
- create: bool,
191
+ def _update_search_index_operate_get_status(
192
+ self, total_comics: int, chunk_human_size: str, *, create: bool
193
193
  ):
194
- if self.abort_event.is_set():
195
- return
196
- verb = "create" if create else "update"
197
- verbing = (verb[:-1] + "ing").capitalize()
198
- num_comic_fts = len(obj_list)
199
-
200
- batch_position = f"({status.complete}/{status.total})"
201
- self.log.debug(f"{verbing} {num_comic_fts} {batch_position} search entries...")
202
- if create:
203
- ComicFTS.objects.bulk_create(obj_list)
204
- else:
205
- ComicFTS.objects.bulk_update(obj_list, _COMICFTS_UPDATE_FIELDS)
206
- obj_list.clear()
194
+ status_class = (
195
+ SearchIndexSyncCreateStatus if create else SearchIndexSyncUpdateStatus
196
+ )
197
+ subtitle = f"Chunks of {chunk_human_size}" if total_comics else ""
198
+ return status_class(total=total_comics, subtitle=subtitle)
207
199
 
208
200
  def _create_comicfts_entry(
209
201
  self,
210
202
  comic,
211
203
  obj_list: list[ComicFTS],
212
- status: Status,
213
204
  *,
214
205
  create: bool,
215
206
  ):
@@ -262,73 +253,78 @@ class SearchIndexerSync(SearchIndexerRemove):
262
253
  comicfts.created_at = now
263
254
 
264
255
  obj_list.append(comicfts)
265
- status.increment_complete()
266
- self.status_controller.update(status)
267
256
 
268
- def _update_search_index_operate_get_status(
269
- self, total_comics: int, *, create: bool
257
+ def _update_search_index_create_or_update(
258
+ self,
259
+ obj_list: list[ComicFTS],
260
+ status,
261
+ *,
262
+ create: bool,
270
263
  ):
271
- status_class = (
272
- SearchIndexSyncCreateStatus if create else SearchIndexSyncUpdateStatus
273
- )
274
- subtitle = f"Chunks of {_CHUNK_HUMAN_SIZE}" if total_comics else ""
275
- return status_class(total=total_comics, subtitle=subtitle)
264
+ if self.abort_event.is_set():
265
+ return
266
+ verb = "create" if create else "update"
267
+ verbing = (verb[:-1] + "ing").capitalize()
268
+ num_comic_fts = len(obj_list)
269
+
270
+ batch_position = f"({status.complete}/{status.total})"
271
+ self.log.debug(f"{verbing} {num_comic_fts} {batch_position} search entries...")
272
+ if create:
273
+ ComicFTS.objects.bulk_create(obj_list)
274
+ else:
275
+ ComicFTS.objects.bulk_update(obj_list, _COMICFTS_UPDATE_FIELDS)
276
+
277
+ status.increment_complete(num_comic_fts)
278
+ self.status_controller.update(status, notify=True)
276
279
 
277
280
  def _update_search_index_operate(
278
281
  self, comics_filtered_qs: QuerySet, *, create: bool
279
282
  ):
280
- total_comics = comics_filtered_qs.count()
283
+ # Smaller systems may run out of virtual memory unless this is auto governed.
284
+ mem_limit_gb = get_mem_limit("g")
285
+ search_index_batch_size = floor(
286
+ (mem_limit_gb / SEARCH_SYNC_BATCH_MEMORY_RATIO) * 1000
287
+ )
288
+ chunk_human_size = intcomma(search_index_batch_size)
281
289
 
282
290
  verb = "create" if create else "update"
291
+ self.log.debug(f"Counting total search index entries to {verb}...")
292
+ total_comics = comics_filtered_qs.count()
283
293
  status = self._update_search_index_operate_get_status(
284
- total_comics, create=create
294
+ total_comics, chunk_human_size, create=create
285
295
  )
286
296
 
287
297
  try:
288
- if total_comics:
289
- reason = (
290
- f"Batching this search engine {verb} operation in to chunks of {_CHUNK_HUMAN_SIZE}."
291
- f" Search engine {verb}s run much faster as one large batch but then there's no progress updates."
292
- " You may adjust the batch size with the environment variable CODEX_SEARCH_INDEX_BATCH_SIZE."
293
- )
294
- else:
295
- reason = f"No search entries to {verb}."
296
- self.log.debug(reason)
297
298
  if not total_comics:
299
+ self.log.debug(f"No search entries to {verb}.")
298
300
  return total_comics
299
301
 
300
- self.status_controller.start(status)
301
- comics = self._select_related_fts_query(comics_filtered_qs)
302
- comics = self._prefetch_related_fts_query(comics)
303
- comics = self._annotate_fts_query(comics)
304
- comics = comics.order_by("pk")
305
-
306
- obj_list = []
307
- prep_num = min(SEARCH_INDEX_BATCH_SIZE, total_comics)
308
- self.log.debug(f"Preparing {prep_num} comics for search indexing...")
309
- for comic in comics.iterator(chunk_size=SEARCH_INDEX_BATCH_SIZE):
302
+ self.status_controller.start(status, notify=True)
303
+ while True:
304
+ obj_list = []
310
305
  if self.abort_event.is_set():
311
306
  break
312
- self._create_comicfts_entry(comic, obj_list, status, create=create)
313
- if len(obj_list) >= SEARCH_INDEX_BATCH_SIZE:
314
- self._update_search_index_create_or_update(
315
- obj_list,
316
- status,
317
- create=create,
318
- )
319
- complete = status.complete or 0
320
- if prep_num := min(
321
- SEARCH_INDEX_BATCH_SIZE, total_comics - complete
322
- ):
323
- self.log.debug(
324
- f"Preparing {prep_num} comics for search indexing..."
325
- )
326
-
327
- self._update_search_index_create_or_update(
328
- obj_list,
329
- status,
330
- create=create,
331
- )
307
+ # Not using standard iterator chunking to control memory and really
308
+ # do this in batches.
309
+ self.log.debug(
310
+ f"Preparing up to {search_index_batch_size} comics for search indexing..."
311
+ )
312
+ comics = comics_filtered_qs
313
+ comics = self._select_related_fts_query(comics)
314
+ comics = self._prefetch_related_fts_query(comics)
315
+ comics = comics.order_by("pk")
316
+ comics = comics[:search_index_batch_size]
317
+ comics = self._annotate_fts_query(comics)
318
+ for comic in comics:
319
+ self._create_comicfts_entry(comic, obj_list, create=create)
320
+
321
+ if not obj_list:
322
+ break
323
+ self._update_search_index_create_or_update(
324
+ obj_list,
325
+ status,
326
+ create=create,
327
+ )
332
328
 
333
329
  finally:
334
330
  self.status_controller.finish(status)
@@ -340,17 +336,17 @@ class SearchIndexerSync(SearchIndexerRemove):
340
336
  since = fts_watermark or "the fracturing of the multiverse"
341
337
  self.log.info(f"Looking for search entries to update since {since}...")
342
338
  fts_watermark = fts_watermark or _MIN_UTC_DATE
343
- out_of_date_comics = (
344
- Comic.objects.select_related("comicfts")
345
- .exclude(comicfts__isnull=True)
346
- .filter(updated_at__gt=fts_watermark)
339
+ out_of_date_comics = Comic.objects.filter(
340
+ pk__in=ComicFTS.objects.values("comic_id"), updated_at__gt=fts_watermark
347
341
  )
348
342
  return self._update_search_index_operate(out_of_date_comics, create=False)
349
343
 
350
344
  def _update_search_index_create(self):
351
345
  """Create missing search entries."""
352
346
  self.log.info("Looking for missing search entries to create...")
353
- missing_comics = Comic.objects.filter(comicfts__isnull=True)
347
+ missing_comics = Comic.objects.exclude(
348
+ pk__in=ComicFTS.objects.values("comic_id")
349
+ )
354
350
  return self._update_search_index_operate(missing_comics, create=True)
355
351
 
356
352
  def _update_search_index(self, *, rebuild: bool):
@@ -111,6 +111,29 @@ class StatusController:
111
111
  return
112
112
  self._update(status, notify=notify)
113
113
 
114
+ @staticmethod
115
+ def _finish_status_prepare(
116
+ positive_statii: MappingProxyType[str, Status | type[Status]],
117
+ updates: dict[str, Any],
118
+ ):
119
+ # Filter all active or preactive statii
120
+ ls_filter = Q(active__isnull=False) | Q(preactive__isnull=False)
121
+ if positive_statii:
122
+ ls_filter_dict: dict[str, Any] = {"status_type__in": positive_statii.keys()}
123
+ # Filter on status codes
124
+ ls_filter &= Q(**ls_filter_dict)
125
+ lses = LibrarianStatus.objects.filter(ls_filter)
126
+ update_ls = []
127
+ log_statii = []
128
+ for ls in lses.iterator():
129
+ for key, value in updates.items():
130
+ setattr(ls, key, value)
131
+ update_ls.append(ls)
132
+ status = positive_statii[ls.status_type]
133
+ if isinstance(status, Status):
134
+ log_statii.append(status)
135
+ return update_ls, log_statii
136
+
114
137
  def _log_finish(self, status: Status, *, clear_subtitle: bool):
115
138
  """Log finish of status with stats."""
116
139
  level = "INFO"
@@ -140,31 +163,6 @@ class StatusController:
140
163
 
141
164
  self.log.log(level, f"{prefix}{suffix}.")
142
165
 
143
- @staticmethod
144
- def _finish_status_prepare(
145
- positive_statii: MappingProxyType[str, Status | type[Status]],
146
- updates: dict[str, Any],
147
- ):
148
- # Filter on submitted codes or all statii if nothing.
149
- ls_filter_dict: dict[str, Any] = (
150
- {"status_type__in": positive_statii.keys()} if positive_statii else {}
151
- )
152
- # Filter all active or preactive statii
153
- ls_filter = (Q(active__isnull=False) | Q(preactive__isnull=False)) & Q(
154
- **ls_filter_dict
155
- )
156
- lses = LibrarianStatus.objects.filter(ls_filter)
157
- update_ls = []
158
- log_statii = []
159
- for ls in lses.iterator():
160
- for key, value in updates.items():
161
- setattr(ls, key, value)
162
- update_ls.append(ls)
163
- status = positive_statii[ls.status_type]
164
- if isinstance(status, Status):
165
- log_statii.append(status)
166
- return update_ls, log_statii
167
-
168
166
  def finish_many(
169
167
  self,
170
168
  statii: Iterable[Status | type[Status] | None],
@@ -191,8 +189,8 @@ class StatusController:
191
189
  self.log.info("Cleared all librarian statuses")
192
190
  for status in log_statii:
193
191
  self._log_finish(status, clear_subtitle=clear_subtitle)
194
- except Exception as exc:
195
- self.log.warning(f"Finish status {positive_statii}: {exc}")
192
+ except Exception:
193
+ self.log.exception(f"Finish status {positive_statii}")
196
194
 
197
195
  def finish(
198
196
  self, status: Status | None, *, notify: bool = True, clear_subtitle=True
@@ -14,6 +14,7 @@ from types import MappingProxyType
14
14
  from typing_extensions import override
15
15
  from watchdog.events import EVENT_TYPE_MOVED, FileSystemEvent
16
16
 
17
+ from codex.librarian.memory import get_mem_limit
17
18
  from codex.librarian.scribe.importer.tasks import ImportTask
18
19
  from codex.librarian.threads import AggregateMessageQueuedThread
19
20
  from codex.librarian.watchdog.const import EVENT_CLASS_DIFF_ALL_MAP
@@ -21,7 +22,6 @@ from codex.librarian.watchdog.events import (
21
22
  EVENT_TYPE_FINISH_POLL,
22
23
  EVENT_TYPE_START_POLL,
23
24
  )
24
- from codex.librarian.watchdog.memory import get_mem_limit
25
25
 
26
26
  _IMPORT_TASK_PARAMS = MappingProxyType(
27
27
  {
@@ -40,12 +40,14 @@ BUILD = not_falsy_env("BUILD")
40
40
  # limit in seconds
41
41
  SLOW_QUERY_LIMIT = float(environ.get("CODEX_SLOW_QUERY_LIMIT", "0.5"))
42
42
  LOG_RESPONSE_TIME = not_falsy_env("CODEX_LOG_RESPONSE_TIME")
43
- # Search indexing memory controls
44
- MMAP_RATIO = int(environ.get("CODEX_MMAP_RATIO", "240"))
45
- WRITER_MEMORY_PERCENT = float(environ.get("CODEX_WRITER_MEMORY_PERCENT", "0.6"))
46
- CPU_MULTIPLIER = float(environ.get("CODEX_CPU_MULTIPLIER", "1.25"))
47
- CHUNK_PER_GB = int(environ.get("CODEX_CHUNK_PER_GB", "250"))
48
- MAX_CHUNK_SIZE = int(environ.get("CODEX_MAX_CHUNK_SIZE", "1000"))
43
+ # Misc
44
+ VITE_HOST = environ.get("VITE_HOST")
45
+ LOG_RETENTION = environ.get("LOG_RETENTION", "6 months")
46
+ MAX_OBJ_PER_PAGE = int(environ.get("CODEX_BROWSER_MAX_OBJ_PER_PAGE", "100"))
47
+ # Search sync query
48
+ SEARCH_SYNC_BATCH_MEMORY_RATIO = float(
49
+ environ.get("CODEX_SEARCH_SYNC_BATCH_MEMORY_RATIO", "3.2")
50
+ )
49
51
  # sqlite parser breaks with more than 1000 variables in a query and
50
52
  # django only fixes this in the bulk_create & bulk_update functions.
51
53
  # So for complicated queries I gotta batch them myself. These batch sizes
@@ -54,10 +56,7 @@ MAX_CHUNK_SIZE = int(environ.get("CODEX_MAX_CHUNK_SIZE", "1000"))
54
56
  FILTER_BATCH_SIZE = int(environ.get("CODEX_FILTER_BATCH_SIZE", "900"))
55
57
  LINK_FK_BATCH_SIZE = int(environ.get("CODEX_LINK_FK_BATCH_SIZE", "20000"))
56
58
  LINK_M2M_BATCH_SIZE = int(environ.get("CODEX_LINK_M2M_BATCH_SIZE", "20000"))
57
- VITE_HOST = environ.get("VITE_HOST")
58
- SEARCH_INDEX_BATCH_SIZE = int(environ.get("CODEX_SEARCH_INDEX_BATCH_SIZE", "10000"))
59
- LOG_RETENTION = environ.get("LOG_RETENTION", "6 months")
60
- MAX_OBJ_PER_PAGE = int(environ.get("CODEX_BROWSER_MAX_OBJ_PER_PAGE", "100"))
59
+ DELETE_MAX_CHUNK_SIZE = int(environ.get("CODEX_DELETE_MAX_CHUNK_SIZE", "1000"))
61
60
 
62
61
 
63
62
  ####################################
@@ -1 +1 @@
1
- import{m as I,V as r}from"./VCheckboxBtn-BE6yrQ80.js";import{u as A,m as F,g as u}from"./VSelectionControl-Dk52iIPb.js";import{f as R}from"./forwardRefs-fUake9mW.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-Cnq2ldv_.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-BzgViWAb.js";import{u as A,m as F,g as u}from"./VSelectionControl-D3h7FjSM.js";import{f as R}from"./forwardRefs-FxOC1qa_.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-Bmi4BPiO.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-BE6yrQ80.js";import{u as A,m as F,g as u}from"./VSelectionControl-Dk52iIPb.js";import{f as R}from"./forwardRefs-fUake9mW.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-Cnq2ldv_.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-BzgViWAb.js";import{u as A,m as F,g as u}from"./VSelectionControl-D3h7FjSM.js";import{f as R}from"./forwardRefs-FxOC1qa_.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-Bmi4BPiO.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-Dk52iIPb.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-Cnq2ldv_.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-D3h7FjSM.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-Bmi4BPiO.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-Dk52iIPb.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-Cnq2ldv_.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-D3h7FjSM.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-Bmi4BPiO.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-Cqjdw0PV.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-Dk52iIPb.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-fUake9mW.js";import{u as Te,m as Me,h as _e}from"./filter-BNTCrH8l.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-Cnq2ldv_.js";import{a as X,g as Qe}from"./VDialog-Cy6wFjb9.js";import{a as Xe}from"./VDivider-BEpvozL4.js";import{V as Ye}from"./VCheckboxBtn-BE6yrQ80.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-4ozzBEef.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-D3h7FjSM.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-FxOC1qa_.js";import{u as Te,m as Me,h as _e}from"./filter-CRnAKgPp.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-Bmi4BPiO.js";import{a as X,g as Qe}from"./VDialog-Oz6-kM3S.js";import{a as Xe}from"./VDivider-CSRFyKQO.js";import{V as Ye}from"./VCheckboxBtn-BzgViWAb.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-Cqjdw0PV.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-Dk52iIPb.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-fUake9mW.js";import{u as Te,m as Me,h as _e}from"./filter-BNTCrH8l.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-Cnq2ldv_.js";import{a as X,g as Qe}from"./VDialog-Cy6wFjb9.js";import{a as Xe}from"./VDivider-BEpvozL4.js";import{V as Ye}from"./VCheckboxBtn-BE6yrQ80.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-4ozzBEef.js";import{p as Fe,c as j,q as De}from"./VSelectionControl-D3h7FjSM.js";import{u as Pe,f as Re,p as Ae,k as W,l as Ee}from"./forwardRefs-FxOC1qa_.js";import{u as Te,m as Me,h as _e}from"./filter-CRnAKgPp.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-Bmi4BPiO.js";import{a as X,g as Qe}from"./VDialog-Oz6-kM3S.js";import{a as Xe}from"./VDivider-CSRFyKQO.js";import{V as Ye}from"./VCheckboxBtn-BzgViWAb.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};