@qikdev/vue-ui 0.1.2 → 0.1.6

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 (92) hide show
  1. package/README.md +4 -89
  2. package/dist/favicon.ico +0 -0
  3. package/dist/index.css +1 -0
  4. package/dist/lib.es.js +17781 -0
  5. package/dist/lib.es.js.map +1 -0
  6. package/dist/lib.umd.js +9 -0
  7. package/dist/lib.umd.js.map +1 -0
  8. package/package.json +31 -24
  9. package/.gitlab-ci.yml +0 -13
  10. package/jsdoc.conf +0 -10
  11. package/src/components.js +0 -255
  12. package/src/content/browser.vue +0 -842
  13. package/src/content/item.vue +0 -48
  14. package/src/content/render/field.vue +0 -431
  15. package/src/content/render/group.vue +0 -65
  16. package/src/content/render/render-mixin.js +0 -101
  17. package/src/content/render/render.vue +0 -86
  18. package/src/filter/FilterBuilder.vue +0 -145
  19. package/src/filter/FilterCondition.vue +0 -373
  20. package/src/filter/FilterRule.vue +0 -259
  21. package/src/form/expressions/index.js +0 -83
  22. package/src/form/field.vue +0 -640
  23. package/src/form/form.vue +0 -280
  24. package/src/form/getDefaultValue.js +0 -226
  25. package/src/form/inputs/button-select.vue +0 -208
  26. package/src/form/inputs/checkbox.vue +0 -91
  27. package/src/form/inputs/content-select.vue +0 -187
  28. package/src/form/inputs/currency.vue +0 -205
  29. package/src/form/inputs/datefield.vue +0 -132
  30. package/src/form/inputs/group.vue +0 -155
  31. package/src/form/inputs/html.vue +0 -39
  32. package/src/form/inputs/input-mixin.js +0 -440
  33. package/src/form/inputs/native-select-old.vue +0 -43
  34. package/src/form/inputs/object-field.vue +0 -50
  35. package/src/form/inputs/option.vue +0 -19
  36. package/src/form/inputs/options-manager.vue +0 -244
  37. package/src/form/inputs/phone-number-input.vue +0 -235
  38. package/src/form/inputs/search.vue +0 -117
  39. package/src/form/inputs/select.vue +0 -229
  40. package/src/form/inputs/switch.vue +0 -87
  41. package/src/form/inputs/textarea.vue +0 -80
  42. package/src/form/inputs/textfield.vue +0 -185
  43. package/src/form/inputs/timezone.vue +0 -642
  44. package/src/form/inputs/type-select.vue +0 -247
  45. package/src/form/inputs/upload/filedrop.vue +0 -72
  46. package/src/form/inputs/upload/upload.vue +0 -323
  47. package/src/form/parseBoolean.js +0 -24
  48. package/src/layout/flex-body.vue +0 -23
  49. package/src/layout/flex-cell.vue +0 -45
  50. package/src/layout/flex-column.vue +0 -31
  51. package/src/layout/flex-footer.vue +0 -14
  52. package/src/layout/flex-header.vue +0 -14
  53. package/src/layout/flex-row.vue +0 -39
  54. package/src/layout/flex-spacer.vue +0 -18
  55. package/src/layout/panel-body.vue +0 -13
  56. package/src/layout/panel-footer.vue +0 -20
  57. package/src/layout/panel-header.vue +0 -20
  58. package/src/layout/panel.vue +0 -23
  59. package/src/layout/tab.vue +0 -34
  60. package/src/layout/tabset.vue +0 -72
  61. package/src/mixins/RememberScroll.js +0 -30
  62. package/src/modal/ConfirmModal.vue +0 -50
  63. package/src/modal/ContentModal.vue +0 -107
  64. package/src/modal/Modal.vue +0 -86
  65. package/src/modal/ModalMixin.js +0 -21
  66. package/src/modal/OptionsModal.vue +0 -31
  67. package/src/modal/PromptModal.vue +0 -31
  68. package/src/services/device.js +0 -211
  69. package/src/services/selection.js +0 -165
  70. package/src/table/Table.vue +0 -316
  71. package/src/table/TableCell.vue +0 -113
  72. package/src/table/TableRow.vue +0 -82
  73. package/src/table/cells/Button.vue +0 -56
  74. package/src/table/cells/TableCellMixin.js +0 -15
  75. package/src/table/cells/Thumbnail.vue +0 -39
  76. package/src/table/cells/Value.vue +0 -46
  77. package/src/ui/button.vue +0 -255
  78. package/src/ui/checkbox.vue +0 -79
  79. package/src/ui/icon.vue +0 -57
  80. package/src/ui/image.vue +0 -158
  81. package/src/ui/link.vue +0 -62
  82. package/src/ui/list-item.vue +0 -22
  83. package/src/ui/list.vue +0 -26
  84. package/src/ui/menu.vue +0 -147
  85. package/src/ui/pager.vue +0 -156
  86. package/src/ui/progressbar.vue +0 -77
  87. package/src/ui/spinner.vue +0 -26
  88. package/src/ui/switch.vue +0 -89
  89. package/src/version.js +0 -1
  90. package/test/index.spec.js +0 -42
  91. package/test/mocha.opts +0 -0
  92. package/yarn-error.log +0 -2923
