classcard-ui 0.2.1509 → 0.2.1510

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 (217) hide show
  1. package/README.md +24 -24
  2. package/dist/classcard-ui.common.js +90 -89
  3. package/dist/classcard-ui.common.js.map +1 -1
  4. package/dist/classcard-ui.css +1 -1
  5. package/dist/classcard-ui.umd.js +90 -89
  6. package/dist/classcard-ui.umd.js.map +1 -1
  7. package/dist/classcard-ui.umd.min.js +1 -1
  8. package/dist/classcard-ui.umd.min.js.map +1 -1
  9. package/package.json +84 -84
  10. package/src/.DS_Store +0 -0
  11. package/src/App.vue +16 -16
  12. package/src/colorConfig.js +52 -52
  13. package/src/components/CAlertModal/CAlertModal.vue +181 -181
  14. package/src/components/CAlertModal/index.js +3 -3
  15. package/src/components/CAlerts/CAlerts.vue +114 -114
  16. package/src/components/CAlerts/index.js +2 -2
  17. package/src/components/CAnchorTabs/CAnchorTabs.vue +100 -100
  18. package/src/components/CAnchorTabs/index.js +2 -2
  19. package/src/components/CAnchorTag/CAnchorTag.vue +84 -84
  20. package/src/components/CAnchorTag/index.js +2 -2
  21. package/src/components/CAvatar/CAvatar.vue +231 -231
  22. package/src/components/CAvatar/index.js +2 -2
  23. package/src/components/CAvatarGroup/CAvatarGroup.vue +213 -213
  24. package/src/components/CAvatarGroup/index.js +2 -2
  25. package/src/components/CBasicTable/CBasicTable.vue +184 -184
  26. package/src/components/CBasicTable/index.js +2 -2
  27. package/src/components/CBreadcrumbs/CBreadcrumbs.vue +38 -38
  28. package/src/components/CBreadcrumbs/index.js +2 -2
  29. package/src/components/CButton/CButton.vue +239 -239
  30. package/src/components/CButton/index.js +2 -2
  31. package/src/components/CButtonGroup/CButtonGroup.vue +155 -155
  32. package/src/components/CButtonGroup/index.js +2 -2
  33. package/src/components/CButtonIcon/CButtonIcon.vue +166 -166
  34. package/src/components/CButtonIcon/index.js +2 -2
  35. package/src/components/CButtonLink/CButtonLink.vue +43 -43
  36. package/src/components/CButtonLink/index.js +2 -2
  37. package/src/components/CButtonSelect/CButtonSelect.vue +186 -186
  38. package/src/components/CButtonSelect/index.js +2 -2
  39. package/src/components/CButtonSelectBorder/CButtonSelectBorder.vue +265 -265
  40. package/src/components/CButtonSelectBorder/index.js +3 -3
  41. package/src/components/CButtonWithDropdown/CButtonWithDropdown.vue +208 -208
  42. package/src/components/CButtonWithDropdown/index.js +2 -2
  43. package/src/components/CCalendar/CCalendar.vue +443 -443
  44. package/src/components/CCalendar/index.js +3 -3
  45. package/src/components/CCard/CCard.vue +53 -53
  46. package/src/components/CCard/index.js +2 -2
  47. package/src/components/CCheckbox/CCheckbox.vue +200 -200
  48. package/src/components/CCheckbox/index.js +2 -2
  49. package/src/components/CCircularButton/CCircularButton.vue +57 -57
  50. package/src/components/CCircularButton/index.js +2 -2
  51. package/src/components/CCollapsibleSection/CCollapsibleSection.vue +121 -121
  52. package/src/components/CCollapsibleSection/index.js +2 -2
  53. package/src/components/CColorDots/CColorDots.vue +52 -52
  54. package/src/components/CColorDots/index.js +3 -3
  55. package/src/components/CConfirmActionModal/CConfirmActionModal.vue +290 -290
  56. package/src/components/CConfirmActionModal/index.js +3 -3
  57. package/src/components/CDatepicker/CDatepicker.vue +235 -235
  58. package/src/components/CDatepicker/index.js +2 -2
  59. package/src/components/CDualSelect/CDualSelect.vue +193 -193
  60. package/src/components/CDualSelect/index.js +2 -2
  61. package/src/components/CEditor/CEditor.vue +137 -137
  62. package/src/components/CEditor/index.js +6 -6
  63. package/src/components/CEditor/quill-font-setup.js +133 -133
  64. package/src/components/CFormSectionHeading/CFormSectionHeading.vue +76 -76
  65. package/src/components/CFormSectionHeading/index.js +2 -2
  66. package/src/components/CGroupedFilterDropdown/CGroupedFilterDropdown.vue +331 -331
  67. package/src/components/CGroupedFilterDropdown/index.js +2 -2
  68. package/src/components/CGroupedSelect/CGroupedSelect.vue +393 -393
  69. package/src/components/CGroupedSelect/index.js +3 -3
  70. package/src/components/CIcon/CIcon.vue +112 -112
  71. package/src/components/CIcon/index.js +2 -2
  72. package/src/components/CIconDropdown/CIconDropdown.vue +206 -206
  73. package/src/components/CIconDropdown/index.js +2 -2
  74. package/src/components/CIconSelect/CIconSelect.vue +182 -182
  75. package/src/components/CIconSelect/index.js +3 -3
  76. package/src/components/CInput/CInput.vue +227 -227
  77. package/src/components/CInput/index.js +2 -2
  78. package/src/components/CInputAddon/CInputAddon.vue +297 -297
  79. package/src/components/CInputAddon/index.js +2 -2
  80. package/src/components/CInputEmail/CInputEmail.vue +107 -107
  81. package/src/components/CInputEmail/index.js +2 -2
  82. package/src/components/CInsetTabs/CInsetTabs.vue +222 -222
  83. package/src/components/CInsetTabs/index.js +3 -3
  84. package/src/components/CLinearProgressBar/CLinearProgressBar.vue +35 -35
  85. package/src/components/CLinearProgressBar/index.js +2 -2
  86. package/src/components/CModalHeading/CModalHeading.vue +22 -22
  87. package/src/components/CModalHeading/index.js +2 -2
  88. package/src/components/CModuleHelpLinks/CModuleHelpLinks.vue +88 -88
  89. package/src/components/CModuleHelpLinks/index.js +3 -3
  90. package/src/components/CMultiselect/CMultiselect.vue +1314 -1314
  91. package/src/components/CMultiselect/index.js +2 -2
  92. package/src/components/CMultiselectr/CMultiselectr.vue +44 -44
  93. package/src/components/CMultiselectr/index.js +2 -2
  94. package/src/components/CPageHeading/CPageHeading.vue +83 -83
  95. package/src/components/CPageHeading/index.js +2 -2
  96. package/src/components/CPagination/CPagination.vue +239 -239
  97. package/src/components/CPagination/index.js +2 -2
  98. package/src/components/CPhoneNumber/CPhoneNumber.vue +213 -213
  99. package/src/components/CPhoneNumber/index.js +2 -2
  100. package/src/components/CProgress/CProgress.vue +95 -95
  101. package/src/components/CProgress/index.js +2 -2
  102. package/src/components/CRadio/CRadio.vue +198 -198
  103. package/src/components/CRadio/index.js +2 -2
  104. package/src/components/CRadioGroup/CRadioGroup.vue +96 -96
  105. package/src/components/CRadioGroup/index.js +2 -2
  106. package/src/components/CRangeSlider/CRangeSlider.vue +55 -55
  107. package/src/components/CRangeSlider/index.js +2 -2
  108. package/src/components/CReorderableStackedList/CReorderableStackedList.vue +94 -94
  109. package/src/components/CReorderableStackedList/index.js +2 -2
  110. package/src/components/CSelect/CSelect.vue +1225 -1225
  111. package/src/components/CSelect/index.js +2 -2
  112. package/src/components/CSmallTimeline/CSmallTimeline.vue +40 -40
  113. package/src/components/CSmallTimeline/index.js +2 -2
  114. package/src/components/CStackedList/CStackedList.vue +162 -162
  115. package/src/components/CStackedList/index.js +2 -2
  116. package/src/components/CStats/CStats.vue +157 -157
  117. package/src/components/CStats/index.js +2 -2
  118. package/src/components/CSwitch/CSwitch.vue +200 -200
  119. package/src/components/CSwitch/index.js +2 -2
  120. package/src/components/CTabLazy/CTabLazy.vue +83 -83
  121. package/src/components/CTabLazy/index.js +2 -2
  122. package/src/components/CTable/CTable.vue +1114 -1114
  123. package/src/components/CTable/index.js +2 -2
  124. package/src/components/CTabs/CTabs.vue +250 -250
  125. package/src/components/CTabs/index.js +2 -2
  126. package/src/components/CTag/CTag.vue +109 -109
  127. package/src/components/CTag/index.js +2 -2
  128. package/src/components/CTextarea/CTextarea.vue +118 -118
  129. package/src/components/CTextarea/index.js +2 -2
  130. package/src/components/CTimeline/CTimeline.vue +237 -237
  131. package/src/components/CTimeline/index.js +2 -2
  132. package/src/components/CTokenEditor/CTokenEditor.vue +804 -804
  133. package/src/components/CTokenEditor/index.js +3 -3
  134. package/src/components/CToolTip/CToolTip.vue +108 -108
  135. package/src/components/CToolTip/index.js +3 -3
  136. package/src/components/CUpload/CUpload.vue +332 -332
  137. package/src/components/CUpload/index.js +2 -2
  138. package/src/components/NumberAnimator.vue +112 -112
  139. package/src/components/index.js +60 -60
  140. package/src/helper.js +8 -8
  141. package/src/icons.js +870 -859
  142. package/src/main.js +22 -22
  143. package/src/stories/CAlertModal.stories.js +30 -30
  144. package/src/stories/CAlerts.stories.js +39 -39
  145. package/src/stories/CAnchorTabs.stories.js +29 -29
  146. package/src/stories/CAnchorTag.stories.js +38 -38
  147. package/src/stories/CAvatar.stories.js +38 -38
  148. package/src/stories/CAvatarGroup.stories.js +136 -136
  149. package/src/stories/CBasicTable.stories.js +316 -316
  150. package/src/stories/CBreadcrumbs.stories.js +24 -24
  151. package/src/stories/CButton.stories.js +49 -49
  152. package/src/stories/CButtonGroup.stories.js +43 -43
  153. package/src/stories/CButtonIcon.stories.js +27 -27
  154. package/src/stories/CButtonLink.stories.js +24 -24
  155. package/src/stories/CButtonSelect.stories.js +44 -44
  156. package/src/stories/CButtonSelectBorder.stories.js +56 -56
  157. package/src/stories/CButtonWithDropdown.stories.js +41 -41
  158. package/src/stories/CCalendar.stories.js +16 -16
  159. package/src/stories/CCard.stories.js +30 -30
  160. package/src/stories/CCheckbox.stories.js +38 -38
  161. package/src/stories/CCircularButton.stories.js +29 -29
  162. package/src/stories/CCollapsibleSection.stories.js +29 -29
  163. package/src/stories/CColorDots.stories.js +37 -37
  164. package/src/stories/CConfirmActionModal.stories.js +67 -67
  165. package/src/stories/CDatepicker.stories.js +31 -31
  166. package/src/stories/CDualSelect.stories.js +29 -29
  167. package/src/stories/CEditor.stories.js +36 -36
  168. package/src/stories/CFormSectionHeading.stories.js +37 -37
  169. package/src/stories/CGroupedFilterDropdown.stories.js +131 -131
  170. package/src/stories/CGroupedSelect.stories.js +103 -103
  171. package/src/stories/CIcon.stories.js +31 -31
  172. package/src/stories/CIconDropdown.stories.js +52 -52
  173. package/src/stories/CIconSelect.stories.js +45 -45
  174. package/src/stories/CInput.stories.js +50 -50
  175. package/src/stories/CInputAddon.stories.js +37 -37
  176. package/src/stories/CInputEmail.stories.js +27 -27
  177. package/src/stories/CInsetTabs.stories.js +50 -50
  178. package/src/stories/CLinearProgressBar.stories.js +22 -22
  179. package/src/stories/CModalHeading.stories.js +25 -25
  180. package/src/stories/CModuleHelpLinks.stories.js +25 -25
  181. package/src/stories/CMultiselect.stories.js +146 -146
  182. package/src/stories/CMultiselectr.stories.js +23 -23
  183. package/src/stories/CPageHeading.stories.js +32 -32
  184. package/src/stories/CPagination.stories.js +30 -30
  185. package/src/stories/CPhoneNumber.stories.js +37 -37
  186. package/src/stories/CProgress.stories.js +23 -23
  187. package/src/stories/CRadio.stories.js +44 -44
  188. package/src/stories/CRadioGroup.stories.js +51 -51
  189. package/src/stories/CRangeSlider.stories.js +23 -23
  190. package/src/stories/CReorderableStackedList.stories.js +23 -23
  191. package/src/stories/CSelect.stories.js +157 -157
  192. package/src/stories/CSmallTimeline.stories.js +26 -26
  193. package/src/stories/CStackedList.stories.js +37 -37
  194. package/src/stories/CStats.stories.js +53 -53
  195. package/src/stories/CSwitch.stories.js +28 -28
  196. package/src/stories/CTabLazy.stories.js +42 -42
  197. package/src/stories/CTable.stories.js +203 -203
  198. package/src/stories/CTabs.stories.js +36 -36
  199. package/src/stories/CTag.stories.js +37 -37
  200. package/src/stories/CTextarea.stories.js +32 -32
  201. package/src/stories/CTimeline.stories.js +26 -26
  202. package/src/stories/CTokenEditor.stories.js +136 -136
  203. package/src/stories/CToolTip.stories.js +27 -27
  204. package/src/stories/CUpload.stories.js +36 -36
  205. package/src/stories/Introduction.stories.mdx +207 -207
  206. package/src/stories/Page.vue +88 -88
  207. package/src/stories/assets/code-brackets.svg +0 -0
  208. package/src/stories/assets/colors.svg +0 -0
  209. package/src/stories/assets/comments.svg +0 -0
  210. package/src/stories/assets/direction.svg +0 -0
  211. package/src/stories/assets/flow.svg +0 -0
  212. package/src/stories/assets/plugin.svg +0 -0
  213. package/src/stories/assets/repo.svg +0 -0
  214. package/src/stories/assets/stackalt.svg +0 -0
  215. package/src/stories/header.css +26 -26
  216. package/src/stories/page.css +69 -69
  217. package/src/stories/utils.css +32 -32
