layers-design-system 2.4.0 → 2.6.0

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 (186) hide show
  1. package/dist/layers-design-system.js +78505 -0
  2. package/dist/layers-design-system.umd.cjs +285 -0
  3. package/dist/style.css +1 -0
  4. package/package.json +26 -12
  5. package/.nvmrc +0 -1
  6. package/babel.config.js +0 -5
  7. package/public/favicon.ico +0 -0
  8. package/public/index.html +0 -20
  9. package/src/assets/button-text-editor/double-quotes.svg +0 -4
  10. package/src/assets/button-text-editor/remove-formatting.svg +0 -5
  11. package/src/assets/button-text-editor/title.svg +0 -4
  12. package/src/assets/failed-to-load/failed-to-load.svg +0 -60
  13. package/src/assets/l-presentation/external-apps.png +0 -0
  14. package/src/assets/l-presentation/notification.png +0 -0
  15. package/src/assets/search-topics/empty-tags.svg +0 -59
  16. package/src/components/LAlert/docs.vue +0 -81
  17. package/src/components/LAlert/index.vue +0 -43
  18. package/src/components/LAttachmentChip/docs.vue +0 -84
  19. package/src/components/LAttachmentChip/index.vue +0 -179
  20. package/src/components/LBox/docs.vue +0 -26
  21. package/src/components/LBox/index.vue +0 -19
  22. package/src/components/LBoxHeader/index.vue +0 -24
  23. package/src/components/LBreadcrumb/docs.vue +0 -21
  24. package/src/components/LBreadcrumb/index.vue +0 -22
  25. package/src/components/LBreadcrumbItem/index.vue +0 -7
  26. package/src/components/LButton/docs.vue +0 -205
  27. package/src/components/LButton/index.vue +0 -369
  28. package/src/components/LButtonGroup/index.vue +0 -7
  29. package/src/components/LCarousel/docs.vue +0 -32
  30. package/src/components/LCarousel/index.vue +0 -88
  31. package/src/components/LCheckbox/docs.vue +0 -62
  32. package/src/components/LCheckbox/index.vue +0 -34
  33. package/src/components/LCheckboxButton/index.vue +0 -30
  34. package/src/components/LCheckboxGroup/index.vue +0 -53
  35. package/src/components/LChip/docs.vue +0 -113
  36. package/src/components/LChip/index.vue +0 -78
  37. package/src/components/LCircularLoader/docs.vue +0 -30
  38. package/src/components/LCircularLoader/index.vue +0 -97
  39. package/src/components/LCollapse/docs.vue +0 -68
  40. package/src/components/LCollapse/index.vue +0 -13
  41. package/src/components/LCollapseItem/index.vue +0 -28
  42. package/src/components/LDatePicker/docs.vue +0 -66
  43. package/src/components/LDatePicker/index.vue +0 -63
  44. package/src/components/LDialog/docs.vue +0 -36
  45. package/src/components/LDialog/index.vue +0 -37
  46. package/src/components/LDropdown/index.vue +0 -7
  47. package/src/components/LDropdownItem/index.vue +0 -13
  48. package/src/components/LDropdownMenu/docs.vue +0 -44
  49. package/src/components/LDropdownMenu/index.vue +0 -12
  50. package/src/components/LFailedToLoad/docs.vue +0 -37
  51. package/src/components/LFailedToLoad/index.vue +0 -61
  52. package/src/components/LForm/index.vue +0 -7
  53. package/src/components/LFormItem/index.vue +0 -12
  54. package/src/components/LHelperBox/assets/link.svg +0 -4
  55. package/src/components/LHelperBox/assets/open-envelope.svg +0 -9
  56. package/src/components/LHelperBox/docs.vue +0 -29
  57. package/src/components/LHelperBox/index.vue +0 -83
  58. package/src/components/LIcon/docs.vue +0 -174
  59. package/src/components/LIcon/index.vue +0 -55
  60. package/src/components/LImage/index.vue +0 -7
  61. package/src/components/LImageViewer/docs.vue +0 -111
  62. package/src/components/LImageViewer/index.vue +0 -449
  63. package/src/components/LInput/docs.vue +0 -43
  64. package/src/components/LInput/index.vue +0 -60
  65. package/src/components/LLinearProgress/docs.vue +0 -21
  66. package/src/components/LLinearProgress/index.vue +0 -74
  67. package/src/components/LNotice/docs.vue +0 -26
  68. package/src/components/LNotice/index.vue +0 -86
  69. package/src/components/LNotification/index.vue +0 -182
  70. package/src/components/LOption/index.vue +0 -7
  71. package/src/components/LOptionGroup/index.vue +0 -7
  72. package/src/components/LPresentation/docs.vue +0 -35
  73. package/src/components/LPresentation/index.vue +0 -182
  74. package/src/components/LProgress/index.vue +0 -7
  75. package/src/components/LPromptDialog/index.vue +0 -82
  76. package/src/components/LRadio/docs.vue +0 -54
  77. package/src/components/LRadio/index.vue +0 -13
  78. package/src/components/LRadioButton/index.vue +0 -30
  79. package/src/components/LRadioGroup/index.vue +0 -54
  80. package/src/components/LSearchBar/AddFilterButton.vue +0 -71
  81. package/src/components/LSearchBar/Filters/Editors/AmountEditor.vue +0 -110
  82. package/src/components/LSearchBar/Filters/Editors/DateEditor.vue +0 -146
  83. package/src/components/LSearchBar/Filters/Editors/NumberEditor.vue +0 -141
  84. package/src/components/LSearchBar/Filters/Editors/StringEditor.vue +0 -140
  85. package/src/components/LSearchBar/Filters/Editors/index.js +0 -16
  86. package/src/components/LSearchBar/Filters/FilterChip.vue +0 -105
  87. package/src/components/LSearchBar/Filters/Views/AmountView.vue +0 -28
  88. package/src/components/LSearchBar/Filters/Views/DateView.vue +0 -46
  89. package/src/components/LSearchBar/Filters/Views/NumberView.vue +0 -24
  90. package/src/components/LSearchBar/Filters/Views/StringView.vue +0 -47
  91. package/src/components/LSearchBar/Filters/Views/index.js +0 -16
  92. package/src/components/LSearchBar/docs.vue +0 -60
  93. package/src/components/LSearchBar/index.vue +0 -240
  94. package/src/components/LSearchTopics/RecentTermSearched.vue +0 -30
  95. package/src/components/LSearchTopics/TopicItem.vue +0 -346
  96. package/src/components/LSearchTopics/docs/drawer.vue +0 -254
  97. package/src/components/LSearchTopics/docs.vue +0 -60
  98. package/src/components/LSearchTopics/header.vue +0 -199
  99. package/src/components/LSearchTopics/helpers/showDialogConfirmation.js +0 -30
  100. package/src/components/LSearchTopics/helpers/showDiscardChangesDialog.js +0 -27
  101. package/src/components/LSearchTopics/index.vue +0 -750
  102. package/src/components/LSelect/docs.vue +0 -129
  103. package/src/components/LSelect/index.vue +0 -9
  104. package/src/components/LSlider/index.vue +0 -7
  105. package/src/components/LSwitch/docs.vue +0 -24
  106. package/src/components/LSwitch/index.vue +0 -60
  107. package/src/components/LTabPane/index.vue +0 -7
  108. package/src/components/LTable/FieldTypes/AmountView.vue +0 -16
  109. package/src/components/LTable/FieldTypes/DateView.vue +0 -18
  110. package/src/components/LTable/FieldTypes/EmailView.vue +0 -8
  111. package/src/components/LTable/FieldTypes/NumberView.vue +0 -13
  112. package/src/components/LTable/FieldTypes/PaymentStatusView.vue +0 -8
  113. package/src/components/LTable/FieldTypes/StringView.vue +0 -24
  114. package/src/components/LTable/FieldTypes/index.js +0 -18
  115. package/src/components/LTable/LTableBody.vue +0 -245
  116. package/src/components/LTable/LTableBodySpacer.vue +0 -17
  117. package/src/components/LTable/LTableEndspace.vue +0 -20
  118. package/src/components/LTable/LTableHeader.vue +0 -155
  119. package/src/components/LTable/LTableHeaderCell.vue +0 -188
  120. package/src/components/LTable/LTableHeaderLoader.vue +0 -62
  121. package/src/components/LTable/LTableHeaderResizer.vue +0 -162
  122. package/src/components/LTable/LTableLoadMore.vue +0 -56
  123. package/src/components/LTable/LTablePagination.vue +0 -174
  124. package/src/components/LTable/LTableReloader.vue +0 -61
  125. package/src/components/LTable/ListAdapter.js +0 -74
  126. package/src/components/LTable/docs.vue +0 -111
  127. package/src/components/LTable/helpers.js +0 -194
  128. package/src/components/LTable/index.vue +0 -961
  129. package/src/components/LTabs/docs.vue +0 -28
  130. package/src/components/LTabs/index.vue +0 -37
  131. package/src/components/LTargetChip/docs.vue +0 -86
  132. package/src/components/LTargetChip/index.vue +0 -64
  133. package/src/components/LTargetInput/docs.vue +0 -72
  134. package/src/components/LTargetInput/index.vue +0 -78
  135. package/src/components/LTextEditor/FloatingLink.vue +0 -91
  136. package/src/components/LTextEditor/LinkBox.vue +0 -94
  137. package/src/components/LTextEditor/docs.vue +0 -32
  138. package/src/components/LTextEditor/extensions/LayersBlockquote.js +0 -12
  139. package/src/components/LTextEditor/extensions/LayersBold.js +0 -11
  140. package/src/components/LTextEditor/extensions/LayersBreakLine.js +0 -16
  141. package/src/components/LTextEditor/extensions/LayersBubbleMenu.js +0 -10
  142. package/src/components/LTextEditor/extensions/LayersBulletList.js +0 -12
  143. package/src/components/LTextEditor/extensions/LayersHeading.js +0 -13
  144. package/src/components/LTextEditor/extensions/LayersHistory.js +0 -10
  145. package/src/components/LTextEditor/extensions/LayersItalic.js +0 -11
  146. package/src/components/LTextEditor/extensions/LayersLink.js +0 -29
  147. package/src/components/LTextEditor/extensions/LayersOrderedList.js +0 -12
  148. package/src/components/LTextEditor/extensions/LayersParagraph.js +0 -44
  149. package/src/components/LTextEditor/extensions/LayersPlaceholder.js +0 -11
  150. package/src/components/LTextEditor/extensions/LayersUnderline.js +0 -29
  151. package/src/components/LTextEditor/helpers/addProtocol.js +0 -5
  152. package/src/components/LTextEditor/helpers/removeEmptyTags.js +0 -5
  153. package/src/components/LTextEditor/index.vue +0 -421
  154. package/src/components/LTimeSelect/docs.vue +0 -41
  155. package/src/components/LTimeSelect/index.vue +0 -49
  156. package/src/components/LToggleButtonGroup/index.vue +0 -87
  157. package/src/components/LTooltip/docs.vue +0 -66
  158. package/src/components/LTooltip/index.vue +0 -28
  159. package/src/components/LTransitionExpand/docs.vue +0 -26
  160. package/src/components/LTransitionExpand/index.vue +0 -88
  161. package/src/components/LUpload/index.vue +0 -7
  162. package/src/docs/Colors.vue +0 -50
  163. package/src/docs/Home.vue +0 -11
  164. package/src/docs/Notifications.vue +0 -88
  165. package/src/docs/index.vue +0 -76
  166. package/src/docs/routes.js +0 -20
  167. package/src/helpers/Colors.js +0 -79
  168. package/src/helpers/FieldTypeComponents.js +0 -43
  169. package/src/helpers/Icons.js +0 -67
  170. package/src/helpers/Notification.js +0 -94
  171. package/src/helpers/PrettySize.js +0 -25
  172. package/src/helpers/RegisterElementUIComponents.js +0 -9
  173. package/src/helpers/Schemas.js +0 -18
  174. package/src/helpers/util.js +0 -15
  175. package/src/main-docs.js +0 -132
  176. package/src/main.js +0 -100
  177. package/src/style/colors.scss +0 -31
  178. package/src/style/element-variables.scss +0 -21
  179. package/src/style/icons.scss +0 -5
  180. package/src/style/layers-variables.scss +0 -73
  181. package/src/style/layout.scss +0 -2288
  182. package/src/style/main.scss +0 -11
  183. package/src/style/notifications.scss +0 -88
  184. package/src/style/transitions.scss +0 -43
  185. package/src/style/typography.scss +0 -155
  186. package/vue.config.js +0 -14
