renusify 2.5.1 → 3.0.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 (212) hide show
  1. package/components/app/index.vue +74 -22
  2. package/components/app/toast/index.vue +76 -71
  3. package/components/app/toast/toast.vue +62 -44
  4. package/components/avatar/index.vue +208 -84
  5. package/components/button/buttonConfirm.vue +53 -26
  6. package/components/button/buttonGroup.js +0 -2
  7. package/components/button/buttonGroup.vue +310 -62
  8. package/components/button/index.vue +584 -100
  9. package/components/calendar/index.js +0 -2
  10. package/components/calendar/index.vue +326 -262
  11. package/components/calendar/month.vue +64 -55
  12. package/components/calendar/year.vue +30 -25
  13. package/components/card/index.vue +139 -59
  14. package/components/codeEditor/highlightCss.vue +38 -39
  15. package/components/codeEditor/highlightHtml.vue +64 -64
  16. package/components/codeEditor/highlightJs.vue +37 -38
  17. package/components/codeEditor/index.vue +129 -79
  18. package/components/codeEditor/run.vue +225 -39
  19. package/components/codeEditor/useCodeFormatter.js +150 -0
  20. package/components/confirm/index.vue +140 -81
  21. package/components/container/col.vue +5 -4
  22. package/components/container/divider.vue +28 -19
  23. package/components/container/index.vue +34 -15
  24. package/components/container/row.vue +26 -9
  25. package/components/container/spacer.vue +2 -4
  26. package/components/container/style.scss +3 -0
  27. package/components/content/index.vue +49 -32
  28. package/components/cropper/index.vue +401 -244
  29. package/components/float/index.vue +542 -415
  30. package/components/form/addressInput/index.vue +184 -109
  31. package/components/form/camInput/index.vue +370 -244
  32. package/components/form/checkInput/index.vue +138 -71
  33. package/components/form/checkboxInput/index.vue +87 -47
  34. package/components/form/colorInput/Alpha.vue +81 -83
  35. package/components/form/colorInput/Hue.vue +91 -68
  36. package/components/form/colorInput/Preview.vue +43 -47
  37. package/components/form/colorInput/Saturation.vue +101 -86
  38. package/components/form/colorInput/index.vue +72 -40
  39. package/components/form/colorInput/picker.vue +111 -106
  40. package/components/form/colorInput/useColor.js +153 -0
  41. package/components/form/dateInput/index.vue +691 -356
  42. package/components/form/dateInput/month.vue +63 -54
  43. package/components/form/dateInput/year.vue +35 -25
  44. package/components/form/fileInput/index.js +0 -1
  45. package/components/form/fileInput/index.vue +263 -106
  46. package/components/form/fileInput/single.vue +323 -164
  47. package/components/form/groupInput/index.vue +199 -101
  48. package/components/form/index.vue +189 -83
  49. package/components/form/input/index.vue +416 -377
  50. package/components/form/jsonInput/JsonView.vue +54 -56
  51. package/components/form/jsonInput/index.vue +247 -165
  52. package/components/form/maskInput/index.vue +252 -132
  53. package/components/form/numberInput/index.js +0 -1
  54. package/components/form/numberInput/index.vue +226 -117
  55. package/components/form/passwordInput/index.js +2 -1
  56. package/components/form/passwordInput/index.vue +269 -102
  57. package/components/form/radioInput/index.vue +143 -72
  58. package/components/form/rangeInput/index.vue +280 -167
  59. package/components/form/ratingInput/index.vue +57 -57
  60. package/components/form/selectInput/index.js +1 -3
  61. package/components/form/selectInput/index.vue +584 -296
  62. package/components/form/switchInput/index.vue +73 -59
  63. package/components/form/telInput/index.js +0 -1
  64. package/components/form/telInput/index.vue +238 -135
  65. package/components/form/textArea/index.vue +72 -35
  66. package/components/form/textEditor/index.vue +739 -0
  67. package/components/form/{text-editor → textEditor}/style.scss +8 -16
  68. package/components/form/textInput/index.vue +54 -32
  69. package/components/form/timeInput/index.vue +83 -56
  70. package/components/form/timeInput/range.vue +116 -95
  71. package/components/form/timeInput/timepicker.vue +382 -449
  72. package/components/form/uniqueInput/index.vue +105 -48
  73. package/components/form/unitInput/index.vue +139 -84
  74. package/components/formCreator/index.js +0 -1
  75. package/components/formCreator/index.vue +314 -148
  76. package/components/highlight/index.vue +41 -25
  77. package/components/highlight/style.scss +2 -2
  78. package/components/highlight/{mixin.js → useHighlight.js} +181 -160
  79. package/components/icon/index.vue +79 -33
  80. package/components/img/index.vue +249 -147
  81. package/components/img/preview.vue +180 -198
  82. package/components/img/svgImg.vue +42 -39
  83. package/components/index.js +5 -20
  84. package/components/infinite/index.js +1 -2
  85. package/components/infinite/index.vue +248 -66
  86. package/components/map/index.vue +428 -261
  87. package/components/map/route.vue +794 -487
  88. package/components/map/select.vue +118 -58
  89. package/components/menu/index.vue +201 -91
  90. package/components/meta/meta.js +26 -3
  91. package/components/modal/index.vue +383 -158
  92. package/components/notify/index.vue +204 -86
  93. package/components/notify/notification.vue +38 -55
  94. package/components/progress/circle.vue +189 -70
  95. package/components/progress/line.vue +266 -46
  96. package/components/searchBox/index.js +1 -3
  97. package/components/searchBox/index.vue +194 -101
  98. package/components/skeleton/index.vue +45 -20
  99. package/components/slider/index.vue +318 -156
  100. package/components/swiper/index.vue +254 -106
  101. package/components/table/crud/footer.vue +77 -53
  102. package/components/table/crud/header.vue +71 -72
  103. package/components/table/crud/index.vue +631 -401
  104. package/components/table/index.vue +721 -278
  105. package/components/timeAgo/index.vue +145 -96
  106. package/components/tour/index.vue +338 -235
  107. package/components/tree/index.vue +235 -89
  108. package/components/tree/tree-element.vue +107 -106
  109. package/directive/animate/index.js +77 -0
  110. package/directive/clickOutSide/index.js +98 -0
  111. package/directive/drag/index.js +153 -0
  112. package/directive/index.js +11 -13
  113. package/directive/intersect/index.js +263 -0
  114. package/directive/mask/index.js +67 -0
  115. package/directive/parallax/index.js +78 -0
  116. package/directive/ripple/index.js +14 -0
  117. package/directive/scroll/index.js +244 -0
  118. package/directive/sortable/index.js +274 -0
  119. package/directive/title/index.js +75 -0
  120. package/directive/touch/index.js +268 -0
  121. package/index.js +10 -8
  122. package/package.json +5 -2
  123. package/plugins/validation/Validate.js +88 -79
  124. package/scripts/generate-docs.mjs +226 -0
  125. package/scripts/menu.mjs +240 -0
  126. package/scripts/parser.mjs +1086 -0
  127. package/style/_index.scss +7 -0
  128. package/style/app.scss +13 -65
  129. package/style/colors.scss +5 -22
  130. package/style/functions/index.scss +8 -0
  131. package/style/mixins/index.scss +17 -5
  132. package/style/variables/base.scss +154 -175
  133. package/style/variables/color.scss +0 -12
  134. package/style/variables/utilities.scss +0 -180
  135. package/tools/helper.js +0 -8
  136. package/tools/icons.js +6 -1
  137. package/tools/root.js +71 -0
  138. package/components/app/style.scss +0 -41
  139. package/components/app/toast/style.scss +0 -20
  140. package/components/avatar/style.scss +0 -32
  141. package/components/bar/bottomNav.js +0 -1
  142. package/components/bar/bottomNav.vue +0 -28
  143. package/components/bar/bottomNavigationCircle.js +0 -2
  144. package/components/bar/bottomNavigationCircle.vue +0 -99
  145. package/components/bar/scss/bottomNav.scss +0 -67
  146. package/components/bar/scss/toolbar.scss +0 -174
  147. package/components/bar/toolbar/index.js +0 -8
  148. package/components/bar/toolbar/index.vue +0 -35
  149. package/components/bar/toolbar/laptop.vue +0 -33
  150. package/components/bar/toolbar/menuChilds.vue +0 -41
  151. package/components/bar/toolbar/menuLaptop.vue +0 -41
  152. package/components/bar/toolbar/menuMob.vue +0 -39
  153. package/components/bar/toolbar/mixin.js +0 -43
  154. package/components/bar/toolbar/mobile.vue +0 -34
  155. package/components/breadcrumb/bredcrumbItem.vue +0 -39
  156. package/components/breadcrumb/index.js +0 -3
  157. package/components/breadcrumb/index.vue +0 -71
  158. package/components/breadcrumb/style.scss +0 -51
  159. package/components/button/style.scss +0 -411
  160. package/components/card/style.scss +0 -86
  161. package/components/chart/chart.js +0 -1
  162. package/components/chart/chart.vue +0 -69
  163. package/components/chart/worldMap.js +0 -2
  164. package/components/chart/worldMap.vue +0 -1112
  165. package/components/chat/MessageList.vue +0 -163
  166. package/components/chat/chatInput.vue +0 -150
  167. package/components/chat/chatMsg.vue +0 -276
  168. package/components/chat/index.js +0 -11
  169. package/components/chat/index.vue +0 -113
  170. package/components/chip/index.js +0 -3
  171. package/components/chip/index.vue +0 -77
  172. package/components/chip/style.scss +0 -199
  173. package/components/codeEditor/mixin.js +0 -145
  174. package/components/countdown/index.js +0 -1
  175. package/components/countdown/index.vue +0 -105
  176. package/components/form/colorInput/mixin.js +0 -132
  177. package/components/form/fileInput/file.js +0 -148
  178. package/components/form/telInput/assets/flags.png +0 -0
  179. package/components/form/telInput/assets/flags@2x.png +0 -0
  180. package/components/form/text-editor/index.vue +0 -710
  181. package/components/icon/style.scss +0 -17
  182. package/components/infinite/div.js +0 -6
  183. package/components/infinite/div.vue +0 -193
  184. package/components/infinite/page.js +0 -3
  185. package/components/infinite/page.vue +0 -105
  186. package/components/list/index.js +0 -3
  187. package/components/list/index.vue +0 -122
  188. package/components/list/style.scss +0 -66
  189. package/components/message/index.js +0 -4
  190. package/components/message/index.vue +0 -40
  191. package/components/modal/style.scss +0 -146
  192. package/components/nestable/NestableItem.vue +0 -307
  193. package/components/nestable/editable.js +0 -44
  194. package/components/nestable/index.js +0 -1
  195. package/components/nestable/index.vue +0 -226
  196. package/components/nestable/methods.js +0 -416
  197. package/components/progress/style.scss +0 -229
  198. package/components/table/style.scss +0 -338
  199. package/components/tabs/index.js +0 -3
  200. package/components/tabs/index.vue +0 -151
  201. package/components/timeline/index.js +0 -6
  202. package/components/timeline/index.vue +0 -76
  203. package/directive/resize/index.js +0 -30
  204. package/directive/skeleton/index.js +0 -27
  205. package/directive/skeleton/style.scss +0 -37
  206. package/plugins/request/Request.js +0 -68
  207. package/style/animation.scss +0 -94
  208. package/style/style.scss +0 -8
  209. package/tools/rootable.js +0 -75
  210. /package/components/form/{text-editor → textEditor}/index.js +0 -0
  211. /package/components/form/{text-editor → textEditor}/preview.js +0 -0
  212. /package/components/form/{text-editor → textEditor}/preview.vue +0 -0
