@idooel/components 0.0.1 → 0.0.2

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 (107) hide show
  1. package/README.md +99 -0
  2. package/dist/@idooel/components.esm.js +13956 -1882
  3. package/dist/@idooel/components.umd.js +14000 -1891
  4. package/jsconfig.json +8 -0
  5. package/package.json +12 -6
  6. package/packages/alert/index.js +5 -0
  7. package/packages/alert/src/index.vue +46 -0
  8. package/packages/batch-export/index.js +5 -0
  9. package/packages/batch-export/src/index.vue +105 -0
  10. package/packages/business-components/modal-fsm/index.js +5 -0
  11. package/packages/business-components/modal-fsm/src/index.vue +164 -0
  12. package/packages/business-components/modal-import/index.js +5 -0
  13. package/packages/business-components/modal-import/src/index.vue +140 -0
  14. package/packages/business-components/modal-timeline/index.js +5 -0
  15. package/packages/business-components/modal-timeline/src/index.vue +78 -0
  16. package/packages/business-components/tabs-sub-center/index.js +5 -0
  17. package/packages/business-components/tabs-sub-center/src/index.vue +117 -0
  18. package/packages/button/index.js +4 -4
  19. package/packages/button/src/index.vue +65 -24
  20. package/packages/checkbox/index.js +5 -0
  21. package/packages/checkbox/src/index.vue +53 -0
  22. package/packages/composite-components/button-group/index.js +4 -4
  23. package/packages/composite-components/button-group/src/index.vue +151 -46
  24. package/packages/composite-components/form-attachment/src/index.vue +15 -0
  25. package/packages/composite-components/form-img-crop/index.js +5 -0
  26. package/packages/composite-components/form-img-crop/src/index.vue +121 -0
  27. package/packages/composite-components/modal-confirm/index.js +5 -0
  28. package/packages/composite-components/modal-confirm/src/index.vue +104 -0
  29. package/packages/composite-components/modal-form/index.js +5 -0
  30. package/packages/composite-components/modal-form/src/index.vue +231 -0
  31. package/packages/composite-components/modal-img-crop/index.js +5 -0
  32. package/packages/composite-components/modal-img-crop/src/index.vue +299 -0
  33. package/packages/composite-components/modal-table/index.js +5 -0
  34. package/packages/composite-components/modal-table/src/index.vue +156 -0
  35. package/packages/composite-components/modal-table-transfer/index.js +0 -0
  36. package/packages/composite-components/modal-tree/index.js +5 -0
  37. package/packages/composite-components/modal-tree/src/index.vue +76 -0
  38. package/packages/composite-components/search-area/index.js +4 -4
  39. package/packages/composite-components/search-area/src/index.vue +237 -128
  40. package/packages/composite-components/search-area/src/label.vue +35 -35
  41. package/packages/composite-components/select-entity-modal-table/index.js +5 -0
  42. package/packages/composite-components/select-entity-modal-table/src/index.vue +172 -0
  43. package/packages/composite-components/table-transfer/index.js +0 -0
  44. package/packages/date/index.js +4 -4
  45. package/packages/date/src/index.vue +113 -40
  46. package/packages/date-range/index.js +5 -0
  47. package/packages/date-range/src/index.vue +47 -0
  48. package/packages/form/index.js +5 -0
  49. package/packages/form/src/index.vue +319 -0
  50. package/packages/icon/index.js +5 -0
  51. package/packages/icon/src/index.vue +32 -0
  52. package/packages/index.js +153 -50
  53. package/packages/input/index.js +4 -4
  54. package/packages/input/src/index.vue +35 -23
  55. package/packages/input-number/index.js +5 -0
  56. package/packages/input-number/src/index.vue +24 -0
  57. package/packages/loading/index.js +5 -0
  58. package/packages/loading/src/index.vue +37 -0
  59. package/packages/modal/index.js +5 -0
  60. package/packages/modal/src/index.vue +185 -0
  61. package/packages/models/form-group-model/index.js +5 -0
  62. package/packages/models/form-group-model/src/index.vue +274 -0
  63. package/packages/models/form-model/index.js +5 -0
  64. package/packages/models/form-model/src/index.vue +233 -0
  65. package/packages/models/step-model/index.js +5 -0
  66. package/packages/models/step-model/src/index.vue +224 -0
  67. package/packages/{tree-table-model → models/tree-table-model}/index.js +4 -4
  68. package/packages/models/tree-table-model/src/index.vue +689 -0
  69. package/packages/radio/index.js +5 -0
  70. package/packages/radio/src/index.vue +57 -0
  71. package/packages/select/index.js +4 -4
  72. package/packages/select/src/index.vue +105 -34
  73. package/packages/select-entity/index.js +5 -0
  74. package/packages/select-entity/src/index.vue +120 -0
  75. package/packages/table/index.js +4 -4
  76. package/packages/table/src/action.vue +172 -103
  77. package/packages/table/src/index.vue +289 -88
  78. package/packages/tabs/index.js +5 -0
  79. package/packages/tabs/src/index.vue +56 -0
  80. package/packages/text/index.js +5 -0
  81. package/packages/text/src/index.vue +48 -0
  82. package/packages/text-editor/index.js +5 -0
  83. package/packages/text-editor/src/index.vue +73 -0
  84. package/packages/textarea/index.js +5 -0
  85. package/packages/textarea/src/index.vue +58 -0
  86. package/packages/theme/form.scss +22 -0
  87. package/packages/theme/index.scss +43 -0
  88. package/packages/theme/overrid.scss +8 -0
  89. package/packages/theme/styleClass.scss +3 -0
  90. package/packages/theme/variables.scss +56 -0
  91. package/packages/timeline/index.js +5 -0
  92. package/packages/timeline/src/index.vue +258 -0
  93. package/packages/tpl/index.js +4 -4
  94. package/packages/tpl/src/index.vue +56 -47
  95. package/packages/tree/index.js +4 -4
  96. package/packages/tree/src/TreeNode.vue +29 -29
  97. package/packages/tree/src/index.vue +101 -96
  98. package/packages/tree-select/index.js +5 -0
  99. package/packages/tree-select/src/index.vue +143 -0
  100. package/packages/upload/index.js +5 -0
  101. package/packages/upload/src/index.vue +445 -0
  102. package/packages/utils/index.js +63 -0
  103. package/scripts/rollup.config.js +42 -35
  104. package/scripts/rollup.esm.config.js +11 -11
  105. package/scripts/rollup.umd.config.js +14 -14
  106. package/packages/tree-table-model/src/index.vue +0 -290
  107. /package/packages/{tree-table-model/README.md → composite-components/form-attachment/index.js} +0 -0
