toggle-components-library 1.10.1
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.
- package/README.md +24 -0
- package/babel.config.js +5 -0
- package/dist/demo.html +10 -0
- package/dist/img/add_circle.7c6b29c6.svg +29 -0
- package/dist/img/arrow-left-blue-hover.5b0a1e54.svg +32 -0
- package/dist/img/arrow-left-blue.1e5404dd.svg +32 -0
- package/dist/img/arrow-right-blue-hover.b800a882.svg +32 -0
- package/dist/img/arrow-right-blue.fbc83729.svg +32 -0
- package/dist/img/arrow_down.787e1a8b.svg +28 -0
- package/dist/img/calendar.16f176cd.svg +37 -0
- package/dist/img/card.e1735960.svg +9 -0
- package/dist/img/checkbox_blank.907b325c.svg +6 -0
- package/dist/img/checkbox_checked.3e2d399f.svg +9 -0
- package/dist/img/checkbox_hover.e99ab40c.svg +3 -0
- package/dist/img/checkbox_inactive.b94b6c81.svg +9 -0
- package/dist/img/circle_blank.ab1622db.svg +24 -0
- package/dist/img/clipboard.e483ded3.svg +12 -0
- package/dist/img/delete-grey.cf15dcd1.svg +29 -0
- package/dist/img/delete.ee71bb54.svg +29 -0
- package/dist/img/drag_drop.0c778868.svg +14 -0
- package/dist/img/draggable.7493006c.svg +1 -0
- package/dist/img/edit_circle.4f3826d3.svg +34 -0
- package/dist/img/edit_circle_grey.0c96938c.svg +34 -0
- package/dist/img/email.078e944d.svg +7 -0
- package/dist/img/file.f4fb9e5d.svg +9 -0
- package/dist/img/graph.7f2e3985.svg +16 -0
- package/dist/img/grey_cross.2ac5fda1.svg +15 -0
- package/dist/img/info.4b233da4.svg +29 -0
- package/dist/img/megaphone.73161a8a.svg +19 -0
- package/dist/img/orders.51f8963f.svg +29 -0
- package/dist/img/search.db8f673f.svg +25 -0
- package/dist/img/tick-grey.b6d7b16c.svg +12 -0
- package/dist/img/tick.97f35963.svg +12 -0
- package/dist/img/tick_circle.417fd97d.svg +28 -0
- package/dist/img/tick_circle_grey.92b7e747.svg +32 -0
- package/dist/img/upload.9b0f1f1c.svg +30 -0
- package/dist/toggle-components-library.common.js +17714 -0
- package/dist/toggle-components-library.common.js.map +1 -0
- package/dist/toggle-components-library.css +1 -0
- package/dist/toggle-components-library.umd.js +17724 -0
- package/dist/toggle-components-library.umd.js.map +1 -0
- package/dist/toggle-components-library.umd.min.js +9 -0
- package/dist/toggle-components-library.umd.min.js.map +1 -0
- package/package-lock.json +20271 -0
- package/package.json +78 -0
- package/public/favicon.ico +0 -0
- package/public/index.html +17 -0
- package/src/assets/ProximaNova-Regular.otf +0 -0
- package/src/assets/icons/add_circle.svg +29 -0
- package/src/assets/icons/arrow-left-blue-hover.svg +32 -0
- package/src/assets/icons/arrow-left-blue.svg +32 -0
- package/src/assets/icons/arrow-right-blue-hover.svg +32 -0
- package/src/assets/icons/arrow-right-blue.svg +32 -0
- package/src/assets/icons/arrow_down.svg +28 -0
- package/src/assets/icons/calendar.svg +37 -0
- package/src/assets/icons/card.svg +9 -0
- package/src/assets/icons/checkbox_blank.svg +6 -0
- package/src/assets/icons/checkbox_checked.svg +9 -0
- package/src/assets/icons/checkbox_hover.svg +3 -0
- package/src/assets/icons/checkbox_inactive.svg +9 -0
- package/src/assets/icons/circle_blank.svg +24 -0
- package/src/assets/icons/clipboard.svg +12 -0
- package/src/assets/icons/delete-grey.svg +29 -0
- package/src/assets/icons/delete.svg +29 -0
- package/src/assets/icons/drag.svg +15 -0
- package/src/assets/icons/drag_drop.svg +14 -0
- package/src/assets/icons/draggable.svg +1 -0
- package/src/assets/icons/draggable.textClipping +0 -0
- package/src/assets/icons/edit_circle.svg +34 -0
- package/src/assets/icons/edit_circle_grey.svg +34 -0
- package/src/assets/icons/email.svg +7 -0
- package/src/assets/icons/file.svg +9 -0
- package/src/assets/icons/graph.svg +16 -0
- package/src/assets/icons/grey_cross.svg +15 -0
- package/src/assets/icons/info.svg +29 -0
- package/src/assets/icons/megaphone.svg +19 -0
- package/src/assets/icons/orders.svg +29 -0
- package/src/assets/icons/search.svg +25 -0
- package/src/assets/icons/tick-grey.svg +12 -0
- package/src/assets/icons/tick.svg +12 -0
- package/src/assets/icons/tick_circle.svg +28 -0
- package/src/assets/icons/tick_circle_grey.svg +32 -0
- package/src/assets/icons/upload.svg +30 -0
- package/src/assets/img/airship.svg +42 -0
- package/src/assets/img/toggle.svg +1 -0
- package/src/assets/logo.png +0 -0
- package/src/components/badges/ToggleBadge.vue +23 -0
- package/src/components/breadcrumb/ToggleBreadCrumb.vue +43 -0
- package/src/components/buttons/ToggleButton.vue +88 -0
- package/src/components/buttons/ToggleFeatureButton.vue +68 -0
- package/src/components/elements/ToggleLineBreak.vue +9 -0
- package/src/components/forms/ToggleColourPicker.vue +192 -0
- package/src/components/forms/ToggleDatePicker.vue +168 -0
- package/src/components/forms/ToggleDateRangePicker.vue +208 -0
- package/src/components/forms/ToggleInputCheckbox.vue +74 -0
- package/src/components/forms/ToggleInputCheckboxContainer.vue +65 -0
- package/src/components/forms/ToggleInputCheckboxInline.vue +74 -0
- package/src/components/forms/ToggleInputCrudField.vue +95 -0
- package/src/components/forms/ToggleInputCurrency.vue +198 -0
- package/src/components/forms/ToggleInputFile.vue +101 -0
- package/src/components/forms/ToggleInputGrid.vue +409 -0
- package/src/components/forms/ToggleInputGroup.vue +48 -0
- package/src/components/forms/ToggleInputImage.vue +168 -0
- package/src/components/forms/ToggleInputNumber.vue +164 -0
- package/src/components/forms/ToggleInputPercentage.vue +142 -0
- package/src/components/forms/ToggleInputRadioButtonGroup.vue +81 -0
- package/src/components/forms/ToggleInputRadioButtons.vue +136 -0
- package/src/components/forms/ToggleInputSearch.vue +235 -0
- package/src/components/forms/ToggleInputSelect.vue +109 -0
- package/src/components/forms/ToggleInputText.vue +130 -0
- package/src/components/forms/ToggleInputTextArea.vue +123 -0
- package/src/components/forms/ToggleInputWebsite.vue +163 -0
- package/src/components/forms/ToggleInternationalPhoneInputSelect.vue +166 -0
- package/src/components/loaders/ToggleFillLoader.vue +34 -0
- package/src/components/mixins/mixins.js +48 -0
- package/src/components/modals/ToggleModal.vue +83 -0
- package/src/components/navs/sidenav/ToggleSideNav.vue +45 -0
- package/src/components/navs/sidenav/ToggleSideNavItem.vue +32 -0
- package/src/components/navs/sidenav/ToggleSideSubNav.vue +24 -0
- package/src/components/notifications/ToggleNotifications.vue +93 -0
- package/src/components/tables/TogglePagination.vue +114 -0
- package/src/components/tables/ToggleTable.vue +178 -0
- package/src/components/tables/ToggleTableColumn.vue +3 -0
- package/src/components/tables/ToggleTableRow.vue +5 -0
- package/src/components/text/ToggleHeaderTextLarge.vue +3 -0
- package/src/components/text/ToggleHelperTextSmall.vue +3 -0
- package/src/components/text/ToggleInfoText.vue +3 -0
- package/src/components/text/ToggleTextClipboardCopy.vue +51 -0
- package/src/index.js +105 -0
- package/src/sass/includes/_as_animations.scss +8 -0
- package/src/sass/includes/_as_badges.scss +27 -0
- package/src/sass/includes/_as_breadcrumb.scss +39 -0
- package/src/sass/includes/_as_buttons.scss +235 -0
- package/src/sass/includes/_as_elements.scss +3 -0
- package/src/sass/includes/_as_fonts.scss +12 -0
- package/src/sass/includes/_as_globals.scss +1 -0
- package/src/sass/includes/_as_gridbuilder.scss +136 -0
- package/src/sass/includes/_as_inputs.scss +900 -0
- package/src/sass/includes/_as_loader.scss +37 -0
- package/src/sass/includes/_as_loaders.scss +41 -0
- package/src/sass/includes/_as_modals.scss +83 -0
- package/src/sass/includes/_as_navs.scss +120 -0
- package/src/sass/includes/_as_notifications.scss +30 -0
- package/src/sass/includes/_as_sizes.scss +4 -0
- package/src/sass/includes/_as_table.scss +276 -0
- package/src/sass/includes/_as_text.scss +73 -0
- package/src/sass/includes/_as_variables.scss +49 -0
- package/src/sass/main.scss +20 -0
- package/vue.config.js +8 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
<div class="toggle-pagination">
|
|
4
|
+
|
|
5
|
+
<ul>
|
|
6
|
+
|
|
7
|
+
<li>
|
|
8
|
+
<button
|
|
9
|
+
:disabled="pageNumber === 1"
|
|
10
|
+
@click="pageNumber--"
|
|
11
|
+
class="toggle-pagination-prev">
|
|
12
|
+
Previous
|
|
13
|
+
</button>
|
|
14
|
+
</li>
|
|
15
|
+
<li v-for="(i, index) in pagiPages" :key="index">
|
|
16
|
+
<button
|
|
17
|
+
:disabled="pageNumber == i"
|
|
18
|
+
@click="pageNumber = i" >
|
|
19
|
+
{{i}}
|
|
20
|
+
</button>
|
|
21
|
+
<span v-if="(i != pagiPages[pagiPages.indexOf(i)+1]-1) && (i != pagiPages[pagiPages.length-1])">...</span>
|
|
22
|
+
</li>
|
|
23
|
+
<li>
|
|
24
|
+
<button
|
|
25
|
+
:disabled="value >= pageCount"
|
|
26
|
+
@click="pageNumber++"
|
|
27
|
+
class="toggle-pagination-next">
|
|
28
|
+
Next
|
|
29
|
+
</button>
|
|
30
|
+
</li>
|
|
31
|
+
</ul>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
</template>
|
|
35
|
+
|
|
36
|
+
<script>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
export default {
|
|
40
|
+
|
|
41
|
+
mixins:[],
|
|
42
|
+
props: [
|
|
43
|
+
'total',
|
|
44
|
+
'per_page',
|
|
45
|
+
'value'
|
|
46
|
+
],
|
|
47
|
+
|
|
48
|
+
data : function(){
|
|
49
|
+
return {
|
|
50
|
+
maxPaginationPages: 6, // number of pagination numbers on a page
|
|
51
|
+
};
|
|
52
|
+
},
|
|
53
|
+
computed: {
|
|
54
|
+
|
|
55
|
+
pageNumber:
|
|
56
|
+
{
|
|
57
|
+
get:function(){
|
|
58
|
+
return this.value;
|
|
59
|
+
},
|
|
60
|
+
set:function(newVal){
|
|
61
|
+
this.$emit('input', newVal)
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
/* Page Count
|
|
66
|
+
* Calculate how many pages the orders object have.
|
|
67
|
+
* @return number of pages
|
|
68
|
+
*/
|
|
69
|
+
pageCount(){
|
|
70
|
+
let l = this.total,
|
|
71
|
+
s = this.per_page;
|
|
72
|
+
return Math.ceil(l/s) ? Math.ceil(l/s) : 0;
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
/* returns the numbers shown in the validation
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
pagiPages(){
|
|
79
|
+
|
|
80
|
+
var startarray = [];
|
|
81
|
+
var endarray = [];
|
|
82
|
+
|
|
83
|
+
// show all pages
|
|
84
|
+
if(this.pageCount <= this.maxPaginationPages){
|
|
85
|
+
while(startarray.length < this.maxPaginationPages && startarray.length < this.pageCount)
|
|
86
|
+
startarray.push(startarray.length + 1);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
else{ // if there are too many pages, we need to remove some options
|
|
90
|
+
// create the first pages
|
|
91
|
+
while(startarray.length < (this.maxPaginationPages/2)-1)
|
|
92
|
+
startarray.push(startarray.length + 1);
|
|
93
|
+
|
|
94
|
+
// create the last pages
|
|
95
|
+
while((startarray.length+endarray.length)+1 <= this.maxPaginationPages)
|
|
96
|
+
endarray.push(this.pageCount-this.maxPaginationPages+1+(startarray.length+endarray.length));
|
|
97
|
+
|
|
98
|
+
// add the current page to the array, if it doesn't exist
|
|
99
|
+
if(!(startarray.includes(this.pageNumber) || endarray.includes(this.pageNumber) ))
|
|
100
|
+
startarray.push(this.pageNumber);
|
|
101
|
+
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// merge the two arrays into one
|
|
105
|
+
return startarray.concat(endarray);
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
</script>
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
|
|
3
|
+
<div>
|
|
4
|
+
|
|
5
|
+
<table class="toggle-table">
|
|
6
|
+
<thead :class="{'toggle-table-any-search-active': searchActive}">
|
|
7
|
+
<tr class="toggle-tablee-tr">
|
|
8
|
+
<th
|
|
9
|
+
scope="col"
|
|
10
|
+
:class="['toggle-table-th', {'toggle-table-search-active': tableSearchActive(field), 'toggle-table-searchable':field.filterable}]"
|
|
11
|
+
v-for="(field, index) in headers"
|
|
12
|
+
:key="index"
|
|
13
|
+
:style="'width:'+field.width"
|
|
14
|
+
@click="activateSearch(field)"
|
|
15
|
+
>
|
|
16
|
+
<div class="toggle-table-th-inner">
|
|
17
|
+
<span class="toggle-table-th-title">{{field.label}}</span>
|
|
18
|
+
<span class="toggle-table-close-search" v-on:click.stop @click="closeSearch(field)"></span>
|
|
19
|
+
<ToggleInputText type="text" :ref="field.key+'-input'" v-model="searchModels[field.key]" @input="searchChange(field)"
|
|
20
|
+
v-if="field.type == 'text' && (searchModels[field.key] || editingInput == field.key)" />
|
|
21
|
+
<ToggleInputSelect style="margin-top:2px;" size="small" v-if="field.type == 'select' && (searchModels[field.key] || editingInput == field.key)" :options="field.select_options" v-model="searchModels[field.key]" @input="val=>searchChange(val, field)"/>
|
|
22
|
+
|
|
23
|
+
<ToggleDateRangePicker v-if="field.type == 'date' && (searchModels[field.key].start || searchModels[field.key].end || editingInput == field.key)" name="date" v-model="searchModels[field.key]" @input="val=>searchChange(val, field)" />
|
|
24
|
+
</div>
|
|
25
|
+
</th>
|
|
26
|
+
|
|
27
|
+
</tr>
|
|
28
|
+
</thead>
|
|
29
|
+
<tbody v-if="!$slots.default || !$slots.default.length">
|
|
30
|
+
<ToggleTableRow v-for="(item, index) in items" :key="index" >
|
|
31
|
+
<ToggleTableColumn v-for="(column, column_index) in item" :key="column_index">{{column}}</ToggleTableColumn>
|
|
32
|
+
</ToggleTableRow>
|
|
33
|
+
</tbody>
|
|
34
|
+
<tbody v-if="$slots.default && $slots.default.length">
|
|
35
|
+
<slot></slot>
|
|
36
|
+
</tbody>
|
|
37
|
+
</table>
|
|
38
|
+
|
|
39
|
+
<TogglePagination v-if="total && per_page" :total="total" :per_page="per_page" v-model="pagenumber"></TogglePagination>
|
|
40
|
+
|
|
41
|
+
</div>
|
|
42
|
+
</template>
|
|
43
|
+
<script>
|
|
44
|
+
|
|
45
|
+
import { mixins } from '../mixins/mixins';
|
|
46
|
+
|
|
47
|
+
import ToggleDateRangePicker from '../forms/ToggleDateRangePicker.vue';
|
|
48
|
+
import ToggleInputText from '../forms/ToggleInputText.vue';
|
|
49
|
+
import ToggleInputSelect from '../forms/ToggleInputSelect.vue';
|
|
50
|
+
import ToggleTableRow from '../tables/ToggleTableRow.vue';
|
|
51
|
+
import ToggleTableColumn from '../tables/ToggleTableColumn.vue';
|
|
52
|
+
import TogglePagination from '../tables/TogglePagination.vue';
|
|
53
|
+
|
|
54
|
+
export default {
|
|
55
|
+
mixins:[mixins],
|
|
56
|
+
components:{ToggleDateRangePicker, ToggleInputText, ToggleInputSelect, ToggleTableColumn, ToggleTableRow, TogglePagination},
|
|
57
|
+
props: {
|
|
58
|
+
items: {
|
|
59
|
+
type: [Array]
|
|
60
|
+
},
|
|
61
|
+
fields: {
|
|
62
|
+
type: [Array]
|
|
63
|
+
},
|
|
64
|
+
total:{
|
|
65
|
+
type: [Number]
|
|
66
|
+
},
|
|
67
|
+
per_page:{
|
|
68
|
+
type: [Number]
|
|
69
|
+
},
|
|
70
|
+
page:{
|
|
71
|
+
type: [Number],
|
|
72
|
+
default:1
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
data : function(){
|
|
76
|
+
return {
|
|
77
|
+
editingInput:false,
|
|
78
|
+
searchModels:{}
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
computed: {
|
|
82
|
+
|
|
83
|
+
fieldsWithSearch()
|
|
84
|
+
{
|
|
85
|
+
return this.fields.map(field => Object.assign(field, {search_value: this.searchModels[field.key]}));
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
pagenumber:
|
|
89
|
+
{
|
|
90
|
+
get:function(){
|
|
91
|
+
return this.page;
|
|
92
|
+
},
|
|
93
|
+
set:function(newVal){
|
|
94
|
+
this.$emit('page_change', newVal)
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
headers() {
|
|
99
|
+
if(!this.fields){
|
|
100
|
+
return Object.keys(this.items[0]);
|
|
101
|
+
}
|
|
102
|
+
return this.fields;
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
searchActive() {
|
|
106
|
+
if(this.editingInput) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
for (let key in this.activeSearch) {
|
|
110
|
+
if(this.activeSearch[key])
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
return false;
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
},
|
|
118
|
+
created : function(){
|
|
119
|
+
|
|
120
|
+
if(this.fields){
|
|
121
|
+
for (let i = 0; i < this.fields.length; i++) {
|
|
122
|
+
let value = this.fields[i].type == 'date' ? { start: false, end: false} : '';
|
|
123
|
+
let field_name = this.fields[i].key;
|
|
124
|
+
this.$set( this.searchModels, field_name, value )
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
beforeDestroy: function () {
|
|
131
|
+
},
|
|
132
|
+
watch:{
|
|
133
|
+
|
|
134
|
+
},
|
|
135
|
+
mounted : function ()
|
|
136
|
+
{
|
|
137
|
+
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
methods:{
|
|
141
|
+
|
|
142
|
+
tableSearchActive(field)
|
|
143
|
+
{
|
|
144
|
+
if(field.type == 'date'){
|
|
145
|
+
return (this.searchModels[field.key].start || this.searchModels[field.key].end || this.editingInput == field.key);
|
|
146
|
+
}
|
|
147
|
+
return (this.searchModels[field.key] || this.editingInput == field.key);
|
|
148
|
+
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
closeSearch(field){
|
|
152
|
+
this.editingInput = false;
|
|
153
|
+
this.searchModels[field.key] = field.type == 'date' ? { start: false, end: false} : '' ;
|
|
154
|
+
this.searchChange();
|
|
155
|
+
},
|
|
156
|
+
|
|
157
|
+
searchChange(){
|
|
158
|
+
this.$emit('search', this.fieldsWithSearch);
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
/* activateSearch
|
|
162
|
+
* When a user clicks a searchable column name, show it as active, and focus the child input field (unless it's already active)
|
|
163
|
+
*/
|
|
164
|
+
activateSearch(field){
|
|
165
|
+
if(!field.filterable) return;
|
|
166
|
+
if(field.type === 'date'){
|
|
167
|
+
this.datePickerOpen = true;
|
|
168
|
+
}
|
|
169
|
+
this.editingInput = field.key;
|
|
170
|
+
//this.$nextTick(() => this.$refs[this.editingInput + '-input'].focus())
|
|
171
|
+
},
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
</script>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="toggle-copy-text">
|
|
3
|
+
<p @click="copyLink($refs.copyLink)"><label>{{copy}}</label><br v-if="copy"/>
|
|
4
|
+
<strong>
|
|
5
|
+
<a :style="{fontSize}" ref="copyLink">{{ link }}</a>
|
|
6
|
+
</strong>
|
|
7
|
+
<span class="product-link-icon"></span>
|
|
8
|
+
</p>
|
|
9
|
+
</div>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
export default {
|
|
14
|
+
name: 'ToggleTextClipboardCopy',
|
|
15
|
+
props: {
|
|
16
|
+
fontSize: {
|
|
17
|
+
type:String,
|
|
18
|
+
default:'15px'
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* For the text you would like to display
|
|
22
|
+
*/
|
|
23
|
+
copy: {
|
|
24
|
+
type: String,
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* The string used in link
|
|
28
|
+
*/
|
|
29
|
+
link: {
|
|
30
|
+
type: String,
|
|
31
|
+
required: true
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* The url for the link
|
|
35
|
+
*/
|
|
36
|
+
url: {
|
|
37
|
+
type: String,
|
|
38
|
+
required: true
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
methods:{
|
|
42
|
+
copyLink(el) {
|
|
43
|
+
let range = document.createRange();
|
|
44
|
+
range.selectNode(el);
|
|
45
|
+
window.getSelection().removeAllRanges();
|
|
46
|
+
window.getSelection().addRange(range);
|
|
47
|
+
document.execCommand("copy");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
</script>
|
package/src/index.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import Vue from "vue";
|
|
2
|
+
|
|
3
|
+
import ToggleInputText from "./components/forms/ToggleInputText.vue";
|
|
4
|
+
import ToggleInputWebsite from "./components/forms/ToggleInputWebsite.vue";
|
|
5
|
+
import ToggleDatePicker from "./components/forms/ToggleDatePicker.vue";
|
|
6
|
+
import ToggleDateRangePicker from "./components/forms/ToggleDateRangePicker.vue";
|
|
7
|
+
import ToggleInputSelect from "./components/forms/ToggleInputSelect.vue";
|
|
8
|
+
import ToggleInputPercentage from "./components/forms/ToggleInputPercentage.vue";
|
|
9
|
+
import ToggleInputCurrency from "./components/forms/ToggleInputCurrency.vue";
|
|
10
|
+
import ToggleInputRadioButtons from "./components/forms/ToggleInputRadioButtons.vue";
|
|
11
|
+
import ToggleInputTextArea from "./components/forms/ToggleInputTextArea.vue";
|
|
12
|
+
import ToggleInputCheckboxContainer from "./components/forms/ToggleInputCheckboxContainer.vue";
|
|
13
|
+
import ToggleInputCrudField from '@/components/forms/ToggleInputCrudField';
|
|
14
|
+
import ToggleInputGrid from '@/components/forms/ToggleInputGrid';
|
|
15
|
+
import ToggleInputCheckbox from "./components/forms/ToggleInputCheckbox.vue";
|
|
16
|
+
import ToggleInputCheckboxInline from "./components/forms/ToggleInputCheckboxInline.vue";
|
|
17
|
+
import ToggleInputImage from "./components/forms/ToggleInputImage.vue";
|
|
18
|
+
import ToggleInputFile from "./components/forms/ToggleInputFile.vue";
|
|
19
|
+
import ToggleInputGroup from "./components/forms/ToggleInputGroup.vue";
|
|
20
|
+
import ToggleInputNumber from "./components/forms/ToggleInputNumber.vue";
|
|
21
|
+
import ToggleColourPicker from "./components/forms/ToggleColourPicker.vue";
|
|
22
|
+
import ToggleModal from "./components/modals/ToggleModal.vue";
|
|
23
|
+
|
|
24
|
+
import ToggleInputSearch from "./components/forms/ToggleInputSearch.vue";
|
|
25
|
+
import ToggleInputRadioButtonGroup from "./components/forms/ToggleInputRadioButtonGroup.vue";
|
|
26
|
+
import ToggleButton from "./components/buttons/ToggleButton.vue";
|
|
27
|
+
import ToggleFillLoader from "./components/loaders/ToggleFillLoader.vue";
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
import ToggleTable from './components/tables/ToggleTable.vue';
|
|
31
|
+
import ToggleTableRow from './components/tables/ToggleTableRow.vue';
|
|
32
|
+
import ToggleTableColumn from './components/tables/ToggleTableColumn.vue';
|
|
33
|
+
import ToggleBadge from './components/badges/ToggleBadge.vue';
|
|
34
|
+
|
|
35
|
+
import ToggleBreadCrumb from './components/breadcrumb/ToggleBreadCrumb.vue';
|
|
36
|
+
import ToggleSideNavItem from './components/navs/sidenav/ToggleSideNavItem.vue';
|
|
37
|
+
import ToggleSideNav from './components/navs/sidenav/ToggleSideNav.vue';
|
|
38
|
+
import ToggleSideSubNav from './components/navs/sidenav/ToggleSideSubNav.vue';
|
|
39
|
+
|
|
40
|
+
import ToggleTextClipboardCopy from './components/text/ToggleTextClipboardCopy';
|
|
41
|
+
import ToggleLineBreak from './components/elements/ToggleLineBreak';
|
|
42
|
+
import ToggleNotifications from './components/notifications/ToggleNotifications';
|
|
43
|
+
|
|
44
|
+
import ToggleFeatureButton from './components/buttons/ToggleFeatureButton';
|
|
45
|
+
|
|
46
|
+
import ToggleHeaderTextLarge from "./components/text/ToggleHeaderTextLarge.vue";
|
|
47
|
+
import ToggleHelperTextSmall from "./components/text/ToggleHelperTextSmall.vue";
|
|
48
|
+
import ToggleInfoText from "./components/text/ToggleInfoText.vue";
|
|
49
|
+
|
|
50
|
+
import './sass/main.scss';
|
|
51
|
+
|
|
52
|
+
const Components = {
|
|
53
|
+
ToggleBreadCrumb,
|
|
54
|
+
ToggleTable,
|
|
55
|
+
ToggleTableRow,
|
|
56
|
+
ToggleBadge,
|
|
57
|
+
ToggleTableColumn,
|
|
58
|
+
ToggleInputText,
|
|
59
|
+
ToggleInputWebsite,
|
|
60
|
+
ToggleDatePicker,
|
|
61
|
+
ToggleDateRangePicker,
|
|
62
|
+
ToggleInputSelect,
|
|
63
|
+
ToggleInputPercentage,
|
|
64
|
+
ToggleInputCurrency,
|
|
65
|
+
ToggleInputRadioButtons,
|
|
66
|
+
ToggleInputTextArea,
|
|
67
|
+
ToggleInputCheckboxContainer,
|
|
68
|
+
ToggleInputCheckbox,
|
|
69
|
+
ToggleInputCheckboxInline,
|
|
70
|
+
ToggleFillLoader,
|
|
71
|
+
ToggleInputImage,
|
|
72
|
+
ToggleButton,
|
|
73
|
+
ToggleInputGroup,
|
|
74
|
+
ToggleHeaderTextLarge,
|
|
75
|
+
ToggleInputNumber,
|
|
76
|
+
ToggleColourPicker,
|
|
77
|
+
ToggleModal,
|
|
78
|
+
ToggleInputFile,
|
|
79
|
+
ToggleInputSearch,
|
|
80
|
+
ToggleInputRadioButtonGroup,
|
|
81
|
+
ToggleSideSubNav,
|
|
82
|
+
ToggleSideNav,
|
|
83
|
+
ToggleSideNavItem,
|
|
84
|
+
ToggleInputCrudField,
|
|
85
|
+
ToggleInputGrid,
|
|
86
|
+
ToggleLineBreak,
|
|
87
|
+
ToggleTextClipboardCopy,
|
|
88
|
+
ToggleNotifications,
|
|
89
|
+
ToggleFeatureButton,
|
|
90
|
+
ToggleHelperTextSmall,
|
|
91
|
+
ToggleInfoText
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
Object.keys(Components).forEach(name => {
|
|
95
|
+
Vue.component(name, Components[name]);
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
var toggle_event_bus = new Vue();
|
|
99
|
+
Object.defineProperty(Vue.prototype, '$toggle_event', {
|
|
100
|
+
get() {
|
|
101
|
+
return toggle_event_bus;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
export default Components;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// loading
|
|
2
|
+
.toggle-badge {
|
|
3
|
+
@include toggle-global-font-config;
|
|
4
|
+
font-size: $toggle-font-size-small;
|
|
5
|
+
display: inline-block;
|
|
6
|
+
border-radius: 3px;
|
|
7
|
+
background-color: $toggle-button-neutral;
|
|
8
|
+
color: $toggle-white;
|
|
9
|
+
font-weight: bold;
|
|
10
|
+
padding: 0.2rem 0.6rem 0.2rem 0.6rem;
|
|
11
|
+
|
|
12
|
+
&.neutral{
|
|
13
|
+
background-color: $toggle-button-neutral;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&.abort{
|
|
17
|
+
background-color: $toggle-button-abort;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&.confirm{
|
|
21
|
+
background-color: $toggle-button-success;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&.inactive {
|
|
25
|
+
background-color: $toggle-button-disabled;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.toggle-breadcrumb {
|
|
2
|
+
|
|
3
|
+
@include toggle-global-font-config;
|
|
4
|
+
|
|
5
|
+
.toggle-breadcrumb-h1{
|
|
6
|
+
@include toggle-global-font-config;
|
|
7
|
+
font-family: "DIN-2014","Lato",sans-serif;
|
|
8
|
+
font-size: $toggle-font-size-extra-large;
|
|
9
|
+
color: $toggle-black;
|
|
10
|
+
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
a {
|
|
14
|
+
|
|
15
|
+
font-size: $toggle-font-size-extra-large;
|
|
16
|
+
font-family: "DIN-2014","Lato",sans-serif;
|
|
17
|
+
float: left;
|
|
18
|
+
color: $toggle-placeholder-grey;
|
|
19
|
+
position: relative;
|
|
20
|
+
z-index: 1;
|
|
21
|
+
&:hover {
|
|
22
|
+
filter: brightness(80%);
|
|
23
|
+
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
.toggle-breadcrumb-arrow-right {
|
|
30
|
+
border: solid #3180FF;
|
|
31
|
+
border-width: 0 2px 2px 0;
|
|
32
|
+
display: inline-block;
|
|
33
|
+
padding: 2px;
|
|
34
|
+
margin: 12px 19px;
|
|
35
|
+
float: left;
|
|
36
|
+
transform: rotate(-45deg);
|
|
37
|
+
-webkit-transform: rotate(-45deg);
|
|
38
|
+
}
|
|
39
|
+
}
|