@nixweb/nixloc-ui 0.0.127 → 0.0.128

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 (88) hide show
  1. package/package.json +79 -79
  2. package/src/App.vue +13 -13
  3. package/src/component/forms/Button.vue +170 -170
  4. package/src/component/forms/CheckboxGroup.vue +72 -66
  5. package/src/component/forms/CheckboxSimple.vue +46 -42
  6. package/src/component/forms/Color.vue +38 -38
  7. package/src/component/forms/DateTime.vue +167 -163
  8. package/src/component/forms/Dropdown.vue +218 -224
  9. package/src/component/forms/EditorHtml.vue +126 -126
  10. package/src/component/forms/FileUpload.vue +185 -185
  11. package/src/component/forms/ImageUpload.vue +12 -4
  12. package/src/component/forms/IncrementDecrement.vue +101 -0
  13. package/src/component/forms/InputDecimal.vue +142 -138
  14. package/src/component/forms/InputNumber.vue +154 -154
  15. package/src/component/forms/InputPassword.vue +135 -135
  16. package/src/component/forms/InputText.vue +162 -157
  17. package/src/component/forms/Modal.vue +65 -65
  18. package/src/component/forms/RadioGroup.vue +50 -50
  19. package/src/component/forms/Select.vue +349 -340
  20. package/src/component/forms/SelectStatic.vue +127 -127
  21. package/src/component/forms/Slider.vue +18 -18
  22. package/src/component/forms/TextArea.vue +126 -126
  23. package/src/component/layout/Alert.vue +92 -92
  24. package/src/component/layout/Badge.vue +103 -103
  25. package/src/component/layout/FixedBar.vue +100 -68
  26. package/src/component/layout/Header.vue +38 -35
  27. package/src/component/layout/LoadingFullPage.vue +27 -27
  28. package/src/component/layout/Menu.vue +210 -215
  29. package/src/component/layout/Molded.vue +28 -27
  30. package/src/component/layout/Panel.vue +140 -140
  31. package/src/component/layout/Popover.vue +126 -126
  32. package/src/component/layout/ScrollBar.vue +42 -42
  33. package/src/component/layout/Tab.vue +135 -0
  34. package/src/component/layout/Wizard.vue +211 -211
  35. package/src/component/rental/DisplayPeriodRent.vue +81 -0
  36. package/src/component/rental/DisplayTotalization.vue +47 -0
  37. package/src/component/shared/Collapse.vue +131 -131
  38. package/src/component/shared/DocumentPreview.vue +1 -1
  39. package/src/component/shared/DocumentPublic.vue +34 -0
  40. package/src/component/shared/ExportPDF.vue +116 -116
  41. package/src/component/shared/HeaderReport.vue +1 -1
  42. package/src/component/shared/HorizontalFilter.vue +59 -59
  43. package/src/component/shared/Loading.vue +107 -107
  44. package/src/component/shared/LoadingMoreButton.vue +23 -23
  45. package/src/component/shared/Messages.vue +81 -81
  46. package/src/component/shared/PDFViewer.vue +22 -22
  47. package/src/component/shared/Pagination.vue +52 -52
  48. package/src/component/shared/ProgressBar.vue +22 -22
  49. package/src/component/shared/QueryButton.vue +66 -66
  50. package/src/component/shared/{BodyReport.vue → Report.vue} +8 -7
  51. package/src/component/shared/SaveCancel.vue +6 -1
  52. package/src/component/shared/Search.vue +154 -154
  53. package/src/component/shared/SelectOption.vue +18 -9
  54. package/src/component/shared/Table.vue +163 -254
  55. package/src/component/shared/TableButton.vue +36 -36
  56. package/src/component/shared/TableDraggable.vue +127 -0
  57. package/src/component/shared/TableItem.vue +177 -0
  58. package/src/component/shared/TableTotalization.vue +47 -47
  59. package/src/component/shared/Tip.vue +42 -42
  60. package/src/component/shared/Toast.vue +54 -54
  61. package/src/component/shared/TotalizationReport.vue +59 -0
  62. package/src/component/shared/VerticalFilter.vue +97 -97
  63. package/src/component/shared/query-builder/AddRule.vue +181 -181
  64. package/src/component/shared/query-builder/ConvertToOdata.js +3 -9
  65. package/src/component/shared/query-builder/DynamicComponent.vue +5 -1
  66. package/src/component/shared/query-builder/DynamicComponentList.vue +73 -62
  67. package/src/component/shared/query-builder/QueryBuilder.vue +69 -69
  68. package/src/component/shared/query-builder/utilities.js +21 -21
  69. package/src/component/template/ListViewWithDataHandler.vue +260 -238
  70. package/src/component/template/ReportCreateUpdate.vue +9 -2
  71. package/src/component/template/ViewTemplateConfiguration.vue +64 -63
  72. package/src/component/template/ViewTemplateDocumentView.vue +1 -0
  73. package/src/component/template/ViewTemplateReportPreview.vue +56 -12
  74. package/src/component/template/ViewTemplateWithSalveCancel.vue +32 -32
  75. package/src/component/template/ViewTemplateWithTable.vue +56 -56
  76. package/src/component/value-objects/Contact.vue +7 -0
  77. package/src/component/value-objects/Person.vue +15 -0
  78. package/src/config/axios.js +9 -9
  79. package/src/config/dicas.js +14 -14
  80. package/src/config/router.js +13 -13
  81. package/src/config/token.js +14 -14
  82. package/src/main.js +23 -23
  83. package/src/store/modules/generic.js +512 -494
  84. package/src/store/modules/report.js +37 -19
  85. package/src/store/modules/user.js +3 -0
  86. package/src/store/modules/validation.js +38 -38
  87. package/src/store/store.js +13 -13
  88. package/src/component/shared/query-builder/Totalization.vue +0 -38
