@awes-io/ui 2.29.0 → 2.31.0
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/CHANGELOG.md +67 -0
- package/assets/css/components/_index.css +2 -0
- package/assets/css/components/birthday-picker.css +18 -0
- package/assets/css/components/dropdown-button.css +5 -0
- package/assets/css/components/modal.css +1 -1
- package/assets/css/components/select.css +10 -0
- package/assets/css/components/table.css +4 -0
- package/assets/css/components/userpic.css +30 -0
- package/assets/js/string.js +55 -1
- package/components/1_atoms/AwDescription.vue +8 -1
- package/components/1_atoms/AwLabel.vue +1 -1
- package/components/2_molecules/AwSelect.vue +19 -4
- package/components/2_molecules/AwSelectObject.vue +22 -8
- package/components/2_molecules/AwUserpic.vue +24 -6
- package/components/3_organisms/AwBirthdayPicker.vue +6 -5
- package/components/3_organisms/AwMarkdownEditor.vue +1 -1
- package/components/3_organisms/AwModal.vue +2 -3
- package/components/3_organisms/AwSearch.vue +7 -2
- package/components/4_pages/AwPage.vue +1 -1
- package/components/5_layouts/AwLayoutCenter.vue +1 -1
- package/components/5_layouts/_AwHeaderNotification.vue +1 -1
- package/components/5_layouts/_AwMobileMenuItem.vue +1 -1
- package/components/5_layouts/_AwNoty.vue +2 -2
- package/components/_config.js +4 -0
- package/lang/de.js +1 -1
- package/lang/en.js +1 -1
- package/lang/ru.js +1 -1
- package/lang/uk.js +1 -1
- package/nuxt/templates/sanitize.plugin.js +5 -0
- package/package.json +3 -3
- package/readme.md +1 -0
- package/assets/.DS_Store +0 -0
- package/assets/css/.DS_Store +0 -0
- package/assets/js/.DS_Store +0 -0
- package/assets/svg/.DS_Store +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,73 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.31.0](https://github.com/awes-io/client/compare/@awes-io/ui@2.30.0...@awes-io/ui@2.31.0) (2021-10-21)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* bump version ([ed4612a](https://github.com/awes-io/client/commit/ed4612ad6f81c698a06590c91356c0a47be87f81))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* bump version ([dc0250d](https://github.com/awes-io/client/commit/dc0250d3b671a7df341ea5e6bb8d752577011c0f))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [2.30.0](https://github.com/awes-io/client/compare/@awes-io/ui@2.29.3...@awes-io/ui@2.30.0) (2021-10-21)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* **aw-modal:** overlay-aside animation fixed ([cd4e960](https://github.com/awes-io/client/commit/cd4e960f377af53df9f20492c857667baf636ba0))
|
|
28
|
+
* **aw-select-object:** do not encode search param ([4141879](https://github.com/awes-io/client/commit/41418793d0e3f3dd732155867b35ec9b98753333))
|
|
29
|
+
* sanitize v-html ([95ecf78](https://github.com/awes-io/client/commit/95ecf78cd95e9e8cab96d81e9fa0697a1e86e3bc))
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Features
|
|
33
|
+
|
|
34
|
+
* **aw-select:** disabling options added ([a83da1a](https://github.com/awes-io/client/commit/a83da1a0986d081f036ac4ce92ed7d9cc528105b))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
## [2.29.3](https://github.com/awes-io/client/compare/@awes-io/ui@2.29.2...@awes-io/ui@2.29.3) (2021-10-18)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Bug Fixes
|
|
44
|
+
|
|
45
|
+
* updated aw-search ([ac88aca](https://github.com/awes-io/client/commit/ac88acaa0e003e36c67ae5ac94450795dda7bf00))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
## [2.29.2](https://github.com/awes-io/client/compare/@awes-io/ui@2.29.1...@awes-io/ui@2.29.2) (2021-10-18)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
### Bug Fixes
|
|
55
|
+
|
|
56
|
+
* updated field for the search ([22d1a98](https://github.com/awes-io/client/commit/22d1a98d27ecee9070e709112242930eff3223c0))
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
## [2.29.1](https://github.com/awes-io/client/compare/@awes-io/ui@2.29.0...@awes-io/ui@2.29.1) (2021-10-14)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
### Bug Fixes
|
|
66
|
+
|
|
67
|
+
* **aw-description:** tag is span by default ([3441b5a](https://github.com/awes-io/client/commit/3441b5ac609224cb3ea5963915c9868f48c2317a))
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
6
73
|
# [2.29.0](https://github.com/awes-io/client/compare/@awes-io/ui@2.28.2...@awes-io/ui@2.29.0) (2021-10-04)
|
|
7
74
|
|
|
8
75
|
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
@import './avatar.css';
|
|
9
9
|
@import './banner-text.css';
|
|
10
10
|
@import './badge.css';
|
|
11
|
+
@import './birthday-picker.css';
|
|
11
12
|
@import './button.css';
|
|
12
13
|
@import './button-nav.css';
|
|
13
14
|
|
|
@@ -71,6 +72,7 @@
|
|
|
71
72
|
|
|
72
73
|
@import './select.css';
|
|
73
74
|
|
|
75
|
+
@import './userpic.css';
|
|
74
76
|
@import './uploader.css';
|
|
75
77
|
|
|
76
78
|
/* last because of @keyframes lowers performance */
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.aw-birthday-picker {
|
|
2
|
+
&__wrap {
|
|
3
|
+
display: flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: theme('spacing.4', 1rem);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
&__day {
|
|
9
|
+
min-width: 5rem;
|
|
10
|
+
flex-basis: 20%;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&__month,
|
|
14
|
+
&__year {
|
|
15
|
+
min-width: 5rem;
|
|
16
|
+
flex-basis: 40%;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -105,6 +105,16 @@
|
|
|
105
105
|
left: 0;
|
|
106
106
|
right: 0;
|
|
107
107
|
z-index: 120;
|
|
108
|
+
|
|
109
|
+
&::-webkit-scrollbar {
|
|
110
|
+
background-color: transparent;
|
|
111
|
+
height: 0.5rem;
|
|
112
|
+
width: 0.5rem;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
&::-webkit-scrollbar-thumb {
|
|
116
|
+
background-color: rgba(var(--c-on-surface-rgb), 0.1);
|
|
117
|
+
}
|
|
108
118
|
}
|
|
109
119
|
}
|
|
110
120
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
.aw-userpic {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
|
|
5
|
+
&--crop {
|
|
6
|
+
max-width: 14rem;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
&__content {
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
min-width: 0;
|
|
13
|
+
margin-left: theme('spacing.2', 0.5rem);
|
|
14
|
+
|
|
15
|
+
&--with-description {
|
|
16
|
+
|
|
17
|
+
font-size: theme('fontSize.sm', 0.875rem);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
&__name {
|
|
22
|
+
min-width: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
&__description {
|
|
26
|
+
color: var(--c-mono-400);
|
|
27
|
+
line-height: 1;
|
|
28
|
+
min-width: 0;
|
|
29
|
+
}
|
|
30
|
+
}
|
package/assets/js/string.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import insane from 'insane'
|
|
2
|
+
import { split, reduce, clone } from 'rambdax'
|
|
2
3
|
|
|
3
4
|
export const ucFirst = (text = '') => {
|
|
4
5
|
return text.charAt(0).toUpperCase() + text.substr(1)
|
|
@@ -34,3 +35,56 @@ export const hashStringToIndex = (str, limit) => {
|
|
|
34
35
|
|
|
35
36
|
return hash
|
|
36
37
|
}
|
|
38
|
+
|
|
39
|
+
export const SANITIZE_DEFAULTS = {
|
|
40
|
+
allowedAttributes: {
|
|
41
|
+
a: ['href', 'name', 'target', 'class', 'style'],
|
|
42
|
+
iframe: ['allowfullscreen', 'frameborder', 'src', 'class', 'style'],
|
|
43
|
+
img: [
|
|
44
|
+
'src',
|
|
45
|
+
'alt',
|
|
46
|
+
'srcset',
|
|
47
|
+
'sizes',
|
|
48
|
+
'width',
|
|
49
|
+
'height',
|
|
50
|
+
'class',
|
|
51
|
+
'style'
|
|
52
|
+
],
|
|
53
|
+
button: ['class', 'id', 'style'],
|
|
54
|
+
allowedTags: [
|
|
55
|
+
'a',
|
|
56
|
+
'b',
|
|
57
|
+
'br',
|
|
58
|
+
'del',
|
|
59
|
+
'div',
|
|
60
|
+
'em',
|
|
61
|
+
'i',
|
|
62
|
+
'img',
|
|
63
|
+
'ins',
|
|
64
|
+
'kbd',
|
|
65
|
+
'li',
|
|
66
|
+
'ol',
|
|
67
|
+
'p',
|
|
68
|
+
'span',
|
|
69
|
+
'strike',
|
|
70
|
+
'strong',
|
|
71
|
+
'sub',
|
|
72
|
+
'sup',
|
|
73
|
+
'u',
|
|
74
|
+
'ul'
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export const getSanitizer = (options, strict = false) => {
|
|
80
|
+
let _options = clone(options)
|
|
81
|
+
|
|
82
|
+
if (!strict) {
|
|
83
|
+
_options = { ...SANITIZE_DEFAULTS, ..._options }
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return (html) => (typeof html === 'string' ? insane(html, _options) : html)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export const sanitize = (html) =>
|
|
90
|
+
typeof html === 'string' ? insane(html, SANITIZE_DEFAULTS) : html
|
|
@@ -5,13 +5,20 @@
|
|
|
5
5
|
</template>
|
|
6
6
|
|
|
7
7
|
<script>
|
|
8
|
+
import { conf } from '@AwUtils/component'
|
|
9
|
+
import { AwDescription as _config } from '@AwConfig'
|
|
10
|
+
|
|
8
11
|
export default {
|
|
9
12
|
name: 'AwDescription',
|
|
10
13
|
|
|
14
|
+
_config,
|
|
15
|
+
|
|
11
16
|
props: {
|
|
12
17
|
tag: {
|
|
13
18
|
type: String,
|
|
14
|
-
default
|
|
19
|
+
default() {
|
|
20
|
+
return conf(this, 'tag')
|
|
21
|
+
}
|
|
15
22
|
}
|
|
16
23
|
}
|
|
17
24
|
}
|
|
@@ -192,13 +192,20 @@
|
|
|
192
192
|
<!-- options list -->
|
|
193
193
|
<template v-if="optionsList.length && _isEditingOptions">
|
|
194
194
|
<AwDropdownButton
|
|
195
|
-
v-for="({
|
|
195
|
+
v-for="({
|
|
196
|
+
optionLabel,
|
|
197
|
+
optionValue,
|
|
198
|
+
index,
|
|
199
|
+
active,
|
|
200
|
+
disabled
|
|
201
|
+
},
|
|
196
202
|
i) in optionsList"
|
|
197
203
|
:key="`${optionLabel}-${index}`"
|
|
198
204
|
:active="active"
|
|
199
205
|
:data-select-index="index"
|
|
200
206
|
:data-selected="active ? '' : null"
|
|
201
207
|
:data-value="optionValue"
|
|
208
|
+
:disabled="disabled"
|
|
202
209
|
tabindex="-1"
|
|
203
210
|
data-arrow-focus
|
|
204
211
|
>
|
|
@@ -244,6 +251,7 @@ import CancelToken from 'axios/lib/cancel/CancelToken'
|
|
|
244
251
|
import isCancel from 'axios/lib/cancel/isCancel'
|
|
245
252
|
import arrowFocusMixin from '@AwMixins/arrow-focus'
|
|
246
253
|
import { TEST_ID_ATTR } from '@AwUtils/constants'
|
|
254
|
+
import { sanitize } from '@AwUtils/string'
|
|
247
255
|
|
|
248
256
|
const returnSelf = (arg) => arg
|
|
249
257
|
|
|
@@ -274,6 +282,11 @@ export default {
|
|
|
274
282
|
default: ''
|
|
275
283
|
},
|
|
276
284
|
|
|
285
|
+
optionDisabled: {
|
|
286
|
+
type: Function,
|
|
287
|
+
default: () => false
|
|
288
|
+
},
|
|
289
|
+
|
|
277
290
|
trackBy: {
|
|
278
291
|
type: String,
|
|
279
292
|
default: ''
|
|
@@ -423,6 +436,7 @@ export default {
|
|
|
423
436
|
const matchSerach = this._hasInternalSearch
|
|
424
437
|
? this._matchSearch(option)
|
|
425
438
|
: true
|
|
439
|
+
const disabled = this.optionDisabled(option)
|
|
426
440
|
|
|
427
441
|
return inRange && matchSerach
|
|
428
442
|
? acc.concat({
|
|
@@ -430,7 +444,8 @@ export default {
|
|
|
430
444
|
optionLabel: this._getLabel(option),
|
|
431
445
|
optionValue: this._getValue(option),
|
|
432
446
|
index,
|
|
433
|
-
active
|
|
447
|
+
active,
|
|
448
|
+
disabled
|
|
434
449
|
})
|
|
435
450
|
: acc
|
|
436
451
|
}, [])
|
|
@@ -654,11 +669,11 @@ export default {
|
|
|
654
669
|
|
|
655
670
|
_highlightOption(option) {
|
|
656
671
|
if (!this.searchPhrase.trim().length) {
|
|
657
|
-
return option
|
|
672
|
+
return sanitize(option)
|
|
658
673
|
}
|
|
659
674
|
|
|
660
675
|
try {
|
|
661
|
-
const opt = String(option)
|
|
676
|
+
const opt = String(sanitize(option))
|
|
662
677
|
const phrase = this._escapeRegExpSpecialChars(this.searchPhrase)
|
|
663
678
|
const matches = opt.match(new RegExp(phrase, 'gi'))
|
|
664
679
|
return this._addBoldTagsToString(opt, matches)
|
|
@@ -120,13 +120,20 @@
|
|
|
120
120
|
<!-- options list -->
|
|
121
121
|
<template v-if="optionsList.length">
|
|
122
122
|
<AwDropdownButton
|
|
123
|
-
v-for="({
|
|
123
|
+
v-for="({
|
|
124
|
+
optionLabel,
|
|
125
|
+
optionValue,
|
|
126
|
+
index,
|
|
127
|
+
active,
|
|
128
|
+
disabled
|
|
129
|
+
},
|
|
124
130
|
i) in optionsList"
|
|
125
131
|
:key="`${optionLabel}-${index}`"
|
|
126
132
|
:active="active"
|
|
127
133
|
:data-select-index="index"
|
|
128
134
|
:data-selected="active ? '' : null"
|
|
129
135
|
:data-value="optionValue"
|
|
136
|
+
:disabled="disabled"
|
|
130
137
|
tabindex="-1"
|
|
131
138
|
data-arrow-focus
|
|
132
139
|
>
|
|
@@ -174,6 +181,7 @@ import CancelToken from 'axios/lib/cancel/CancelToken'
|
|
|
174
181
|
import isCancel from 'axios/lib/cancel/isCancel'
|
|
175
182
|
import arrowFocusMixin from '@AwMixins/arrow-focus'
|
|
176
183
|
import { TEST_ID_ATTR } from '@AwUtils/constants'
|
|
184
|
+
import { sanitize } from '@AwUtils/string'
|
|
177
185
|
import AwSelectInput from './_AwSelectInput.vue'
|
|
178
186
|
|
|
179
187
|
const isObject = (val) => val !== null && typeof val === 'object'
|
|
@@ -211,6 +219,11 @@ export default {
|
|
|
211
219
|
default: ''
|
|
212
220
|
},
|
|
213
221
|
|
|
222
|
+
optionDisabled: {
|
|
223
|
+
type: Function,
|
|
224
|
+
default: () => false
|
|
225
|
+
},
|
|
226
|
+
|
|
214
227
|
trackBy: {
|
|
215
228
|
type: String,
|
|
216
229
|
default: ''
|
|
@@ -339,13 +352,15 @@ export default {
|
|
|
339
352
|
const optionLabel = this._getLabel(option)
|
|
340
353
|
const optionValue = this._getValue(option)
|
|
341
354
|
const active = this._isActive(optionValue)
|
|
355
|
+
const disabled = this.optionDisabled(option)
|
|
342
356
|
|
|
343
357
|
return acc.concat({
|
|
344
358
|
option,
|
|
345
359
|
optionLabel,
|
|
346
360
|
optionValue,
|
|
347
361
|
index,
|
|
348
|
-
active
|
|
362
|
+
active,
|
|
363
|
+
disabled
|
|
349
364
|
})
|
|
350
365
|
} else {
|
|
351
366
|
return acc
|
|
@@ -597,9 +612,11 @@ export default {
|
|
|
597
612
|
}
|
|
598
613
|
|
|
599
614
|
try {
|
|
600
|
-
return
|
|
615
|
+
return sanitize(
|
|
616
|
+
option.replace(this._optionSearchRegEx, '<b>$&</b>')
|
|
617
|
+
)
|
|
601
618
|
} catch (e) {
|
|
602
|
-
return option
|
|
619
|
+
return sanitize(option)
|
|
603
620
|
}
|
|
604
621
|
},
|
|
605
622
|
|
|
@@ -730,10 +747,7 @@ export default {
|
|
|
730
747
|
this.cancellation = CancelToken.source()
|
|
731
748
|
|
|
732
749
|
try {
|
|
733
|
-
let config = this.options(
|
|
734
|
-
encodeURIComponent(this.searchPhrase),
|
|
735
|
-
page
|
|
736
|
-
)
|
|
750
|
+
let config = this.options(this.searchPhrase, page)
|
|
737
751
|
|
|
738
752
|
if (typeof config === 'string') {
|
|
739
753
|
config = {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<span class="
|
|
2
|
+
<span class="aw-userpic" :class="{ 'aw-userpic--crop': crop }">
|
|
3
3
|
<AwAvatar
|
|
4
4
|
:size="bigImage ? 36 : 22"
|
|
5
5
|
:src="src"
|
|
@@ -10,17 +10,23 @@
|
|
|
10
10
|
<slot name="name" v-bind="{ name, description }">
|
|
11
11
|
<span
|
|
12
12
|
v-if="!hideName"
|
|
13
|
-
class="
|
|
14
|
-
:class="{
|
|
13
|
+
class="aw-userpic__content"
|
|
14
|
+
:class="{
|
|
15
|
+
'aw-userpic__content--with-description':
|
|
16
|
+
!!description || $scopedSlots.description
|
|
17
|
+
}"
|
|
15
18
|
>
|
|
16
|
-
<span class="
|
|
19
|
+
<span class="aw-userpic__name" :class="{ truncate }">
|
|
17
20
|
{{ name }} <slot name="after-name" v-bind="{ name }" />
|
|
18
21
|
</span>
|
|
19
22
|
|
|
20
23
|
<slot name="description" v-bind="{ name, description }">
|
|
21
|
-
<
|
|
24
|
+
<AwDescription
|
|
25
|
+
class="aw-userpic__description"
|
|
26
|
+
:class="{ truncate }"
|
|
27
|
+
>
|
|
22
28
|
{{ description }} <slot name="after-description" />
|
|
23
|
-
</
|
|
29
|
+
</AwDescription>
|
|
24
30
|
</slot>
|
|
25
31
|
</span>
|
|
26
32
|
</slot>
|
|
@@ -66,6 +72,18 @@ export default {
|
|
|
66
72
|
bigImage: {
|
|
67
73
|
type: Boolean,
|
|
68
74
|
default: false
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
// Crop max width
|
|
78
|
+
crop: {
|
|
79
|
+
type: Boolean,
|
|
80
|
+
default: true
|
|
81
|
+
},
|
|
82
|
+
|
|
83
|
+
// Truncate title and description
|
|
84
|
+
truncate: {
|
|
85
|
+
type: Boolean,
|
|
86
|
+
default: true
|
|
69
87
|
}
|
|
70
88
|
},
|
|
71
89
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<AwInfo :label="label">
|
|
3
|
-
<
|
|
2
|
+
<AwInfo :label="label" class="aw-birthday-picker">
|
|
3
|
+
<div class="aw-birthday-picker__wrap">
|
|
4
4
|
<AwSelect
|
|
5
5
|
v-model="month"
|
|
6
|
-
:span="{ md: 2 }"
|
|
7
6
|
:options="monthsList"
|
|
8
7
|
:required="required"
|
|
9
8
|
:name="_inputKeys.month"
|
|
10
9
|
:label="$t('AwBirthdayPicker.month')"
|
|
11
10
|
track-by="value"
|
|
12
11
|
option-label="text"
|
|
12
|
+
class="aw-birthday-picker__month"
|
|
13
13
|
@input="checkMaxDay"
|
|
14
14
|
/>
|
|
15
15
|
|
|
@@ -19,10 +19,11 @@
|
|
|
19
19
|
:required="required"
|
|
20
20
|
:name="_inputKeys.day"
|
|
21
21
|
:label="$t('AwBirthdayPicker.day')"
|
|
22
|
+
class="aw-birthday-picker__day"
|
|
22
23
|
@input="emit"
|
|
23
24
|
/>
|
|
24
25
|
|
|
25
|
-
<div class="
|
|
26
|
+
<div class="aw-birthday-picker__year">
|
|
26
27
|
<AwLink
|
|
27
28
|
v-if="!_showYear"
|
|
28
29
|
:text="$t('AwBirthdayPicker.set_year')"
|
|
@@ -42,7 +43,7 @@
|
|
|
42
43
|
@clear="clearYear"
|
|
43
44
|
/>
|
|
44
45
|
</div>
|
|
45
|
-
</
|
|
46
|
+
</div>
|
|
46
47
|
</AwInfo>
|
|
47
48
|
</template>
|
|
48
49
|
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
<aside
|
|
12
12
|
v-show="isOpened"
|
|
13
13
|
:class="[className, `is-${theme}`]"
|
|
14
|
-
:tabindex="isOpened ? '0' : '-1'"
|
|
15
14
|
role="dialog"
|
|
16
15
|
:aria-hidden="isOpened ? 'false' : 'true'"
|
|
17
16
|
:aria-label="title"
|
|
@@ -23,7 +22,7 @@
|
|
|
23
22
|
>
|
|
24
23
|
<div :class="elClasses.dialog" role="document">
|
|
25
24
|
<!-- header -->
|
|
26
|
-
<div :class="elClasses.header">
|
|
25
|
+
<div ref="header" tabindex="-1" :class="elClasses.header">
|
|
27
26
|
<div :class="elClasses.title">
|
|
28
27
|
{{ title }}
|
|
29
28
|
</div>
|
|
@@ -247,7 +246,7 @@ export default {
|
|
|
247
246
|
if (isVisible) {
|
|
248
247
|
if (typeof document === 'undefined') return
|
|
249
248
|
this.lastFocused = document.activeElement
|
|
250
|
-
this.$nextTick(() => this.$
|
|
249
|
+
this.$nextTick(() => this.$refs.header.focus())
|
|
251
250
|
window.addEventListener('keyup', this._escButtonHandler)
|
|
252
251
|
} else {
|
|
253
252
|
window.removeEventListener('keyup', this._escButtonHandler)
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
v-bind="$attrs"
|
|
6
6
|
v-model="text"
|
|
7
7
|
autocomplete="off"
|
|
8
|
+
class="aw-search"
|
|
8
9
|
:placeholder="placeholder"
|
|
9
10
|
@keydown.enter.prevent="_setSearchImmediate"
|
|
10
11
|
>
|
|
@@ -12,9 +13,13 @@
|
|
|
12
13
|
<AwIconSystemMono
|
|
13
14
|
v-if="!$route.query[param]"
|
|
14
15
|
name="search"
|
|
15
|
-
class="h-full w-10 p-3"
|
|
16
|
+
class="aw-search__icon-default h-full w-10 p-3"
|
|
16
17
|
/>
|
|
17
|
-
<button
|
|
18
|
+
<button
|
|
19
|
+
v-else
|
|
20
|
+
class="aw-search__icon-close focus:outline-none"
|
|
21
|
+
@click="_clear"
|
|
22
|
+
>
|
|
18
23
|
<AwIconSystemMono name="close" class="h-full w-10 p-3" />
|
|
19
24
|
</button>
|
|
20
25
|
</template>
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
class="aw-header-notification__content container-fluid"
|
|
15
15
|
>
|
|
16
16
|
<AwIcon v-if="config.icon" :name="config.icon" />
|
|
17
|
-
<span v-html="config.text" class="text-center"></span>
|
|
17
|
+
<span v-html="$sanitize(config.text)" class="text-center"></span>
|
|
18
18
|
<AwButton
|
|
19
19
|
v-for="({ listeners, ...props }, i) in config.buttons"
|
|
20
20
|
:key="i"
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
</template>
|
|
54
54
|
|
|
55
55
|
<script>
|
|
56
|
-
import
|
|
56
|
+
import { sanitize } from '@AwUtils/string'
|
|
57
57
|
import AwIcon from '@AwAtoms/AwIcon/AwIcon.vue'
|
|
58
58
|
import AwIconSystemMono from '@AwAtoms/AwIcon/AwIconSystemMono.vue'
|
|
59
59
|
|
|
@@ -100,6 +100,6 @@ export default {
|
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
102
|
|
|
103
|
-
sanitize
|
|
103
|
+
sanitize
|
|
104
104
|
}
|
|
105
105
|
</script>
|
package/components/_config.js
CHANGED
package/lang/de.js
CHANGED
package/lang/en.js
CHANGED
package/lang/ru.js
CHANGED
package/lang/uk.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@awes-io/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.31.0",
|
|
4
4
|
"description": "User Interface (UI) components",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ui",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"awes-io",
|
|
10
10
|
"material design"
|
|
11
11
|
],
|
|
12
|
-
"homepage": "https://
|
|
12
|
+
"homepage": "https://awes.io",
|
|
13
13
|
"bugs": {
|
|
14
14
|
"url": "https://github.com/awes-io/client/issues"
|
|
15
15
|
},
|
|
@@ -123,5 +123,5 @@
|
|
|
123
123
|
"vue-template-compiler": "^2.6.10",
|
|
124
124
|
"webfonts-generator": "^0.4.0"
|
|
125
125
|
},
|
|
126
|
-
"gitHead": "
|
|
126
|
+
"gitHead": "c2b5c259d670718d335f294b240d5c264f4c30b9"
|
|
127
127
|
}
|
package/readme.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Awes.io/Ui
|
package/assets/.DS_Store
DELETED
|
Binary file
|
package/assets/css/.DS_Store
DELETED
|
Binary file
|
package/assets/js/.DS_Store
DELETED
|
Binary file
|
package/assets/svg/.DS_Store
DELETED
|
Binary file
|