@@ -1,155 +0,0 @@
1
- <template>
2
- <thead class="l-table-header">
3
- <tr>
4
- <th v-if="selectable" class="l-table-header-cell l-table-cell l-table-column-selector">
5
- <l-checkbox
6
- v-if="multiselect"
7
- class="l-table-selector"
8
- type="checkbox"
9
- :value="selectedEverything"
10
- :indeterminate="selectedSomethings"
11
- @change="changeSelection($event)"
12
- />
13
- </th>
14
- <LTableHeaderCell
15
- v-for="(spec, idx) in columnSpecs"
16
- :key="idx"
17
- :spec="spec"
18
- @sort="changeSpecSort(spec, $event)"
19
- ref="headers"
20
- />
21
- </tr>
22
-
23
- <!-- Horizontal Loader and Shadows container -->
24
- <tr class="l-table-header-extras">
25
- <td colspan="999">
26
- <LTableHeaderLoader :loading="loading"/>
27
- <div class="l-table-header-shadow-top"></div>
28
- </td>
29
- </tr>
30
- </thead>
31
- </template>
32
-
33
- <script>
34
- import LTableHeaderCell from "./LTableHeaderCell.vue";
35
- import LTableHeaderLoader from "./LTableHeaderLoader.vue";
36
-
37
- export default {
38
- components: { LTableHeaderCell, LTableHeaderLoader },
39
- props: {
40
- columnSpecs: {
41
- type: Array
42
- },
43
- loading: {
44
- type: Boolean,
45
- default: false
46
- },
47
- includedIds: {
48
- type: Array
49
- },
50
- excludedIds: {
51
- type: Array
52
- },
53
- total: {
54
- type: Number
55
- },
56
- selectable: {
57
- type: Boolean
58
- },
59
- multiselect: {
60
- type: Boolean
61
- }
62
- // scrollAtTop: Boolean,
63
- // scrollAtLeft: Boolean
64
- },
65
-
66
- computed: {
67
- selectedEverything() {
68
- let allSelectedManual =
69
- this.includedIds.length === this.total && this.total > 0;
70
- let allSelectedVirtual =
71
- this.includedIds.toString() === "*" && this.excludedIds.length == 0;
72
- return allSelectedManual || allSelectedVirtual;
73
- },
74
- selectedNothing() {
75
- return this.includedIds.length === 0;
76
- },
77
- selectedSomethings() {
78
- return !this.selectedNothing && !this.selectedEverything;
79
- },
80
- },
81
-
82
- methods: {
83
- changeSpecSort(spec, { direction, cumulative }) {
84
- // Erase all direction sortings if not cumulative
85
- if (cumulative) {
86
- let lastOrder = this.columnSpecs.reduce(
87
- (prev, curr) => Math.max(prev, curr.column.sortOrder),
88
- 0
89
- );
90
- let newOrder = lastOrder + 1;
91
- this.$set(spec.column, "sortDirection", direction);
92
- this.$set(spec.column, "sortOrder", newOrder);
93
- } else {
94
- for (let spec of this.columnSpecs) {
95
- this.$set(spec.column, "sortDirection", null);
96
- this.$set(spec.column, "sortOrder", null);
97
- }
98
- this.$set(spec.column, "sortDirection", direction);
99
- this.$set(spec.column, "sortOrder", 1);
100
- }
101
- },
102
-
103
- changeSelection(allChecked) {
104
- this.$emit("selected", { key: "*", selected: allChecked });
105
- }
106
- }
107
- };
108
- </script>
109
-
110
-
111
- <style>
112
- .l-table-header > tr{
113
- background-color: var(--l-table-bg-color);
114
- }
115
-
116
- /* Scroll Shadows */
117
- .l-table-header-extras > td {
118
- z-index: 9;
119
- position: sticky;
120
- top: var(--l-table-header-height);
121
- height: 0;
122
- }
123
-
124
- /* Overrides positioning of the loader on the header */
125
- .l-table-header-extras .l-table-header-loader {
126
- z-index: 9;
127
- position: absolute;
128
- width: 100%;
129
- left: 0;
130
- right: 0;
131
- top: calc(-1 * var(--l-table-loader-height));
132
- height: var(--l-table-loader-height);
133
- }
134
-
135
- /* Top shadows */
136
- .l-table-header-shadow-top {
137
- opacity: 1;
138
- transition: opacity 0.4s;
139
- position: absolute;
140
- pointer-events: none;
141
- }
142
-
143
- .l-table-at-top .l-table-header-shadow-top {
144
- opacity: 0;
145
- }
146
-
147
- /* Creates top shadow positioning and style */
148
- .l-table-header-shadow-top {
149
- left: 0;
150
- top: 0;
151
- height: 4px;
152
- width: 100%;
153
- background-image: linear-gradient(to bottom, rgba(0,0,0,0.1), transparent);
154
- }
155
- </style>
@@ -1,188 +0,0 @@
1
- <template>
2
- <th
3
- class="l-table-header-cell l-table-cell"
4
- :style="{'--l-table-col-width': spec.column.width ? `${spec.column.width}px` : 'auto'}">
5
- <!-- Sortable link -->
6
- <a
7
- v-if="spec.sortable"
8
- href="#"
9
- class="l-table-header-cell-content"
10
- :class="[spec.column.sortDirection ? 'active' : null, `l-table-header-align-${spec.align}`]"
11
- @click.prevent="toggleSorting()">
12
- <l-tooltip
13
- key="tooltip"
14
- :disabled="!spec.description"
15
- :content="spec.description"
16
- placement="top"
17
- :open-delay="600"
18
- :offset="0">
19
- <!-- Title -->
20
- <span>
21
- <l-icon v-if="icon" class="l-table-header-icon">{{ icon }}</l-icon>
22
- &nbsp;
23
- {{spec.title}}
24
- </span>
25
- </l-tooltip>
26
-
27
- <!-- Direction to sort -->
28
- <i
29
- class="l-table-sorter-icon uil uil-arrow-down"
30
- :class="`l-table-sorter-${spec.column.sortDirection || 'default'}`"
31
- ></i>
32
- </a>
33
-
34
- <!-- Not sortable -->
35
- <span v-else class="l-table-header-cell-content">
36
- <l-tooltip
37
- :disabled="!spec.description"
38
- :content="spec.description"
39
- placement="top"
40
- :open-delay="600"
41
- :offset="0">
42
- <!-- Title -->
43
- <span>
44
- <l-icon v-if="icon" class="l-table-header-icon">{{ icon }}</l-icon>
45
- &nbsp;
46
- {{spec.title}}
47
- </span>
48
- </l-tooltip>
49
- </span>
50
-
51
- <!-- Spacer -->
52
- <span style="width: 12px;" />
53
-
54
- <!-- Resizer -->
55
- <LTableHeaderResizer v-if="resizable" @resize="resizeColumn(spec.column, $event)" />
56
- </th>
57
- </template>
58
-
59
- <script>
60
- import LTableHeaderResizer from "./LTableHeaderResizer.vue";
61
-
62
- export default {
63
- components: { LTableHeaderResizer },
64
- props: {
65
- spec: {
66
- type: Object
67
- },
68
- },
69
-
70
- computed: {
71
- resizable() {
72
- return this.spec.field && this.spec.field.resizable;
73
- },
74
-
75
- reordable() {
76
- return true;
77
- },
78
-
79
- icon() {
80
- return this.$L.Icons.get(this.spec.field);
81
- },
82
- },
83
-
84
- methods: {
85
- resizeColumn(column, newSize) {
86
- this.$set(column, "width", newSize);
87
- },
88
-
89
- toggleSorting(cumulative) {
90
- let currentSort = this.spec.column.sortDirection;
91
- let newSortDirection = "asc";
92
- if (!currentSort) {
93
- newSortDirection = "asc";
94
- } else if (currentSort.toLowerCase() === "asc") {
95
- newSortDirection = "desc";
96
- }
97
-
98
- this.$emit("sort", { direction: newSortDirection, cumulative });
99
- }
100
- }
101
- };
102
- </script>
103
-
104
-
105
- <style>
106
- .l-table-header-cell {
107
- z-index: 4;
108
- position: sticky;
109
- top: 0;
110
-
111
- padding: var(--l-table-cell-padding);
112
- height: var(--l-table-header-height);
113
-
114
- background: var(--l-table-bg-color);
115
- box-sizing: border-box;
116
-
117
- width: var(--l-table-col-width);
118
- min-width: var(--l-table-col-width);
119
- max-width: var(--l-table-col-width);
120
-
121
- color: var(--l-table-header-text-color);
122
-
123
- white-space: nowrap;
124
- font-weight: bold;
125
- text-align: left;
126
- font-size: 12px;
127
- }
128
-
129
- .l-table-header-cell a {
130
- color: inherit;
131
- outline: none !important;
132
- text-decoration: none;
133
- }
134
-
135
- .l-table-header-cell a:hover,
136
- .l-table-header-cell a:focus {
137
- color: var(--l-table-link-color);
138
- }
139
-
140
- /* Cell Icon */
141
- .l-table-header-icon {
142
- margin: 0;
143
- font-size: 14px;
144
- }
145
-
146
- /* Content of header */
147
- .l-table-header-cell-content {
148
- /* height: 100%; */
149
- width: 100%;
150
- display: flex;
151
- align-items: center;
152
- }
153
-
154
- .l-table-header-align-left {
155
- flex-direction: row;
156
- }
157
-
158
- .l-table-header-align-right {
159
- flex-direction: row-reverse;
160
- }
161
-
162
- .l-table-header-align-center {
163
- justify-content: center;
164
- }
165
-
166
- /* Sorter */
167
- .l-table-sorter-icon {
168
- font-size: 20px;
169
- transition: transform 0.3s, opacity 0.2s;
170
- transform: rotateX(0deg);
171
- }
172
-
173
- .l-table-sorter-default {
174
- opacity: 0;
175
- }
176
-
177
- .l-table-header-cell-sortable:hover .l-table-sorter-default {
178
- opacity: 0.3;
179
- }
180
-
181
- .l-table-sorter-asc,
182
- .l-table-sorter-desc {
183
- opacity: 1;
184
- }
185
- .l-table-sorter-desc {
186
- transform: rotateX(180deg);
187
- }
188
- </style>
@@ -1,62 +0,0 @@
1
- <template functional>
2
- <div class="l-table-header-loader" :class="{loading: props.loading}"></div>
3
- </template>
4
-
5
- <script>
6
- export default {
7
- props: ["loading"]
8
- };
9
- </script>
10
-
11
-
12
- <style>
13
- /* Loader */
14
- .l-table-header-loader {
15
- opacity: 0;
16
- overflow: hidden;
17
- background: white;
18
- pointer-events: none;
19
- transition: 0.4s opacity;
20
- }
21
- .l-table-header-loader.loading {
22
- opacity: 1;
23
- }
24
-
25
- .l-table-header-loader:before,
26
- .l-table-header-loader:after {
27
- content: ' ';
28
- display: block;
29
- width: 100%;
30
- height: 100%;
31
- position: absolute;
32
- top: 0;
33
- left: 0;
34
- }
35
- .l-table-header-loader:before {
36
- opacity: 0.2;
37
- background: var(--l-table-loader-color);
38
- }
39
- .l-table-header-loader:after {
40
- transition: transform 1s, animation 1s;
41
- transform: translateX(-100%);
42
- transform-origin: left center;
43
- background: var(--l-table-loader-color);
44
- }
45
- .l-table-header-loader.loading:after {
46
- animation: l-table-horizontal-loader-anim 30s 0.5s ease-in-out forwards;
47
- }
48
-
49
- @keyframes l-table-horizontal-loader-anim {
50
- 0% { transform: translateX(-100%) }
51
- 5% { transform: translateX(-80%) }
52
- 15% { transform: translateX(-10%) }
53
- 25% { transform: translateX(-10%) }
54
- 30% { transform: translateX(-7%) }
55
- 45% { transform: translateX(-7%) }
56
- 50% { transform: translateX(-5%) }
57
- 65% { transform: translateX(-5%) }
58
- 70% { transform: translateX(-3%) }
59
- 95% { transform: translateX(-3%) }
60
- 100% { transform: translateX(-2%) }
61
- }
62
- </style>
@@ -1,162 +0,0 @@
1
- <template>
2
- <!-- <div class="mt-header" > -->
3
- <!-- {{title}} {{dragging}} {{deltaX}} -->
4
- <div
5
- class="mt-handle"
6
- :class="dragging ? 'dragging' : ''"
7
- :style="handleStyle"
8
- @dblclick="resize(null)"
9
- @mousedown="dragStart"
10
- ></div>
11
- <!-- </div> -->
12
- </template>
13
-
14
- <script>
15
- /* eslint-disable no-console */
16
-
17
- export default {
18
- props: {
19
- title: String,
20
- maxWidth: {
21
- type: Number,
22
- default: null
23
- },
24
- minWidth: {
25
- type: Number,
26
- default: 50
27
- }
28
- },
29
-
30
- data() {
31
- return {
32
- dragging: false,
33
- deltaX: 0
34
- };
35
- },
36
-
37
- computed: {
38
- handleStyle() {
39
- return this.dragging
40
- ? {
41
- transform: `translateX(${this.deltaX}px)`
42
- }
43
- : null;
44
- }
45
- },
46
-
47
- methods: {
48
- currentWidth() {
49
- return this.$el.parentElement.getBoundingClientRect().width;
50
- },
51
- limitDeltaX(deltaX) {
52
- let headerWidth = this.currentWidth();
53
- let newWidth = this.limitWidth(headerWidth + deltaX);
54
- return newWidth - headerWidth;
55
- },
56
-
57
- limitWidth(width) {
58
- if (!width) {
59
- return null;
60
- }
61
-
62
- if (this.maxWidth && this.maxWidth < width) {
63
- return this.maxWidth;
64
- }
65
-
66
- if (this.minWidth && this.minWidth > width) {
67
- return this.minWidth;
68
- }
69
-
70
- return width;
71
- },
72
-
73
- // Emits a resize envent to parent filtering the width to its limits
74
- resize(width) {
75
- this.$emit("resize", this.limitWidth(width));
76
- },
77
- drag(evt) {
78
- // In case something got dirty, force unregistering
79
- if (!this.dragging) this.unregisterDocumentHandlers();
80
-
81
- // Compute the delta X in pixels from the right of the header
82
- let deltaX = evt.clientX - this.dragStartClientX;
83
- this.deltaX = this.limitDeltaX(deltaX);
84
- console.log("drag", this.deltaX);
85
- },
86
- dragStart(evt) {
87
- this.registerDocumentHandlers();
88
- this.deltaX = 0;
89
- this.dragging = true;
90
- this.dragStartClientX = evt.clientX;
91
- console.log("dragStart", evt);
92
- },
93
- dragEnd(evt) {
94
- // Check if did some resize
95
- if (this.deltaX) {
96
- let newWidth = this.currentWidth() + this.deltaX;
97
- this.resize(newWidth);
98
- }
99
-
100
- this.unregisterDocumentHandlers();
101
- this.deltaX = 0;
102
- this.dragging = false;
103
- this.dragStartClientX = 0;
104
- console.log("dragEnd", evt);
105
- },
106
- registerDocumentHandlers() {
107
- this.unregisterDocumentHandlers();
108
- this._documentMouseMove = evt => this.drag(evt);
109
- this._documentMouseUp = evt => this.dragEnd(evt);
110
- document.body.style.cursor = "col-resize";
111
- document.addEventListener("mousemove", this._documentMouseMove);
112
- document.addEventListener("mouseup", this._documentMouseUp);
113
- document.onselectstart = () => false;
114
- document.ondragstart = () => false;
115
- },
116
- unregisterDocumentHandlers() {
117
- document.removeEventListener("mousemove", this._documentMouseMove);
118
- document.removeEventListener("mouseup", this._documentMouseUp);
119
- document.body.style.cursor = "";
120
- document.onselectstart = null;
121
- document.ondragstart = null;
122
- }
123
- }
124
- };
125
- </script>
126
-
127
- <style>
128
- .mt-handle {
129
- content: " ";
130
- background: transparent;
131
- position: absolute;
132
- top: 0;
133
- right: 0px;
134
- bottom: 0;
135
- width: 5px;
136
- z-index: 1;
137
- }
138
-
139
- *:hover > .mt-handle {
140
- background: grey;
141
- }
142
-
143
- /* .mt-header.dragging {
144
- z-index: 3;
145
- } */
146
-
147
- .mt-handle:hover,
148
- .mt-handle.dragging {
149
- background: cornflowerblue;
150
- cursor: col-resize;
151
- }
152
-
153
- .mt-handle.dragging:before {
154
- content: " ";
155
- background: inherit;
156
- position: absolute;
157
- top: 0;
158
- left: 2px;
159
- width: 1px;
160
- height: 100vh;
161
- }
162
- </style>
@@ -1,56 +0,0 @@
1
- <template>
2
- <div class="l-table-loadmore" :class="{loading}" @click="$emit('click')">
3
- <a href="#" class="l-table-loadmore-link">Carregar mais</a>
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- props: {
10
- loading: Boolean,
11
- automatic: Boolean,
12
- },
13
-
14
- mounted() {
15
- // Create observer
16
- this.intersectionObserver = new IntersectionObserver(([evt]) => {
17
- if (evt && evt.isIntersecting && this.automatic) {
18
- this.$emit('appeared')
19
- }
20
- })
21
-
22
- // Starts listening to root element
23
- this.intersectionObserver.observe(this.$el)
24
- },
25
-
26
- destroyed() {
27
- // Remove observer from elements
28
- if (this.intersectionObserver) {
29
- this.intersectionObserver.disconnect()
30
- }
31
- },
32
- };
33
- </script>
34
-
35
-
36
- <style>
37
- .l-table-loadmore {
38
- flex: 0 0 auto;
39
- position: sticky;
40
- left: 0;
41
- right: 0;
42
- border-top: var(--l-table-border-tick) solid var(--l-table-border-color);
43
- height: var(--l-table-loadmore-height);
44
-
45
- display: flex;
46
- align-items: center;
47
- justify-content: center;
48
- }
49
-
50
- .l-table-loadmore-link {
51
- font-weight: 600;
52
- font-size: 12px;
53
- color: #2F8AF5;
54
- text-decoration: none;
55
- }
56
- </style>