@bildvitta/quasar-ui-asteroid 3.0.0-beta.7 → 3.0.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.
Files changed (106) hide show
  1. package/dist/api/QasAppBar.json +0 -4
  2. package/dist/api/QasBtn.json +2 -1
  3. package/dist/api/QasCard.json +13 -9
  4. package/dist/api/QasDateTimeInput.json +12 -12
  5. package/dist/api/QasDialog.json +6 -2
  6. package/dist/api/QasFilters.json +4 -4
  7. package/dist/api/QasFormGenerator.json +33 -2
  8. package/dist/api/QasFormView.json +43 -15
  9. package/dist/api/QasGridGenerator.json +5 -4
  10. package/dist/api/QasInput.json +1 -1
  11. package/dist/api/QasListItems.json +18 -17
  12. package/dist/api/QasListView.json +21 -7
  13. package/dist/api/QasNestedFields.json +13 -3
  14. package/dist/api/QasNumericInput.json +10 -10
  15. package/dist/api/QasPasswordInput.json +1 -1
  16. package/dist/api/QasSearchBox.json +85 -3
  17. package/dist/api/QasSelect.json +81 -14
  18. package/dist/api/QasSelectList.json +16 -14
  19. package/dist/api/QasSignaturePad.json +1 -1
  20. package/dist/api/QasSingleView.json +13 -4
  21. package/dist/api/QasTabsGenerator.json +5 -2
  22. package/dist/api/QasUploader.json +5 -0
  23. package/dist/asteroid.cjs.css +1 -1
  24. package/dist/asteroid.cjs.js +1522 -706
  25. package/dist/asteroid.cjs.min.js +2 -2
  26. package/dist/asteroid.esm.css +1 -1
  27. package/dist/asteroid.esm.js +1525 -709
  28. package/dist/asteroid.esm.min.js +2 -2
  29. package/dist/asteroid.umd.css +1 -1
  30. package/dist/asteroid.umd.js +1525 -710
  31. package/dist/asteroid.umd.min.js +2 -2
  32. package/dist/vetur/asteroid-attributes.json +176 -100
  33. package/dist/vetur/asteroid-tags.json +60 -41
  34. package/package.json +1 -1
  35. package/src/components/actions-menu/QasActionsMenu.vue +2 -8
  36. package/src/components/app-bar/QasAppBar.vue +16 -12
  37. package/src/components/app-bar/QasAppBar.yml +0 -4
  38. package/src/components/avatar/QasAvatar.vue +0 -4
  39. package/src/components/btn/QasBtn.vue +5 -8
  40. package/src/components/btn/QasBtn.yml +2 -1
  41. package/src/components/card/QasCard.vue +18 -9
  42. package/src/components/card/QasCard.yml +13 -9
  43. package/src/components/date-time-input/QasDateTimeInput.vue +39 -41
  44. package/src/components/date-time-input/QasDateTimeInput.yml +11 -12
  45. package/src/components/delete/QasDelete.vue +15 -1
  46. package/src/components/dialog/QasDialog.vue +26 -3
  47. package/src/components/dialog/QasDialog.yml +6 -3
  48. package/src/components/dialog-router/QasDialogRouter.vue +1 -1
  49. package/src/components/field/QasField.vue +15 -14
  50. package/src/components/filters/QasFilters.vue +27 -10
  51. package/src/components/filters/QasFilters.yml +4 -4
  52. package/src/components/form-generator/QasFormGenerator.vue +87 -12
  53. package/src/components/form-generator/QasFormGenerator.yml +16 -2
  54. package/src/components/form-view/QasFormView.vue +138 -56
  55. package/src/components/form-view/QasFormView.yml +39 -15
  56. package/src/components/grid-generator/QasGridGenerator.vue +23 -7
  57. package/src/components/grid-generator/QasGridGenerator.yml +5 -4
  58. package/src/components/input/QasInput.vue +37 -21
  59. package/src/components/input/QasInput.yml +1 -1
  60. package/src/components/layout/QasLayout.vue +4 -0
  61. package/src/components/list-items/QasListItems.vue +15 -23
  62. package/src/components/list-items/QasListItems.yml +14 -15
  63. package/src/components/list-view/QasListView.vue +45 -24
  64. package/src/components/list-view/QasListView.yml +19 -7
  65. package/src/components/map/QasMap.vue +5 -5
  66. package/src/components/nested-fields/QasNestedFields.vue +29 -21
  67. package/src/components/nested-fields/QasNestedFields.yml +9 -3
  68. package/src/components/numeric-input/QasNumericInput.vue +14 -14
  69. package/src/components/numeric-input/QasNumericInput.yml +10 -10
  70. package/src/components/page-header/QasPageHeader.vue +14 -11
  71. package/src/components/password-input/QasPasswordInput.vue +17 -16
  72. package/src/components/password-input/QasPasswordInput.yml +1 -1
  73. package/src/components/profile/QasProfile.vue +1 -1
  74. package/src/components/search-box/QasSearchBox.vue +138 -42
  75. package/src/components/search-box/QasSearchBox.yml +69 -2
  76. package/src/components/select/QasSelect.vue +63 -53
  77. package/src/components/select/QasSelect.yml +64 -13
  78. package/src/components/select-list/QasSelectList.vue +11 -27
  79. package/src/components/select-list/QasSelectList.yml +13 -14
  80. package/src/components/signature-pad/QasSignaturePad.yml +1 -1
  81. package/src/components/signature-uploader/QasSignatureUploader.vue +7 -5
  82. package/src/components/single-view/QasSingleView.vue +22 -6
  83. package/src/components/single-view/QasSingleView.yml +11 -4
  84. package/src/components/table-generator/QasTableGenerator.vue +13 -2
  85. package/src/components/tabs-generator/QasTabsGenerator.vue +2 -2
  86. package/src/components/tabs-generator/QasTabsGenerator.yml +2 -2
  87. package/src/components/text-truncate/QasTextTruncate.vue +1 -1
  88. package/src/components/uploader/QasUploader.vue +62 -15
  89. package/src/components/uploader/QasUploader.yml +5 -0
  90. package/src/helpers/camelize-fields-name.js +15 -0
  91. package/src/helpers/filters.js +2 -0
  92. package/src/helpers/get-normalized-options.js +20 -0
  93. package/src/helpers/handle-process.js +13 -0
  94. package/src/helpers/index.js +3 -0
  95. package/src/mixins/generator.js +10 -2
  96. package/src/mixins/index.js +2 -0
  97. package/src/mixins/search-filter.js +227 -0
  98. package/src/mixins/view.js +35 -13
  99. package/src/pages/Forbidden.vue +3 -1
  100. package/src/pages/NotFound.vue +3 -1
  101. package/src/pages/ServerError.vue +3 -1
  102. package/src/pages/Unauthorized.vue +28 -0
  103. package/src/plugins/index.js +4 -2
  104. package/src/plugins/logger/Logger.js +44 -0
  105. package/src/plugins/logger/Logger.yml +9 -0
  106. package/src/vue-plugin.js +6 -3
