@knowark/componarkjs 1.7.3 → 1.7.5

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 (77) hide show
  1. package/Makefile +6 -3
  2. package/jsconfig.json +23 -0
  3. package/lib/base/component/component.js +27 -26
  4. package/lib/base/component/component.test.js +76 -32
  5. package/lib/base/styles/styles.js +34 -5
  6. package/lib/base/utils/define.js +6 -7
  7. package/lib/base/utils/define.test.js +5 -5
  8. package/lib/base/utils/helpers.js +14 -10
  9. package/lib/base/utils/helpers.test.js +13 -13
  10. package/lib/base/utils/uuid.js +4 -4
  11. package/lib/components/audio/components/audio.js +6 -6
  12. package/lib/components/audio/components/audio.test.js +11 -10
  13. package/lib/components/audio/styles/ark.css.js +1 -1
  14. package/lib/components/camera/components/camera.test.js +6 -6
  15. package/lib/components/camera/styles/ark.css.js +1 -1
  16. package/lib/components/camera/styles/index.js +1 -1
  17. package/lib/components/capture/components/capture.js +2 -2
  18. package/lib/components/capture/components/capture.test.js +1 -1
  19. package/lib/components/droparea/components/droparea-preview.js +27 -26
  20. package/lib/components/droparea/components/droparea-preview.test.js +9 -9
  21. package/lib/components/droparea/components/droparea.js +19 -19
  22. package/lib/components/droparea/components/droparea.test.js +42 -42
  23. package/lib/components/droparea/styles/ark.css.js +1 -1
  24. package/lib/components/emit/components/emit.js +4 -4
  25. package/lib/components/emit/components/emit.test.js +5 -5
  26. package/lib/components/list/components/item.test.js +12 -14
  27. package/lib/components/list/components/list.js +25 -25
  28. package/lib/components/list/components/list.test.js +27 -29
  29. package/lib/components/paginator/components/paginator.js +2 -2
  30. package/lib/components/paginator/components/paginator.test.js +15 -18
  31. package/lib/components/paginator/styles/ark.css.js +1 -1
  32. package/lib/components/spinner/components/spinner.js +17 -17
  33. package/lib/components/spinner/styles/index.js +1 -1
  34. package/lib/components/splitview/components/splitview.detail.js +3 -3
  35. package/lib/components/splitview/components/splitview.detail.test.js +23 -23
  36. package/lib/components/splitview/components/splitview.js +3 -3
  37. package/lib/components/splitview/components/splitview.master.js +3 -3
  38. package/lib/components/splitview/components/splitview.master.test.js +2 -2
  39. package/lib/components/splitview/components/splitview.test.js +5 -7
  40. package/lib/components/translate/components/translate.js +17 -19
  41. package/lib/components/translate/components/translate.test.js +13 -14
  42. package/package.json +1 -1
  43. package/showcase/assets/knowark.svg +1 -0
  44. package/showcase/{design/screens/base/audio/audioDemo.js → components/demos/audio.js} +6 -10
  45. package/showcase/{design/screens/base/camera/cameraDemo.js → components/demos/camera.js} +6 -7
  46. package/showcase/{design/screens/base/droparea/dropareaDemo.js → components/demos/droparea.js} +7 -7
  47. package/showcase/{design/screens/base/list/listDemo.js → components/demos/list.js} +2 -3
  48. package/showcase/{design/screens/base/paginator/paginatorDemo.js → components/demos/paginator.js} +9 -9
  49. package/showcase/{design/screens/base/splitview/splitViewDemo.js → components/demos/splitview.js} +42 -9
  50. package/showcase/{design/screens/base/translate/translateDemo.js → components/demos/translate.js} +4 -5
  51. package/showcase/components/index.html +81 -0
  52. package/showcase/index.html +40 -82
  53. package/showcase/index.js +0 -1
  54. package/webpack.config.cjs +50 -50
  55. package/showcase/design/core/factories/development/development.factory.js +0 -5
  56. package/showcase/design/core/factories/development/index.js +0 -1
  57. package/showcase/design/core/factories/index.js +0 -11
  58. package/showcase/design/core/factories/standard.factory.js +0 -19
  59. package/showcase/design/index.html +0 -22
  60. package/showcase/design/index.js +0 -7
  61. package/showcase/design/screens/base/audio/index.js +0 -25
  62. package/showcase/design/screens/base/camera/index.js +0 -25
  63. package/showcase/design/screens/base/droparea/index.js +0 -25
  64. package/showcase/design/screens/base/index.js +0 -42
  65. package/showcase/design/screens/base/list/index.js +0 -25
  66. package/showcase/design/screens/base/paginator/index.js +0 -25
  67. package/showcase/design/screens/base/root.component.js +0 -294
  68. package/showcase/design/screens/base/root.routes.js +0 -28
  69. package/showcase/design/screens/base/spinner/index.js +0 -25
  70. package/showcase/design/screens/base/spinner/spinnerDemo.js +0 -55
  71. package/showcase/design/screens/base/splitview/detailDemo.js +0 -40
  72. package/showcase/design/screens/base/splitview/index.js +0 -25
  73. package/showcase/design/screens/base/translate/index.js +0 -20
  74. package/showcase/design/screens/main.js +0 -12
  75. package/showcase/design/screens/screens.routes.js +0 -23
  76. package/tsconfig.json +0 -23
  77. /package/showcase/{design/.htaccess → .htaccess} +0 -0
