classcard-ui 0.2.1069 → 0.2.1070

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +56 -53
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.umd.js +56 -53
  5. package/dist/classcard-ui.umd.js.map +1 -1
  6. package/dist/classcard-ui.umd.min.js +1 -1
  7. package/dist/classcard-ui.umd.min.js.map +1 -1
  8. package/package.json +82 -82
  9. package/src/App.vue +16 -16
  10. package/src/components/CAlerts/CAlerts.vue +70 -70
  11. package/src/components/CAlerts/index.js +2 -2
  12. package/src/components/CAnchorTabs/CAnchorTabs.vue +96 -96
  13. package/src/components/CAnchorTabs/index.js +2 -2
  14. package/src/components/CAnchorTag/CAnchorTag.vue +62 -62
  15. package/src/components/CAnchorTag/index.js +2 -2
  16. package/src/components/CAvatar/CAvatar.vue +212 -212
  17. package/src/components/CAvatar/index.js +2 -2
  18. package/src/components/CAvatarGroup/CAvatarGroup.vue +145 -145
  19. package/src/components/CAvatarGroup/index.js +2 -2
  20. package/src/components/CBasicTable/CBasicTable.vue +184 -184
  21. package/src/components/CBasicTable/index.js +2 -2
  22. package/src/components/CBreadcrumbs/CBreadcrumbs.vue +38 -38
  23. package/src/components/CBreadcrumbs/index.js +2 -2
  24. package/src/components/CButton/CButton.vue +152 -152
  25. package/src/components/CButton/index.js +2 -2
  26. package/src/components/CButtonGroup/CButtonGroup.vue +118 -118
  27. package/src/components/CButtonGroup/index.js +2 -2
  28. package/src/components/CButtonIcon/CButtonIcon.vue +117 -117
  29. package/src/components/CButtonIcon/index.js +2 -2
  30. package/src/components/CButtonLink/CButtonLink.vue +39 -39
  31. package/src/components/CButtonLink/index.js +2 -2
  32. package/src/components/CButtonSelect/CButtonSelect.vue +134 -134
  33. package/src/components/CButtonSelect/index.js +2 -2
  34. package/src/components/CButtonSelectBorder/CButtonSelectBorder.vue +135 -135
  35. package/src/components/CButtonSelectBorder/index.js +3 -3
  36. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +135 -135
  37. package/src/components/CButtonWithDropdown/index.js +2 -2
  38. package/src/components/CCalendar/CCalendar.vue +410 -410
  39. package/src/components/CCalendar/index.js +3 -3
  40. package/src/components/CCard/CCard.vue +49 -49
  41. package/src/components/CCard/index.js +2 -2
  42. package/src/components/CCheckbox/CCheckbox.vue +123 -123
  43. package/src/components/CCheckbox/index.js +2 -2
  44. package/src/components/CCircularButton/CCircularButton.vue +53 -53
  45. package/src/components/CCircularButton/index.js +2 -2
  46. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +101 -101
  47. package/src/components/CCollapsibleSection/index.js +2 -2
  48. package/src/components/CColorDots/CColorDots.vue +51 -51
  49. package/src/components/CColorDots/index.js +3 -3
  50. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +180 -180
  51. package/src/components/CConfirmActionModal/index.js +3 -3
  52. package/src/components/CDatepicker/CDatepicker.vue +201 -201
  53. package/src/components/CDatepicker/index.js +2 -2
  54. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  55. package/src/components/CDualSelect/index.js +2 -2
  56. package/src/components/CEditor/CEditor.vue +98 -98
  57. package/src/components/CEditor/index.js +2 -2
  58. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +53 -53
  59. package/src/components/CFormSectionHeading/index.js +2 -2
  60. package/src/components/CGroupedSelect/CGroupedSelect.vue +245 -245
  61. package/src/components/CGroupedSelect/index.js +3 -3
  62. package/src/components/CIcon/CIcon.vue +91 -91
  63. package/src/components/CIcon/index.js +2 -2
  64. package/src/components/CIconDropdown/CIconDropdown.vue +146 -146
  65. package/src/components/CIconDropdown/index.js +2 -2
  66. package/src/components/CInput/CInput.vue +134 -134
  67. package/src/components/CInput/index.js +2 -2
  68. package/src/components/CInputAddon/CInputAddon.vue +228 -228
  69. package/src/components/CInputAddon/index.js +2 -2
  70. package/src/components/CInputEmail/CInputEmail.vue +93 -93
  71. package/src/components/CInputEmail/index.js +2 -2
  72. package/src/components/CInsetTabs/CInsetTabs.vue +88 -88
  73. package/src/components/CInsetTabs/index.js +3 -3
  74. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  75. package/src/components/CModalHeading/index.js +2 -2
  76. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +70 -70
  77. package/src/components/CModuleHelpLinks/index.js +3 -3
  78. package/src/components/CMultiselect/CMultiselect.vue +615 -615
  79. package/src/components/CMultiselect/index.js +2 -2
  80. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  81. package/src/components/CMultiselectr/index.js +2 -2
  82. package/src/components/CPageHeading/CPageHeading.vue +56 -56
  83. package/src/components/CPageHeading/index.js +2 -2
  84. package/src/components/CPagination/CPagination.vue +233 -233
  85. package/src/components/CPagination/index.js +2 -2
  86. package/src/components/CPhoneNumber/CPhoneNumber.vue +114 -114
  87. package/src/components/CPhoneNumber/index.js +2 -2
  88. package/src/components/CProgress/CProgress.vue +57 -57
  89. package/src/components/CProgress/index.js +2 -2
  90. package/src/components/CRadio/CRadio.vue +126 -126
  91. package/src/components/CRadio/index.js +2 -2
  92. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  93. package/src/components/CRangeSlider/index.js +2 -2
  94. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +94 -94
  95. package/src/components/CReorderableStackedList/index.js +2 -2
  96. package/src/components/CSelect/CSelect.vue +539 -539
  97. package/src/components/CSelect/index.js +2 -2
  98. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  99. package/src/components/CSmallTimeline/index.js +2 -2
  100. package/src/components/CStackedList/CStackedList.vue +150 -150
  101. package/src/components/CStackedList/index.js +2 -2
  102. package/src/components/CStats/CStats.vue +116 -116
  103. package/src/components/CStats/index.js +2 -2
  104. package/src/components/CSwitch/CSwitch.vue +176 -176
  105. package/src/components/CSwitch/index.js +2 -2
  106. package/src/components/CTabLazy/CTabLazy.vue +63 -63
  107. package/src/components/CTabLazy/index.js +2 -2
  108. package/src/components/CTable/CTable.vue +671 -671
  109. package/src/components/CTable/index.js +2 -2
  110. package/src/components/CTabs/CTabs.vue +169 -169
  111. package/src/components/CTabs/index.js +2 -2
  112. package/src/components/CTag/CTag.vue +59 -59
  113. package/src/components/CTag/index.js +2 -2
  114. package/src/components/CTextarea/CTextarea.vue +107 -107
  115. package/src/components/CTextarea/index.js +2 -2
  116. package/src/components/CTimeline/CTimeline.vue +237 -237
  117. package/src/components/CTimeline/index.js +2 -2
  118. package/src/components/CUpload/CUpload.vue +267 -267
  119. package/src/components/CUpload/index.js +2 -2
  120. package/src/components/index.js +53 -53
  121. package/src/icons.js +459 -453
  122. package/src/main.js +22 -22
  123. package/src/stories/CAlerts.stories.js +37 -37
  124. package/src/stories/CAnchorTabs.stories.js +29 -29
  125. package/src/stories/CAnchorTag.stories.js +36 -36
  126. package/src/stories/CAvatar.stories.js +38 -38
  127. package/src/stories/CAvatarGroup.stories.js +100 -100
  128. package/src/stories/CBasicTable.stories.js +316 -316
  129. package/src/stories/CBreadcrumbs.stories.js +24 -24
  130. package/src/stories/CButton.stories.js +47 -47
  131. package/src/stories/CButtonGroup.stories.js +33 -33
  132. package/src/stories/CButtonIcon.stories.js +27 -27
  133. package/src/stories/CButtonLink.stories.js +24 -24
  134. package/src/stories/CButtonSelect.stories.js +41 -41
  135. package/src/stories/CButtonSelectBorder.stories.js +48 -48
  136. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  137. package/src/stories/CCalendar.stories.js +16 -16
  138. package/src/stories/CCard.stories.js +30 -30
  139. package/src/stories/CCheckbox.stories.js +29 -29
  140. package/src/stories/CCircularButton.stories.js +29 -29
  141. package/src/stories/CCollapsibleSection.stories.js +28 -28
  142. package/src/stories/CColorDots.stories.js +28 -28
  143. package/src/stories/CConfirmActionModal.stories.js +59 -59
  144. package/src/stories/CDatepicker.stories.js +30 -30
  145. package/src/stories/CDualSelect.stories.js +29 -29
  146. package/src/stories/CEditor.stories.js +30 -30
  147. package/src/stories/CFormSectionHeading.stories.js +34 -34
  148. package/src/stories/CGroupedSelect.stories.js +71 -71
  149. package/src/stories/CIcon.stories.js +28 -28
  150. package/src/stories/CIconDropdown.stories.js +45 -45
  151. package/src/stories/CInput.stories.js +36 -36
  152. package/src/stories/CInputAddon.stories.js +37 -37
  153. package/src/stories/CInputEmail.stories.js +27 -27
  154. package/src/stories/CInsetTabs.stories.js +38 -38
  155. package/src/stories/CModalHeading.stories.js +25 -25
  156. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  157. package/src/stories/CMultiselect.stories.js +167 -167
  158. package/src/stories/CMultiselectr.stories.js +23 -23
  159. package/src/stories/CPageHeading.stories.js +32 -32
  160. package/src/stories/CPagination.stories.js +30 -30
  161. package/src/stories/CPhoneNumber.stories.js +29 -29
  162. package/src/stories/CProgress.stories.js +23 -23
  163. package/src/stories/CRadio.stories.js +36 -36
  164. package/src/stories/CRangeSlider.stories.js +23 -23
  165. package/src/stories/CReorderableStackedList.stories.js +23 -23
  166. package/src/stories/CSelect.stories.js +109 -109
  167. package/src/stories/CSmallTimeline.stories.js +26 -26
  168. package/src/stories/CStackedList.stories.js +37 -37
  169. package/src/stories/CStats.stories.js +33 -33
  170. package/src/stories/CSwitch.stories.js +28 -28
  171. package/src/stories/CTabLazy.stories.js +26 -26
  172. package/src/stories/CTable.stories.js +169 -169
  173. package/src/stories/CTabs.stories.js +36 -36
  174. package/src/stories/CTag.stories.js +34 -34
  175. package/src/stories/CTextarea.stories.js +32 -32
  176. package/src/stories/CTimeline.stories.js +26 -26
  177. package/src/stories/CUpload.stories.js +36 -36
  178. package/src/stories/Introduction.stories.mdx +207 -207
  179. package/src/stories/Page.vue +88 -88
  180. package/src/stories/assets/code-brackets.svg +0 -0
  181. package/src/stories/assets/colors.svg +0 -0
  182. package/src/stories/assets/comments.svg +0 -0
  183. package/src/stories/assets/direction.svg +0 -0
  184. package/src/stories/assets/flow.svg +0 -0
  185. package/src/stories/assets/plugin.svg +0 -0
  186. package/src/stories/assets/repo.svg +0 -0
  187. package/src/stories/assets/stackalt.svg +0 -0
  188. package/src/stories/header.css +26 -26
  189. package/src/stories/page.css +69 -69
  190. package/src/stories/utils.css +17 -17