@@ -4,10 +4,6 @@
4
4
  "desc": "Cria um seção para alertar sobre um conteúdo."
5
5
  },
6
6
  "props": {
7
- "is-auth": {
8
- "desc": "Controla se mostra ou não o menu de usuário.",
9
- "type": "Boolean"
10
- },
11
7
  "notifications": {
12
8
  "desc": "Ícone de notificação que fica ao lado do menu de usuário.",
13
9
  "type": "Object",
@@ -7,8 +7,9 @@
7
7
  "desc": "O mesmo botão do Quasar (QBtn), mas com o nosso estilo, tem acesso a todas propriedades do componente do quasar. Tem a função de criar gatilhos para ações. Eles podem ser utilizados isoladamente ou ​​como parte de outros componentes de padrões maiores, como formulários, caixas de diálogo e feedbacks."
8
8
  },
9
9
  "props": {
10
- "hide-label-on-small-screen": {
10
+ "use-label-on-small-screen": {
11
11
  "desc": "Esconde o rótulo (label) do botão quando o tamanho da tela for pequeno (esta propriedade só funciona se o \"rotulo\") for passado via propriedade \"label\".",
12
+ "default": true,
12
13
  "type": "Boolean"
13
14
  },
14
15
  "label": {
@@ -4,15 +4,6 @@
4
4
  "desc": "Componente de card."
5
5
  },
6
6
  "props": {
7
- "bg-image-position": {
8
- "desc": "Posição da imagem \"background-position\".",
9
- "default": "center",
10
- "type": "String"
11
- },
12
- "form-mode": {
13
- "desc": "Modo de formulário, altera o estilo quando está em uma pagina de formulário.",
14
- "type": "Boolean"
15
- },
16
7
  "gutter": {
17
8
  "desc": "Espaçamento dentro <q-card-section /> onde fica o slot \"default\".",
18
9
  "default": "sm",
@@ -30,6 +21,19 @@
30
21
  "default": [],
31
22
  "type": "Array"
32
23
  },
24
+ "image-position": {
25
+ "desc": "Posição da imagem \"background-position\".",
26
+ "default": "center",
27
+ "type": "String"
28
+ },
29
+ "outlined": {
30
+ "desc": "Insere uma borda sólida em volta do componente.",
31
+ "type": "Boolean"
32
+ },
33
+ "unelevated": {
34
+ "desc": "Remove a sombra do componente.",
35
+ "type": "Boolean"
36
+ },
33
37
  "use-header": {
34
38
  "desc": "Controla se vai ter ou não o header com carousel.",
35
39
  "type": "Boolean"
@@ -12,19 +12,11 @@
12
12
  "default": "DD/MM/YYYY",
13
13
  "type": "String"
14
14
  },
15
- "date-only": {
16
- "desc": "Habilita o componente para usar somente data.",
17
- "type": "Boolean"
18
- },
19
15
  "date-props": {
20
16
  "desc": "Propriedades do QDate (https://quasar.dev/vue-components/date#introduction).",
21
17
  "default": {},
22
18
  "type": "Object"
23
19
  },
24
- "gmt": {
25
- "desc": "Utilizado para se usar junto da prop \"date-only\" ou \"time-only\", caso \"gmt\" for \"true\", o model sempre vai ser retornado no padrão ISO 8601, independente ser apenas um campo somente de data ou hora.",
26
- "type": "Boolean"
27
- },
28
20
  "model-value": {
29
21
  "desc": "Model do componente, usado para v-model.",
30
22
  "default": "",
@@ -36,14 +28,22 @@
36
28
  "default": "HH:mm",
37
29
  "type": "String"
38
30
  },
39
- "time-only": {
40
- "desc": "Habilita o componente para usar somente hora.",
41
- "type": "Boolean"
42
- },
43
31
  "time-props": {
44
32
  "desc": "Propriedades do QTime (https://quasar.dev/vue-components/time#introduction).",
45
33
  "default": {},
46
34
  "type": "Object"
35
+ },
36
+ "use-time-only": {
37
+ "desc": "Habilita o componente para usar somente hora.",
38
+ "type": "Boolean"
39
+ },
40
+ "use-date-only": {
41
+ "desc": "Habilita o componente para usar somente data.",
42
+ "type": "Boolean"
43
+ },
44
+ "use-iso": {
45
+ "desc": "Utilizado para se usar junto da prop \"date-only\" ou \"time-only\", caso \"useIso\" for \"true\", o model sempre vai ser retornado no padrão ISO 8601, independente ser apenas um campo somente de data ou hora.",
46
+ "type": "Boolean"
47
47
  }
48
48
  },
49
49
  "events": {
@@ -64,15 +64,19 @@
64
64
  "persistent": {
65
65
  "desc": "Define se o dialog vai fechar ou não após clicar fora do dialog.",
66
66
  "default": true,
67
- "type": "Object"
67
+ "type": "Boolean"
68
68
  },
69
- "use-close-icon": {
69
+ "use-close-button": {
70
70
  "desc": "Define se vai ter ou não Ícone de fechar o dialog.",
71
71
  "type": "Boolean"
72
72
  },
73
73
  "use-form": {
74
74
  "desc": "Define se a tag onde fica a descrição no dialog vai ser um \"<q-form />\" ou \"<div />\".",
75
75
  "type": "Boolean"
76
+ },
77
+ "use-validation-at-once": {
78
+ "desc": "Valida todos os campos de uma única vez, ao invés de ser um por vez (que é o padrão).",
79
+ "type": "Boolean"
76
80
  }
77
81
  },
78
82
  "slots": {
@@ -9,10 +9,6 @@
9
9
  "required": true,
10
10
  "type": "String"
11
11
  },
12
- "force-refetch": {
13
- "desc": "Força refazer o \"fetch\" mesmo caso já exista dados na store de filters.",
14
- "type": "Boolean"
15
- },
16
12
  "search-placeholder": {
17
13
  "desc": "Placeholder do campo de busca.",
18
14
  "default": "Pesquisar...",
@@ -32,6 +28,10 @@
32
28
  "default": true,
33
29
  "type": "Boolean"
34
30
  },
31
+ "use-force-refetch": {
32
+ "desc": "Força refazer o \"fetch\" mesmo caso já exista dados na store de filters.",
33
+ "type": "Boolean"
34
+ },
35
35
  "use-search-on-type": {
36
36
  "desc": "Habilita ou não o filtro de busca sempre que o usuário digita.",
37
37
  "default": true,
@@ -38,16 +38,44 @@
38
38
  "{ email: { name: 'email', type: 'email', label: 'E-mail' } }"
39
39
  ]
40
40
  },
41
+ "fieldset": {
42
+ "desc": "Lista para agrupar elementos por rótulo (label).",
43
+ "default": {},
44
+ "type": "Object",
45
+ "examples": [
46
+ "{ personalInformation: { label: 'Informações pessoais', fields: [name, email] } }"
47
+ ]
48
+ },
49
+ "fieldset-gutter": {
50
+ "desc": "Espaçamento entre rótulos (label).",
51
+ "default": "lg",
52
+ "type": [
53
+ "String",
54
+ "Boolean"
55
+ ],
56
+ "examples": [
57
+ "xs",
58
+ "sm",
59
+ "md",
60
+ "lg",
61
+ "xl",
62
+ false
63
+ ]
64
+ },
41
65
  "gutter": {
42
66
  "desc": "Espaçamento entre colunas.",
43
67
  "default": "md",
44
- "type": "String",
68
+ "type": [
69
+ "String",
70
+ "Boolean"
71
+ ],
45
72
  "examples": [
46
73
  "xs",
47
74
  "sm",
48
75
  "md",
49
76
  "lg",
50
- "xl"
77
+ "xl",
78
+ false
51
79
  ]
52
80
  },
53
81
  "model-value": {
@@ -78,6 +106,9 @@
78
106
  }
79
107
  }
80
108
  },
109
+ "legend-[nome-da-chave]": {
110
+ "desc": "Acessa o slot de um rótulo (label)."
111
+ },
81
112
  "events": {
82
113
  "@update:model-value -> function(value)": {
83
114
  "desc": "Dispara quando o model-value altera, também usado para v-model.",
@@ -4,7 +4,23 @@
4
4
  "desc": "Componente para C.R.U.D. responsável pela pela criação (Create) e edição (Update)."
5
5
  },
6
6
  "props": {
7
- "cancel-button": {
7
+ "before-fetch": {
8
+ "desc": "Callback para controlar como funciona o comportamento do fetch.",
9
+ "default": null,
10
+ "type": "Function",
11
+ "examples": [
12
+ "beforeFetch({ payload, resolve })"
13
+ ]
14
+ },
15
+ "before-submit": {
16
+ "desc": "Callback para controlar como funciona o comportamento do submit.",
17
+ "default": null,
18
+ "type": "Function",
19
+ "examples": [
20
+ "beforeSubmit({ payload, resolve })"
21
+ ]
22
+ },
23
+ "cancel-button-label": {
8
24
  "desc": "Rótulo do botão \"cancelar\".",
9
25
  "default": "Cancelar",
10
26
  "type": "String"
@@ -32,10 +48,6 @@
32
48
  "my-custom-id"
33
49
  ]
34
50
  },
35
- "dialog": {
36
- "desc": "Este componente pode ser utilizado dentro de um dialog, neste caso o componente pai não pode ser um \"QPage\" e sim uma \"div\", esta prop cuida disto.",
37
- "type": "Boolean"
38
- },
39
51
  "disable": {
40
52
  "desc": "Desabilita o submit.",
41
53
  "type": "Boolean"
@@ -107,21 +119,12 @@
107
119
  ],
108
120
  "model": true
109
121
  },
110
- "read-only": {
111
- "desc": "Controla o slot de actions.",
112
- "type": "Boolean"
113
- },
114
122
  "route": {
115
123
  "desc": "Você pode passar uma configuração de rota customizada.",
116
124
  "default": {},
117
125
  "type": "Object"
118
126
  },
119
- "show-dialog-on-unsaved-changes": {
120
- "desc": "Vamos imaginar um cenário onde o usuário entra na nossa tela de editar/criar, faz tudo o que precisa e sem querer clica no menu para ir para outra tela, caso essa prop esteja \"true\", vai aparece um modal perguntando se ele quer continuar editando ou ir para a tela no qual foi inicialmente redirecionado.",
121
- "default": true,
122
- "type": "Boolean"
123
- },
124
- "submit-button": {
127
+ "submit-button-label": {
125
128
  "desc": "Rótulo do botão \"salvar\".",
126
129
  "default": "Salvar",
127
130
  "type": "String"
@@ -137,6 +140,31 @@
137
140
  "url": {
138
141
  "desc": "Envia como parâmetro para a action \"fetchSingle\" do modulo correspondente a \"entity\".",
139
142
  "type": "String"
143
+ },
144
+ "use-actions": {
145
+ "desc": "Controla se vai ter ou não o slot de actions.",
146
+ "default": true,
147
+ "type": "Boolean"
148
+ },
149
+ "use-boundary": {
150
+ "desc": "Controla o limite que o FormView terá, quando é \"false\", a tag pai deixa de ser um \"QPage\" para ser uma \"div\" e é removido as classes \"container\" e \"spaced\", comumente utilizando quando precisa usar o QasFormView dentro de um dialog.",
151
+ "default": true,
152
+ "type": "Boolean"
153
+ },
154
+ "use-cancel-button": {
155
+ "desc": "Controla se vai ter ou não botão de \"cancelar\".",
156
+ "default": true,
157
+ "type": "Boolean"
158
+ },
159
+ "use-dialog-on-unsaved-changes": {
160
+ "desc": "Vamos imaginar um cenário onde o usuário entra na nossa tela de editar/criar, faz tudo o que precisa e sem querer clica no menu para ir para outra tela, caso essa prop esteja \"true\", vai aparece um modal perguntando se ele quer continuar editando ou ir para a tela no qual foi inicialmente redirecionado.",
161
+ "default": true,
162
+ "type": "Boolean"
163
+ },
164
+ "use-submit-button": {
165
+ "desc": "Controla se vai ter ou não botão de submit.",
166
+ "default": true,
167
+ "type": "Boolean"
140
168
  }
141
169
  },
142
170
  "slots": {
@@ -60,10 +60,6 @@
60
60
  "String"
61
61
  ]
62
62
  },
63
- "hide-empty-result": {
64
- "desc": "Se o resultado de algum campo for vazio, ele remove todo o campo.",
65
- "type": "Boolean"
66
- },
67
63
  "result": {
68
64
  "desc": "Resultado contendo todas informações para serem exibidas na tela.",
69
65
  "default": {},
@@ -71,6 +67,11 @@
71
67
  "examples": [
72
68
  "{ 'joah@examples.com' }"
73
69
  ]
70
+ },
71
+ "use-empty-result": {
72
+ "desc": "Se o resultado de algum campo for vazio e esta propriedade for \"false\", ele remove todo o campo.",
73
+ "default": true,
74
+ "type": "Boolean"
74
75
  }
75
76
  },
76
77
  "slots": {
@@ -31,7 +31,7 @@
31
31
  "default": true,
32
32
  "type": "Boolean"
33
33
  },
34
- "remove-error-on-type": {
34
+ "use-remove-error-on-type": {
35
35
  "desc": "Limpa os erros do campo caso os mesmos existam toda vez que o model atualiza.",
36
36
  "type": "Boolean"
37
37
  },
@@ -17,24 +17,10 @@
17
17
  "default": [],
18
18
  "type": "Array"
19
19
  },
20
- "redirect-key": {
21
- "desc": "Você pode enviar qualquer chave/valor dentro do array de objeto da prop \"list\", esta prop serve para você identificar qual vai ser a chave que vai redirecionar ao clicar no botão.",
22
- "default": "uuid",
23
- "type": "String"
24
- },
25
- "redirect-on-icon": {
26
- "desc": "Controla se o redirecionamento vai acontecer quando clicar no item inteiro ou somente no icon.",
27
- "default": true,
20
+ "use-clickable-item": {
21
+ "desc": "Controla se o item inteiro é clicável ou somente o button dentro do item.",
28
22
  "type": "Boolean"
29
23
  },
30
- "to": {
31
- "desc": "Configuração passada para o vue-router.",
32
- "default": {},
33
- "type": "Object",
34
- "examples": [
35
- "{ name: 'Root' }"
36
- ]
37
- },
38
24
  "use-section-actions": {
39
25
  "desc": "Controla se exibe ou não seção de actions, onde fica o Ícone de redirecionamento.",
40
26
  "default": true,
@@ -42,7 +28,7 @@
42
28
  }
43
29
  },
44
30
  "slots": {
45
- "item-section-left": {
31
+ "item-section": {
46
32
  "desc": "Slot para acessar seção da esquerda.",
47
33
  "scope": {
48
34
  "item": {
@@ -68,5 +54,20 @@
68
54
  }
69
55
  }
70
56
  }
57
+ },
58
+ "events": {
59
+ "@click-item -> function ({ item, index })": {
60
+ "desc": "Dispara toda vez que o item ou button (dependendo da prop \"use-section-actions\") é clicado.",
61
+ "params": {
62
+ "item": {
63
+ "desc": "Item clicado",
64
+ "type": "Object"
65
+ },
66
+ "index": {
67
+ "desc": "Posição do item",
68
+ "type": "Number"
69
+ }
70
+ }
71
+ }
71
72
  }
72
73
  }
@@ -4,13 +4,13 @@
4
4
  "desc": "Componente para C.R.U.D. responsável pela parte de listagem (Read)."
5
5
  },