@@ -4,7 +4,7 @@ import './droparea.js'
4
4
  describe('Droparea', () => {
5
5
  const createBubbledEvent = (type, props = {}) => {
6
6
  const event = new Event(type, {
7
- bubbles: true,
7
+ bubbles: true
8
8
  })
9
9
  Object.assign(event, props)
10
10
  return event
@@ -45,7 +45,7 @@ describe('Droparea', () => {
45
45
  dragNode.dispatchEvent(
46
46
  createBubbledEvent('dragover', {
47
47
  clientX: 0,
48
- clientY: 1,
48
+ clientY: 1
49
49
  })
50
50
  )
51
51
  expect(dropZone.classList['1']).toBe('highlight')
@@ -62,7 +62,7 @@ describe('Droparea', () => {
62
62
  dropZone.dispatchEvent(
63
63
  createBubbledEvent('dragleave', {
64
64
  clientX: 0,
65
- clientY: 1,
65
+ clientY: 1
66
66
  })
67
67
  )
68
68
  expect(dropZone.classList.length).toBe(1)
@@ -76,17 +76,17 @@ describe('Droparea', () => {
76
76
  const droparea = container.querySelector('ark-droparea')
77
77
  const dropZone = droparea.querySelector('.ark-droparea__form')
78
78
  const myFile = new File(['image'], 'Doggy.png', {
79
- type: 'image/png',
79
+ type: 'image/png'
80
80
  })
81
81
  const myFile2 = new File(['image'], 'Scooby.png', {
82
- type: 'image/png',
82
+ type: 'image/png'
83
83
  })
84
84
  const dropEvent = createBubbledEvent('drop', {
85
85
  clientX: 0,
86
86
  clientY: 1,
87
87
  dataTransfer: {
88
- files: [myFile, myFile2],
89
- },
88
+ files: [myFile, myFile2]
89
+ }
90
90
  })
91
91
 
92
92
  dropZone.dispatchEvent(dropEvent)
@@ -102,18 +102,18 @@ describe('Droparea', () => {
102
102
  const droparea = container.querySelector('ark-droparea')
103
103
  const dropZone = droparea.querySelector('.ark-droparea__form')
104
104
  const myFile = new File(['image'], 'Snoopy.png', {
105
- type: 'image/png',
105
+ type: 'image/png'
106
106
  })
107
107
  const myFile2 = new File(['image'], 'Scooby.png', {
108
- type: 'image/png',
108
+ type: 'image/png'
109
109
  })
110
110
 
111
111
  const dropEvent = createBubbledEvent('drop', {
112
112
  clientX: 0,
113
113
  clientY: 1,
114
114
  dataTransfer: {
115
- files: [myFile, myFile2],
116
- },
115
+ files: [myFile, myFile2]
116
+ }
117
117
  })
118
118
 
119
119
  dropZone.dispatchEvent(dropEvent)
@@ -129,18 +129,18 @@ describe('Droparea', () => {
129
129
  const droparea = container.querySelector('ark-droparea')
130
130
  const dropZone = droparea.querySelector('.ark-droparea__form')
131
131
  const myFile = new File(['image'], 'Snoopy.png', {
132
- type: 'image/png',
132
+ type: 'image/png'
133
133
  })
134
134
  const myFile2 = new File(['image'], 'Scooby.png', {
135
- type: 'image/png',
135
+ type: 'image/png'
136
136
  })
137
137
 
138
138
  const dropEvent = createBubbledEvent('drop', {
139
139
  clientX: 0,
140
140
  clientY: 1,
141
141
  dataTransfer: {
142
- files: [myFile, myFile2],
143
- },
142
+ files: [myFile, myFile2]
143
+ }
144
144
  })
145
145
 
146
146
  dropZone.dispatchEvent(dropEvent)
@@ -155,18 +155,18 @@ describe('Droparea', () => {
155
155
  const droparea = container.querySelector('ark-droparea')
156
156
  const dropZone = droparea.querySelector('.ark-droparea__form')
157
157
  const myFile = new File(['image'], 'Snoopy.png', {
158
- type: 'image/png',
158
+ type: 'image/png'
159
159
  })
160
160
  const myFile2 = new File(['image'], 'Scooby.png', {
161
- type: 'image/png',
161
+ type: 'image/png'
162
162
  })
163
163
 
164
164
  const dropEvent = createBubbledEvent('drop', {
165
165
  clientX: 0,
166
166
  clientY: 1,
167
167
  dataTransfer: {
168
- files: [myFile, myFile2],
169
- },
168
+ files: [myFile, myFile2]
169
+ }
170
170
  })
171
171
 
172
172
  dropZone.dispatchEvent(dropEvent)
@@ -176,14 +176,14 @@ describe('Droparea', () => {
176
176
  name: 'Snoopy.png',
177
177
  size: 5,
178
178
  type: 'image/png',
179
- url: undefined,
179
+ url: undefined
180
180
  },
181
181
  {
182
182
  name: 'Scooby.png',
183
183
  size: 5,
184
184
  type: 'image/png',
185
- url: undefined,
186
- },
185
+ url: undefined
186
+ }
187
187
  ])
188
188
  })
189
189
 
@@ -196,13 +196,13 @@ describe('Droparea', () => {
196
196
  const dropOpen = droparea.querySelector('.ark-droparea__open')
197
197
  const input = droparea.querySelector('.ark-droparea__input')
198
198
  const myFile = new File(['image'], 'Snoopy.png', {
199
- type: 'image/png',
199
+ type: 'image/png'
200
200
  })
201
201
  const changeEvent = createBubbledEvent('change', {})
202
202
  Object.defineProperty(changeEvent, 'target', {
203
203
  value: {
204
- files: [myFile],
205
- },
204
+ files: [myFile]
205
+ }
206
206
  })
207
207
  dropOpen.click()
208
208
  input.dispatchEvent(changeEvent)
@@ -217,16 +217,16 @@ describe('Droparea', () => {
217
217
  const droparea = container.querySelector('ark-droparea')
218
218
  const input = droparea.querySelector('.ark-droparea__input')
219
219
  const myFile = new File(['image'], 'Snoopy.jpg', {
220
- type: 'image/png',
220
+ type: 'image/png'
221
221
  })
222
222
  const myFile2 = new File(['image'], 'Scrappy.png', {
223
- type: 'image/png',
223
+ type: 'image/png'
224
224
  })
225
225
  const changeEvent = createBubbledEvent('change', {})
226
226
  Object.defineProperty(changeEvent, 'target', {
227
227
  value: {
228
- files: [myFile, myFile2],
229
- },
228
+ files: [myFile, myFile2]
229
+ }
230
230
  })
231
231
 
232
232
  input.dispatchEvent(changeEvent)
@@ -241,13 +241,13 @@ describe('Droparea', () => {
241
241
  const droparea = container.querySelector('ark-droparea')
242
242
  const input = droparea.querySelector('.ark-droparea__input')
243
243
  const myFile = new File(['text'], 'Snoopy.txt', {
244
- type: 'text/txt',
244
+ type: 'text/txt'
245
245
  })
246
246
  const changeEvent = createBubbledEvent('change', {})
247
247
  Object.defineProperty(changeEvent, 'target', {
248
248
  value: {
249
- files: [myFile],
250
- },
249
+ files: [myFile]
250
+ }
251
251
  })
252
252
  input.dispatchEvent(changeEvent)
253
253
  expect(droparea.fileList.length).toBeFalsy()
@@ -262,16 +262,16 @@ describe('Droparea', () => {
262
262
  const droparea = container.querySelector('ark-droparea')
263
263
  const dropZone = droparea.querySelector('.ark-droparea__form')
264
264
  const myFile = new File(['audio'], 'autechre.mp3', {
265
- type: 'audio/mp3',
265
+ type: 'audio/mp3'
266
266
  })
267
267
  const myFile2 = new File(['video'], 'cats.mov', {
268
- type: 'video/mov',
268
+ type: 'video/mov'
269
269
  })
270
270
  const myFile3 = new File(['image'], 'snoopy.jpg', {
271
- type: 'image/jpg',
271
+ type: 'image/jpg'
272
272
  })
273
273
  const myFile4 = new File(['text'], 'styles.css', {
274
- type: 'text/css',
274
+ type: 'text/css'
275
275
  })
276
276
 
277
277
  const files = [myFile, myFile2, myFile3, myFile4]
@@ -279,8 +279,8 @@ describe('Droparea', () => {
279
279
  clientX: 0,
280
280
  clientY: 1,
281
281
  dataTransfer: {
282
- files: files,
283
- },
282
+ files
283
+ }
284
284
  })
285
285
  dropZone.dispatchEvent(dropEvent)
286
286
 
@@ -297,10 +297,10 @@ describe('Droparea', () => {
297
297
  const droparea = container.querySelector('ark-droparea')
298
298
  const dropZone = droparea.querySelector('.ark-droparea__form')
299
299
  const myFile = new File(['image'], 'Doggy.png', {
300
- type: 'image/png',
300
+ type: 'image/png'
301
301
  })
302
302
  const myFile2 = new File(['image'], 'Scooby.png', {
303
- type: 'image/png',
303
+ type: 'image/png'
304
304
  })
305
305
  Object.defineProperty(myFile2, 'size', { value: 1024 * 1024 + 1 })
306
306
 
@@ -308,8 +308,8 @@ describe('Droparea', () => {
308
308
  clientX: 0,
309
309
  clientY: 1,
310
310
  dataTransfer: {
311
- files: [myFile, myFile2],
312
- },
311
+ files: [myFile, myFile2]
312
+ }
313
313
  })
314
314
 
315
315
  droparea.maxSizeValidate([])
@@ -232,4 +232,4 @@ const css = String.raw; export default css`
232
232
  .ark-droparea__open:active {
233
233
  transform: scale(0.95);
234
234
  }
235
- `
235
+ `
@@ -4,7 +4,7 @@ const tag = 'ark-emit'
4
4
  export class Emit extends Component {
5
5
  constructor () {
6
6
  super()
7
- const type = this['receive'] || 'click'
7
+ const type = this.receive || 'click'
8
8
  this.source = JSON.parse(this._pop(':scope > data')?.textContent || null)
9
9
  this.addEventListener(type, this.handle.bind(this))
10
10
  }
@@ -16,11 +16,11 @@ export class Emit extends Component {
16
16
  handle (event) {
17
17
  const detail = Object.assign({}, event.detail)
18
18
  if (this.source) Object.assign(detail, this.source)
19
-
19
+
20
20
  const value = event.target.value
21
21
  if (value) Object.assign(detail, { value })
22
-
23
- const type = this['dispatch'] || 'emit'
22
+
23
+ const type = this.dispatch || 'emit'
24
24
  this.emit(type, detail)
25
25
  }
26
26
 
@@ -12,7 +12,7 @@ describe('Emit', () => {
12
12
  container.remove()
13
13
  container = null
14
14
  })
15
-
15
+
16
16
  it('can be instantiated', () => {
17
17
  container.innerHTML = `
18
18
  <ark-emit></ark-emit>
@@ -70,7 +70,7 @@ describe('Emit', () => {
70
70
  const dataElement = emit.querySelector('data')
71
71
  expect(dataElement).toBe(null)
72
72
 
73
- emit.addEventListener('emit', (event) => {
73
+ emit.addEventListener('emit', (event) => {
74
74
  const detail = event.detail
75
75
  expect(detail).toEqual(data)
76
76
  })
@@ -100,13 +100,13 @@ describe('Emit', () => {
100
100
  `
101
101
 
102
102
  const emit = container.querySelector('[data-outer]')
103
- emit.addEventListener('outer', (event) => {
103
+ emit.addEventListener('outer', (event) => {
104
104
  const detail = event.detail
105
105
  expect(detail).toEqual({
106
106
  id: '7a792bda-6f8a-44ed-a63a-a48bba1e76bf',
107
107
  name: 'John Doe',
108
108
  age: 34,
109
- job: "programmer"
109
+ job: 'programmer'
110
110
  })
111
111
  })
112
112
 
@@ -128,7 +128,7 @@ describe('Emit', () => {
128
128
  inputEvent, 'target', { writable: false, value: target })
129
129
 
130
130
  const emit = container.querySelector('ark-emit')
131
- emit.addEventListener('emit', (event) => {
131
+ emit.addEventListener('emit', (event) => {
132
132
  const detail = event.detail
133
133
  expect(detail).toEqual({ value: 'XYZ' })
134
134
  })
@@ -15,12 +15,12 @@ describe('List item', () => {
15
15
  })
16
16
 
17
17
  it('can be instantiated', () => {
18
- container.innerHTML = `
18
+ container.innerHTML = `
19
19
  <ark-list></ark-list>
20
20
  `
21
21
 
22
22
  const list = container.querySelector('ark-list')
23
- list.source = ['Colombia', 'Uruguay', 'Brasil', 'Perú']
23
+ list.source = ['Colombia', 'Uruguay', 'Brasil', 'Perú']
24
24
  list.render()
25
25
  const item = list.querySelector('ark-list-item')
26
26
 
@@ -28,12 +28,12 @@ describe('List item', () => {
28
28
  })
29
29
 
30
30
  it('can be rendered with data', () => {
31
- container.innerHTML = `
31
+ container.innerHTML = `
32
32
  <ark-list></ark-list>
33
33
  `
34
34
 
35
35
  const list = container.querySelector('ark-list')
36
- list.source = ['Colombia']
36
+ list.source = ['Colombia']
37
37
  list.render()
38
38
  const item = list.querySelector('ark-list-item')
39
39
 
@@ -49,24 +49,24 @@ describe('List item', () => {
49
49
  `
50
50
 
51
51
  const list = container.querySelector('[data-template-list]')
52
- list.source = ['Colombia']
52
+ list.source = ['Colombia']
53
53
  list.render()
54
54
  const item = list.querySelector('ark-list-item')
55
-
55
+
56
56
  item.data = 'my data'
57
- item.template = data => /* html */ `<span>${data}</span>`
57
+ item.template = data => /* html */ `<span>${data}</span>`
58
58
  item.render()
59
59
 
60
60
  expect(item.innerHTML.trim()).toEqual('<span>my data</span>')
61
61
  })
62
-
62
+
63
63
  it('can be rendered with template', () => {
64
64
  container.innerHTML = `
65
65
  <ark-list data-template-list></ark-list>
66
66
  `
67
67
 
68
68
  const list = container.querySelector('[data-template-list]')
69
- list.source = ['Colombia']
69
+ list.source = ['Colombia']
70
70
  list.render()
71
71
  const item = list.querySelector('ark-list-item')
72
72
 
@@ -75,19 +75,17 @@ describe('List item', () => {
75
75
  item.render()
76
76
 
77
77
  item.addEventListener('list-item:selected', event => {
78
- expect(event['detail'].data).toEqual('my data')
78
+ expect(event.detail.data).toEqual('my data')
79
79
  })
80
80
  item.click()
81
81
  })
82
-
82
+
83
83
  it('can be rendered without template', () => {
84
84
  const item = new ListItem()
85
85
  item.init({
86
- data:'my data'
86
+ data: 'my data'
87
87
  }).render()
88
88
 
89
89
  expect(item.innerHTML.trim()).toEqual('my data')
90
-
91
90
  })
92
-
93
91
  })
@@ -1,24 +1,24 @@
1
- import { Component } from "../../../base/component/index.js"
2
- import { ListItem } from "./list.item.js"
1
+ import { Component } from '../../../base/component/index.js'
2
+ import { ListItem } from './list.item.js'
3
3
 
4
- const tag = "ark-list"
4
+ const tag = 'ark-list'
5
5
 
6
6
  export class List extends Component {
7
7
  constructor () {
8
8
  super()
9
- this.addEventListener("click", this._onSelected.bind(this))
10
- this.addEventListener("delete", this.onDeleted.bind(this))
9
+ this.addEventListener('click', this._onSelected.bind(this))
10
+ this.addEventListener('delete', this.onDeleted.bind(this))
11
11
  }
12
12
 
13
13
  /** @param {Object} context */
14
- init(context = {}) {
14
+ init (context = {}) {
15
15
  this.source = /** @type {Array} */ (context.source) || this.source || []
16
16
  this.template = context.template || this.template || ((data) => `${data}`)
17
17
 
18
18
  return super.init()
19
19
  }
20
20
 
21
- render() {
21
+ render () {
22
22
  const listData = this.select('data')
23
23
  const list = JSON.parse(listData?.textContent || null)
24
24
  const source = list || this.source
@@ -26,29 +26,29 @@ export class List extends Component {
26
26
  const itemTemplate = (this.select('template'))?.innerHTML
27
27
  this.template = itemTemplate ? this._format(itemTemplate) : this.template
28
28
 
29
- this.content = ""
29
+ this.content = ''
30
30
 
31
31
  source.forEach((data, index) => {
32
32
  const item = new ListItem()
33
33
 
34
- if (this.hasAttribute("click-disabled")) {
35
- item.setAttribute("click-disabled", "")
34
+ if (this.hasAttribute('click-disabled')) {
35
+ item.setAttribute('click-disabled', '')
36
36
  }
37
-
37
+
38
38
  this.appendChild(item)
39
39
 
40
40
  item.init({
41
- data: data,
42
- template: this.template,
43
- index: index,
44
- }).render()
41
+ data,
42
+ template: this.template,
43
+ index
44
+ }).render()
45
45
  })
46
46
 
47
47
  return super.render()
48
48
  }
49
49
 
50
50
  /** @param {number} start @param {number?} deleteCount */
51
- delete(start, deleteCount = 1) {
51
+ delete (start, deleteCount = 1) {
52
52
  this.source.splice(start, deleteCount)
53
53
  const deletions = []
54
54
  for (let i = start; i < (deleteCount + start); i++) {
@@ -58,37 +58,37 @@ export class List extends Component {
58
58
  deletions.map(item => item.remove())
59
59
  }
60
60
 
61
- _format(template) {
61
+ _format (template) {
62
62
  return (data) => Function(`return \`${template}\``).call(data)
63
63
  }
64
64
 
65
65
  /** @param {MouseEvent} event */
66
- _onSelected(event) {
66
+ _onSelected (event) {
67
67
  event.stopImmediatePropagation()
68
68
 
69
69
  const target = /** @type {HTMLElement} */ (event.target)
70
- const item = /** @type {ListItem} */ (target.closest("ark-list-item"))
70
+ const item = /** @type {ListItem} */ (target.closest('ark-list-item'))
71
71
 
72
- if (!item || item.hasAttribute("click-disabled")) return
72
+ if (!item || item.hasAttribute('click-disabled')) return
73
73
 
74
74
  this.dispatchEvent(
75
- new CustomEvent("list-selected", {
75
+ new CustomEvent('list-selected', {
76
76
  bubbles: true,
77
77
  detail: {
78
78
  index: item.index,
79
79
  data: item.data,
80
- origin: event,
81
- },
80
+ origin: event
81
+ }
82
82
  })
83
83
  )
84
84
  }
85
85
 
86
86
  /** @param {MouseEvent} event */
87
- onDeleted(event) {
87
+ onDeleted (event) {
88
88
  event.stopImmediatePropagation()
89
89
 
90
90
  const target = /** @type {HTMLElement} */ (event.target)
91
- const item = /** @type {ListItem} */ (target.closest("ark-list-item"))
91
+ const item = /** @type {ListItem} */ (target.closest('ark-list-item'))
92
92
 
93
93
  this.delete(Number(item.index))
94
94
  }