@@ -0,0 +1,445 @@
1
+ <template>
2
+ <div class="ele-upload__wrapper">
3
+ <FileUpload
4
+ class="ele-upload__inner"
5
+ v-show="isShowUploadContainer"
6
+ v-model="files"
7
+ :ref="uploadRef"
8
+ :drop="drop"
9
+ :chunk-enabled="chunkEnabled"
10
+ :chunk="chunkConfig"
11
+ :accept="accept"
12
+ :extensions="extensions"
13
+ :size="fileSizeLimit"
14
+ :post-action="postAction"
15
+ :multiple="multiple"
16
+ :headers="headers"
17
+ :maximum="getMaximum"
18
+ @input-file="onWatchInputFiles"
19
+ @input="onWatchFiles"
20
+ style="width: 100%;">
21
+ <section class="ele-upload__area">
22
+ <div class="ele-upload__area--icon">
23
+ <template v-if="iconIsZhWrod">
24
+ {{ icon }}
25
+ </template>
26
+ <template v-else>
27
+ <ele-icon :type="icon"></ele-icon>
28
+ </template>
29
+ </div>
30
+ <div class="ele-upload__area--text">
31
+ <div class="ele-upload__message" v-if="message" v-html="message"></div>
32
+ <div class="ele-upload__message" v-else>单击或拖动文件到该区域以上传</div>
33
+ <div class="ele-upload__ext" v-if="ext" v-html="ext"></div>
34
+ <div class="ele-upload__ext" v-else>文件小于{{ size }}M</div>
35
+ </div>
36
+ </section>
37
+ </FileUpload>
38
+ <section class="ele-files__wrapper">
39
+ <div class="ele-file__item" v-for="(file, idx) in buildedFiles" :key="idx">
40
+ <div class="ele-file__suffix--icon">
41
+ <ele-icon :type="fileSuffixIcon[file.suffix] ? fileSuffixIcon[file.suffix].name : 'icon-file'"></ele-icon>
42
+ </div>
43
+ <div class="ele-file__name">
44
+ <div class="ele-file__inner" @click="handleClickDownload(file)">{{ file.name }}</div>
45
+ <div v-if="(!file.success && file.progress)" class="ele-uplpad__progress">
46
+ <a-progress :strokeWidth="2" :percent="Number(file.progress)" size="small" />
47
+ </div>
48
+ </div>
49
+ <div class="ele-file__delete" v-if="file.success || file.error || !file.response">
50
+ <span class="ele-file__size">{{ (file.size / byteConversion).toFixed(2) }}M</span>
51
+ <span class="ele-file__delete--icon" @click="handleClickDelete(file)">
52
+ <ele-icon type="delete"></ele-icon>
53
+ </span>
54
+ </div>
55
+ </div>
56
+ </section>
57
+ </div>
58
+ </template>
59
+
60
+ <script>
61
+ import FileUpload from 'vue-upload-component'
62
+ import { v4 as uuidv4 } from 'uuid'
63
+ import { route, net, type } from '@idooel/shared'
64
+ export default {
65
+ name: 'ele-upload',
66
+ components: {
67
+ FileUpload
68
+ },
69
+ model: {
70
+ prop: 'value',
71
+ event: 'change'
72
+ },
73
+ props: {
74
+ url: {
75
+ type: String,
76
+ //TODO
77
+ default: `zuul/api-file/workbench/file`
78
+ },
79
+ icon: {
80
+ type: String,
81
+ default: '上传'
82
+ },
83
+ size: {
84
+ type: Number,
85
+ default: 100
86
+ },
87
+ message: {
88
+ type: String,
89
+ default: '单击或拖动文件到该区域以上传'
90
+ },
91
+ ext: {
92
+ type: String
93
+ },
94
+ extensions: {
95
+ type: String
96
+ },
97
+ accept: {
98
+ type: String
99
+ },
100
+ maximum: {
101
+ type: Number,
102
+ default: 10
103
+ },
104
+ multiple: {
105
+ type: Boolean,
106
+ default: false
107
+ },
108
+ drop: {
109
+ type: Boolean,
110
+ default: true
111
+ },
112
+ value: {
113
+ type: [String, Array]
114
+ },
115
+ querys: {
116
+ type: Object,
117
+ default: () => ({
118
+ _csrf: localStorage.getItem('token'),
119
+ _t: new Date().valueOf()
120
+ })
121
+ },
122
+ headers: {
123
+ type: Object,
124
+ default: () => ({
125
+ 'X-XSRF-TOKEN': localStorage.getItem('token')
126
+ })
127
+ },
128
+ byteConversion: {
129
+ type: Number,
130
+ default: 1024 * 1024
131
+ },
132
+ chunkEnabled: {
133
+ type: Boolean,
134
+ default: true
135
+ }
136
+ },
137
+ data() {
138
+ return {
139
+ files: [],
140
+ buildedFiles: [],
141
+ saveToServerAsyncPageTimer: null
142
+ }
143
+ },
144
+ watch: {
145
+ value: {
146
+ async handler (value) {
147
+ if (type.isArray(value)) {
148
+ // multiple
149
+ } else if (type.isEmpty(value)) {
150
+ this.files = []
151
+ this.buildedFiles = []
152
+ } else {
153
+ // single
154
+ this.fetchFileWithFileId()
155
+ }
156
+ },
157
+ immediate: true
158
+ }
159
+ },
160
+ computed: {
161
+ prefixPath () {
162
+ return window.prefixPath
163
+ },
164
+ iconIsZhWrod () {
165
+ return type.isZhWord(this.icon)
166
+ },
167
+ getPayloads () {
168
+ return {
169
+ override: false
170
+ }
171
+ },
172
+ chunkConfig () {
173
+ return {
174
+ action: `${this.prefixPath}zuul/api-file/workbench/file/temp/chunk/vue`,
175
+ headers: {
176
+ ...this.headers
177
+ },
178
+ minSize: 3 * this.byteConversion,
179
+ maxActive: 3,
180
+ maxRetries: 5,
181
+ startBody: {
182
+ override: true,
183
+ path: '/cw'
184
+ },
185
+ uploadBody: {
186
+ override: true,
187
+ path: '/cw'
188
+ },
189
+ finishBody: {
190
+ override: true,
191
+ path: '/cw'
192
+ }
193
+ }
194
+ },
195
+ isFileUploadSuccessed () {
196
+ return this.files.every(file => file.success)
197
+ },
198
+ isShowUploadContainer () {
199
+ if (this.multiple) {
200
+ if (this.isFileUploadSuccessed && this.buildedFiles.length >= this.maximum) {
201
+ return false
202
+ } else {
203
+ return true
204
+ }
205
+ } else {
206
+ const [file = {}] = this.buildedFiles
207
+ if (this.buildedFiles.length < 1) {
208
+ return true
209
+ }
210
+ if ((this.isFileUploadSuccessed && this.buildedFiles.length >= 1) || !file.response) {
211
+ return false
212
+ } else {
213
+ return true
214
+ }
215
+ }
216
+ },
217
+ getMaximum () {
218
+ return this.multiple ? this.maximum : 1
219
+ },
220
+ fileSizeLimit () {
221
+ return this.size * this.byteConversion
222
+ },
223
+ postAction () {
224
+ const ret = route.toQueryString(this.querys)
225
+ return `${this.prefixPath}${this.url}?${ret}`
226
+ },
227
+ uploadRef () {
228
+ return uuidv4()
229
+ },
230
+ fileSuffixIcon () {
231
+ return {
232
+ 'doc': { name: 'icon-doc' },
233
+ 'html': { name: 'icon-html' },
234
+ 'mp4': { name: 'icon-mp' },
235
+ 'pdf': { name: 'icon-pdf' },
236
+ 'ppt': { name: 'icon-ppt' },
237
+ 'psd': { name: 'icon-psd' },
238
+ 'rtf': { name: 'icon-rtf' },
239
+ 'txt': { name: 'icon-txt' },
240
+ 'vis': { name: 'icon-vis' },
241
+ 'xls': { name: 'icon-xls' },
242
+ 'xml': { name: 'icon-xml' },
243
+ 'zip': { name: 'icon-zip' },
244
+ 'jpg': { name: 'icon-img' },
245
+ 'mp3': { name: 'icon-mp1' },
246
+ }
247
+ },
248
+ fileIds () {
249
+ const fileIds = this.buildedFiles.map(file => {
250
+ return file.fileID
251
+ })
252
+ return this.multiple ? fileIds : fileIds[0]
253
+ },
254
+ fileResponseData () {
255
+ return this.multiple ? this.buildedFiles : this.buildedFiles[0]
256
+ }
257
+ },
258
+ methods: {
259
+ async fetchFileWithFileId () {
260
+ if (!this.value) return
261
+ await net.get(
262
+ `/api-file/file/${this.value}`
263
+ ).then(resp => {
264
+ const { data } = resp
265
+ this.buildedFiles = [data]
266
+ this.files = [data]
267
+ })
268
+ },
269
+ handleClickDownload (file) {
270
+ const { fileID: fileId } = file
271
+ window.open(`/api-file/workbench/file/stream/${fileId}?origin=true`)
272
+ },
273
+ handleClickDelete (file) {
274
+ this.$refs[this.uploadRef].remove(file)
275
+ const { fileID } = file
276
+ this.files = this.files.filter(file => file.fileID !== fileID)
277
+ this.buildedFiles = this.buildedFiles.filter(file => file.fileID !== fileID)
278
+ this.$emit('change', this.fileIds)
279
+ },
280
+ onWatchFiles (files) {
281
+ this.files = files
282
+ this.buildedFiles = this.files.map(file => {
283
+ return {
284
+ ...file.response.data,
285
+ ...file
286
+ }
287
+ })
288
+ if (this.isFileUploadSuccessed) {
289
+ this.$emit('change', this.fileIds)
290
+ this.$emit('on-success', this.fileResponseData)
291
+ }
292
+ },
293
+ async saveToServerAsyncPage (payloads = {}) {
294
+ net.post('zuul/api-file/workbench/file/temp/saveToServerAsyncPage', payloads, {
295
+ headers: {
296
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
297
+ }
298
+ }).then(resp =>{
299
+ const { data } = resp
300
+ if (data !== 'saveToServerAsyncPage') {
301
+ clearInterval(this.saveToServerAsyncPageTimer)
302
+ }
303
+ })
304
+ // const ret = await net.post({
305
+ // url: 'zuul/api-file/workbench/file/temp/saveToServerAsyncPage',
306
+ // method: 'POST',
307
+ // data: { ...payloads }
308
+ // }).then(resp => {
309
+ // const { data: { data, code, message } } = resp
310
+ // if (code !== '2000') {
311
+ // this.$Message.error(message)
312
+ // return
313
+ // }
314
+ // if (data !== 'saveToServerAsyncPage') {
315
+ // clearInterval(timer)
316
+ // const { fileID, size } = data
317
+ // this.$emit('on-success', { ...data, fileId: fileID })
318
+ // this.$Message.success('同步成功')
319
+ // return { fileId: fileID, size }
320
+ // }
321
+ // })
322
+ // return ret
323
+ },
324
+ onWatchInputFiles (newFile, oldFile) {
325
+ if (newFile && !oldFile) {
326
+ // add file
327
+ console.log('add', newFile)
328
+ }
329
+ if (newFile && oldFile) {
330
+ // update file
331
+ console.log('update', newFile)
332
+ const { success, active, chunk, response } = newFile
333
+ if (chunk && success && !active) {
334
+ console.log('chunk end')
335
+ const { data: { file, type } } = response
336
+ const payloads = {
337
+ filePath: file.match(/\/cw(.*)/) ? file.match(/\/cw(.*)/)[0] : void 0,
338
+ asyncID: uuidv4(),
339
+ isDeleteOrigin: false,
340
+ toImage: type === 'pdf' ? true : false,
341
+ unzip: type === 'zip' ? true : false,
342
+ _csrf: localStorage.getItem('token')
343
+ }
344
+ this.saveToServerAsyncPageTimer = setInterval(() => {
345
+ this.saveToServerAsyncPage(payloads)
346
+ }, 2000)
347
+ }
348
+ }
349
+ if (!newFile && oldFile) {
350
+ // delete file
351
+ console.log('delete')
352
+ }
353
+ if (Boolean(newFile) !== Boolean(oldFile) || oldFile.error !== newFile.error) {
354
+ if (!this.$refs[this.uploadRef].active) {
355
+ this.$refs[this.uploadRef].active = true
356
+ }
357
+ }
358
+ }
359
+ }
360
+ }
361
+ </script>
362
+
363
+ <style lang="scss" scoped>
364
+ ::v-deep .ele-upload__inner {
365
+ opacity: 1 !important;
366
+ cursor: pointer;
367
+ border: 1px dashed var(--idooel-form-title-border-color);
368
+ background: var(--idooel-form-upload-bg-color) !important;
369
+ &:hover {
370
+ border-color: var(--idooel-form-upload-border-hover-color);
371
+ }
372
+ border-radius: var(--idooel-form-border-radius);
373
+ }
374
+ .ele-upload__wrapper {
375
+ width: 100%;
376
+ .ele-upload__area {
377
+ padding: 16px;
378
+ width: 100%;
379
+ height: 80px;
380
+ display: flex;
381
+ flex-direction: row;
382
+ .ele-upload__area--icon {
383
+ color: var(--idooel-primary-color);
384
+ display: flex;
385
+ flex-direction: row;
386
+ align-items: center;
387
+ font-size: 16x;
388
+ .anticon-cloud-upload {
389
+ font-size: 48px;
390
+ color: var(--idooel-primary-color);
391
+ }
392
+ .anticon {
393
+ font-size: 48px;
394
+ color: var(--idooel-primary-color);
395
+ }
396
+ }
397
+ .ele-upload__area--text {
398
+ margin-left: 16px;
399
+ .ele-upload__message {
400
+ font-size: 16px;
401
+ color: var(--idoole-black-088);
402
+ text-align: left;
403
+ }
404
+ .ele-upload__ext {
405
+ text-align: left;
406
+ font-size: 14px;
407
+ color: var(--idoole-black-06);
408
+ }
409
+ }
410
+ }
411
+ .ele-files__wrapper {
412
+ .ele-file__item {
413
+ width: 100%;
414
+ margin-top: 8px;
415
+ padding: 8px 12px;
416
+ border-radius: var(--idooel-form-border-radius);
417
+ background: var(--idooel-form-upload-bg-color);
418
+ display: flex;
419
+ flex-direction: row;
420
+ align-items: center;
421
+ .ele-file__suffix--icon {}
422
+ .ele-file__name {
423
+ flex: 1;
424
+ text-align: left;
425
+ white-space: nowrap;
426
+ overflow: hidden;
427
+ font-size: 14px;
428
+ margin-left: 8px;
429
+ cursor: pointer;
430
+ .ele-file__inner {
431
+ overflow: hidden;
432
+ text-overflow: ellipsis;
433
+ }
434
+ }
435
+ .ele-file__delete {
436
+ margin-left: 8px;
437
+ .ele-file__delete--icon {
438
+ margin-left: 8px;
439
+ cursor: pointer;
440
+ }
441
+ }
442
+ }
443
+ }
444
+ }
445
+ </style>
@@ -0,0 +1,63 @@
1
+ import { parse } from '@idooel/expression'
2
+
3
+ export const NAMESPACE = '__idooel__ele__'
4
+ export const CONTEXT = '__idooel__ele__context__'
5
+ export const EXPOSED = 'exposed'
6
+
7
+ export const AREA_NAMES = {
8
+ BUTTON_GROUP: 'BUTTON_GROUP'
9
+ }
10
+
11
+ export const BUILT_IN_EVENT_NAMES = {
12
+ SUBMIT: 'submit',
13
+ CANCEL: 'cancel',
14
+ INCREASE: 'increase',
15
+ DELETE: 'delete',
16
+ NEXT: 'next',
17
+ PREVIOUS: 'previous',
18
+ // create, edit, view are reserved for table cru in the current version
19
+ CREATE: 'create',
20
+ EDIT: 'edit',
21
+ VIEW: 'view'
22
+ }
23
+ export const BUILT_IN_METHODS_NAMES = {
24
+ CLOSE_MODAL: 'closeModal',
25
+ SUBMIT_FORM: 'submitForm',
26
+ //TODO: not use
27
+ REFRESH_TABLE: 'refreshTable',
28
+ CLEAN_EFFECT: 'cleanEffect'
29
+ }
30
+
31
+ export const BUILT_IN_TRIGGER = {
32
+ // default it's not a trigger
33
+ TEXT: 'text',
34
+ //状态机触发器
35
+ FSM: 'fsm',
36
+ ELE_MODAL_FORM: 'ele-modal-form',
37
+ ELE_MODAL_TABLE: 'ele-modal-table'
38
+ }
39
+ export const PAGE_STATUS = {
40
+ CREATE: 'create',
41
+ //TODO implement edit and view
42
+ EDIT: 'edit',
43
+ VIEW: 'view'
44
+ }
45
+ export const RESERVE_EVENT_NAMES = {
46
+ //global event
47
+ INIT: 'init',
48
+ WATCH: 'watch',
49
+ //form event
50
+ WATCH_FORM_STATUS: 'watch-form-status',
51
+ INIT_FORM: 'init-form',
52
+ //table event
53
+ SEARCH: 'search',
54
+ TREE_CHANGE: 'tree-change'
55
+ }
56
+
57
+ export const parseFieldMap = (fieldMap = {}, dataSource = {}) => {
58
+ let ret = {}
59
+ Object.keys(fieldMap).forEach((key) => {
60
+ ret[fieldMap[key]] = parse(key, dataSource)
61
+ })
62
+ return ret
63
+ }
@@ -1,36 +1,43 @@
1
-
2
- import { nodeResolve } from '@rollup/plugin-node-resolve'
3
- import { terser } from 'rollup-plugin-terser'
4
- import strip from '@rollup/plugin-strip'
5
- import vue from 'rollup-plugin-vue'
6
- import postcss from 'rollup-plugin-postcss'
7
- import postcssImport from 'postcss-import'
8
- import babel from 'rollup-plugin-babel'
9
-
10
- //TODO: bundle all packages in future
11
-
12
- /** @type { import('rollup').RollupOptions } */
13
- export default {
14
- input: 'packages/index.js',
15
- external: ['vue', '@idooel/shared'],
16
- plugins: [
17
- nodeResolve(),
18
- babel({
19
- exclude: 'node_modules/**'
20
- }),
21
- vue({
22
- css: true,
23
- compileTemplate: true
24
- }),
25
- postcss({
26
- extensions: ['.css'],
27
- extract: true,
28
- plugins: [postcssImport()]
29
- })
30
- // terser(),
31
- // strip({
32
- // functions: ['console.log', 'assert.*', 'debug', 'alert'],
33
- // sourceMap: true
34
- // })
35
- ]
1
+
2
+ import { nodeResolve } from '@rollup/plugin-node-resolve'
3
+ import { terser } from 'rollup-plugin-terser'
4
+ import strip from '@rollup/plugin-strip'
5
+ import vue from 'rollup-plugin-vue'
6
+ import postcss from 'rollup-plugin-postcss'
7
+ import postcssImport from 'postcss-import'
8
+ import { babel } from '@rollup/plugin-babel'
9
+ import alias from '@rollup/plugin-alias'
10
+ import { resolve } from 'path'
11
+
12
+ //TODO: bundle all packages in future
13
+
14
+ /** @type { import('rollup').RollupOptions } */
15
+ export default {
16
+ input: 'packages/index.js',
17
+ external: ['vue', '@idooel/shared', 'vue-upload-component', 'moment'],
18
+ plugins: [
19
+ nodeResolve(),
20
+ vue({
21
+ css: true,
22
+ compileTemplate: true
23
+ }),
24
+ alias({
25
+ entries: [
26
+ { find: '@/utils', replacement: resolve(__dirname, '../packages/utils') }
27
+ ]
28
+ }),
29
+ babel({
30
+ babelHelpers: 'bundled',
31
+ presets: ['@vue/babel-preset-jsx'],
32
+ extensions: ['.js', '.jsx', '.es', '.es6', '.mjs', '.vue'],
33
+ filter: id=>{
34
+ return /(\.js|\.jsx|\.es6|\.es|\.mjs)$/.test(id) && !/node_modules/.test(id)
35
+ }
36
+ }),
37
+ postcss({
38
+ extensions: ['.css', '.scss'],
39
+ extract: true,
40
+ plugins: [postcssImport()]
41
+ })
42
+ ]
36
43
  }
@@ -1,12 +1,12 @@
1
- import baseConfig from './rollup.config.js'
2
- import { module } from '../package.json'
3
-
4
- /** @type { import('rollup').RollupOptions } */
5
- export default {
6
- ...baseConfig,
7
- output: {
8
- name: '__ele__esm__components__',
9
- file: module,
10
- format: 'es'
11
- }
1
+ import baseConfig from './rollup.config.js'
2
+ import { module } from '../package.json'
3
+
4
+ /** @type { import('rollup').RollupOptions } */
5
+ export default {
6
+ ...baseConfig,
7
+ output: {
8
+ name: '__ele__esm__components__',
9
+ file: module,
10
+ format: 'es'
11
+ }
12
12
  }
@@ -1,15 +1,15 @@
1
- import baseConfig from './rollup.config.js'
2
- import { main } from '../package.json'
3
- /** @type { import('rollup').RollupOptions } */
4
- export default {
5
- ...baseConfig,
6
- output: {
7
- name: '__ele__umd__components__',
8
- file: main,
9
- format: 'umd',
10
- globals: {
11
- vue: 'Vue'
12
- },
13
- exports: 'named'
14
- }
1
+ import baseConfig from './rollup.config.js'
2
+ import { main } from '../package.json'
3
+ /** @type { import('rollup').RollupOptions } */
4
+ export default {
5
+ ...baseConfig,
6
+ output: {
7
+ name: '__ele__umd__components__',
8
+ file: main,
9
+ format: 'umd',
10
+ globals: {
11
+ vue: 'Vue'
12
+ },
13
+ exports: 'named'
14
+ }
15
15
  }