6
6
  "props": {
7
- "dialog": {
8
- "desc": "Este componente pode ser utilizado dentro de um dialog, neste caso o componente pai não pode ser um \"QPage\" e sim uma \"div\", esta prop cuida disto.",
9
- "type": "Boolean"
10
- },
11
- "disable-refresh": {
12
- "desc": "Desabilita o [pull-to-refresh](https://quasar.dev/vue-components/pull-to-refresh#basic).",
13
- "type": "Boolean"
7
+ "before-fetch": {
8
+ "desc": "Callback para controlar como funciona o comportamento do fetchList.",
9
+ "default": null,
10
+ "type": "Function",
11
+ "examples": [
12
+ "beforeFetch({ payload, resolve, done })"
13
+ ]
14
14
  },
15
15
  "entity": {
16
16
  "desc": "Entidade da store, por exemplo se tiver que trabalhar com modulo de usuários, teremos o model \"users\" na store, que vai ser nossa \"entity\".",
@@ -70,10 +70,24 @@
70
70
  "desc": "Envia como parâmetro para a action \"fetchList\" do modulo correspondente a \"entity\".",
71
71
  "type": "String"
72
72
  },
73
+ "use-boundary": {
74
+ "desc": "Controla o limite que o FormView terá, quando é \"false\", a tag pai deixa de ser um \"QPage\" para ser uma \"div\" e é removido as classes \"container\" e \"spaced\", comumente utilizando quando precisa usar o QasFormView dentro de um dialog.",
75
+ "default": true,
76
+ "type": "Boolean"
77
+ },
73
78
  "use-filter": {
74
79
  "desc": "Controla se o componente vai usar ou não o componente \"QasFilters\".",
75
80
  "default": true,
76
81
  "type": "Boolean"
82
+ },
83
+ "use-refresh": {
84
+ "desc": "Controla o [pull-to-refresh](https://quasar.dev/vue-components/pull-to-refresh#basic).",
85
+ "default": true,
86
+ "type": "Boolean"
87
+ },
88
+ "use-results-area-only": {
89
+ "desc": "Controla se irá sempre ser exibido os resultados independente se não há nenhum resultado a ser exibido.",
90
+ "type": "Boolean"
77
91
  }
78
92
  },
79
93
  "slots": {
@@ -9,15 +9,15 @@
9
9
  "default": "Inserir novo campo",
10
10
  "type": "Boolean"
11
11
  },
12
- "btn-destroy-props": {
12
+ "button-destroy-props": {
13
13
  "desc": "Props do botão de excluir linha contendo os campos.",
14
14
  "default": "{ label: 'Remover', o_cancel, flat: true, dense: true }",
15
15
  "debugger": true,
16
16
  "type": "Object"
17
17
  },
18
- "btn-duplicate-props": {
18
+ "button-duplicate-props": {
19
19
  "desc": "Props do botão de duplicar linha contendo os campos.",
20
- "default": "{ label: 'Duplicar', o_content_copy, flat: true, dense: true, hideMobileLabel: true }",
20
+ "default": "{ label: 'Duplicar', o_content_copy, flat: true, dense: true, useLabelOnSmallScreen: false }",
21
21
  "debugger": true,
22
22
  "type": "Object"
23
23
  },
@@ -72,6 +72,16 @@
72
72
  "xl"
73
73
  ]
74
74
  },
75
+ "identifier-item-key": {
76
+ "desc": "Define um identificador para o item. O identificador será utilizado para validar exclusão do item, por exemplo.",
77
+ "default": "uuid",
78
+ "type": "String",
79
+ "examples": [
80
+ "id",
81
+ "uuid",
82
+ "slug"
83
+ ]
84
+ },
75
85
  "model-value": {
76
86
  "desc": "Model do componente",
77
87
  "default": [],
@@ -7,16 +7,6 @@
7
7
  "desc": "Componente de input para decimal, inteiro, dinheiro e porcentagem."
8
8
  },
9
9
  "props": {
10
- "allow-negative": {
11
- "desc": "Controla se pode ou não números negativos.",
12
- "default": true,
13
- "type": "Boolean"
14
- },
15
- "allow-positive": {
16
- "desc": "Controla se pode ou não números positivos.",
17
- "default": true,
18
- "type": "Boolean"
19
- },
20
10
  "autonumeric-props": {
21
11
  "desc": "Opções do autonumeric (http://autonumeric.org/guide).",
22
12
  "default": {},
@@ -53,6 +43,16 @@
53
43
  "Boolean",
54
44
  "String"
55
45
  ]
46
+ },
47
+ "use-negative": {
48
+ "desc": "Controla se pode ou não números negativos.",
49
+ "default": true,
50
+ "type": "Boolean"
51
+ },
52
+ "use-positive": {
53
+ "desc": "Controla se pode ou não números positivos.",
54
+ "default": true,
55
+ "type": "Boolean"
56
56
  }
57
57
  },
