@bildvitta/quasar-ui-asteroid 3.17.0-beta.2 → 3.17.0-beta.21

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 (51) hide show
  1. package/package.json +2 -2
  2. package/src/assets/sounds/nave-notification.mp3 +0 -0
  3. package/src/components/actions/QasActions.vue +1 -1
  4. package/src/components/app-menu/QasAppMenu.vue +6 -1
  5. package/src/components/avatar/QasAvatar.vue +7 -8
  6. package/src/components/board-generator/QasBoardGenerator.vue +407 -40
  7. package/src/components/board-generator/QasBoardGenerator.yml +53 -12
  8. package/src/components/btn-dropdown/QasBtnDropdown.vue +14 -1
  9. package/src/components/card/QasCard.vue +13 -4
  10. package/src/components/chart-view/QasChartView.vue +44 -20
  11. package/src/components/chart-view/QasChartView.yml +10 -0
  12. package/src/components/checkbox/QasCheckbox.vue +30 -9
  13. package/src/components/checkbox/QasCheckbox.yml +5 -0
  14. package/src/components/copy/QasCopy.vue +12 -2
  15. package/src/components/copy/QasCopy.yml +8 -0
  16. package/src/components/date-time-input/QasDateTimeInput.vue +1 -1
  17. package/src/components/dialog/QasDialog.vue +3 -3
  18. package/src/components/expansion-item/QasExpansionItem.vue +120 -34
  19. package/src/components/expansion-item/QasExpansionItem.yml +38 -5
  20. package/src/components/filters/QasFilters.vue +1 -1
  21. package/src/components/filters/private/PvFiltersButton.vue +1 -1
  22. package/src/components/form-generator/QasFormGenerator.vue +39 -27
  23. package/src/components/form-generator/QasFormGenerator.yml +3 -0
  24. package/src/components/grabbable/QasGrabbable.vue +14 -6
  25. package/src/components/grabbable/QasGrabbable.yml +4 -0
  26. package/src/components/grid-generator/QasGridGenerator.vue +67 -34
  27. package/src/components/grid-generator/QasGridGenerator.yml +15 -0
  28. package/src/components/header/QasHeader.vue +58 -12
  29. package/src/components/header/QasHeader.yml +5 -0
  30. package/src/components/infinite-scroll/QasInfiniteScroll.vue +16 -17
  31. package/src/components/infinite-scroll/QasInfiniteScroll.yml +7 -0
  32. package/src/components/list-items/QasListItems.vue +28 -4
  33. package/src/components/list-items/QasListItems.yml +10 -0
  34. package/src/components/list-view/QasListView.vue +17 -5
  35. package/src/components/list-view/QasListView.yml +9 -0
  36. package/src/components/nested-fields/QasNestedFields.vue +91 -36
  37. package/src/components/nested-fields/QasNestedFields.yml +23 -0
  38. package/src/components/radio/QasRadio.vue +24 -5
  39. package/src/components/radio/QasRadio.yml +6 -0
  40. package/src/components/select/QasSelect.vue +129 -5
  41. package/src/components/select/QasSelect.yml +11 -0
  42. package/src/components/stepper-form-view/QasStepperFormView.yml +1 -1
  43. package/src/components/table-generator/QasTableGenerator.vue +10 -1
  44. package/src/components/text-truncate/QasTextTruncate.vue +11 -4
  45. package/src/components/text-truncate/QasTextTruncate.yml +4 -0
  46. package/src/composables/private/use-generator.js +3 -9
  47. package/src/composables/use-notifications.js +14 -0
  48. package/src/css/components/field.scss +13 -6
  49. package/src/css/components/item.scss +5 -1
  50. package/src/enums/Spacing.js +33 -0
  51. package/src/helpers/set-scroll-on-grab.js +9 -1
@@ -51,6 +51,10 @@ props:
51
51
  desc: Utiliza a propriedade "list" como array de objeto contendo label (uso junto a prop list).