package/package.json CHANGED
@@ -1,79 +1,79 @@
1
- {
2
- "name": "@nixweb/nixloc-ui",
3
- "version": "0.0.127",
4
- "description": "Componentes UI",
5
- "author": "Fábio Ávila <fabio@nixweb.com.br>",
6
- "private": false,
7
- "scripts": {
8
- "serve": "vue-cli-service serve",
9
- "build": "vue-cli-service build",
10
- "lint": "vue-cli-service lint"
11
- },
12
- "dependencies": {
13
- "@babel/polyfill": "^7.12.1",
14
- "@ckeditor/ckeditor5-vue2": "^2.0.0",
15
- "axios": "^0.24.0",
16
- "bootstrap-vue": "^2.0.0-rc.11",
17
- "core-js": "^3.6.5",
18
- "sass-loader": "^10.1.1",
19
- "v-runtime-template": "^1.10.0",
20
- "vodal": "^2.4.0",
21
- "vue": "^2.6.11",
22
- "vue-color": "^2.7.0",
23
- "vue-currency-filter": "^3.3.0",
24
- "vue-html2pdf": "^1.8.0",
25
- "vue-image-crop-upload": "^3.0.3",
26
- "vue-js-toggle-button": "^1.3.0",
27
- "vue-json-excel": "^0.3.0",
28
- "vue-loading-template": "^1.3.0",
29
- "vue-moment": "^4.0.0",
30
- "vue-multiselect": "^2.1.0",
31
- "vue-numeric": "^2.4.1",
32
- "vue-print-nb": "^1.7.5",
33
- "vue-router": "^3.0.1",
34
- "vue-simple-progress": "^1.1.1",
35
- "vue-the-mask": "^0.11.1",
36
- "vue-toasted": "^1.1.28",
37
- "vue-toggles": "^1.1.4",
38
- "vue-upload-file": "^1.1.0",
39
- "vue2-datepicker": "^2.13.0",
40
- "vue2-editor": "^2.6.6",
41
- "vuedraggable": "^2.24.3",
42
- "vuejs-ace-editor": "^1.0.1",
43
- "vuex": "^3.6.2",
44
- "vuex-persistedstate": "^4.0.0"
45
- },
46
- "devDependencies": {
47
- "@vue/cli-plugin-babel": "~4.5.0",
48
- "@vue/cli-service": "~4.5.0",
49
- "babel-eslint": "^10.1.0",
50
- "eslint": "^6.7.2",
51
- "eslint-plugin-vue": "^6.2.2",
52
- "script-loader": "^0.7.2",
53
- "vue-template-compiler": "^2.6.11"
54
- },
55
- "eslintConfig": {
56
- "root": true,
57
- "env": {
58
- "node": true
59
- },
60
- "extends": [
61
- "plugin:vue/essential",
62
- "eslint:recommended"
63
- ],
64
- "parserOptions": {
65
- "parser": "babel-eslint"
66
- },
67
- "rules": {}
68
- },
69
- "engines": {
70
- "node": "16.14.2",
71
- "npm": ">= 3.0.0"
72
- },
73
- "browserslist": [
74
- "> 1%",
75
- "last 2 versions",
76
- "not dead"
77
- ],
78
- "main": "babel.config.js"
79
- }
1
+ {
2
+ "name": "@nixweb/nixloc-ui",
3
+ "version": "0.0.128",
4
+ "description": "Componentes UI",
5
+ "author": "Fábio Ávila <fabio@nixweb.com.br>",
6
+ "private": false,
7
+ "scripts": {
8
+ "serve": "vue-cli-service serve",
9
+ "build": "vue-cli-service build",
10
+ "lint": "vue-cli-service lint"
11
+ },
12
+ "dependencies": {
13
+ "@babel/polyfill": "^7.12.1",
14
+ "@ckeditor/ckeditor5-vue2": "^2.0.0",
15
+ "axios": "^0.24.0",
16
+ "bootstrap-vue": "^2.0.0-rc.11",
17
+ "core-js": "^3.6.5",
18
+ "sass-loader": "^10.1.1",
19
+ "v-runtime-template": "^1.10.0",
20
+ "vodal": "^2.4.0",
21
+ "vue": "^2.6.11",
22
+ "vue-color": "^2.7.0",
23
+ "vue-currency-filter": "^3.3.0",
24
+ "vue-html2pdf": "^1.8.0",
25
+ "vue-image-crop-upload": "^3.0.3",
26
+ "vue-js-toggle-button": "^1.3.0",
27
+ "vue-json-excel": "^0.3.0",
28
+ "vue-loading-template": "^1.3.0",
29
+ "vue-moment": "^4.0.0",
30
+ "vue-multiselect": "^2.1.0",
31
+ "vue-numeric": "^2.4.1",
32
+ "vue-print-nb": "^1.7.5",
33
+ "vue-router": "^3.0.1",
34
+ "vue-simple-progress": "^1.1.1",
35
+ "vue-the-mask": "^0.11.1",
36
+ "vue-toasted": "^1.1.28",
37
+ "vue-toggles": "^1.1.4",
38
+ "vue-upload-file": "^1.1.0",
39
+ "vue2-datepicker": "^2.13.0",
40
+ "vue2-editor": "^2.6.6",
41
+ "vuedraggable": "^2.24.3",
42
+ "vuejs-ace-editor": "^1.0.1",
43
+ "vuex": "^3.6.2",
44
+ "vuex-persistedstate": "^4.0.0"
45
+ },
46
+ "devDependencies": {
47
+ "@vue/cli-plugin-babel": "~4.5.0",
48
+ "@vue/cli-service": "~4.5.0",
49
+ "babel-eslint": "^10.1.0",
50
+ "eslint": "^6.7.2",
51
+ "eslint-plugin-vue": "^6.2.2",
52
+ "script-loader": "^0.7.2",
53
+ "vue-template-compiler": "^2.6.11"
54
+ },
55
+ "eslintConfig": {
56
+ "root": true,
57
+ "env": {
58
+ "node": true
59
+ },
60
+ "extends": [
61
+ "plugin:vue/essential",
62
+ "eslint:recommended"
63
+ ],
64
+ "parserOptions": {
65
+ "parser": "babel-eslint"
66
+ },
67
+ "rules": {}
68
+ },
69
+ "engines": {
70
+ "node": "16.14.2",
71
+ "npm": ">= 3.0.0"
72
+ },
73
+ "browserslist": [
74
+ "> 1%",
75
+ "last 2 versions",
76
+ "not dead"
77
+ ],
78
+ "main": "babel.config.js"
79
+ }
package/src/App.vue CHANGED
@@ -1,13 +1,13 @@
1
- <template>
2
- <div id="app">
3
- <router-view :key="$route.fullPath"></router-view>
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- name: "App",
10
- };
11
- </script>
12
-
13
- <style></style>
1
+ <template>
2
+ <div id="app">
3
+ <router-view :key="$route.fullPath"></router-view>
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: "App",
10
+ };
11
+ </script>
12
+
13
+ <style></style>
@@ -1,170 +1,170 @@
1
- <template>
2
- <div class="c-div-button">
3
- <button
4
- class="button"
5
- :class="{
6
- small: size === 'small',
7
- medium: size === 'medium',
8
- large: size === 'large',
9
- primary: type === 'primary',
10
- success: type === 'success',
11
- warning: type === 'warning',
12
- info: type === 'info',
13
- edit: type === 'edit',
14
- danger: type === 'danger',
15
- disabled: disabled,
16
- }"
17
- :disabled="disabled"
18
- @click="execute()"
19
- >
20
- <i class="title" :class="classIcon" v-if="!isLoading(this._key) && classIcon"></i>
21
- <span v-if="!isLoading(this._key)">{{ title }}</span>
22
- <vue-loading
23
- v-if="isLoading(this._key)"
24
- type="bubbles"
25
- color="#fff"
26
- :size="{ width: '26px', height: '26px' }"
27
- ></vue-loading>
28
- </button>
29
- </div>
30
- </template>
31
-
32
- <script>
33
- import { mapGetters, mapMutations } from "vuex";
34
-
35
- export default {
36
- name: "Button",
37
- props: {
38
- _key: String,
39
- title: String,
40
- type: String,
41
- size: String,
42
- eventName: String,
43
- eventData: Object,
44
- classIcon: String,
45
- disabled: Boolean,
46
- params: Object,
47
- clicked: Function,
48
- },
49
- computed: {
50
- ...mapGetters("generic", ["isLoading"]),
51
- },
52
- methods: {
53
- ...mapMutations("generic", ["addLoading", "addEvent"]),
54
- execute() {
55
- if (this.eventName)
56
- this.addEvent({
57
- name: this.eventName,
58
- data: this.eventData,
59
- });
60
- this.addLoading(this._key);
61
- if (this.clicked) this.clicked(this.params);
62
- },
63
- },
64
- };
65
- </script>
66
- <style scoped>
67
- .c-div-button {
68
- display: inline-block;
69
- margin-left: 5px;
70
- }
71
-
72
- .title {
73
- margin: 2px;
74
- }
75
-
76
- .button {
77
- padding: 8px 12px;
78
- cursor: pointer;
79
- border: none;
80
- border-radius: 40px !important;
81
- font-size: 13px !important;
82
- font-weight: normal;
83
- font-style: normal !important;
84
- letter-spacing: 1px !important;
85
- -webkit-box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 12%);
86
- -moz-box-shadow: 0px 10px 20px -6px rgba(0, 0, 0, 0.12);
87
- box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 12%);
88
- }
89
-
90
- .small {
91
- padding: 4px 8px;
92
- font-size: 13px;
93
- }
94
-
95
- .medium {
96
- padding: 7px 12px;
97
- font-size: 13px;
98
- }
99
-
100
- .large {
101
- padding: 10px 15px;
102
- font-size: 14px;
103
- }
104
-
105
- .disabled {
106
- background: #bbbbbb !important;
107
- border-color: #bbbbbb !important;
108
- color: #fff;
109
- }
110
-
111
- .primary {
112
- background: #577696;
113
- border-color: #577696;
114
- color: #fff;
115
- }
116
-
117
- .primary:hover {
118
- background: #355472;
119
- }
120
-
121
- .success {
122
- color: #fff;
123
- background: #94aa2a;
124
- border-color: #94aa2a;
125
- }
126
-
127
- .success:hover {
128
- background: #6d7e1c;
129
- }
130
-
131
- .info {
132
- color: #fff;
133
- border-color: #4ab4e2;
134
- background: #4ab4e2;
135
- }
136
-
137
- .info:hover {
138
- background: #3e90b3;
139
- }
140
-
141
- .edit {
142
- color: #fff;
143
- border-color: #7b7f83;
144
- background: #7b7f83;
145
- }
146
-
147
- .edit:hover {
148
- background: #595c5f;
149
- }
150
-
151
- .warning {
152
- color: #fff;
153
- border-color: #f1bc31;
154
- background: #f1bc31;
155
- }
156
-
157
- .warning:hover {
158
- background: #a37d1b;
159
- }
160
-
161
- .danger {
162
- color: #fff;
163
- border-color: #f0134d;
164
- background: #f0134d;
165
- }
166
-
167
- .danger:hover {
168
- background: #c70f40;
169
- }
170
- </style>
1
+ <template>
2
+ <div class="c-div-button">
3
+ <button
4
+ class="button"
5
+ :class="{
6
+ small: size === 'small',
7
+ medium: size === 'medium',
8
+ large: size === 'large',
9
+ primary: type === 'primary',
10
+ success: type === 'success',
11
+ warning: type === 'warning',
12
+ info: type === 'info',
13
+ edit: type === 'edit',
14
+ danger: type === 'danger',
15
+ disabled: disabled,
16
+ }"
17
+ :disabled="disabled"
18
+ @click="execute()"
19
+ >
20
+ <i class="title" :class="classIcon" v-if="!isLoading(this._key) && classIcon"></i>
21
+ <span v-if="!isLoading(this._key)">{{ title }}</span>
22
+ <vue-loading
23
+ v-if="isLoading(this._key)"
24
+ type="bubbles"
25
+ color="#fff"
26
+ :size="{ width: '26px', height: '26px' }"
27
+ ></vue-loading>
28
+ </button>
29
+ </div>
30
+ </template>
31
+
32
+ <script>
33
+ import { mapGetters, mapMutations } from "vuex";
34
+
35
+ export default {
36
+ name: "Button",
37
+ props: {
38
+ _key: String,
39
+ title: String,
40
+ type: String,
41
+ size: String,
42
+ eventName: String,
43
+ eventData: Object,
44
+ classIcon: String,
45
+ disabled: Boolean,
46
+ params: Object,
47
+ clicked: Function,
48
+ },
49
+ computed: {
50
+ ...mapGetters("generic", ["isLoading"]),
51
+ },
52
+ methods: {
53
+ ...mapMutations("generic", ["addLoading", "addEvent"]),
54
+ execute() {
55
+ if (this.eventName)
56
+ this.addEvent({
57
+ name: this.eventName,
58
+ data: this.eventData,
59
+ });
60
+ this.addLoading(this._key);
61
+ if (this.clicked) this.clicked(this.params);
62
+ },
63
+ },
64
+ };
65
+ </script>
66
+ <style scoped>
67
+ .c-div-button {
68
+ display: inline-block;
69
+ margin-left: 5px;
70
+ }
71
+
72
+ .title {
73
+ margin: 2px;
74
+ }
75
+
76
+ .button {
77
+ padding: 8px 12px;
78
+ cursor: pointer;
79
+ border: none;
80
+ border-radius: 40px !important;
81
+ font-size: 13px !important;
82
+ font-weight: normal;
83
+ font-style: normal !important;
84
+ letter-spacing: 1px !important;
85
+ -webkit-box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 12%);
86
+ -moz-box-shadow: 0px 10px 20px -6px rgba(0, 0, 0, 0.12);
87
+ box-shadow: 0px 10px 20px -6px rgb(0 0 0 / 12%);
88
+ }
89
+
90
+ .small {
91
+ padding: 3px 7px;
92
+ font-size: 13px;
93
+ }
94
+
95
+ .medium {
96
+ padding: 7px 12px;
97
+ font-size: 14px;
98
+ }
99
+
100
+ .large {
101
+ padding: 10px 15px;
102
+ font-size: 14px;
103
+ }
104
+
105
+ .disabled {
106
+ background: #bbbbbb !important;
107
+ border-color: #bbbbbb !important;
108
+ color: #fff;
109
+ }
110
+
111
+ .primary {
112
+ background: #577696;
113
+ border-color: #577696;
114
+ color: #fff;
115
+ }
116
+
117
+ .primary:hover {
118
+ background: #355472;
119
+ }
120
+
121
+ .success {
122
+ color: #fff;
123
+ background: #94aa2a;
124
+ border-color: #94aa2a;
125
+ }
126
+
127
+ .success:hover {
128
+ background: #6d7e1c;
129
+ }
130
+
131
+ .info {
132
+ color: #fff;
133
+ border-color: #4ab4e2;
134
+ background: #4ab4e2;
135
+ }
136
+
137
+ .info:hover {
138
+ background: #3e90b3;
139
+ }
140
+
141
+ .edit {
142
+ color: #fff;
143
+ border-color: #7b7f83;
144
+ background: #7b7f83;
145
+ }
146
+
147
+ .edit:hover {
148
+ background: #595c5f;
149
+ }
150
+
151
+ .warning {
152
+ color: #fff;
153
+ border-color: #f1bc31;
154
+ background: #f1bc31;
155
+ }
156
+
157
+ .warning:hover {
158
+ background: #a37d1b;
159
+ }
160
+
161
+ .danger {
162
+ color: #fff;
163
+ border-color: #f0134d;
164
+ background: #f0134d;
165
+ }
166
+
167
+ .danger:hover {
168
+ background: #c70f40;
169
+ }
170
+ </style>
@@ -1,66 +1,72 @@
1
- <template>
2
- <div>
3
- <b-form-group :label="title">
4
- <b-form-checkbox-group
5
- v-model="selected"
6
- :options="options"
7
- :stacked="stacked"
8
- @click.native="execute"
9
- ></b-form-checkbox-group>
10
- </b-form-group>
11
- </div>
12
- </template>
13
-
14
- <script>
15
- import { mapMutations } from "vuex";
16
-
17
- export default {
18
- name: "CheckboxGroup",
19
- props: {
20
- title: String,
21
- options: Array,
22
- params: Object,
23
- changed: Function,
24
- clicked: Function,
25
- initialValue: Array,
26
- value: Array,
27
- stacked: {
28
- type: Boolean,
29
- default: false,
30
- },
31
- markFormDirty: {
32
- type: Boolean,
33
- default: true,
34
- },
35
- },
36
- data() {
37
- return {
38
- selected: [],
39
- };
40
- },
41
- mounted() {
42
- if (this.initialValue) this.selected = this.initialValue;
43
- },
44
- methods: {
45
- ...mapMutations("validation", ["updateFormDirty"]),
46
- execute(event) {
47
- if (this.markFormDirty) this.updateFormDirty(true);
48
- this.$emit("input", this.selected);
49
- let self = this;
50
- setTimeout(function () {
51
- // adicionado o pointerId para prevenir que não seja executado em duplicidade
52
- if (self.clicked && event.pointerId === 1) self.clicked(self.params);
53
- }, 100);
54
- },
55
- },
56
- watch: {
57
- selected: {
58
- handler(value) {
59
- this.$emit("input", value);
60
- if (this.changed) this.changed(this.params);
61
- },
62
- deep: true,
63
- },
64
- },
65
- };
66
- </script>
1
+ <template>
2
+ <div>
3
+ <b-form-group :label="title">
4
+ <b-form-checkbox-group
5
+ v-model="selected"
6
+ :options="options"
7
+ :stacked="stacked"
8
+ @click.native="execute"
9
+ ></b-form-checkbox-group>
10
+ </b-form-group>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ import { mapMutations } from "vuex";
16
+
17
+ export default {
18
+ name: "CheckboxGroup",
19
+ props: {
20
+ title: String,
21
+ options: Array,
22
+ params: Object,
23
+ changed: Function,
24
+ clicked: Function,
25
+ initialValue: Array,
26
+ value: Array,
27
+ stacked: {
28
+ type: Boolean,
29
+ default: false,
30
+ },
31
+ markFormDirty: {
32
+ type: Boolean,
33
+ default: true,
34
+ },
35
+ },
36
+ data() {
37
+ return {
38
+ selected: [],
39
+ };
40
+ },
41
+ mounted() {
42
+ if (this.initialValue) this.selected = this.initialValue;
43
+ },
44
+ methods: {
45
+ ...mapMutations("validation", ["updateFormDirty"]),
46
+ execute(event) {
47
+ if (this.markFormDirty) this.updateFormDirty(true);
48
+ this.$emit("input", this.selected);
49
+ let self = this;
50
+ setTimeout(function () {
51
+ // adicionado o pointerId para prevenir que não seja executado em duplicidade
52
+ if (self.clicked && event.pointerId === 1) self.clicked(self.params);
53
+ }, 100);
54
+ },
55
+ },
56
+ watch: {
57
+ selected: {
58
+ handler(value) {
59
+ this.$emit("input", value);
60
+ if (this.changed) this.changed(this.params);
61
+ },
62
+ deep: true,
63
+ },
64
+ initialValue: {
65
+ handler(value) {
66
+ if (this.initialValue) this.selected = this.initialValue;
67
+ },
68
+ deep: true,
69
+ },
70
+ },
71
+ };
72
+ </script>