@bildvitta/quasar-ui-asteroid 3.17.0-beta.21 → 3.17.0-beta.22
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/package.json +1 -1
- package/src/asteroid.js +4 -4
- package/src/components/actions/QasActions.vue +81 -81
- package/src/components/actions/QasActions.yml +34 -34
- package/src/components/actions-menu/QasActionsMenu.vue +251 -251
- package/src/components/actions-menu/QasActionsMenu.yml +89 -89
- package/src/components/actions-menu/composables/use-delete.js +30 -30
- package/src/components/actions-menu/composables/use-double-split-actions.js +42 -42
- package/src/components/actions-menu/composables/use-options-actions.js +27 -27
- package/src/components/actions-menu/composables/use-single-action.js +17 -17
- package/src/components/actions-menu/composables/use-single-split-actions.js +35 -35
- package/src/components/actions-menu/composables/use-tooltips.js +43 -43
- package/src/components/actions-menu/utils/get-label.js +3 -3
- package/src/components/actions-menu/utils/set-click-handler.js +6 -6
- package/src/components/alert/QasAlert.test.js +43 -43
- package/src/components/alert/QasAlert.vue +110 -110
- package/src/components/alert/QasAlert.yml +39 -39
- package/src/components/app-bar/QasAppBar.vue +119 -119
- package/src/components/app-bar/QasAppBar.yml +44 -44
- package/src/components/app-menu/QasAppMenu.vue +392 -392
- package/src/components/app-menu/QasAppMenu.yml +73 -73
- package/src/components/app-menu/composables/use-app-menu-dropdown.js +71 -71
- package/src/components/app-menu/composables/use-app-user.js +49 -49
- package/src/components/app-menu/composables/use-development-badge.js +23 -23
- package/src/components/app-menu/private/PvAppMenuDropdown.vue +71 -71
- package/src/components/app-menu/private/PvAppMenuHelpChat.vue +222 -222
- package/src/components/app-user/QasAppUser.vue +281 -281
- package/src/components/app-user/QasAppUser.yml +56 -56
- package/src/components/avatar/QasAvatar.vue +95 -95
- package/src/components/avatar/QasAvatar.yml +38 -38
- package/src/components/avatar/enums/AvatarColors.js +10 -10
- package/src/components/badge/QasBadge.vue +87 -87
- package/src/components/badge/QasBadge.yml +55 -55
- package/src/components/board-generator/QasBoardGenerator.vue +712 -712
- package/src/components/board-generator/QasBoardGenerator.yml +167 -167
- package/src/components/box/QasBox.vue +51 -51
- package/src/components/box/QasBox.yml +29 -29
- package/src/components/breakline/QasBreakline.vue +38 -38
- package/src/components/breakline/QasBreakline.yml +25 -25
- package/src/components/btn/QasBtn.vue +148 -148
- package/src/components/btn/QasBtn.yml +48 -48
- package/src/components/btn-dropdown/QasBtnDropdown.vue +146 -146
- package/src/components/btn-dropdown/QasBtnDropdown.yml +59 -59
- package/src/components/card/QasCard.vue +132 -132
- package/src/components/card/QasCard.yml +44 -44
- package/src/components/card-image/QasCardImage.vue +95 -95
- package/src/components/card-image/QasCardImage.yml +48 -48
- package/src/components/chart-view/QasChartView.vue +441 -441
- package/src/components/chart-view/QasChartView.yml +109 -109
- package/src/components/chart-view/config/charts/bar.js +45 -45
- package/src/components/chart-view/config/charts/doughnut.js +43 -43
- package/src/components/chart-view/config/charts/index.js +9 -9
- package/src/components/chart-view/config/charts/line.js +57 -57
- package/src/components/chart-view/config/defaults/colors.js +19 -19
- package/src/components/chart-view/config/defaults/font.js +5 -5
- package/src/components/chart-view/config/defaults/index.js +2 -2
- package/src/components/chart-view/config/index.js +3 -3
- package/src/components/chart-view/config/plugins/index.js +3 -3
- package/src/components/chart-view/config/plugins/legend.js +9 -9
- package/src/components/chart-view/config/plugins/tooltip.js +15 -15
- package/src/components/chart-view/config/plugins/zoom.js +31 -31
- package/src/components/checkbox/QasCheckbox.vue +150 -150
- package/src/components/checkbox/QasCheckbox.yml +36 -36
- package/src/components/copy/QasCopy.vue +46 -46
- package/src/components/copy/QasCopy.yml +23 -23
- package/src/components/date/QasDate.vue +600 -600
- package/src/components/date/QasDate.yml +69 -69
- package/src/components/date/enums/DateMaskOptions.js +6 -6
- package/src/components/date-time-input/QasDateTimeInput.vue +269 -269
- package/src/components/date-time-input/QasDateTimeInput.yml +64 -64
- package/src/components/debugger/QasDebugger.vue +31 -31
- package/src/components/debugger/QasDebugger.yml +10 -10
- package/src/components/delete/QasDelete.vue +100 -100
- package/src/components/delete/QasDelete.yml +60 -60
- package/src/components/dialog/QasDialog.vue +217 -217
- package/src/components/dialog/QasDialog.yml +117 -117
- package/src/components/dialog/composables/use-cancel.js +40 -40
- package/src/components/dialog/composables/use-dynamic-components.js +86 -86
- package/src/components/dialog/composables/use-ok.js +45 -45
- package/src/components/dialog-router/QasDialogRouter.vue +86 -86
- package/src/components/dialog-router/QasDialogRouter.yml +23 -23
- package/src/components/drawer/QasDrawer.vue +118 -118
- package/src/components/drawer/QasDrawer.yml +58 -58
- package/src/components/empty-result-text/QasEmptyResultText.vue +18 -18
- package/src/components/empty-result-text/QasEmptyResultText.yml +14 -14
- package/src/components/expansion-item/QasExpansionItem.vue +291 -291
- package/src/components/expansion-item/QasExpansionItem.yml +76 -76
- package/src/components/field/QasField.vue +220 -220
- package/src/components/field/QasField.yml +36 -36
- package/src/components/filters/QasFilters.vue +472 -472
- package/src/components/filters/QasFilters.yml +171 -171
- package/src/components/filters/private/PvFiltersButton.vue +101 -101
- package/src/components/form-generator/QasFormGenerator.vue +274 -274
- package/src/components/form-generator/QasFormGenerator.yml +109 -109
- package/src/components/form-view/QasFormView.vue +484 -484
- package/src/components/form-view/QasFormView.yml +253 -253
- package/src/components/gallery/QasGallery.vue +243 -243
- package/src/components/gallery/QasGallery.yml +188 -188
- package/src/components/gallery/composables/use-delete.js +54 -54
- package/src/components/gallery/private/PvGalleryCarouselDialog.vue +92 -92
- package/src/components/gallery/private/PvGalleryDeleteDialog.vue +54 -54
- package/src/components/gallery-card/QasGalleryCard.vue +153 -153
- package/src/components/gallery-card/QasGalleryCard.yml +61 -61
- package/src/components/grabbable/QasGrabbable.vue +185 -185
- package/src/components/grabbable/QasGrabbable.yml +26 -26
- package/src/components/grid-generator/QasGridGenerator.vue +210 -210
- package/src/components/grid-generator/QasGridGenerator.yml +127 -127
- package/src/components/grid-item/QasGridItem.vue +89 -89
- package/src/components/grid-item/QasGridItem.yml +22 -22
- package/src/components/header/QasHeader.vue +152 -152
- package/src/components/header/QasHeader.yml +50 -50
- package/src/components/infinite-scroll/QasInfiniteScroll.vue +168 -168
- package/src/components/infinite-scroll/QasInfiniteScroll.yml +78 -78
- package/src/components/info/QasInfo.vue +155 -155
- package/src/components/info/QasInfo.yml +34 -34
- package/src/components/input/QasInput.vue +252 -252
- package/src/components/input/QasInput.yml +65 -65
- package/src/components/label/QasLabel.vue +61 -61
- package/src/components/label/QasLabel.yml +44 -44
- package/src/components/layout/QasLayout.vue +101 -101
- package/src/components/layout/QasLayout.yml +46 -46
- package/src/components/layout/private/PvLayoutNotificationCard.vue +86 -86
- package/src/components/layout/private/PvLayoutNotificationsDrawer.vue +140 -140
- package/src/components/list-items/QasListItems.vue +125 -125
- package/src/components/list-items/QasListItems.yml +71 -71
- package/src/components/list-view/QasListView.vue +302 -302
- package/src/components/list-view/QasListView.yml +169 -169
- package/src/components/map/QasMap.vue +75 -75
- package/src/components/map/QasMap.yml +33 -33
- package/src/components/nested-fields/QasNestedFields.vue +584 -584
- package/src/components/nested-fields/QasNestedFields.yml +296 -296
- package/src/components/numeric-input/QasNumericInput.vue +206 -206
- package/src/components/numeric-input/QasNumericInput.yml +85 -85
- package/src/components/option-group/QasOptionGroup.vue +54 -54
- package/src/components/option-group/QasOptionGroup.yml +30 -30
- package/src/components/page-header/QasPageHeader.vue +143 -143
- package/src/components/page-header/QasPageHeader.yml +42 -42
- package/src/components/pagination/QasPagination.vue +71 -71
- package/src/components/pagination/QasPagination.yml +4 -4
- package/src/components/password-input/QasPasswordInput.vue +110 -110
- package/src/components/password-input/QasPasswordInput.yml +111 -111
- package/src/components/password-strength-checker/QasPasswordStrengthChecker.vue +71 -71
- package/src/components/password-strength-checker/QasPasswordStrengthChecker.yml +103 -103
- package/src/components/profile/QasProfile.vue +98 -98
- package/src/components/profile/QasProfile.yml +60 -60
- package/src/components/radio/QasRadio.vue +62 -62
- package/src/components/radio/QasRadio.yml +11 -11
- package/src/components/resizer/QasResizer.vue +90 -90
- package/src/components/resizer/QasResizer.yml +24 -24
- package/src/components/search-box/QasSearchBox.vue +294 -294
- package/src/components/search-box/QasSearchBox.yml +154 -154
- package/src/components/search-input/QasSearchInput.vue +106 -106
- package/src/components/search-input/QasSearchInput.yml +48 -48
- package/src/components/select/QasSelect.vue +514 -514
- package/src/components/select/QasSelect.yml +157 -157
- package/src/components/select-list/QasSelectList.vue +238 -238
- package/src/components/select-list/QasSelectList.yml +108 -108
- package/src/components/select-list/private/PvSelectListCheckbox.vue +31 -31
- package/src/components/select-list-dialog/QasSelectListDialog.vue +395 -395
- package/src/components/select-list-dialog/QasSelectListDialog.yml +108 -108
- package/src/components/signature-pad/QasSignaturePad.vue +122 -122
- package/src/components/signature-pad/QasSignaturePad.yml +53 -53
- package/src/components/signature-uploader/QasSignatureUploader.vue +164 -164
- package/src/components/signature-uploader/QasSignatureUploader.yml +37 -37
- package/src/components/single-view/QasSingleView.vue +175 -175
- package/src/components/single-view/QasSingleView.yml +131 -131
- package/src/components/sortable/QasSortable.vue +151 -151
- package/src/components/sortable/QasSortable.yml +65 -65
- package/src/components/status/QasStatus.test.js +11 -11
- package/src/components/status/QasStatus.vue +29 -29
- package/src/components/status/QasStatus.yml +10 -10
- package/src/components/stepper/QasStepper.vue +199 -152
- package/src/components/stepper/QasStepper.yml +35 -35
- package/src/components/stepper-form-view/QasStepperFormView.vue +86 -84
- package/src/components/stepper-form-view/QasStepperFormView.yml +58 -58
- package/src/components/table-generator/QasTableGenerator.vue +416 -416
- package/src/components/table-generator/QasTableGenerator.yml +94 -94
- package/src/components/tabs-generator/QasTabsGenerator.vue +196 -196
- package/src/components/tabs-generator/QasTabsGenerator.yml +53 -53
- package/src/components/text-truncate/QasTextTruncate.vue +274 -274
- package/src/components/text-truncate/QasTextTruncate.yml +60 -60
- package/src/components/timeline/QasTimeline.vue +140 -140
- package/src/components/timeline/QasTimeline.yml +36 -36
- package/src/components/toggle/QasToggle.vue +14 -14
- package/src/components/toggle/QasToggle.yml +5 -5
- package/src/components/toggle-visibility/QasToggleVisibility.vue +79 -79
- package/src/components/toggle-visibility/QasToggleVisibility.yml +30 -30
- package/src/components/transfer/QasTransfer.vue +239 -239
- package/src/components/transfer/QasTransfer.yml +60 -60
- package/src/components/tree-generator/QasTreeForm.vue +62 -62
- package/src/components/tree-generator/QasTreeGenerator.vue +488 -488
- package/src/components/tree-generator/QasTreeGenerator.yml +81 -81
- package/src/components/uploader/QasUploader.vue +691 -645
- package/src/components/uploader/QasUploader.yml +206 -192
- package/src/components/uploader/private/PvUploaderGalleryCard.vue +357 -357
- package/src/components/welcome/QasWelcome.vue +125 -125
- package/src/components/welcome/QasWelcome.yml +23 -23
- package/src/components/welcome/private/PvWelcomeShortcutCard.vue +58 -58
- package/src/components/whatsapp-link/QasWhatsappLink.vue +34 -34
- package/src/components/whatsapp-link/QasWhatsappLink.yml +18 -18
- package/src/composables/index.js +8 -8
- package/src/composables/private/index.js +3 -3
- package/src/composables/private/use-generator.js +174 -174
- package/src/composables/private/use-toggle-visibility.js +48 -48
- package/src/composables/private/use-view.js +186 -186
- package/src/composables/use-context.js +15 -15
- package/src/composables/use-form.js +32 -32
- package/src/composables/use-history.js +46 -46
- package/src/composables/use-notifications.js +128 -128
- package/src/composables/use-query-cache.js +60 -60
- package/src/composables/use-screen.js +42 -42
- package/src/css/base/font-face.scss +28 -28
- package/src/css/base/index.scss +1 -1
- package/src/css/components/base.scss +12 -12
- package/src/css/components/button.scss +116 -116
- package/src/css/components/checkbox.scss +14 -14
- package/src/css/components/editor.scss +7 -7
- package/src/css/components/field.scss +88 -88
- package/src/css/components/index.scss +10 -10
- package/src/css/components/item.scss +52 -52
- package/src/css/components/radio.scss +18 -18
- package/src/css/components/scrollbar.scss +20 -20
- package/src/css/components/tabs.scss +3 -3
- package/src/css/components/toggle.scss +13 -13
- package/src/css/mixins/index.scss +3 -3
- package/src/css/mixins/set-brand.scss +15 -15
- package/src/css/mixins/set-button.scss +26 -26
- package/src/css/mixins/set-typography.scss +8 -8
- package/src/css/plugins/index.scss +2 -2
- package/src/css/plugins/loading.scss +5 -5
- package/src/css/plugins/notify.scss +100 -100
- package/src/css/utils/background.scss +34 -34
- package/src/css/utils/border-radius.scss +29 -29
- package/src/css/utils/border.scss +42 -42
- package/src/css/utils/container.scss +36 -36
- package/src/css/utils/fonts.scss +5 -5
- package/src/css/utils/index.scss +10 -10
- package/src/css/utils/line-height.scss +19 -19
- package/src/css/utils/opacity.scss +5 -5
- package/src/css/utils/scroll.scss +21 -21
- package/src/css/utils/text.scss +15 -15
- package/src/css/utils/unset.scss +8 -8
- package/src/css/variables/button.scss +4 -4
- package/src/css/variables/index.scss +6 -6
- package/src/css/variables/scrollbar.scss +11 -11
- package/src/css/variables/separator.scss +2 -2
- package/src/css/variables/shadow.scss +3 -3
- package/src/css/variables/spacing.scss +98 -98
- package/src/css/variables/typography.scss +149 -149
- package/src/directives/Test.js +13 -13
- package/src/enums/Align.js +7 -7
- package/src/enums/Spacing.js +98 -98
- package/src/enums/Status.js +33 -33
- package/src/helpers/add-counter-suffix.js +3 -3
- package/src/helpers/base-64-to-blob.js +21 -21
- package/src/helpers/camelize-fields-name.js +15 -15
- package/src/helpers/construct-object.js +29 -29
- package/src/helpers/copy-to-clipboard.js +15 -15
- package/src/helpers/destroy-nested-children-by-key.js +33 -33
- package/src/helpers/download-file.js +21 -21
- package/src/helpers/filter-list-by-handle.js +31 -31
- package/src/helpers/filter-object-to-array.js +29 -29
- package/src/helpers/filter-object.js +34 -34
- package/src/helpers/filters.js +163 -163
- package/src/helpers/find-children-by-key.js +14 -14
- package/src/helpers/get-greatest-common-divisor.js +16 -16
- package/src/helpers/get-normalized-options.js +20 -20
- package/src/helpers/get-placeholder.js +19 -19
- package/src/helpers/get-required-label.js +3 -3
- package/src/helpers/get-slot-children-text.js +15 -15
- package/src/helpers/handle-process.js +13 -13
- package/src/helpers/images.js +28 -28
- package/src/helpers/index.js +25 -25
- package/src/helpers/is-empty.js +3 -3
- package/src/helpers/is-local-development.js +3 -3
- package/src/helpers/private/gutter-validator.js +15 -15
- package/src/helpers/private/has-parent-by-class-name.js +15 -15
- package/src/helpers/promise-handler.js +40 -40
- package/src/helpers/rules.js +7 -7
- package/src/helpers/set-scroll-on-grab.js +128 -128
- package/src/index.cjs.js +1 -1
- package/src/index.esm.js +4 -4
- package/src/index.scss +38 -38
- package/src/index.umd.js +2 -2
- package/src/mixins/context.js +8 -8
- package/src/mixins/delete.js +48 -48
- package/src/mixins/dialog-router.js +17 -17
- package/src/mixins/form.js +11 -11
- package/src/mixins/generator.js +94 -94
- package/src/mixins/index.js +17 -17
- package/src/mixins/password.js +86 -86
- package/src/mixins/search-filter.js +354 -354
- package/src/mixins/view.js +156 -156
- package/src/pages/ErrorComponent.vue +74 -74
- package/src/pages/Forbidden.vue +29 -29
- package/src/pages/NotFound.vue +29 -29
- package/src/pages/ServerError.vue +29 -29
- package/src/pages/Unauthorized.vue +29 -29
- package/src/plugins/delete/Delete.js +107 -107
- package/src/plugins/delete/Delete.yml +75 -75
- package/src/plugins/dialog/Dialog.js +14 -14
- package/src/plugins/dialog/Dialog.yml +10 -10
- package/src/plugins/index.js +13 -13
- package/src/plugins/notify-error/NotifyError.js +13 -13
- package/src/plugins/notify-error/NotifyError.yml +11 -11
- package/src/plugins/notify-success/NotifySuccess.js +13 -13
- package/src/plugins/notify-success/NotifySuccess.yml +11 -11
- package/src/plugins/screen/Screen.js +35 -35
- package/src/plugins/screen/Screen.yml +16 -16
- package/src/shared/date-config.js +26 -26
- package/src/shared/fuse-config.js +4 -4
- package/src/shared/notify-config.js +7 -7
- package/src/vue-plugin/third-party-component-handler.js +29 -29
- package/src/vue-plugin.js +282 -282
|
@@ -1,210 +1,210 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<component :is="component.is" v-bind="component.props">
|
|
3
|
-
<qas-header v-if="hasHeader" v-bind="props.headerProps" />
|
|
4
|
-
|
|
5
|
-
<div :class="classes">
|
|
6
|
-
<div v-for="(field, key) in fieldsByResult" :key="key" :class="getContainerClassses({ key })">
|
|
7
|
-
<slot :field="field" :name="`field-${field.name}`">
|
|
8
|
-
<qas-grid-item :use-ellipsis="hasEllipsis(field)" :use-inline="props.useInline">
|
|
9
|
-
<template #header>
|
|
10
|
-
<slot :field="field" :name="`header-field-${field.name}`">
|
|
11
|
-
<slot :field="field" name="header">
|
|
12
|
-
<div :class="headerClass" :data-cy="`grid-generator-${field.name}-field`" :title="getTitle(field, 'label')">
|
|
13
|
-
{{ field.label }}
|
|
14
|
-
</div>
|
|
15
|
-
</slot>
|
|
16
|
-
</slot>
|
|
17
|
-
</template>
|
|
18
|
-
|
|
19
|
-
<template #content>
|
|
20
|
-
<slot :field="field" :name="`content-field-${field.name}`">
|
|
21
|
-
<slot :field="field" name="content">
|
|
22
|
-
<div :class="getContentClasses(field)" :data-cy="`grid-generator-${field.name}-result`" :title="getTitle(field, 'formattedResult')">
|
|
23
|
-
{{ field.formattedResult }}
|
|
24
|
-
</div>
|
|
25
|
-
</slot>
|
|
26
|
-
</slot>
|
|
27
|
-
</template>
|
|
28
|
-
</qas-grid-item>
|
|
29
|
-
</slot>
|
|
30
|
-
</div>
|
|
31
|
-
</div>
|
|
32
|
-
</component>
|
|
33
|
-
</template>
|
|
34
|
-
|
|
35
|
-
<script setup>
|
|
36
|
-
import useGenerator, { baseProps } from '../../composables/private/use-generator'
|
|
37
|
-
import { isEmpty, humanize } from '../../helpers'
|
|
38
|
-
import { useScreen } from '../../composables'
|
|
39
|
-
import { isObject } from 'lodash-es'
|
|
40
|
-
import { ref, computed, watch } from 'vue'
|
|
41
|
-
|
|
42
|
-
// define component name
|
|
43
|
-
defineOptions({ name: 'QasGridGenerator' })
|
|
44
|
-
|
|
45
|
-
const screen = useScreen()
|
|
46
|
-
|
|
47
|
-
// props
|
|
48
|
-
const props = defineProps({
|
|
49
|
-
...baseProps,
|
|
50
|
-
|
|
51
|
-
boxProps: {
|
|
52
|
-
type: Object,
|
|
53
|
-
default: () => ({})
|
|
54
|
-
},
|
|
55
|
-
|
|
56
|
-
contentClass: {
|
|
57
|
-
default: '',
|
|
58
|
-
type: [Array, Object, String]
|
|
59
|
-
},
|
|
60
|
-
|
|
61
|
-
headerClass: {
|
|
62
|
-
default: '',
|
|
63
|
-
type: [Array, Object, String]
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
headerProps: {
|
|
67
|
-
type: Object,
|
|
68
|
-
default: () => ({})
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
emptyResultText: {
|
|
72
|
-
default: '-',
|
|
73
|
-
type: String
|
|
74
|
-
},
|
|
75
|
-
|
|
76
|
-
result: {
|
|
77
|
-
default: () => ({}),
|
|
78
|
-
type: Object
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
useBox: {
|
|
82
|
-
type: Boolean
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
useEmptyResult: {
|
|
86
|
-
default: true,
|
|
87
|
-
type: Boolean
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
useEllipsis: {
|
|
91
|
-
default: true,
|
|
92
|
-
type: Boolean
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
useInline: {
|
|
96
|
-
type: Boolean
|
|
97
|
-
}
|
|
98
|
-
})
|
|
99
|
-
|
|
100
|
-
// composables
|
|
101
|
-
const { classes, getFieldClass } = useGenerator({ props })
|
|
102
|
-
|
|
103
|
-
// computed
|
|
104
|
-
const hasResult = computed(() => Object.keys(props.result).length)
|
|
105
|
-
const hasFields = computed(() => Object.keys(props.fields).length)
|
|
106
|
-
const hasHeader = computed(() => Object.keys(props.headerProps).length)
|
|
107
|
-
|
|
108
|
-
const component = computed(() => {
|
|
109
|
-
return {
|
|
110
|
-
is: props.useBox ? 'qas-box' : 'div',
|
|
111
|
-
props: props.useBox ? props.boxProps : {}
|
|
112
|
-
}
|
|
113
|
-
})
|
|
114
|
-
|
|
115
|
-
const headerClass = computed(() => {
|
|
116
|
-
return [
|
|
117
|
-
props.headerClass,
|
|
118
|
-
|
|
119
|
-
{
|
|
120
|
-
ellipsis: !screen.isSmall && props.useEllipsis
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
})
|
|
124
|
-
|
|
125
|
-
const fieldsByResult = ref({})
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Retorna os "fields" formatados, caso a propriedade "useEmptyResult" seja "true", retorna todos os "fields", mesmo que não tenha resultado.
|
|
129
|
-
* Caso a propriedade "useEmptyResult" seja "false", retorna apenas os "fields" que possuem resultado.
|
|
130
|
-
*/
|
|
131
|
-
const formattedFields = computed(() => {
|
|
132
|
-
if (props.useEmptyResult) return props.fields
|
|
133
|
-
|
|
134
|
-
if (!hasResult.value) return {}
|
|
135
|
-
|
|
136
|
-
const fields = {}
|
|
137
|
-
|
|
138
|
-
for (const key in props.fields) {
|
|
139
|
-
const result = props.result[key]
|
|
140
|
-
|
|
141
|
-
const validate = Array.isArray(result)
|
|
142
|
-
? result.length
|
|
143
|
-
: isObject(result) ? Object.keys(result).length : result
|
|
144
|
-
|
|
145
|
-
if (validate) {
|
|
146
|
-
fields[key] = props.fields[key]
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return fields
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
// watch
|
|
154
|
-
watch(() => formattedFields.value, setFieldsByResult, { immediate: true })
|
|
155
|
-
|
|
156
|
-
// functions
|
|
157
|
-
function getFieldsByResult () {
|
|
158
|
-
if (!hasResult.value || !hasFields.value) return {}
|
|
159
|
-
|
|
160
|
-
const result = { ...props.result }
|
|
161
|
-
const fieldsByResult = {}
|
|
162
|
-
|
|
163
|
-
for (const key in formattedFields.value) {
|
|
164
|
-
const field = formattedFields.value[key] || {}
|
|
165
|
-
|
|
166
|
-
if (!field.type) continue
|
|
167
|
-
|
|
168
|
-
const humanizedResult = humanize(field, result[key])
|
|
169
|
-
const formattedResult = isEmpty({ value: humanizedResult }) ? props.emptyResultText : humanizedResult
|
|
170
|
-
|
|
171
|
-
fieldsByResult[key] = {
|
|
172
|
-
...field,
|
|
173
|
-
formattedResult
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return fieldsByResult
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
function setFieldsByResult () {
|
|
181
|
-
fieldsByResult.value = getFieldsByResult()
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
function getContainerClassses ({ key }) {
|
|
185
|
-
if (props.useInline) return 'row justify-between col-12'
|
|
186
|
-
|
|
187
|
-
return getFieldClass({ index: key, isGridGenerator: true })
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
function getTitle (field, key) {
|
|
191
|
-
return props.useEllipsis ? field[key] : ''
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
function hasEllipsis (field) {
|
|
195
|
-
/**
|
|
196
|
-
* Para campos do tipo "textarea" vamos sempre exibir o conteúdo por completo.
|
|
197
|
-
*/
|
|
198
|
-
return (field.type === 'textarea') && !props.useInline ? false : props.useEllipsis
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
function getContentClasses (field) {
|
|
202
|
-
return [
|
|
203
|
-
props.contentClass,
|
|
204
|
-
|
|
205
|
-
{
|
|
206
|
-
ellipsis: !screen.isSmall && hasEllipsis(field)
|
|
207
|
-
}
|
|
208
|
-
]
|
|
209
|
-
}
|
|
210
|
-
</script>
|
|
1
|
+
<template>
|
|
2
|
+
<component :is="component.is" v-bind="component.props">
|
|
3
|
+
<qas-header v-if="hasHeader" v-bind="props.headerProps" />
|
|
4
|
+
|
|
5
|
+
<div :class="classes">
|
|
6
|
+
<div v-for="(field, key) in fieldsByResult" :key="key" :class="getContainerClassses({ key })">
|
|
7
|
+
<slot :field="field" :name="`field-${field.name}`">
|
|
8
|
+
<qas-grid-item :use-ellipsis="hasEllipsis(field)" :use-inline="props.useInline">
|
|
9
|
+
<template #header>
|
|
10
|
+
<slot :field="field" :name="`header-field-${field.name}`">
|
|
11
|
+
<slot :field="field" name="header">
|
|
12
|
+
<div :class="headerClass" :data-cy="`grid-generator-${field.name}-field`" :title="getTitle(field, 'label')">
|
|
13
|
+
{{ field.label }}
|
|
14
|
+
</div>
|
|
15
|
+
</slot>
|
|
16
|
+
</slot>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<template #content>
|
|
20
|
+
<slot :field="field" :name="`content-field-${field.name}`">
|
|
21
|
+
<slot :field="field" name="content">
|
|
22
|
+
<div :class="getContentClasses(field)" :data-cy="`grid-generator-${field.name}-result`" :title="getTitle(field, 'formattedResult')">
|
|
23
|
+
{{ field.formattedResult }}
|
|
24
|
+
</div>
|
|
25
|
+
</slot>
|
|
26
|
+
</slot>
|
|
27
|
+
</template>
|
|
28
|
+
</qas-grid-item>
|
|
29
|
+
</slot>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</component>
|
|
33
|
+
</template>
|
|
34
|
+
|
|
35
|
+
<script setup>
|
|
36
|
+
import useGenerator, { baseProps } from '../../composables/private/use-generator'
|
|
37
|
+
import { isEmpty, humanize } from '../../helpers'
|
|
38
|
+
import { useScreen } from '../../composables'
|
|
39
|
+
import { isObject } from 'lodash-es'
|
|
40
|
+
import { ref, computed, watch } from 'vue'
|
|
41
|
+
|
|
42
|
+
// define component name
|
|
43
|
+
defineOptions({ name: 'QasGridGenerator' })
|
|
44
|
+
|
|
45
|
+
const screen = useScreen()
|
|
46
|
+
|
|
47
|
+
// props
|
|
48
|
+
const props = defineProps({
|
|
49
|
+
...baseProps,
|
|
50
|
+
|
|
51
|
+
boxProps: {
|
|
52
|
+
type: Object,
|
|
53
|
+
default: () => ({})
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
contentClass: {
|
|
57
|
+
default: '',
|
|
58
|
+
type: [Array, Object, String]
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
headerClass: {
|
|
62
|
+
default: '',
|
|
63
|
+
type: [Array, Object, String]
|
|
64
|
+
},
|
|
65
|
+
|
|
66
|
+
headerProps: {
|
|
67
|
+
type: Object,
|
|
68
|
+
default: () => ({})
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
emptyResultText: {
|
|
72
|
+
default: '-',
|
|
73
|
+
type: String
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
result: {
|
|
77
|
+
default: () => ({}),
|
|
78
|
+
type: Object
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
useBox: {
|
|
82
|
+
type: Boolean
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
useEmptyResult: {
|
|
86
|
+
default: true,
|
|
87
|
+
type: Boolean
|
|
88
|
+
},
|
|
89
|
+
|
|
90
|
+
useEllipsis: {
|
|
91
|
+
default: true,
|
|
92
|
+
type: Boolean
|
|
93
|
+
},
|
|
94
|
+
|
|
95
|
+
useInline: {
|
|
96
|
+
type: Boolean
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
// composables
|
|
101
|
+
const { classes, getFieldClass } = useGenerator({ props })
|
|
102
|
+
|
|
103
|
+
// computed
|
|
104
|
+
const hasResult = computed(() => Object.keys(props.result).length)
|
|
105
|
+
const hasFields = computed(() => Object.keys(props.fields).length)
|
|
106
|
+
const hasHeader = computed(() => Object.keys(props.headerProps).length)
|
|
107
|
+
|
|
108
|
+
const component = computed(() => {
|
|
109
|
+
return {
|
|
110
|
+
is: props.useBox ? 'qas-box' : 'div',
|
|
111
|
+
props: props.useBox ? props.boxProps : {}
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
|
|
115
|
+
const headerClass = computed(() => {
|
|
116
|
+
return [
|
|
117
|
+
props.headerClass,
|
|
118
|
+
|
|
119
|
+
{
|
|
120
|
+
ellipsis: !screen.isSmall && props.useEllipsis
|
|
121
|
+
}
|
|
122
|
+
]
|
|
123
|
+
})
|
|
124
|
+
|
|
125
|
+
const fieldsByResult = ref({})
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Retorna os "fields" formatados, caso a propriedade "useEmptyResult" seja "true", retorna todos os "fields", mesmo que não tenha resultado.
|
|
129
|
+
* Caso a propriedade "useEmptyResult" seja "false", retorna apenas os "fields" que possuem resultado.
|
|
130
|
+
*/
|
|
131
|
+
const formattedFields = computed(() => {
|
|
132
|
+
if (props.useEmptyResult) return props.fields
|
|
133
|
+
|
|
134
|
+
if (!hasResult.value) return {}
|
|
135
|
+
|
|
136
|
+
const fields = {}
|
|
137
|
+
|
|
138
|
+
for (const key in props.fields) {
|
|
139
|
+
const result = props.result[key]
|
|
140
|
+
|
|
141
|
+
const validate = Array.isArray(result)
|
|
142
|
+
? result.length
|
|
143
|
+
: isObject(result) ? Object.keys(result).length : result
|
|
144
|
+
|
|
145
|
+
if (validate) {
|
|
146
|
+
fields[key] = props.fields[key]
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return fields
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
// watch
|
|
154
|
+
watch(() => formattedFields.value, setFieldsByResult, { immediate: true })
|
|
155
|
+
|
|
156
|
+
// functions
|
|
157
|
+
function getFieldsByResult () {
|
|
158
|
+
if (!hasResult.value || !hasFields.value) return {}
|
|
159
|
+
|
|
160
|
+
const result = { ...props.result }
|
|
161
|
+
const fieldsByResult = {}
|
|
162
|
+
|
|
163
|
+
for (const key in formattedFields.value) {
|
|
164
|
+
const field = formattedFields.value[key] || {}
|
|
165
|
+
|
|
166
|
+
if (!field.type) continue
|
|
167
|
+
|
|
168
|
+
const humanizedResult = humanize(field, result[key])
|
|
169
|
+
const formattedResult = isEmpty({ value: humanizedResult }) ? props.emptyResultText : humanizedResult
|
|
170
|
+
|
|
171
|
+
fieldsByResult[key] = {
|
|
172
|
+
...field,
|
|
173
|
+
formattedResult
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
return fieldsByResult
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function setFieldsByResult () {
|
|
181
|
+
fieldsByResult.value = getFieldsByResult()
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
function getContainerClassses ({ key }) {
|
|
185
|
+
if (props.useInline) return 'row justify-between col-12'
|
|
186
|
+
|
|
187
|
+
return getFieldClass({ index: key, isGridGenerator: true })
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function getTitle (field, key) {
|
|
191
|
+
return props.useEllipsis ? field[key] : ''
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
function hasEllipsis (field) {
|
|
195
|
+
/**
|
|
196
|
+
* Para campos do tipo "textarea" vamos sempre exibir o conteúdo por completo.
|
|
197
|
+
*/
|
|
198
|
+
return (field.type === 'textarea') && !props.useInline ? false : props.useEllipsis
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
function getContentClasses (field) {
|
|
202
|
+
return [
|
|
203
|
+
props.contentClass,
|
|
204
|
+
|
|
205
|
+
{
|
|
206
|
+
ellipsis: !screen.isSmall && hasEllipsis(field)
|
|
207
|
+
}
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
</script>
|
|
@@ -1,127 +1,127 @@
|
|
|
1
|
-
type: component
|
|
2
|
-
|
|
3
|
-
meta:
|
|
4
|
-
desc: Componente para criação de textos dinâmicos.
|
|
5
|
-
|
|
6
|
-
props:
|
|
7
|
-
box-props:
|
|
8
|
-
desc: Propriedades do "QasBox" que envolve o conteúdo.
|
|
9
|
-
default: {}
|
|
10
|
-
type: Object
|
|
11
|
-
|
|
12
|
-
columns:
|
|
13
|
-
desc: Colunas do grid de cada campo.
|
|
14
|
-
default: col-6
|
|
15
|
-
type: [Array, String, Object]
|
|
16
|
-
examples: ["{ name: { sm: 6, md: 12 } }", "[{ sm: 6, md: 12 }]", "{ sm: 6, md: 12 }"]
|
|
17
|
-
|
|
18
|
-
common-columns:
|
|
19
|
-
desc: Usado quando precisa passar o mesmo valor para todas as colunas, sem especificar cada uma, ela é feita como um merge com a prop "columns".
|
|
20
|
-
examples: ["{ name: { sm: 6, md: 12 } }", "12"]
|
|
21
|
-
|
|
22
|
-
content-class:
|
|
23
|
-
desc: Classe de cada "div" pai referente ao resultado.
|
|
24
|
-
default: ''
|
|
25
|
-
type: [Array, Object, String]
|
|
26
|
-
|
|
27
|
-
empty-result-text:
|
|
28
|
-
desc: Se o resultado de algum campo for vazio (null, undefined, ''), esta prop define qual será o valor padrão.
|
|
29
|
-
default: '-'
|
|
30
|
-
type: String
|
|
31
|
-
|
|
32
|
-
fields:
|
|
33
|
-
desc: Lista de field contendo informações necessárias para a criação do campo correspondente.
|
|
34
|
-
default: {}
|
|
35
|
-
type: Object
|
|
36
|
-
examples: ["{ email: { name: 'email', type: 'email', label: 'E-mail' } }"]
|
|
37
|
-
|
|
38
|
-
gutter:
|
|
39
|
-
desc: Espaçamento entre colunas.
|
|
40
|
-
default: lg
|
|
41
|
-
type: String
|
|
42
|
-
examples: [xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl]
|
|
43
|
-
|
|
44
|
-
header-class:
|
|
45
|
-
desc: Classe de cada "header" pai referente ao "label".
|
|
46
|
-
default: 'text-bold'
|
|
47
|
-
type: [Array, Object, String]
|
|
48
|
-
|
|
49
|
-
header-props:
|
|
50
|
-
desc: Propriedades do "QasHeader".
|
|
51
|
-
default: {}
|
|
52
|
-
type: Object
|
|
53
|
-
|
|
54
|
-
result:
|
|
55
|
-
desc: Resultado contendo todas informações para serem exibidas na tela.
|
|
56
|
-
default: {}
|
|
57
|
-
type: Object
|
|
58
|
-
examples: ["{ 'joah@examples.com' }"]
|
|
59
|
-
|
|
60
|
-
use-empty-result:
|
|
61
|
-
desc: Se o resultado de algum campo for vazio e esta propriedade for "false", ele remove todo o campo.
|
|
62
|
-
default: true
|
|
63
|
-
type: Boolean
|
|
64
|
-
|
|
65
|
-
use-box:
|
|
66
|
-
desc: Controla se o componente vai ter o QasBox englobando ou não.
|
|
67
|
-
default: false
|
|
68
|
-
type: Boolean
|
|
69
|
-
|
|
70
|
-
use-ellipsis:
|
|
71
|
-
desc: Adiciona a classe "ellipsis" para o elemento do conteúdo.
|
|
72
|
-
default: true
|
|
73
|
-
type: Boolean
|
|
74
|
-
|
|
75
|
-
use-inline:
|
|
76
|
-
desc: Adiciona a disposição dos campos por linha, ou seja, header e content ocupando a linha toda.
|
|
77
|
-
type: Boolean
|
|
78
|
-
|
|
79
|
-
slots:
|
|
80
|
-
content:
|
|
81
|
-
desc: Slot para o conteúdo (valor) de todas os campos de uma vez.
|
|
82
|
-
scope:
|
|
83
|
-
field:
|
|
84
|
-
desc: Conteúdo do field atual mais o resultado formatado.
|
|
85
|
-
default: {}
|
|
86
|
-
type: Object
|
|
87
|
-
|
|
88
|
-
'field-[nome-da-chave]':
|
|
89
|
-
desc: Slot para todo o conteúdo dentro de cada grid (header e content).
|
|
90
|
-
scope:
|
|
91
|
-
field:
|
|
92
|
-
desc: Conteúdo do field atual mais o resultado formatado.
|
|
93
|
-
default: {}
|
|
94
|
-
type: Object
|
|
95
|
-
|
|
96
|
-
header:
|
|
97
|
-
desc: Slot para o header de todas os campos de uma vez.
|
|
98
|
-
scope:
|
|
99
|
-
field:
|
|
100
|
-
desc: Conteúdo do field atual mais o resultado formatado.
|
|
101
|
-
default: {}
|
|
102
|
-
type: Object
|
|
103
|
-
|
|
104
|
-
'header-field-[nome-da-chave]':
|
|
105
|
-
desc: Slot para o header especifico de um field.
|
|
106
|
-
scope:
|
|
107
|
-
field:
|
|
108
|
-
desc: Conteúdo do field atual mais o resultado formatado.
|
|
109
|
-
default: {}
|
|
110
|
-
type: Object
|
|
111
|
-
|
|
112
|
-
'content-field-[nome-da-chave]':
|
|
113
|
-
desc: Slot para o conteúdo (valor) especifico de um field.
|
|
114
|
-
scope:
|
|
115
|
-
field:
|
|
116
|
-
desc: Conteúdo do field atual mais o resultado formatado.
|
|
117
|
-
default: {}
|
|
118
|
-
type: Object
|
|
119
|
-
|
|
120
|
-
selectors:
|
|
121
|
-
'grid-generator-[fieldName]-field':
|
|
122
|
-
desc: Seletor do título do campo.
|
|
123
|
-
examples: ['data-cy="grid-generator-email-field"', 'data-cy="grid-generator-name-field"']
|
|
124
|
-
|
|
125
|
-
'grid-generator-[fieldName]-result':
|
|
126
|
-
desc: Seletor do conteúdo do campo.
|
|
127
|
-
examples: ['data-cy="grid-generator-email-result"', 'data-cy="grid-generator-name-result"']
|
|
1
|
+
type: component
|
|
2
|
+
|
|
3
|
+
meta:
|
|
4
|
+
desc: Componente para criação de textos dinâmicos.
|
|
5
|
+
|
|
6
|
+
props:
|
|
7
|
+
box-props:
|
|
8
|
+
desc: Propriedades do "QasBox" que envolve o conteúdo.
|
|
9
|
+
default: {}
|
|
10
|
+
type: Object
|
|
11
|
+
|
|
12
|
+
columns:
|
|
13
|
+
desc: Colunas do grid de cada campo.
|
|
14
|
+
default: col-6
|
|
15
|
+
type: [Array, String, Object]
|
|
16
|
+
examples: ["{ name: { sm: 6, md: 12 } }", "[{ sm: 6, md: 12 }]", "{ sm: 6, md: 12 }"]
|
|
17
|
+
|
|
18
|
+
common-columns:
|
|
19
|
+
desc: Usado quando precisa passar o mesmo valor para todas as colunas, sem especificar cada uma, ela é feita como um merge com a prop "columns".
|
|
20
|
+
examples: ["{ name: { sm: 6, md: 12 } }", "12"]
|
|
21
|
+
|
|
22
|
+
content-class:
|
|
23
|
+
desc: Classe de cada "div" pai referente ao resultado.
|
|
24
|
+
default: ''
|
|
25
|
+
type: [Array, Object, String]
|
|
26
|
+
|
|
27
|
+
empty-result-text:
|
|
28
|
+
desc: Se o resultado de algum campo for vazio (null, undefined, ''), esta prop define qual será o valor padrão.
|
|
29
|
+
default: '-'
|
|
30
|
+
type: String
|
|
31
|
+
|
|
32
|
+
fields:
|
|
33
|
+
desc: Lista de field contendo informações necessárias para a criação do campo correspondente.
|
|
34
|
+
default: {}
|
|
35
|
+
type: Object
|
|
36
|
+
examples: ["{ email: { name: 'email', type: 'email', label: 'E-mail' } }"]
|
|
37
|
+
|
|
38
|
+
gutter:
|
|
39
|
+
desc: Espaçamento entre colunas.
|
|
40
|
+
default: lg
|
|
41
|
+
type: String
|
|
42
|
+
examples: [xs, sm, md, lg, xl, 2xl, 3xl, 4xl, 5xl]
|
|
43
|
+
|
|
44
|
+
header-class:
|
|
45
|
+
desc: Classe de cada "header" pai referente ao "label".
|
|
46
|
+
default: 'text-bold'
|
|
47
|
+
type: [Array, Object, String]
|
|
48
|
+
|
|
49
|
+
header-props:
|
|
50
|
+
desc: Propriedades do "QasHeader".
|
|
51
|
+
default: {}
|
|
52
|
+
type: Object
|
|
53
|
+
|
|
54
|
+
result:
|
|
55
|
+
desc: Resultado contendo todas informações para serem exibidas na tela.
|
|
56
|
+
default: {}
|
|
57
|
+
type: Object
|
|
58
|
+
examples: ["{ 'joah@examples.com' }"]
|
|
59
|
+
|
|
60
|
+
use-empty-result:
|
|
61
|
+
desc: Se o resultado de algum campo for vazio e esta propriedade for "false", ele remove todo o campo.
|
|
62
|
+
default: true
|
|
63
|
+
type: Boolean
|
|
64
|
+
|
|
65
|
+
use-box:
|
|
66
|
+
desc: Controla se o componente vai ter o QasBox englobando ou não.
|
|
67
|
+
default: false
|
|
68
|
+
type: Boolean
|
|
69
|
+
|
|
70
|
+
use-ellipsis:
|
|
71
|
+
desc: Adiciona a classe "ellipsis" para o elemento do conteúdo.
|
|
72
|
+
default: true
|
|
73
|
+
type: Boolean
|
|
74
|
+
|
|
75
|
+
use-inline:
|
|
76
|
+
desc: Adiciona a disposição dos campos por linha, ou seja, header e content ocupando a linha toda.
|
|
77
|
+
type: Boolean
|
|
78
|
+
|
|
79
|
+
slots:
|
|
80
|
+
content:
|
|
81
|
+
desc: Slot para o conteúdo (valor) de todas os campos de uma vez.
|
|
82
|
+
scope:
|
|
83
|
+
field:
|
|
84
|
+
desc: Conteúdo do field atual mais o resultado formatado.
|
|
85
|
+
default: {}
|
|
86
|
+
type: Object
|
|
87
|
+
|
|
88
|
+
'field-[nome-da-chave]':
|
|
89
|
+
desc: Slot para todo o conteúdo dentro de cada grid (header e content).
|
|
90
|
+
scope:
|
|
91
|
+
field:
|
|
92
|
+
desc: Conteúdo do field atual mais o resultado formatado.
|
|
93
|
+
default: {}
|
|
94
|
+
type: Object
|
|
95
|
+
|
|
96
|
+
header:
|
|
97
|
+
desc: Slot para o header de todas os campos de uma vez.
|
|
98
|
+
scope:
|
|
99
|
+
field:
|
|
100
|
+
desc: Conteúdo do field atual mais o resultado formatado.
|
|
101
|
+
default: {}
|
|
102
|
+
type: Object
|
|
103
|
+
|
|
104
|
+
'header-field-[nome-da-chave]':
|
|
105
|
+
desc: Slot para o header especifico de um field.
|
|
106
|
+
scope:
|
|
107
|
+
field:
|
|
108
|
+
desc: Conteúdo do field atual mais o resultado formatado.
|
|
109
|
+
default: {}
|
|
110
|
+
type: Object
|
|
111
|
+
|
|
112
|
+
'content-field-[nome-da-chave]':
|
|
113
|
+
desc: Slot para o conteúdo (valor) especifico de um field.
|
|
114
|
+
scope:
|
|
115
|
+
field:
|
|
116
|
+
desc: Conteúdo do field atual mais o resultado formatado.
|
|
117
|
+
default: {}
|
|
118
|
+
type: Object
|
|
119
|
+
|
|
120
|
+
selectors:
|
|
121
|
+
'grid-generator-[fieldName]-field':
|
|
122
|
+
desc: Seletor do título do campo.
|
|
123
|
+
examples: ['data-cy="grid-generator-email-field"', 'data-cy="grid-generator-name-field"']
|
|
124
|
+
|
|
125
|
+
'grid-generator-[fieldName]-result':
|
|
126
|
+
desc: Seletor do conteúdo do campo.
|
|
127
|
+
examples: ['data-cy="grid-generator-email-result"', 'data-cy="grid-generator-name-result"']
|