58
58
  "events": {
@@ -83,7 +83,7 @@
83
83
  "type": "String"
84
84
  },
85
85
  "use-strength-checker": {
86
- "desc": "Controla exibição do componente `QasStrenghtChecker`.",
86
+ "desc": "Controla exibição do componente `QasStrengthChecker`.",
87
87
  "default": true,
88
88
  "type": "Boolean"
89
89
  },
@@ -9,22 +9,59 @@
9
9
  "default": "100px",
10
10
  "type": "String"
11
11
  },
12
+ "empty-result-text": {
13
+ "desc": "Define o texto dentro do box quando a lista está vazia.",
14
+ "default": "Não há resultados disponíveis.",
15
+ "type": "String"
16
+ },
17
+ "entity": {
18
+ "desc": "Entidade enviada para a action \"fetchFieldOptions\" (usar somente quando \"useLazyLoading\" estiver habilitada).",
19
+ "default": "",
20
+ "type": "String",
21
+ "examples": [
22
+ "users"
23
+ ]
24
+ },
25
+ "fetching": {
26
+ "desc": "Usado para saber quando o componente está fazendo fetching (usar somente quando \"useLazyLoading\" estiver habilitada).",
27
+ "default": false,
28
+ "type": "Boolean",
29
+ "model": true,
30
+ "examples": [
31
+ "v-model:fetching=\"isFetching\""
32
+ ]
33
+ },
12
34
  "fuse-options": {
13
35
  "desc": "Opções do Fuse.js (https://fusejs.io/api/options.html).",
14
- "default": "{ distance: 100, location: 0, maxPatternLength: 32, minMatchCharLength: 1, shouldSort: true, threshold: 0.1, tokenize: true }",
15
36
  "debugger": true,
16
37
  "type": "Object",
17
38
  "examples": [
18
39
  "{ keys: ['label'] }"
19
- ]
40
+ ],
41
+ "default": {
42
+ "ignoreLocation": true,
43
+ "threshold": 0.1
44
+ }
20
45
  },