package/src/ui/menu.vue DELETED
@@ -1,147 +0,0 @@
1
- <template>
2
- <div class="ux-menu" :class="{right}">
3
- <span>
4
- <slot name="activator" :on="on" />
5
- </span>
6
- <div class="ux-menu-panel" ref="menu" v-if="expanded" :style="contentStyle">
7
- <slot />
8
- </div>
9
- </div>
10
- </template>
11
- <script>
12
- export default {
13
- props: {
14
- right:{
15
- type:Boolean,
16
- default:false,
17
- },
18
- closeOnClick: {
19
- type: Boolean,
20
- default () {
21
- return true;
22
- }
23
- }
24
- },
25
- data() {
26
- return {
27
- contentStyle: {},
28
- collapsed: true,
29
- triggerEvent: null,
30
- refMenu: null,
31
- mounted: false,
32
- }
33
- },
34
- mounted() {
35
- this.refMenu = this.$refs.menu;
36
- this.mounted = true;
37
- },
38
- beforeUnmount() {
39
- this.removeListeners();
40
- this.refMenu = null;
41
- this.mounted = false;
42
- },
43
- methods: {
44
- removeListeners() {
45
- document.removeEventListener('click', this.globalClick);
46
- if (this.refMenu) {
47
- this.refMenu.removeEventListener('click', this.immediateClick);
48
- }
49
- },
50
- addEventListeners() {
51
- document.addEventListener('click', this.globalClick);
52
- if (this.refMenu) {
53
- this.refMenu.addEventListener('click', this.immediateClick);
54
- }
55
- },
56
- immediateClick(event) {
57
- if (this.expanded) {
58
- if (this.closeOnClick) {
59
- event.stopImmediatePropagation();
60
- this.expanded = false;
61
-
62
- }
63
- }
64
- },
65
- globalClick(event) {
66
-
67
- if (this.triggerEvent === event) {
68
- return;
69
- }
70
-
71
- var parentElement = this.$refs.menu;
72
- var childElement = event.srcElement;
73
-
74
- if (parentElement.contains(childElement)) {
75
- //Do nothing
76
- if (this.closeOnClick) {
77
- this.expanded = false;
78
- // event.stopImmediatePropagation();
79
- }
80
- } else {
81
- this.expanded = false;
82
- }
83
- },
84
- position() {
85
- const rect = this.$el.getBoundingClientRect();
86
-
87
- var parentPosition = {
88
- left: rect.left + window.scrollX,
89
- top: rect.top + window.scrollY
90
- }
91
-
92
- this.contentStyle.left = parentPosition.left;
93
- this.contentStyle.top = parentPosition.top;
94
-
95
- },
96
- },
97
- computed: {
98
- expanded: {
99
- get() {
100
- return !this.collapsed;
101
- },
102
- set(v) {
103
- this.collapsed = !v;
104
-
105
- if (this.collapsed) {
106
- this.removeListeners();
107
- } else {
108
- this.position();
109
- this.addEventListeners();
110
-
111
- }
112
- }
113
- },
114
- on() {
115
-
116
- var self = this;
117
-
118
- return {
119
- click(event) {
120
- self.triggerEvent = event;
121
- self.expanded = !self.expanded;
122
- }
123
- }
124
- }
125
- }
126
- }
127
- </script>
128
- <style lang="scss" scoped>
129
- .ux-menu {
130
- position: relative;
131
-
132
- .ux-menu-panel {
133
- position: fixed;
134
- z-index: 10;
135
- max-height: 70vh;
136
- overflow: auto;
137
- text-align: left;
138
- text-transform: none;
139
- letter-spacing: 0;
140
- font-weight: normal;
141
- }
142
-
143
- &.right .ux-menu-panel{
144
- right:0;
145
- }
146
- }
147
- </style>
package/src/ui/pager.vue DELETED
@@ -1,156 +0,0 @@
1
- <template>
2
- <flex-row center gap>
3
- <flex-cell shrink class="text">
4
- <native-select v-model="perPage" :field="perPageField">
5
- <template v-if="$device.breakpoint.xs">{{displayStartIndex}}-{{endIndex}} of {{total}}</template>
6
- <template v-else>Showing {{displayStartIndex}} to {{endIndex}} of {{total}} total</template>
7
- </native-select>
8
- </flex-cell>
9
- <flex-cell>
10
- </flex-cell>
11
- <flex-cell shrink v-if="totalPages > 1">
12
- <flex-row gap center>
13
- <flex-cell shrink class="text">
14
- <native-select v-model="currentPage" :field="pageField">
15
- <template v-if="$device.breakpoint.xs">{{currentPage}}/{{totalPages}}</template>
16
- <template v-else>Page {{currentPage}} of {{totalPages}}</template>
17
- </native-select>
18
- </flex-cell>
19
- <flex-cell shrink>
20
- <ux-button icon @click="previousPage()">
21
- <ux-icon icon="fa-arrow-left" />
22
- </ux-button>
23
- </flex-cell>
24
- <flex-cell shrink>
25
- <ux-button icon @click="nextPage()">
26
- <ux-icon icon="fa-arrow-right" />
27
- </ux-button>
28
- </flex-cell>
29
- </flex-row>
30
- </flex-cell>
31
- </flex-row>
32
- </template>
33
- <script>
34
- import NativeSelect from '../form/inputs/select.vue';
35
-
36
-
37
- export default {
38
- props: {
39
- total: {
40
- type: Number,
41
- default () {
42
- return 0;
43
- }
44
- },
45
- },
46
- components: {
47
- NativeSelect,
48
- },
49
- watch: {
50
- totalPages() {
51
- this.currentPage = 0;
52
- },
53
- },
54
- computed: {
55
- perPage: {
56
- get() {
57
- return this.page.size;
58
- },
59
- set(i) {
60
- i = Math.max(i, 1);
61
- this.page.size = i;
62
- this.dispatch();
63
- }
64
-
65
- },
66
- pageField() {
67
- return {
68
- type: 'integer',
69
- maximum: 1,
70
- minimum: 1,
71
- options: Array(this.totalPages).fill(1).map((x, y) => x + y),
72
- }
73
- },
74
- // total() {
75
- // return this.dataSource.total;
76
- // },
77
- totalPages() {
78
- return Math.ceil(this.total / this.perPage)
79
- },
80
- startIndex() {
81
- return (this.currentPage - 1) * this.page.size;
82
- },
83
- displayStartIndex() {
84
- return this.total ? this.startIndex + 1 : 0;
85
- },
86
- endIndex() {
87
- return Math.min(this.startIndex + this.page.size, this.total);
88
- },
89
- currentPage: {
90
- get() {
91
- return this.page.index;
92
- },
93
- set(index) {
94
-
95
-
96
- if (this.totalPages) {
97
- index = Math.min(this.totalPages, index);
98
- }
99
-
100
- index = Math.max(index, 1);
101
-
102
- this.page.index = index;
103
- this.dispatch();
104
- }
105
- },
106
-
107
- },
108
- methods: {
109
- dispatch() {
110
- return this.$emit('update:page', this.page);
111
- },
112
- previousPage() {
113
- this.currentPage--;
114
- },
115
- nextPage() {
116
- this.currentPage++;
117
- },
118
- },
119
- data() {
120
- return {
121
- page: {
122
- size: 50,
123
- index: 1,
124
- },
125
- perPageField: {
126
- minimum: 1,
127
- maximum: 1,
128
- options: [{
129
- title: '50 per page',
130
- value: 50,
131
- },
132
- {
133
- title: '100 per page',
134
- value: 100,
135
- },
136
- {
137
- title: '250 per page',
138
- value: 250,
139
- },
140
- {
141
- title: '500 per page',
142
- value: 500,
143
- },
144
- ]
145
- }
146
- }
147
- }
148
- }
149
- </script>
150
- <style lang="scss" scoped>
151
-
152
- .text {
153
- opacity: 0.5;
154
- font-size: 0.8em;
155
- }
156
- </style>
@@ -1,77 +0,0 @@
1
- <template>
2
- <div class="ux-progress">
3
- <div class="ux-progress-bg" />
4
- <div class="ux-progress-fg" :style="barStyle" />
5
- </div>
6
- </template>
7
- <script>
8
- export default {
9
- props: {
10
- value: {
11
- type: Number
12
- }
13
- },
14
- computed: {
15
- classes() {
16
-
17
- var array = [];
18
-
19
- array.push(this.icon);
20
-
21
- if (this.spin) {
22
- array.push(`fa-spin`);
23
- }
24
-
25
- if (this.left) {
26
- array.push('ux-icon-left')
27
- }
28
- if (this.right) {
29
- array.push('ux-icon-right')
30
- }
31
- return array;
32
- },
33
- percent() {
34
- return this.value;
35
- },
36
- barStyle() {
37
- return {
38
- width: `${this.percent}%`,
39
- }
40
- },
41
- element() {
42
- return 'i'
43
- },
44
- },
45
- }
46
- </script>
47
- <style lang="scss" scoped>
48
- .ux-progress {
49
- margin: 1em 0;
50
- position: relative;
51
- height: 1em;
52
- }
53
-
54
- .ux-progress-bg {
55
- position: absolute;
56
- top: 0;
57
- left: 0;
58
- bottom: 0;
59
- right: 0;
60
- height: 100%;
61
- width: 100%;
62
- background: rgba(#000, 0.03);
63
- border-radius: 0.5em;
64
- box-shadow: inset 0px 0.3em 0.3em rgba(#000, 0.1);
65
- }
66
-
67
- .ux-progress-fg {
68
- background: $primary;
69
- position: absolute;
70
- top: 0;
71
- left: 0;
72
- bottom: 0;
73
- height: 100%;
74
- border-radius: 0.5em;
75
- opacity: 1;
76
- }
77
- </style>
@@ -1,26 +0,0 @@
1
- <template>
2
- <div class="ux-spinner" :class="{large:large}"><i class="fa fa-spin fa-spinner"/></div>
3
- </template>
4
- <script>
5
-
6
- export default {
7
- props:{
8
- large:{
9
- type:Boolean,
10
- }
11
- }
12
- }
13
- </script>
14
- <style lang="scss" scoped>
15
-
16
- .ux-spinner {
17
- &.large {
18
- position:absolute;
19
- left:50%;
20
- top:50%;
21
- transform: translate3d(-50%, -50%, 0);
22
- font-size: clamp(50px, 10vw, 500px);
23
- opacity: 0.5;;
24
- }
25
- }
26
- </style>
package/src/ui/switch.vue DELETED
@@ -1,89 +0,0 @@
1
- <template>
2
- <button class="ux-switch" :class="classes">
3
- </button>
4
- </template>
5
- <script>
6
- export default {
7
- props: {
8
- value: {
9
- type: Boolean,
10
- default () {
11
- return false;
12
- }
13
- },
14
- },
15
- computed: {
16
- classes() {
17
- var array = [];
18
- if (this.value) {
19
- array.push(`ux-switch-true`);
20
- } else {
21
- array.push(`ux-switch-false`);
22
- }
23
- return array;
24
- },
25
- },
26
- }
27
- </script>
28
- <style lang="scss" scoped>
29
- .ux-switch {
30
-
31
- $size: 1.8em;
32
- border-radius: 1em;
33
- display: inline-block;
34
- position: relative;
35
- cursor: pointer;
36
- overflow: hidden;
37
- border: 1px solid rgba(#000, 0.1);
38
- height: 0;
39
- width: $size;
40
- padding: 0 $size $size;
41
- text-align: center;
42
- line-height: 2em;
43
- appearance: none;
44
- font-size: inherit;
45
- background: rgba(#000, 0.05);
46
- box-sizing: border-box;
47
- box-shadow: inset 0.1em 0.1em 0.3em rgba(#000, 0.2);
48
- vertical-align: top;
49
-
50
-
51
- &:after {
52
- content: '';
53
- display: block;
54
- background: #fff;
55
- height: 100%;
56
- width: 50%;
57
- top: 0;
58
- left: 0;
59
- bottom: 0;
60
- right: 0;
61
- position: absolute;
62
- border-radius: 1em;
63
- border: 1px solid rgba(#000, 0.3);
64
- box-sizing: border-box;
65
- box-shadow: 0 0 2em rgba(#000, 0.3);
66
- transition: transform 0.3s;
67
- transform: scale(0.8);
68
- }
69
-
70
- &:hover {
71
- border: 1px solid $primary;
72
-
73
- &:after {
74
- transform: scale(1);
75
- }
76
- }
77
-
78
- &.ux-switch-true {
79
- background: $primary;
80
- // border-color: #fff;
81
-
82
- &:after {
83
- transform: translateX(100%);
84
- }
85
- }
86
-
87
-
88
- }
89
- </style>
package/src/version.js DELETED
@@ -1 +0,0 @@
1
- export const version = '0.1.2'
@@ -1,42 +0,0 @@
1
- // // /* global describe, it, before */
2
-
3
- // import chai from 'chai';
4
- // import QikUI from '../src/index.js';
5
-
6
-
7
- // var qik = new Qik();
8
-
9
- // var {data} = await qik.api.get(`/version`);
10
-
11
-
12
-
13
- // console.log('WHAT IS IT', qik)
14
-
15
-
16
- // chai.expect();
17
-
18
- // const expect = chai.expect;
19
-
20
- // let qik;
21
-
22
- // describe('Load Qik Core', () => {
23
- // before(() => {
24
- // qik = new QikCore();
25
- // });
26
- // describe('When i try and start Qik', () => {
27
- // it('It should return a Qik instance', () => {
28
- // expect(qik.auth);//.to.be.equal('Cat');
29
- // });
30
- // });
31
- // });
32
-
33
- // // describe('Given an instance of my Dog library', () => {
34
- // // before(() => {
35
- // // lib = new Dog();
36
- // // });
37
- // // describe('when I need the name', () => {
38
- // // it('should return the name', () => {
39
- // // expect(lib.name).to.be.equal('Dog');
40
- // // });
41
- // // });
42
- // // });
package/test/mocha.opts DELETED
File without changes