Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

209 строки
9.6 KiB

  1. <div class="h-full xl:min-w-0" x-data="UI.createTable({db:'{arguments:db}'})">
  2. <div class="border-base-200 flex items-center justify-between px-5 mb-[10px] space-x-3">
  3. <div>
  4. <span class="text-2xl text-[#008EED] leading-[80px] capitalize">Limits</span>
  5. </div>
  6. <div class="flex items-center gap-2">
  7. <label class="input input-primary w-[200px]">
  8. <span class="iconify lucide--search text-base-content/70 size-4.5 "></span>
  9. <input class="text-base placeholder:text-sm" type="search" x-model="search" @input="updateSearch"
  10. placeholder="Search" />
  11. </label>
  12. <div class="columnsDropdown dropdown dropdown-bottom dropdown-end">
  13. <div tabindex="0" role="button" class="btn btn-outline btn-primary">
  14. <span class="iconify lucide--columns-3-cog size-4"></span>
  15. </div>
  16. <div tabindex="0" class="dropdown-content bg-base-100 rounded-box w-44 shadow">
  17. <ul class="menu w-full">
  18. <template x-for="column in allLeafColumns" :key="column.id">
  19. <li @click="toggleColumn(column)" class="columnVisibility">
  20. <div class="group gap-2.5" :data-visible="isColumnVisible(column) ? true : null">
  21. <span
  22. class="iconify lucide--check size-4 scale-50 opacity-0 transition-all duration-300 group-data-visible:scale-100 group-data-visible:opacity-100"></span>
  23. <span class="font-medium" x-text="column.columnDef.header"></span>
  24. </div>
  25. </li>
  26. </template>
  27. </ul>
  28. </div>
  29. </div>
  30. <div class="dropdown dropdown-bottom dropdown-end">
  31. <div aria-label="More actions" tabindex="0" role="button" class="btn btn-outline btn-primary">
  32. <span class="iconify lucide--ellipsis-vertical size-4"></span>
  33. </div>
  34. <div tabindex="0" class="dropdown-content bg-base-100 rounded-box w-44 shadow">
  35. <ul class="menu w-full">
  36. <li class="update{arguments:db}" @click="updateData()">
  37. <div>
  38. <span class="iconify lucide--refresh-cw size-4"></span>
  39. Refresh Data
  40. </div>
  41. </li>
  42. <li>
  43. <div>
  44. <span class="iconify lucide--download size-4"></span>
  45. Export
  46. </div>
  47. </li>
  48. </ul>
  49. </div>
  50. </div>
  51. <button type="submit" class="btn btn-outline btn-primary" style="cursor: pointer;"
  52. onclick="js.part({'do':'{arguments:new}',arguments:{db:'{arguments:db}'}})">Add</button>
  53. </div>
  54. </div>
  55. <div class="flex px-[30px]">
  56. <div
  57. class=" max-h-[calc(100vh-260px)] overflow-y-scroll overflow-x-auto w-full border-solid border-1 border-[#008EED] rounded-none">
  58. <div
  59. class="min-w-[480px] px-[20px] py-[20px] border-base-200 flex flex-wrap items-center justify-between gap-2">
  60. <div class="join border-solid border-1 border-[#008EED] rounded-md">
  61. <button class="btn btn-square btn-sm btn-outline border-base-300 join-item"
  62. aria-label="Pagination controls" :disabled="!table.getCanPreviousPage()" @click="prevPage()">
  63. <span class="iconify lucide--arrow-left"></span>
  64. </button>
  65. <input aria-label="Page number" min="1" :max="table.getPageCount()" :value="pageIndex + 1"
  66. @input="setPageIndex($event.target.value - 1)"
  67. class="input input-sm join-item w-10 text-center border-0" />
  68. <button class="btn btn-square btn-sm btn-outline border-base-300 join-item"
  69. aria-label="Pagination controls" :disabled="!table.getCanNextPage()" @click="nextPage()">
  70. <span class="iconify lucide--arrow-right"></span>
  71. </button>
  72. </div>
  73. <p class="text-base-content/70 text-sm max-md:hidden">
  74. <span class="text-base-content font-medium" x-text="`${start}–${end}`"></span>
  75. out of
  76. <span class="text-base-content font-medium" x-text="rowCount"></span>
  77. </p>
  78. <div class="flex items-center gap-2">
  79. <p class="text-base-content/70 text-sm max-md:hidden">
  80. Per page
  81. </p>
  82. <select aria-label="Items per page" class="select select-sm w-16 border-solid border-1 border-[#008EED]"
  83. @change="changePageSize(Number($event.target.value))">
  84. <template x-for="size in pageSizes" :key="size">
  85. <option :value="size" :selected="size === pageSize" x-text="size"></option>
  86. </template>
  87. </select>
  88. </div>
  89. </div>
  90. <table class="table">
  91. <thead>
  92. <template x-for="headerGroup in table.getHeaderGroups()" :key="headerGroup.id">
  93. <tr>
  94. <template x-for="header in headerGroup.headers" :key="header.id">
  95. <th class="text-[#008EED]" , x-show="!header.isPlaceholder"
  96. x-text="flexRender(header.column.columnDef.header, header.getContext())"></th>
  97. </template>
  98. </tr>
  99. </template>
  100. </thead>
  101. <tbody>
  102. <template x-if="!visibleRows.length">
  103. <tr>
  104. <td :colspan="columns.length" class="h-24 text-center">
  105. <p>
  106. No results.
  107. <span @click="clearFilters" class="text-primary cursor-pointer hover:underline">
  108. Clear filters
  109. </span>
  110. </p>
  111. </td>
  112. </tr>
  113. </template>
  114. <template x-if="visibleRows.length">
  115. <template x-for="row in visibleRows" :key="row.id">
  116. <tr>
  117. <template x-for="cell in getVisibleCells(row)" :key="cell.id">
  118. <td>
  119. <template x-if="cell.column.id === 'subject'">
  120. <div class="flex items-center gap-2">
  121. <div>
  122. <p class="leading-none font-medium" x-text="cell.row.original.subject"></p>
  123. <p class="text-base-content/70 mt-0.5 text-xs/none"
  124. x-text="cell.row.original.id"></p>
  125. </div>
  126. </div>
  127. </template>
  128. <template x-if="cell.column.id === 'id'">
  129. <span class="text-base-content/70 font-mono text-xs uppercase"
  130. x-text="cell.row.original.id"></span>
  131. </template>
  132. <template x-if="cell.column.id === 'name'">
  133. <div class="flex items-center gap-2">
  134. <div>
  135. <p class="leading-none font-medium" x-text="cell.row.original.name"></p>
  136. </div>
  137. </div>
  138. </template>
  139. <template x-if="cell.column.id === 'actions'">
  140. <div class="gap-2 text-right">
  141. <button aria-label="Show" class="saveButton btn btn-outline btn-primary"
  142. @click="viewRow(cell.row)">Modify</button>
  143. <!-- <button
  144. aria-label="Show"
  145. class="btn btn-soft btn-xs btn-square"
  146. @click="viewRow(cell.row)">
  147. <span
  148. class="iconify lucide--eye size-3.5"></span>
  149. </button>
  150. <button
  151. aria-label="Delete"
  152. class="btn btn-soft btn-error btn-xs btn-square"
  153. @click="deleteRow(cell.row)">
  154. <span
  155. class="iconify lucide--trash-2 size-3.5"></span>
  156. </button> -->
  157. </div>
  158. </template>
  159. <template x-if="!
  160. ['id', 'name', 'zoneList', 'actions'].includes(cell.column.id)">
  161. <span x-html="cell.column.columnDef.cell
  162. ? cell.column.columnDef.cell(cell.getContext())
  163. : cell.getValue()"></span>
  164. </template>
  165. </td>
  166. </template>
  167. </tr>
  168. </template>
  169. </template>
  170. </tbody>
  171. </table>
  172. </div>
  173. <div
  174. class="post min-w-[400px] max-w-[600px] max-h-[calc(100vh-260px)] overflow-y-scroll border-solid border-1 border-[#008EED] rounded-none post{arguments:id} ml-[30px] mb-[30px] hidden">
  175. </div>
  176. </div>
  177. </div>