21
46
  "height": {
22
47
  "desc": "Define altura do box quando a lista não está vazia.",
23
48
  "default": "300px",
24
49
  "type": "String"
25
50
  },
51
+ "lazy-loading-props": {
52
+ "desc": "Propriedades para o lazy loading (usar somente quando \"useLazyLoading\" estiver habilitada).",
53
+ "type": "Object",
54
+ "debugger": true,
55
+ "default": {
56
+ "decamelizeFieldName": true,
57
+ "url": "",
58
+ "params": {
59
+ "limit": 48
60
+ }
61
+ }
62
+ },
26
63
  "list": {
27
- "desc": "Lista onde ocorrerá a busca (array de objetos).",
64
+ "desc": "Lista onde ocorrerá a busca sendo array de objetos (usar somente quando \"useLazyLoading\" **NÃO** estiver habilitada).",
28
65
  "default": [],
29
66
  "type": "String"
30
67
  },
@@ -36,6 +73,13 @@
36
73
  ],
37
74
  "model": true
38
75
  },
76
+ "name": {
77
+ "desc": "Nome do campo a ser enviado para a action \"fetchFieldOptions\" (usar somente quando \"useLazyLoading\" estiver habilitada).",
78
+ "type": "String",
79
+ "examples": [
80
+ "cities"
81
+ ]
82
+ },
39
83
  "placeholder": {
40
84
  "desc": "Placeholder do campo de pesquisa.",
41
85
  "default": "Pesquisar",
@@ -54,6 +98,11 @@
54
98
  "desc": "Controla o slot \"empty-result\".",
55
99
  "default": true,
56
100
  "type": "Boolean"
101
+ },
102
+ "use-lazy-loading": {
103
+ "desc": "Controla a busca pela store \"fetchFieldOptions\".",
104
+ "default": false,
105
+ "type": "Boolean"
57
106
  }