@@ -1,239 +1,239 @@
1
- <template>
2
- <div
3
- class="flex items-center justify-between rounded-lg 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
- :id="id + '_previous_page'"
11
- >
12
- Previous
13
- </div>
14
- <div
15
- href="#"
16
- 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"
17
- @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
18
- :id="id + '_next_page'"
19
- >
20
- Next
21
- </div>
22
- </div>
23
- <div class="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between">
24
- <div class="flex">
25
- <c-select
26
- v-if="showEntryPicker"
27
- class="mr-2 w-20"
28
- :options="rowOptions"
29
- :isValidate="true"
30
- :value="totalRecordsOnPage.value"
31
- :isRequired="false"
32
- :id="id + '_totalrecords_dropdown'"
33
- dropDownToTop="bottom-full"
34
- dropDownToTop2="absolute bottom-full z-50 bg-white right-0"
35
- @onChangeValue="(value) => $emit('handle-Row-Count-Change', value)"
36
- ></c-select>
37
- <p class="pt-2 text-sm text-gray-700">
38
- Showing
39
- <span class="font-medium">{{
40
- formatNumber(setPaginationRecords.from)
41
- }}</span>
42
- to
43
- <span class="font-medium">{{
44
- formatNumber(setPaginationRecords.to)
45
- }}</span>
46
- of
47
- <span class="font-medium">{{
48
- formatNumber(setPaginationRecords.totalRecords)
49
- }}</span>
50
- results
51
- </p>
52
- </div>
53
- <div>
54
- <nav
55
- class="relative z-0 inline-flex -space-x-px rounded-md shadow-sm"
56
- aria-label="Pagination"
57
- >
58
- <div class="hidden md:-mt-px md:flex">
59
- <div
60
- href="#"
61
- @click="currentPageNumber == '1' ? '' : goToPreviousPage()"
62
- 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"
63
- :class="
64
- currentPageNumber == '1'
65
- ? 'pointer-events-none text-gray-400'
66
- : 'group cursor-pointer text-gray-500 hover:text-gray-700'
67
- "
68
- :id="id + '_previous_page'"
69
- >
70
- <span class="sr-only">Previous</span>
71
- <!-- Heroicon name: solid/chevron-left -->
72
- <c-icon
73
- name="chevron-left"
74
- type="solid"
75
- cursorType="cursor-pointer"
76
- class="h-5 w-5 text-gray-400"
77
- />
78
- </div>
79
- <div
80
- v-for="page in pageRange"
81
- :key="page"
82
- class="cursor-pointer"
83
- :class="[
84
- page == currentPageNumber
85
- ? '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'
86
- : '',
87
- page === '...'
88
- ? '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'
89
- : '',
90
- page !== currentPageNumber && page !== '...'
91
- ? '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'
92
- : '',
93
- page == currentPageNumber + 1 ? 'border-l-0' : '',
94
- ]"
95
- @click="changePage(page)"
96
- :id="id + '_page_' + page"
97
- >
98
- <div v-if="page === '...'">...</div>
99
- <div v-else>
100
- {{ page }}
101
- </div>
102
- </div>
103
- <div
104
- href="#"
105
- 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"
106
- @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
107
- :class="
108
- currentPageNumber == lastPageNumber
109
- ? 'pointer-events-none text-gray-400 border-l-0'
110
- : 'group cursor-pointer text-gray-500 hover:text-gray-700'
111
- "
112
- :id="id + '_next_page'"
113
- >
114
- <span class="sr-only">Next</span>
115
- <!-- Heroicon name: solid/chevron-right -->
116
- <c-icon
117
- name="chevron-right"
118
- type="solid"
119
- cursorType="cursor-pointer"
120
- class="h-5 w-5 text-gray-400"
121
- />
122
- </div>
123
- </div>
124
- </nav>
125
- </div>
126
- </div>
127
- </div>
128
- </template>
129
- <script>
130
- import { isEqual } from "lodash-es";
131
- import CSelect from "../CSelect/CSelect.vue";
132
- import CIcon from '../CIcon/CIcon.vue';
133
-
134
- export default {
135
- name: "CPagination",
136
- props: {
137
- setPaginationRecords: {
138
- type: Object,
139
- },
140
- setCurrentPage: {
141
- type: Function,
142
- },
143
- setPreviousPage: {
144
- type: Function,
145
- },
146
- setNextPage: {
147
- type: Function,
148
- },
149
- showEntryPicker: {
150
- type: Boolean,
151
- default: false,
152
- },
153
- totalRecordsOnPage: {
154
- type: Object,
155
- },
156
- id: {
157
- type: String,
158
- },
159
- },
160
- components: { CSelect, CIcon },
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
- formatNumber(number) {
224
- return parseFloat(number).toLocaleString("en-IN", {
225
- minimumFractionDigits: 0,
226
- maximumFractionDigits: 0,
227
- });
228
- },
229
- },
230
- watch: {
231
- setPaginationRecords(newVal, oldVal) {
232
- if (!isEqual(newVal, oldVal)) {
233
- this.currentPageNumber = newVal.currentPage;
234
- this.lastPageNumber = newVal.lastPage;
235
- }
236
- },
237
- },
238
- };
239
- </script>
1
+ <template>
2
+ <div
3
+ class="flex items-center justify-between rounded-lg 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
+ :id="id + '_previous_page'"
11
+ >
12
+ Previous
13
+ </div>
14
+ <div
15
+ href="#"
16
+ 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"
17
+ @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
18
+ :id="id + '_next_page'"
19
+ >
20
+ Next
21
+ </div>
22
+ </div>
23
+ <div class="hidden sm:flex sm:flex-1 sm:items-center sm:justify-between">
24
+ <div class="flex">
25
+ <c-select
26
+ v-if="showEntryPicker"
27
+ class="mr-2 w-20"
28
+ :options="rowOptions"
29
+ :isValidate="true"
30
+ :value="totalRecordsOnPage.value"
31
+ :isRequired="false"
32
+ :id="id + '_totalrecords_dropdown'"
33
+ dropDownToTop="bottom-full"
34
+ dropDownToTop2="absolute bottom-full z-50 bg-white right-0"
35
+ @onChangeValue="(value) => $emit('handle-Row-Count-Change', value)"
36
+ ></c-select>
37
+ <p class="pt-2 text-sm text-gray-700">
38
+ Showing
39
+ <span class="font-medium">{{
40
+ formatNumber(setPaginationRecords.from)
41
+ }}</span>
42
+ to
43
+ <span class="font-medium">{{
44
+ formatNumber(setPaginationRecords.to)
45
+ }}</span>
46
+ of
47
+ <span class="font-medium">{{
48
+ formatNumber(setPaginationRecords.totalRecords)
49
+ }}</span>
50
+ results
51
+ </p>
52
+ </div>
53
+ <div>
54
+ <nav
55
+ class="relative z-0 inline-flex -space-x-px rounded-md shadow-sm"
56
+ aria-label="Pagination"
57
+ >
58
+ <div class="hidden md:-mt-px md:flex">
59
+ <div
60
+ href="#"
61
+ @click="currentPageNumber == '1' ? '' : goToPreviousPage()"
62
+ 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"
63
+ :class="
64
+ currentPageNumber == '1'
65
+ ? 'pointer-events-none text-gray-400'
66
+ : 'group cursor-pointer text-gray-500 hover:text-gray-700'
67
+ "
68
+ :id="id + '_previous_page'"
69
+ >
70
+ <span class="sr-only">Previous</span>
71
+ <!-- Heroicon name: solid/chevron-left -->
72
+ <c-icon
73
+ name="chevron-left"
74
+ type="solid"
75
+ cursorType="cursor-pointer"
76
+ class="h-5 w-5 text-gray-400"
77
+ />
78
+ </div>
79
+ <div
80
+ v-for="page in pageRange"
81
+ :key="page"
82
+ class="cursor-pointer"
83
+ :class="[
84
+ page == currentPageNumber
85
+ ? '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'
86
+ : '',
87
+ page === '...'
88
+ ? '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'
89
+ : '',
90
+ page !== currentPageNumber && page !== '...'
91
+ ? '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'
92
+ : '',
93
+ page == currentPageNumber + 1 ? 'border-l-0' : '',
94
+ ]"
95
+ @click="changePage(page)"
96
+ :id="id + '_page_' + page"
97
+ >
98
+ <div v-if="page === '...'">...</div>
99
+ <div v-else>
100
+ {{ page }}
101
+ </div>
102
+ </div>
103
+ <div
104
+ href="#"
105
+ 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"
106
+ @click="currentPageNumber == lastPageNumber ? '' : goToNextPage()"
107
+ :class="
108
+ currentPageNumber == lastPageNumber
109
+ ? 'pointer-events-none text-gray-400 border-l-0'
110
+ : 'group cursor-pointer text-gray-500 hover:text-gray-700'
111
+ "
112
+ :id="id + '_next_page'"
113
+ >
114
+ <span class="sr-only">Next</span>
115
+ <!-- Heroicon name: solid/chevron-right -->
116
+ <c-icon
117
+ name="chevron-right"
118
+ type="solid"
119
+ cursorType="cursor-pointer"
120
+ class="h-5 w-5 text-gray-400"
121
+ />
122
+ </div>
123
+ </div>
124
+ </nav>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </template>
129
+ <script>
130
+ import { isEqual } from "lodash-es";
131
+ import CSelect from "../CSelect/CSelect.vue";
132
+ import CIcon from '../CIcon/CIcon.vue';
133
+
134
+ export default {
135
+ name: "CPagination",
136
+ props: {
137
+ setPaginationRecords: {
138
+ type: Object,
139
+ },
140
+ setCurrentPage: {
141
+ type: Function,
142
+ },
143
+ setPreviousPage: {
144
+ type: Function,
145
+ },
146
+ setNextPage: {
147
+ type: Function,
148
+ },
149
+ showEntryPicker: {
150
+ type: Boolean,
151
+ default: false,
152
+ },
153
+ totalRecordsOnPage: {
154
+ type: Object,
155
+ },
156
+ id: {
157
+ type: String,
158
+ },
159
+ },
160
+ components: { CSelect, CIcon },
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
+ formatNumber(number) {
224
+ return parseFloat(number).toLocaleString("en-IN", {
225
+ minimumFractionDigits: 0,
226
+ maximumFractionDigits: 0,
227
+ });
228
+ },
229
+ },
230
+ watch: {
231
+ setPaginationRecords(newVal, oldVal) {
232
+ if (!isEqual(newVal, oldVal)) {
233
+ this.currentPageNumber = newVal.currentPage;
234
+ this.lastPageNumber = newVal.lastPage;
235
+ }
236
+ },
237
+ },
238
+ };
239
+ </script>
@@ -1,3 +1,3 @@
1
- import CPagination from './CPagination.vue'
2
-
1
+ import CPagination from './CPagination.vue'
2
+
3
3
  export default CPagination