@@ -1,67 +0,0 @@
1
- @use "sass:map";
2
- @use "../../../style/variables/base";
3
- @use "../../../style/functions";
4
- @use "../../../style/mixins";
5
-
6
- $bottom-nav-btn-font-size: functions.map-metro-get(base.$headings, 'label-1', 'size') !default;
7
-
8
- .#{base.$prefix}bottom-navigation {
9
- bottom: 0;
10
- display: flex;
11
- left: 0;
12
- justify-content: center;
13
- width: 100%;
14
- height: base.$bottom-nav-height;
15
- background-color: var(--color-sheet-container);
16
- color: var(--color-on-sheet);
17
- @include mixins.typography(base.$headings, 'body-3');
18
-
19
- .router-link-exact-active {
20
- color: var(--color-one)
21
- }
22
-
23
- .#{base.$prefix}btn {
24
- border-radius: 0;
25
- box-shadow: none;
26
- flex: 0 1 auto;
27
- font-size: $bottom-nav-btn-font-size;;
28
- height: inherit !important;
29
- max-width: base.$bottom-nav-btn-max-width;
30
- min-width: base.$bottom-nav-btn-min-width;
31
- position: relative;
32
- text-transform: none;
33
-
34
- &:after {
35
- content: none
36
- }
37
-
38
- .btn-content {
39
- flex-direction: column-reverse;
40
- height: inherit;
41
- }
42
-
43
- .#{base.$prefix}icon {
44
- margin-bottom: 4px
45
- }
46
-
47
- > *:not(.#{base.$prefix}icon) {
48
- line-height: 1.2
49
- }
50
-
51
- &.router-link-exact-active {
52
- color: inherit
53
- }
54
- }
55
-
56
- &.bottom-navigation-fixed {
57
- position: fixed;
58
- z-index: map.get(base.$z-index, 'default')
59
- }
60
-
61
- &.bottom-navigation-grow {
62
- .#{base.$prefix}btn {
63
- width: 100%;
64
- max-width: 100%;
65
- }
66
- }
67
- }
@@ -1,174 +0,0 @@
1
- @use "sass:map";
2
- @use "../../../style/variables/base";
3
- @use "../../../style/mixins";
4
-
5
- .#{base.$prefix}toolbar {
6
- flex: 1 1 auto;
7
- background-color: var(--color-sheet-container);
8
- color: var(--color-on-sheet);
9
-
10
- .toolbar-mobile {
11
- .toolbar-close {
12
- width: 40px;
13
- height: 40px;
14
- position: absolute;
15
- transition: 0.5s all map.get(base.$transition, 'swing');
16
- @include mixins.rtl() {
17
- right: -40px;
18
- }
19
- @include mixins.ltr() {
20
- left: -40px;
21
- }
22
- }
23
- .toolbar-side{
24
- width: 300px;
25
- height: 100%;
26
- overflow: auto;
27
- position: absolute;
28
- transition: .3s all map.get(base.$transition, 'swing');
29
- background-color: var(--color-sheet);
30
- color: var(--color-on-sheet);
31
- @include mixins.rtl() {
32
- right: -300px;
33
- }
34
- @include mixins.ltr() {
35
- left: -300px;
36
- }
37
- }
38
- .shadow {
39
- position: fixed;
40
- top: 0;
41
- width: 0;
42
- height: 100vh;
43
- z-index: map.get(base.$z-index, 'important');
44
- background-color: var(--color-overlay);
45
- transition: .1s width map.get(base.$transition, 'swing');
46
- overflow: hidden;
47
- @include mixins.rtl() {
48
- right: 0;
49
- }
50
- @include mixins.ltr() {
51
- left: 0;
52
- }
53
- }
54
- &.toolbar-open{
55
- .shadow {
56
- width: 100vw;
57
- }
58
- .toolbar-side {
59
- transition: 0.3s all map.get(base.$transition, 'swing');
60
- @include mixins.rtl() {
61
- right: 0;
62
- }
63
- @include mixins.ltr() {
64
- left: 0;
65
- }
66
- }
67
- .toolbar-close{
68
- @include mixins.rtl() {
69
- right: 300px;
70
- }
71
- @include mixins.ltr() {
72
- left: 300px;
73
- }
74
- }
75
- }
76
- }
77
-
78
- .toolbar-content {
79
- height: base.$toolbar-height;
80
- padding: base.$toolbar-content-padding-y base.$toolbar-content-padding-x;
81
- align-items: center;
82
- display: flex;
83
- position: relative;
84
- z-index: map.get(base.$z-index, 'medium');
85
- }
86
-
87
- .toolbar-items {
88
- display: flex;
89
- height: inherit;
90
- align-items: center;
91
- }
92
-
93
- .menu-title {
94
- position: relative;
95
-
96
- &:before {
97
- content: '-';
98
- position: absolute;
99
- @include mixins.rtl() {
100
- right: -8px;
101
- }
102
- @include mixins.ltr() {
103
- left: -8px;
104
- }
105
- }
106
- }
107
-
108
- .menu-list {
109
- transition: 0.3s map.get(base.$transition, 'swing');
110
- min-width: 200px;
111
- max-height: 500px;
112
- overflow-y: auto;
113
- @include mixins.rtl() {
114
- border-right: 1px solid;
115
- }
116
- @include mixins.ltr() {
117
- border-left: 1px solid;
118
- }
119
- }
120
-
121
- .menu-hide {
122
- max-height: 0;
123
- overflow: hidden;
124
- }
125
-
126
- .toolbar-item {
127
- padding: 20px 5px;
128
- font-size: 1.125rem;
129
- position: relative;
130
-
131
- .toolbar-childs {
132
- transition: 0.3s map.get(base.$transition, 'swing');
133
- position: absolute;
134
- top: 40px;
135
- max-height: 0;
136
- overflow: hidden;
137
- z-index: map.get(base.$z-index, 'important');
138
- }
139
-
140
- &:before {
141
- transition: base.$primary-transition;
142
- content: '';
143
- width: 0;
144
- position: absolute;
145
- bottom: 0;
146
- color: var(--color-one);
147
- border-bottom: 4px solid;
148
- }
149
-
150
- &:hover {
151
- .toolbar-childs {
152
- overflow: auto;
153
- max-height: 500px;
154
- }
155
-
156
- &:before {
157
- width: 90%;
158
- }
159
- }
160
- }
161
-
162
- &.toolbar-fixed {
163
- position: fixed;
164
- top: 0;
165
- width: 100%;
166
- z-index: map.get(base.$z-index, 'medium');
167
- }
168
-
169
- &.toolbar-sticky {
170
- position: sticky;
171
- top: 0;
172
- z-index: map.get(base.$z-index, 'medium');
173
- }
174
- }
@@ -1,8 +0,0 @@
1
- export * as rToolbar from './index.vue'
2
- export * as l_container from '../../container/index.js'
3
- export * as l_spacer from '../../container/spacer.js'
4
- export * as l_divider from '../../container/divider.js'
5
- export * as l_search from '../../searchBox/index.js'
6
- export * as l_img from '../../img/index.js'
7
- export * as l_btn from '../../button/index.js'
8
- export * as l_icon from '../../icon/index.js'
@@ -1,35 +0,0 @@
1
- <template>
2
- <laptop v-if="!$r.breakpoint.mdAndDown">
3
- <template #search="{item}">
4
- <slot name="search" :item="item"></slot>
5
- </template>
6
- <template #logo>
7
- <slot name="logo"></slot>
8
- </template>
9
- </laptop>
10
- <mobile v-else>
11
- <template #search="{item}">
12
- <slot name="search" :item="item"></slot>
13
- </template>
14
- <template #logo>
15
- <slot name="logo"></slot>
16
- </template>
17
- </mobile>
18
- </template>
19
-
20
- <script>
21
- import '../scss/toolbar.scss'
22
- import {defineAsyncComponent} from 'vue'
23
-
24
- export default {
25
- name: 'r-toolbar',
26
- components: {
27
- Laptop: defineAsyncComponent(() =>
28
- import('./laptop.vue')
29
- ),
30
- Mobile: defineAsyncComponent(() =>
31
- import('./mobile.vue')
32
- )
33
- }
34
- }
35
- </script>
@@ -1,33 +0,0 @@
1
- <template>
2
- <div :class="classes">
3
- <header>
4
- <r-container class="pa-0">
5
- <div class="toolbar-content">
6
- <menu-laptop :menu="menu"></menu-laptop>
7
- <r-spacer></r-spacer>
8
- <div v-if="search" class="mt-n5">
9
- <r-search-box autofocus closable :label="searchLabel" :url="search">
10
- <template v-slot="{item}">
11
- <slot name="search" :item="item"></slot>
12
- </template>
13
- </r-search-box>
14
- </div>
15
- <slot name="logo">
16
- <div v-if="logo">
17
- <r-img :src="logo" alt="logo" :width="logoW" :height="logoH"></r-img>
18
- </div>
19
- </slot>
20
- </div>
21
- </r-container>
22
- </header>
23
- </div>
24
- </template>
25
- <script>
26
- import {defineAsyncComponent} from 'vue'
27
- import {toolbar} from './mixin.js'
28
-
29
- export default {
30
- components: {MenuLaptop: defineAsyncComponent(() => import('./menuLaptop.vue'))},
31
- mixins: [toolbar]
32
- }
33
- </script>
@@ -1,41 +0,0 @@
1
- <template>
2
- <div class="ms-1 ps-2 menu-list">
3
- <div v-for="(item,i) in menu" :key="i">
4
- <div class="d-flex h-space-between">
5
- <component class="menu-title py-1 cursor-pointer"
6
- :is="item.to?'router-link':'span'"
7
- @click.prevent="item.hash&&go(item.hash)"
8
- :to="item.to">{{item.title}}</component>
9
- <r-icon class="me-1" v-if="item.childs" v-html="open===i?$r.icons.minus:$r.icons.plus"
10
- @click.prevent.stop="open===i?open=null:open=i"></r-icon>
11
- </div>
12
- <menu-childs v-if="item.childs" :class="{'menu-hide':open!==i}" :menu="item.childs"></menu-childs>
13
- </div>
14
- </div>
15
- </template>
16
- <script>
17
- export default {
18
- name:'menu-childs',
19
- props:{
20
- menu:Array
21
- },
22
- data(){
23
- return{
24
- open:null
25
- }
26
- },
27
- methods:{
28
- go(hash){
29
- if(this.$route.name!==hash.to.name){
30
- this.$router.push(hash.to)
31
- }
32
- setTimeout(()=>{
33
- const el=document.getElementById(hash.id)
34
- if(el!==null){
35
- el.scrollIntoView()
36
- }
37
- },500)
38
- }
39
- }
40
- }
41
- </script>
@@ -1,41 +0,0 @@
1
- <template>
2
- <div class="toolbar-items">
3
- <component :is="item.to?'router-link':'span'"
4
- class="toolbar-item me-2 cursor-pointer"
5
- v-for="(item,i) in menu"
6
- :key="i"
7
- @click.prevent="item.hash&&go(item.hash)"
8
- :to="item.to">
9
- {{item.title}}
10
- <r-icon v-if="item.childs" v-html="$r.icons.chevron_down"></r-icon>
11
- <div v-if="item.childs" class="toolbar-childs mt-7">
12
- <menu-childs class="pa-2" :menu="item.childs"></menu-childs>
13
- </div>
14
- </component>
15
- </div>
16
- </template>
17
- <script>
18
- import {defineAsyncComponent} from 'vue'
19
-
20
- export default {
21
- name: 'menu-laptop',
22
- components: {MenuChilds:defineAsyncComponent(()=>import('./menuChilds.vue'))},
23
- props: {menu: Array},
24
- data() {
25
- return {}
26
- },
27
- methods: {
28
- go(hash) {
29
- if (this.$route.name !== hash.to.name) {
30
- this.$router.push(hash.to)
31
- }
32
- setTimeout(()=>{
33
- const el=document.getElementById(hash.id)
34
- if(el!==null){
35
- el.scrollIntoView()
36
- }
37
- },500)
38
- }
39
- }
40
- }
41
- </script>
@@ -1,39 +0,0 @@
1
- <template>
2
- <div class="toolbar-mobile" :class="{'toolbar-open':modelValue}">
3
- <div class="shadow" @click.prevent="close">
4
- <aside class="toolbar-side pt-5">
5
- <div v-if="logo" class="text-center">
6
- <r-img :src="logo" alt="logo" :width="logoW" :height="logoH"></r-img>
7
- <r-divider class="my-5"></r-divider>
8
- </div>
9
- <menu-childs :menu="menu"></menu-childs>
10
- </aside>
11
- <div class="toolbar-close pa-2" @click.prevent="close">
12
- <r-icon v-html="$r.icons.close"></r-icon>
13
- </div>
14
- </div>
15
- </div>
16
- </template>
17
- <script>
18
- import {defineAsyncComponent} from 'vue'
19
-
20
- export default {
21
- name: 'menu-mobile',
22
- components: {MenuChilds: defineAsyncComponent(() => import('./menuChilds.vue'))},
23
- props: {
24
- logo: String,
25
- logoW: Number,
26
- logoH: Number,
27
- menu: Array,
28
- modelValue: Boolean
29
- },
30
- data() {
31
- return {}
32
- },
33
- methods: {
34
- close() {
35
- this.$emit('update:modelValue', false)
36
- }
37
- }
38
- }
39
- </script>
@@ -1,43 +0,0 @@
1
- export const toolbar= {
2
- props: {
3
- menu: {
4
- type: Array,
5
- default: () => {
6
- return []
7
- }
8
- },
9
- logo: String,
10
- logoW: {type: Number, default: 180},
11
- logoH: {type: Number, default: 60},
12
- search: String,
13
- searchLabel: {type:String,default:'search'},
14
- fixed: Boolean,
15
- flat: Boolean,
16
- sticky: Boolean,
17
- tile: {
18
- type: Boolean,
19
- default: true
20
- }
21
- },
22
- data() {
23
- return {
24
- open: false
25
- }
26
- },
27
- watch: {
28
- '$route': function () {
29
- this.open = false
30
- }
31
- },
32
- computed: {
33
- classes() {
34
- let a = {
35
- 'toolbar-fixed': this.fixed,
36
- 'toolbar-sticky': this.sticky,
37
- 'elevation-md': !this.flat
38
- }
39
- a[this.$r.prefix + 'toolbar'] = true
40
- return a
41
- }
42
- }
43
- }
@@ -1,34 +0,0 @@
1
- <template>
2
- <div :class="classes">
3
- <header>
4
- <r-container class="pa-0">
5
- <div class="toolbar-content">
6
- <r-btn icon text @click.prevent="open=!open">
7
- <r-icon v-html="$r.icons.menu"></r-icon>
8
- </r-btn>
9
- <r-spacer></r-spacer>
10
- <div v-if="search" class="mt-n5">
11
- <r-search-box closable autofocus
12
- :label="searchLabel" :url="search">
13
- <template v-slot="{item}">
14
- <slot name="search" :item="item"></slot>
15
- </template>
16
- </r-search-box>
17
- </div>
18
- <slot name="logo"></slot>
19
- </div>
20
- </r-container>
21
- </header>
22
- <menu-mobile :menu="menu" v-model="open" :logo="logo"
23
- :logoW="logoW" :logoH="logoH"></menu-mobile>
24
- </div>
25
- </template>
26
- <script>
27
- import {defineAsyncComponent} from 'vue'
28
- import {toolbar} from './mixin.js'
29
-
30
- export default {
31
- components: {MenuMobile: defineAsyncComponent(() => import('./menuMob.vue'))},
32
- mixins: [toolbar]
33
- }
34
- </script>
@@ -1,39 +0,0 @@
1
- <template>
2
- <component
3
- :class="`${item.type==='item'?'breadcrumb-item':'breadcrumb-divider'} ${item.disabled?'breadcrumb-item-disabled':''}`"
4
- v-bind="att"
5
- :is="route.tag"
6
- >
7
- <r-icon v-if="item.type==='divider'" v-html="item.name"></r-icon>
8
- <div class="breadcrumbs-title" v-else>{{item.name}}</div>
9
- </component>
10
- </template>
11
-
12
- <script>
13
- import {roots} from '../../tools/rootable.js'
14
-
15
- export default {
16
- name: 'rBreadcrumbItem',
17
- mixins: [roots],
18
- props: {
19
- item: Object
20
- },
21
- computed: {
22
- att() {
23
- let res = {}
24
- if (this.href) {
25
- res['href'] = this.route.data.attrs.href
26
- }
27
-
28
- if (this.target) {
29
- res['rel'] = 'noreferrer'
30
- res['target'] = this.route.data.attrs.target
31
- }
32
- if (this.to) {
33
- res['to'] = this.route.data.props.to
34
- }
35
- return res
36
- },
37
- }
38
- }
39
- </script>
@@ -1,3 +0,0 @@
1
- export * as rBreadcrumbs from './index.vue'
2
- export * as rBreadcrumbItem from './bredcrumbItem.vue'
3
- export * as l_icon from '../icon/index.js'
@@ -1,71 +0,0 @@
1
- <template>
2
- <transition name="slide-up">
3
- <ul :class="classes" v-if="genItems.length>0">
4
- <li
5
- :key="key"
6
- v-for="(item,key) in genItems">
7
-
8
- <r-breadcrumb-item :href="item.href"
9
- :item="item"
10
- :to="item.to"
11
- @click.prevent="go(item)"></r-breadcrumb-item>
12
- </li>
13
- </ul>
14
- </transition>
15
- </template>
16
-
17
- <script>
18
- import './style.scss'
19
-
20
- export default {
21
- name: 'r-breadcrumbs',
22
- props: {
23
- sheet: {
24
- type: Boolean,
25
- default: true
26
- },
27
- divider: {
28
- type: String
29
- },
30
- items: {
31
- type: Array,
32
- default: () => []
33
- }
34
- },
35
- emits:['click'],
36
- computed: {
37
- classes() {
38
- let a = {}
39
- a[`breadcrumbs-sheet`] = this.sheet
40
- a[`${this.$r.prefix}breadcrumbs`] = true
41
- return a
42
- },
43
- genItems () {
44
- const lists = []
45
- const lng=this.items.length
46
- for (let i = 0; i < lng; i++) {
47
- if (i !== 0) {
48
- lists.push({ name: this.divider||this.$r.icons.chevron_right, type: 'divider' })
49
- }
50
- let c = {}
51
- c = this.items[i]
52
- c.type = 'item'
53
-
54
- if (i === (this.items.length - 1)) {
55
- c.disabled = true
56
- } else {
57
- c.disabled = false
58
- }
59
- lists.push(c)
60
- }
61
-
62
- return lists
63
- }
64
- },
65
- methods: {
66
- go (key) {
67
- this.$emit('click', key)
68
- }
69
- }
70
- }
71
- </script>
@@ -1,51 +0,0 @@
1
- @use "../../style/variables/base";
2
- @use "../../style/mixins/container" as mixins;
3
-
4
- .#{base.$prefix}breadcrumbs {
5
- align-items: center;
6
- display: flex;
7
- flex-wrap: wrap;
8
- flex: 0 1 auto;
9
- list-style-type: none;
10
- margin: 0 !important;
11
- padding: 0 14px;
12
-
13
- &.breadcrumbs-sheet {
14
- background-color: var(--color-sheet-container);
15
- color: var(--color-on-sheet);
16
- }
17
-
18
- .breadcrumb-divider, .breadcrumb-item-disabled, .#{base.$prefix}icon {
19
- color: var(--color-border)
20
- }
21
-
22
-
23
- li {
24
- align-items: center;
25
- display: inline-flex;
26
- font-size: 1rem;
27
-
28
- &:nth-child(even) {
29
- padding: 0 12px
30
- }
31
-
32
- @include mixins.media-breakpoint-down('md') {
33
- &:nth-child(even) {
34
- padding: 0 4px
35
- }
36
- }
37
-
38
- }
39
-
40
- .breadcrumb-item {
41
- align-items: center;
42
- display: inline-flex;
43
- text-decoration: none;
44
- transition: 0.3s base.$primary-transition;
45
- cursor: pointer;
46
-
47
- &-disabled {
48
- pointer-events: none
49
- }
50
- }
51
- }