58
107
  },
59
108
  "slots": {
@@ -62,6 +111,9 @@
62
111
  },
63
112
  "empty-result": {
64
113
  "desc": "Acesso ao conteúdo quando a busca não retorne resultado e a prop \"useEmptySlot\" seja \"true\"."
114
+ },
115
+ "loading": {
116
+ "desc": "Acesso ao conteúdo do loading que contém o \"<q-spinner-dots />\".."
65
117
  }
66
118
  },
67
119
  "events": {
@@ -86,6 +138,36 @@
86
138
  "type": "Array"
87
139
  }
88
140
  }
141
+ },
142
+ "@update:fetching -> function (value)": {
143
+ "desc": "Dispara toda vez que o campo de busca faz o fetch do lazy loading",
144
+ "params": {
145
+ "value": {
146
+ "desc": "Novo valor do v-model:fetching",
147
+ "default": false,
148
+ "type": "Boolean"
149
+ }
150
+ }
151
+ },
152
+ "@fetch-options-success -> function (value)": {
153
+ "desc": "Dispara toda vez que o campo de busca faz o fetch do lazy loading com sucesso.",
154
+ "params": {
155
+ "value": {
156
+ "desc": "Valor retornado pela action \"fetchFieldOptions\"",
157
+ "default": {},
158
+ "type": "Object"
159
+ }
160
+ }
161
+ },
162
+ "@fetch-options-error -> function (value)": {
163
+ "desc": "Dispara toda vez que o campo de busca faz o fetch do lazy loading e cai em uma exceção.",
164
+ "params": {
165
+ "value": {
166
+ "desc": "Valor retornado pela action \"fetchFieldOptions\"",
167
+ "default": {},
168
+ "type": "Object"
169
+ }
170
+ }
89
171
  }
90
172
  }
91
173
  }