@@ -1,233 +1,233 @@
1
- <template>
2
- <div
3
- class="flex items-center justify-between border-gray-200 bg-white px-4 py-3 sm:px-6"
4
- >
5
- <div class="flex flex-1 justify-between sm:hidden">
6
- <div
7
- href="#"
8
- class="relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50"
9
- @click="currentPageNumber == '1' ? '' : goToPreviousPage()"
10
- >
11
- Previous
12
- </div>
13
- <div
14
- href="#"
15
- class="relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50"
16
- @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
17
- >
18
- Next
19
- </div>
20
- </div>
21
- <div class="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between">
22
- <div class="flex">
23
- <c-select
24
- v-if="showEntryPicker"
25
- class="mx-2 w-20"
26
- :options="rowOptions"
27
- :isValidate="true"
28
- :value="totalRecordsOnPage.value"
29
- :isRequired="false"
30
- dropDownToTop="bottom-full"
31
- dropDownToTop2="absolute bottom-full z-50 bg-white right-0"
32
- @onChangeValue="(value) => $emit('handle-Row-Count-Change', value)"
33
- ></c-select>
34
- <p class="pt-2 text-sm text-gray-700">
35
- Showing
36
- <span class="font-medium">{{ setPaginationRecords.from }}</span>
37
- to
38
- <span class="font-medium">{{ setPaginationRecords.to }}</span>
39
- of
40
- <span class="font-medium">{{
41
- setPaginationRecords.totalRecords
42
- }}</span>
43
- results
44
- </p>
45
- </div>
46
- <div>
47
- <nav
48
- class="relative z-0 inline-flex -space-x-px rounded-md shadow-sm"
49
- aria-label="Pagination"
50
- >
51
- <div class="hidden md:-mt-px md:flex">
52
- <div
53
- href="#"
54
- @click="currentPageNumber == '1' ? '' : goToPreviousPage()"
55
- class="relative inline-flex items-center rounded-l-md border border-r-0 border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50"
56
- :class="
57
- currentPageNumber == '1'
58
- ? 'pointer-events-none text-gray-400'
59
- : 'group cursor-pointer text-gray-500 hover:text-gray-700'
60
- "
61
- >
62
- <span class="sr-only">Previous</span>
63
- <!-- Heroicon name: solid/chevron-left -->
64
- <svg
65
- class="h-5 w-5"
66
- xmlns="http://www.w3.org/2000/svg"
67
- viewBox="0 0 20 20"
68
- fill="currentColor"
69
- aria-hidden="true"
70
- >
71
- <path
72
- fill-rule="evenodd"
73
- d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
74
- clip-rule="evenodd"
75
- />
76
- </svg>
77
- </div>
78
- <div
79
- v-for="page in pageRange"
80
- :key="page"
81
- class="cursor-pointer"
82
- :class="[
83
- page == currentPageNumber
84
- ? 'relative z-10 inline-flex items-center border border-indigo-500 bg-indigo-50 px-4 py-2 text-sm font-medium text-indigo-600'
85
- : '',
86
- page === '...'
87
- ? 'relative inline-flex items-center border border-r-0 border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50'
88
- : '',
89
- page !== currentPageNumber && page !== '...'
90
- ? 'relative inline-flex items-center border border-r-0 border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50'
91
- : '',
92
- page == currentPageNumber + 1 ? 'border-l-0' : '',
93
- ]"
94
- @click="changePage(page)"
95
- >
96
- <div v-if="page === '...'">...</div>
97
- <div v-else>
98
- {{ page }}
99
- </div>
100
- </div>
101
- <div
102
- href="#"
103
- class="relative inline-flex items-center rounded-r-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50"
104
- @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
105
- :class="
106
- currentPageNumber == lastPageNumber
107
- ? 'pointer-events-none text-gray-400'
108
- : 'group cursor-pointer text-gray-500 hover:text-gray-700'
109
- "
110
- >
111
- <span class="sr-only">Next</span>
112
- <!-- Heroicon name: solid/chevron-right -->
113
- <svg
114
- class="h-5 w-5"
115
- xmlns="http://www.w3.org/2000/svg"
116
- viewBox="0 0 20 20"
117
- fill="currentColor"
118
- aria-hidden="true"
119
- >
120
- <path
121
- fill-rule="evenodd"
122
- d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
123
- clip-rule="evenodd"
124
- />
125
- </svg>
126
- </div>
127
- </div>
128
- </nav>
129
- </div>
130
- </div>
131
- </div>
132
- </template>
133
- <script>
134
- import { isEqual } from "lodash-es";
135
- import CSelect from "../CSelect/CSelect.vue";
136
-
137
- export default {
138
- name: "CPagination",
139
- props: {
140
- setPaginationRecords: {
141
- type: Object,
142
- },
143
- setCurrentPage: {
144
- type: Function,
145
- },
146
- setPreviousPage: {
147
- type: Function,
148
- },
149
- setNextPage: {
150
- type: Function,
151
- },
152
- showEntryPicker: {
153
- type: Boolean,
154
- default: false,
155
- },
156
- totalRecordsOnPage: {
157
- type: Object,
158
- },
159
- },
160
- components: { CSelect },
161
- data() {
162
- return {
163
- currentPageNumber: this.setPaginationRecords.currentPage,
164
- lastPageNumber: this.setPaginationRecords.lastPage,
165
- rowOptions: [
166
- {
167
- option: 10,
168
- value: 10,
169
- },
170
- {
171
- option: 25,
172
- value: 25,
173
- },
174
- ],
175
- };
176
- },
177
- computed: {
178
- pageRange() {
179
- var current = this.setPaginationRecords.currentPage,
180
- last = this.setPaginationRecords.lastPage,
181
- delta = 2,
182
- left = current - delta,
183
- right = current + delta + 1,
184
- range = [],
185
- rangeWithDots = [],
186
- l;
187
- for (let i = 1; i <= last; i++) {
188
- if (i == 1 || i == last || (i >= left && i < right)) {
189
- range.push(i);
190
- }
191
- }
192
- for (let i of range) {
193
- if (l) {
194
- if (i - l === 2) {
195
- rangeWithDots.push(l + 1);
196
- } else if (i - l !== 1) {
197
- rangeWithDots.push("...");
198
- }
199
- }
200
- rangeWithDots.push(i);
201
- l = i;
202
- }
203
- return rangeWithDots;
204
- },
205
- },
206
- methods: {
207
- changePage(page) {
208
- if (page !== "...") {
209
- this.$emit("setCurrentPage", page);
210
- this.currentPageNumber = page;
211
- }
212
- },
213
- goToPreviousPage() {
214
- var previousPage = this.currentPageNumber - 1;
215
- this.currentPageNumber = previousPage;
216
- this.$emit("setPreviousPage", previousPage);
217
- },
218
- goToNextPage() {
219
- var nextPage = this.currentPageNumber + 1;
220
- this.currentPageNumber = nextPage;
221
- this.$emit("setNextPage", nextPage);
222
- },
223
- },
224
- watch: {
225
- setPaginationRecords(newVal, oldVal) {
226
- if (!isEqual(newVal, oldVal)) {
227
- this.currentPageNumber = newVal.currentPage;
228
- this.lastPageNumber = newVal.lastPage;
229
- }
230
- },
231
- },
232
- };
233
- </script>
1
+ <template>
2
+ <div
3
+ class="flex items-center justify-between border-gray-200 bg-white px-4 py-3 sm:px-6"
4
+ >
5
+ <div class="flex flex-1 justify-between sm:hidden">
6
+ <div
7
+ href="#"
8
+ class="relative inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50"
9
+ @click="currentPageNumber == '1' ? '' : goToPreviousPage()"
10
+ >
11
+ Previous
12
+ </div>
13
+ <div
14
+ href="#"
15
+ class="relative ml-3 inline-flex items-center rounded-md border border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50"
16
+ @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
17
+ >
18
+ Next
19
+ </div>
20
+ </div>
21
+ <div class="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between">
22
+ <div class="flex">
23
+ <c-select
24
+ v-if="showEntryPicker"
25
+ class="mx-2 w-20"
26
+ :options="rowOptions"
27
+ :isValidate="true"
28
+ :value="totalRecordsOnPage.value"
29
+ :isRequired="false"
30
+ dropDownToTop="bottom-full"
31
+ dropDownToTop2="absolute bottom-full z-50 bg-white right-0"
32
+ @onChangeValue="(value) => $emit('handle-Row-Count-Change', value)"
33
+ ></c-select>
34
+ <p class="pt-2 text-sm text-gray-700">
35
+ Showing
36
+ <span class="font-medium">{{ setPaginationRecords.from }}</span>
37
+ to
38
+ <span class="font-medium">{{ setPaginationRecords.to }}</span>
39
+ of
40
+ <span class="font-medium">{{
41
+ setPaginationRecords.totalRecords
42
+ }}</span>
43
+ results
44
+ </p>
45
+ </div>
46
+ <div>
47
+ <nav
48
+ class="relative z-0 inline-flex -space-x-px rounded-md shadow-sm"
49
+ aria-label="Pagination"
50
+ >
51
+ <div class="hidden md:-mt-px md:flex">
52
+ <div
53
+ href="#"
54
+ @click="currentPageNumber == '1' ? '' : goToPreviousPage()"
55
+ class="relative inline-flex items-center rounded-l-md border border-r-0 border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50"
56
+ :class="
57
+ currentPageNumber == '1'
58
+ ? 'pointer-events-none text-gray-400'
59
+ : 'group cursor-pointer text-gray-500 hover:text-gray-700'
60
+ "
61
+ >
62
+ <span class="sr-only">Previous</span>
63
+ <!-- Heroicon name: solid/chevron-left -->
64
+ <svg
65
+ class="h-5 w-5"
66
+ xmlns="http://www.w3.org/2000/svg"
67
+ viewBox="0 0 20 20"
68
+ fill="currentColor"
69
+ aria-hidden="true"
70
+ >
71
+ <path
72
+ fill-rule="evenodd"
73
+ d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
74
+ clip-rule="evenodd"
75
+ />
76
+ </svg>
77
+ </div>
78
+ <div
79
+ v-for="page in pageRange"
80
+ :key="page"
81
+ class="cursor-pointer"
82
+ :class="[
83
+ page == currentPageNumber
84
+ ? 'relative z-10 inline-flex items-center border border-indigo-500 bg-indigo-50 px-4 py-2 text-sm font-medium text-indigo-600'
85
+ : '',
86
+ page === '...'
87
+ ? 'relative inline-flex items-center border border-r-0 border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50'
88
+ : '',
89
+ page !== currentPageNumber && page !== '...'
90
+ ? 'relative inline-flex items-center border border-r-0 border-gray-300 bg-white px-4 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50'
91
+ : '',
92
+ page == currentPageNumber + 1 ? 'border-l-0' : '',
93
+ ]"
94
+ @click="changePage(page)"
95
+ >
96
+ <div v-if="page === '...'">...</div>
97
+ <div v-else>
98
+ {{ page }}
99
+ </div>
100
+ </div>
101
+ <div
102
+ href="#"
103
+ class="relative inline-flex items-center rounded-r-md border border-gray-300 bg-white px-2 py-2 text-sm font-medium text-gray-500 hover:bg-gray-50"
104
+ @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
105
+ :class="
106
+ currentPageNumber == lastPageNumber
107
+ ? 'pointer-events-none text-gray-400'
108
+ : 'group cursor-pointer text-gray-500 hover:text-gray-700'
109
+ "
110
+ >
111
+ <span class="sr-only">Next</span>
112
+ <!-- Heroicon name: solid/chevron-right -->
113
+ <svg
114
+ class="h-5 w-5"
115
+ xmlns="http://www.w3.org/2000/svg"
116
+ viewBox="0 0 20 20"
117
+ fill="currentColor"
118
+ aria-hidden="true"
119
+ >
120
+ <path
121
+ fill-rule="evenodd"
122
+ d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
123
+ clip-rule="evenodd"
124
+ />
125
+ </svg>
126
+ </div>
127
+ </div>
128
+ </nav>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </template>
133
+ <script>
134
+ import { isEqual } from "lodash-es";
135
+ import CSelect from "../CSelect/CSelect.vue";
136
+
137
+ export default {
138
+ name: "CPagination",
139
+ props: {
140
+ setPaginationRecords: {
141
+ type: Object,
142
+ },
143
+ setCurrentPage: {
144
+ type: Function,
145
+ },
146
+ setPreviousPage: {
147
+ type: Function,
148
+ },
149
+ setNextPage: {
150
+ type: Function,
151
+ },
152
+ showEntryPicker: {
153
+ type: Boolean,
154
+ default: false,
155
+ },
156
+ totalRecordsOnPage: {
157
+ type: Object,
158
+ },
159
+ },
160
+ components: { CSelect },
161
+ data() {
162
+ return {
163
+ currentPageNumber: this.setPaginationRecords.currentPage,
164
+ lastPageNumber: this.setPaginationRecords.lastPage,
165
+ rowOptions: [
166
+ {
167
+ option: 10,
168
+ value: 10,
169
+ },
170
+ {
171
+ option: 25,
172
+ value: 25,
173
+ },
174
+ ],
175
+ };
176
+ },
177
+ computed: {
178
+ pageRange() {
179
+ var current = this.setPaginationRecords.currentPage,
180
+ last = this.setPaginationRecords.lastPage,
181
+ delta = 2,
182
+ left = current - delta,
183
+ right = current + delta + 1,
184
+ range = [],
185
+ rangeWithDots = [],
186
+ l;
187
+ for (let i = 1; i <= last; i++) {
188
+ if (i == 1 || i == last || (i >= left && i < right)) {
189
+ range.push(i);
190
+ }
191
+ }
192
+ for (let i of range) {
193
+ if (l) {
194
+ if (i - l === 2) {
195
+ rangeWithDots.push(l + 1);
196
+ } else if (i - l !== 1) {
197
+ rangeWithDots.push("...");
198
+ }
199
+ }
200
+ rangeWithDots.push(i);
201
+ l = i;
202
+ }
203
+ return rangeWithDots;
204
+ },
205
+ },
206
+ methods: {
207
+ changePage(page) {
208
+ if (page !== "...") {
209
+ this.$emit("setCurrentPage", page);
210
+ this.currentPageNumber = page;
211
+ }
212
+ },
213
+ goToPreviousPage() {
214
+ var previousPage = this.currentPageNumber - 1;
215
+ this.currentPageNumber = previousPage;
216
+ this.$emit("setPreviousPage", previousPage);
217
+ },
218
+ goToNextPage() {
219
+ var nextPage = this.currentPageNumber + 1;
220
+ this.currentPageNumber = nextPage;
221
+ this.$emit("setNextPage", nextPage);
222
+ },
223
+ },
224
+ watch: {
225
+ setPaginationRecords(newVal, oldVal) {
226
+ if (!isEqual(newVal, oldVal)) {
227
+ this.currentPageNumber = newVal.currentPage;
228
+ this.lastPageNumber = newVal.lastPage;
229
+ }
230
+ },
231
+ },
232
+ };
233
+ </script>
@@ -1,3 +1,3 @@
1
- import CPagination from './CPagination.vue'
2
-
1
+ import CPagination from './CPagination.vue'
2
+
3
3
  export default CPagination