52
52
  type: Boolean
53
53
 
54
+ empty-text:
55
+ desc: Texto a ser exibido no caso de não houver itens no "list" ou o "text" for vazio.
56
+ type: String
57
+
54
58
  slots:
55
59
  default:
56
60
  desc: slot padrão que é utilizado para acessar o texto original (tanto o que é truncado quando o de dentro do dialog)
@@ -21,7 +21,7 @@ export const baseProps = {
21
21
  },
22
22
 
23
23
  gutter: {
24
- default: undefined,
24
+ default: Spacing.Md,
25
25
  type: [String, Boolean],
26
26
  validator: gutterValidator
27
27
  }
@@ -46,19 +46,13 @@ export default function ({ props = {} }) {
46
46
  const classes = computed(() => {
47
47
  const classesList = ['row']
48
48
 
49
- if (defaultGutter.value) {
50
- classesList.push(`q-col-gutter-${defaultGutter.value}`)
49
+ if (props.gutter) {
50
+ classesList.push(`q-col-gutter-${props.gutter}`)
51
51
  }
52
52
 
53
53
  return classesList
54
54
  })
55
55
 
56
- const defaultGutter = computed(() => {
57
- if (props.gutter) return props.gutter
58
-
59
- return props.useInline ? Spacing.Md : Spacing.Lg
60
- })
61
-
62
56
  /**
63
57
  * @function
64
58
  * @param {Object} options
@@ -4,6 +4,8 @@ import hasParentByClassName from '../helpers/private/has-parent-by-class-name'
4
4
  import { Notify } from 'quasar'
5
5
  import { ref } from 'vue'
6
6
 
7
+ import naveNotificationSound from '../assets/sounds/nave-notification.mp3'
8
+
7
9
  const callbackFunctions = {
8
10
  onNotificationReceived: []
9
11
  }
@@ -63,6 +65,8 @@ export default function () {
63
65
  timeout: 30000
64
66
  })
65
67
 
68
+ sendNotificationSound()
69
+
66
70
  /**
67
71
  * Função que é chamada quando o usuário clica na notificação, se a notificação
68
72
  * tem link, então ele vai ser redirecionado para o link em uma nova aba, caso
@@ -96,6 +100,16 @@ export default function () {
96
100
  </div>
97
101
  `)
98
102
  }
103
+
104
+ /**
105
+ * Função que toca o som de notificação.
106
+ */
107
+ function sendNotificationSound () {
108
+ const audio = new Audio(naveNotificationSound)
109
+
110
+ // o áudio agora é reproduzível; reproduza-o se as permissões permitirem
111
+ audio.addEventListener('canplaythrough', audio.play)
112
+ }
99
113
  }
100
114
 
101
115
  return {
@@ -44,15 +44,15 @@
44
44
  &--focused.q-field--labeled {
45
45
  transition: transform var(--qas-generic-transition), font-size var(--qas-generic-transition);
46
46
 
47
- .q-field__label {
47
+ &:not(&.qas-select--filter):not(&.qas-select--has-icon) .q-field__label {
48
48
  transform: translateY(-10px) scale(0.85) !important;
49
49
  }
50
50
 
51
- .q-field__prepend {
52
- transition: transform var(--qas-generic-transition);
53
- transform: translateY(6px) !important;
51
+ &.qas-select--filter:not(&.qas-select--has-icon) .q-field__label {
52
+ transform: translateY(-8px) scale(0.85) !important;
54
53
  }
55
54
 
55
+ .q-field__prepend,
56
56
  .q-field__append {
57
57
  transition: transform var(--qas-generic-transition);
58
58
  transform: translateY(6px) !important;
@@ -65,8 +65,8 @@
65
65
 
66
66
  &--float.qas-numeric-input--has-icon,
67
67
  &--focused.qas-numeric-input--has-icon,
68
- &--float.qas-select--has-icon,
69
- &--focused.qas-select--has-icon,
68
+ &--float.qas-select--has-icon:not(.qas-select--filter),
69
+ &--focused.qas-select--has-icon:not(.qas-select--filter),
70
70
  &--float.qas-input--has-icon,
71
71
  &--focused.qas-input--has-icon {
72
72
  .q-field__label {
@@ -74,6 +74,13 @@
74
74
  }
75
75
  }
76
76
 
77
+ &--float.qas-select--has-icon.qas-select--filter,
78
+ &--focused.qas-select--has-icon.qas-select--filter {
79
+ .q-field__label {
80
+ transform: translate(-24px, -8px) scale(0.85) !important;
81
+ }
82
+ }
83
+
77
84
  &--outlined .q-field__control {
78
85
  background-color: white;
79
86
  border-radius: $generic-border-radius;
@@ -27,13 +27,17 @@
27
27
 
28
28
  &--clickable:not(&--active) {
29
29
  color: $grey-10;
30
- transition: color 300ms;
30
+ transition: var(--qas-generic-transition);
31
31
 
32
32
  &:not(&.q-router-link--active):hover {
33
33
  color: var(--q-primary-contrast);
34
34
  }
35
35
  }
36
36
 
37
+ &__label--caption {
38
+ transition: var(--qas-generic-transition);
39
+ }
40
+
37
41
  &__section--avatar {
38
42
  min-width: 0;
39
43
  }
@@ -63,3 +63,36 @@ export const SpacingWithUnit = {
63
63
  '4xl': '56px',
64
64
  '5xl': '64px'
65
65
  }
66
+
67
+ /**
68
+ * Todas variáveis utilizadas para espaçamentos, com unidade de medida.
69
+ *
70
+ * @property
71
+ * @name SpacingWithUnit
72
+ * @readonly
73
+ * @enum
74
+ * @type {{
75
+ * None: 0,
76
+ * Xs: 4,
77
+ * Sm: 8,
78
+ * Md: 16,
79
+ * Lg: 24,
80
+ * Xl: 32,
81
+ * '2xl': 40,
82
+ * '3xl': 48,
83
+ * '4xl': 56,
84
+ * '5xl': 64
85
+ * }}
86
+ */
87
+ export const SpacingWithNumber = {
88
+ None: 0,
89
+ Xs: 4,
90
+ Sm: 8,
91
+ Md: 16,
92
+ Lg: 24,
93
+ Xl: 32,
94
+ '2xl': 40,
95
+ '3xl': 48,
96
+ '4xl': 56,
97
+ '5xl': 64
98
+ }
@@ -7,10 +7,11 @@
7
7
  * onMoveFn: function({ element: HTMLElement, event: MouseEvent | TouchEvent }),
8
8
  * onScrollFn: function({ element: HTMLElement, event: Event })
9
9
  * }} options
10
+ * @param {String} cancelMouseDownTarget
10
11
  *
11
12
  * @returns {{ element: HTMLElement, destroyEvents: function }}
12
13
  */
13
- export default function (element, options = {}) {
14
+ export default function (element, options = {}, cancelMouseDownTarget) {
14
15
  let isDown = false
15
16
  let startX
16
17
  let scrollLeft
@@ -46,6 +47,13 @@ export default function (element, options = {}) {
46
47
  }
47
48
 
48
49
  function onMouseEnter (event) {
50
+ /**
51
+ * closest busca ancestral mais próximo de um elemento, ou seja, verifica se no event que recebo, tenho a classe no qual nao se deve aplicar o grab.
52
+ */
53
+ const targetElement = cancelMouseDownTarget ? event.target.closest(`.${cancelMouseDownTarget}`) : null
54
+
55
+ if (!!cancelMouseDownTarget && !!targetElement) return null
56
+
49
57
  onEnter()
50
58
 
51
59
  startX = event.pageX - element.offsetLeft