@bildvitta/quasar-ui-asteroid 3.0.0-alpha.2 → 3.0.0-beta.2

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 (60) hide show
  1. package/dist/api/QasDelete.json +5 -0
  2. package/dist/api/QasFilters.json +4 -0
  3. package/dist/api/QasFormView.json +6 -4
  4. package/dist/api/QasInput.json +16 -1
  5. package/dist/api/QasPasswordInput.json +2 -1
  6. package/dist/api/QasSignatureUploader.json +7 -0
  7. package/dist/asteroid.cjs.css +1 -1
  8. package/dist/asteroid.cjs.js +469 -281
  9. package/dist/asteroid.cjs.min.js +2 -2
  10. package/dist/asteroid.esm.css +1 -1
  11. package/dist/asteroid.esm.js +472 -283
  12. package/dist/asteroid.esm.min.js +2 -2
  13. package/dist/asteroid.umd.css +1 -1
  14. package/dist/asteroid.umd.js +472 -283
  15. package/dist/asteroid.umd.min.js +2 -2
  16. package/dist/vetur/asteroid-attributes.json +27 -3
  17. package/dist/vetur/asteroid-tags.json +9 -3
  18. package/package.json +1 -1
  19. package/src/asteroid.js +1 -0
  20. package/src/components/actions-menu/QasActionsMenu.vue +3 -5
  21. package/src/components/btn/QasBtn.vue +6 -4
  22. package/src/components/delete/QasDelete.vue +23 -1
  23. package/src/components/delete/QasDelete.yml +4 -0
  24. package/src/components/dialog/QasDialog.vue +2 -2
  25. package/src/components/field/QasField.vue +1 -2
  26. package/src/components/filters/QasFilters.vue +6 -2
  27. package/src/components/filters/QasFilters.yml +4 -0
  28. package/src/components/form-view/QasFormView.vue +10 -10
  29. package/src/components/form-view/QasFormView.yml +8 -3
  30. package/src/components/input/QasInput.vue +43 -2
  31. package/src/components/input/QasInput.yml +13 -1
  32. package/src/components/nested-fields/QasNestedFields.vue +47 -35
  33. package/src/components/page-header/QasPageHeader.vue +4 -2
  34. package/src/components/password-input/QasPasswordInput.vue +17 -26
  35. package/src/components/password-input/QasPasswordInput.yml +1 -1
  36. package/src/components/search-box/QasSearchBox.vue +6 -1
  37. package/src/components/select-list/QasSelectList.vue +10 -8
  38. package/src/components/signature-uploader/QasSignatureUploader.vue +38 -2
  39. package/src/components/signature-uploader/QasSignatureUploader.yml +5 -0
  40. package/src/components/table-generator/QasTableGenerator.vue +2 -2
  41. package/src/components/transfer/QasTransfer.vue +9 -7
  42. package/src/components/uploader/QasUploader.vue +1 -2
  43. package/src/composables/index.js +1 -0
  44. package/src/composables/useHistory.js +46 -0
  45. package/src/directives/Test.js +13 -0
  46. package/src/helpers/filter-list-by-handle.js +31 -0
  47. package/src/helpers/filter-object-to-array.js +29 -0
  48. package/src/helpers/filter-object.js +2 -3
  49. package/src/helpers/index.js +2 -0
  50. package/src/index.scss +3 -2
  51. package/src/mixins/view.js +2 -0
  52. package/src/pages/Forbidden.vue +12 -0
  53. package/src/pages/NotFound.vue +12 -0
  54. package/src/plugins/index.js +2 -0
  55. package/src/plugins/screen/Screen.js +30 -0
  56. package/src/plugins/screen/Screen.yml +16 -0
  57. package/src/vue-plugin.js +12 -3
  58. package/src/css/transitions.scss +0 -12
  59. package/src/store/history.js +0 -43
  60. package/src/store/index.js +0 -1
@@ -1,17 +1,16 @@
1
1
  /*!
2
- * @bildvitta/quasar-ui-asteroid v3.0.0-alpha.2
2
+ * @bildvitta/quasar-ui-asteroid v3.0.0-beta.2
3
3
  * (c) 2022 Bild & Vitta <systemteam@bild.com.br>
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import { camelize, camelizeKeys } from 'humps';
7
- import { markRaw, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, resolveComponent, createBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderList, normalizeProps, guardReactiveProps, createVNode, Fragment, resolveDynamicComponent, resolveDirective, withDirectives, vShow, withModifiers, reactive, normalizeStyle } from 'vue';
7
+ import { markRaw, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, resolveComponent, createBlock, mergeProps, createSlots, withCtx, createCommentVNode, renderList, normalizeProps, guardReactiveProps, createVNode, Fragment, toDisplayString, resolveDynamicComponent, createTextVNode, resolveDirective, withDirectives, reactive, computed, vShow, normalizeStyle, withModifiers, TransitionGroup } from 'vue';
8
8
  import { parseISO, format, isMatch } from 'date-fns';
9
9
  import { ptBR } from 'date-fns/locale';
10
- import { copyToClipboard, date as date$1, Dialog as Dialog$1, Notify, Loading, extend, uid, Quasar } from 'quasar';
10
+ import { copyToClipboard, date as date$1, Dialog as Dialog$1, Notify, Screen as Screen$1, Platform, Loading, extend, uid, Quasar } from 'quasar';
11
+ import { findLastIndex, isEqual, isEqualWith, isObject, castArray, sortBy } from 'lodash-es';
11
12
  import AutoNumeric from 'autonumeric';
12
13
  import Pica from 'pica';
13
- import api from 'axios';
14
- import { isEqual, findLastIndex, isEqualWith, isObject, castArray, sortBy } from 'lodash-es';
15
14
  import SignaturePad from 'signature_pad';
16
15
  import { onBeforeRouteLeave } from 'vue-router';
17
16
  import Fuse from 'fuse.js';
@@ -341,6 +340,8 @@ var viewMixin = {
341
340
 
342
341
  mx_updateModels (models) {
343
342
  for (const key in models) {
343
+ if (!models[key]) continue
344
+
344
345
  this.$emit(`update:${key}`, models[key]);
345
346
  }
346
347
  }
@@ -401,8 +402,6 @@ var script$K = {
401
402
 
402
403
  mixins: [screenMixin],
403
404
 
404
- inheritAttrs: false,
405
-
406
405
  props: {
407
406
  hideLabelOnSmallScreen: {
408
407
  type: Boolean
@@ -412,7 +411,11 @@ var script$K = {
412
411
  computed: {
413
412
  attributes () {
414
413
  const { label, ...attributes } = this.$attrs;
415
- return attributes
414
+
415
+ return {
416
+ ...(this.showLabel && { label }),
417
+ ...attributes
418
+ }
416
419
  },
417
420
 
418
421
  hasLabel () {
@@ -440,9 +443,7 @@ function render$K(_ctx, _cache, $props, $setup, $data, $options) {
440
443
  }, $options.attributes), createSlots({
441
444
  default: withCtx(() => [
442
445
  ($options.showLabel)
443
- ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
444
- createTextVNode(toDisplayString(_ctx.$attrs.label), 1 /* TEXT */)
445
- ])
446
+ ? renderSlot(_ctx.$slots, "default", { key: 0 })
446
447
  : createCommentVNode("v-if", true)
447
448
  ]),
448
449
  _: 2 /* DYNAMIC */
@@ -540,10 +541,10 @@ function render$J(_ctx, _cache, $props, $setup, $data, $options) {
540
541
  "hide-label-on-small-screen": "",
541
542
  icon: $props.icon,
542
543
  label: $props.label,
543
- outline: ""
544
+ outline: "",
545
+ padding: "md"
544
546
  }, {
545
547
  default: withCtx(() => [
546
- createElementVNode("span", null, toDisplayString($props.label), 1 /* TEXT */),
547
548
  createVNode(_component_q_menu, { class: "qas-actions-menu__menu" }, {
548
549
  default: withCtx(() => [
549
550
  createVNode(_component_q_list, {
@@ -566,8 +567,8 @@ function render$J(_ctx, _cache, $props, $setup, $data, $options) {
566
567
  createElementVNode("div", _hoisted_1$r, [
567
568
  createVNode(_component_q_icon, {
568
569
  name: item.icon,
569
- size: item.iconSize
570
- }, null, 8 /* PROPS */, ["name", "size"]),
570
+ size: "sm"
571
+ }, null, 8 /* PROPS */, ["name"]),
571
572
  createElementVNode("div", null, toDisplayString(item.label), 1 /* TEXT */)
572
573
  ])
573
574
  ]),
@@ -589,7 +590,10 @@ function render$J(_ctx, _cache, $props, $setup, $data, $options) {
589
590
  createVNode(_component_q_item_section, null, {
590
591
  default: withCtx(() => [
591
592
  createElementVNode("div", _hoisted_2$k, [
592
- createVNode(_component_q_icon, { name: $props.deleteIcon }, null, 8 /* PROPS */, ["name"]),
593
+ createVNode(_component_q_icon, {
594
+ name: $props.deleteIcon,
595
+ size: "sm"
596
+ }, null, 8 /* PROPS */, ["name"]),
593
597
  createElementVNode("div", null, toDisplayString($props.deleteLabel), 1 /* TEXT */)
594
598
  ])
595
599
  ]),
@@ -750,11 +754,10 @@ function constructObject (name, object) {
750
754
  }
751
755
 
752
756
  /**
753
- * Function to filter specific field inside a fields
754
- * Função para filtrar propriedades espessificas dentro de um objeto
757
+ * Função para filtrar propriedades especificas dentro de um objeto
755
758
  *
756
759
  * @param {object} fields objeto com propriedades
757
- * @param {array} models array de string com nomes das proproiedades que serão filtradas
760
+ * @param {array} models array de string com nomes das propriedades que serão filtradas
758
761
  * @returns {object} objeto com propriedades filtradas
759
762
  *
760
763
  * @example
@@ -1334,7 +1337,7 @@ const _hoisted_10$1 = { class: "q-pa-lg text-center" };
1334
1337
  const _hoisted_11$1 = { class: "ellipsis q-mt-lg qs-lh-sm text-bold text-subtitle1" };
1335
1338
  const _hoisted_12$1 = { class: "ellipsis q-mt-xs text-caption" };
1336
1339
  const _hoisted_13$1 = { class: "q-mt-sm" };
1337
- const _hoisted_14 = { class: "q-mt-sm" };
1340
+ const _hoisted_14$1 = { class: "q-mt-sm" };
1338
1341
 
1339
1342
  function render$F(_ctx, _cache, $props, $setup, $data, $options) {
1340
1343
  const _component_q_ajax_bar = resolveComponent("q-ajax-bar");
@@ -1480,7 +1483,7 @@ function render$F(_ctx, _cache, $props, $setup, $data, $options) {
1480
1483
  to: $props.user.to
1481
1484
  }, null, 8 /* PROPS */, ["to"])
1482
1485
  ]),
1483
- createElementVNode("div", _hoisted_14, [
1486
+ createElementVNode("div", _hoisted_14$1, [
1484
1487
  withDirectives(createVNode(_component_qas_btn, {
1485
1488
  class: "q-px-lg q-py-xs",
1486
1489
  dense: "",
@@ -2623,12 +2626,12 @@ var script$x = {
2623
2626
  this.useForm && this.$emit('validate', await this.$refs.form.validate());
2624
2627
  },
2625
2628
 
2626
- // metodo para funcionar como plugin
2629
+ // método para funcionar como plugin
2627
2630
  show () {
2628
2631
  this.$refs.dialog.show();
2629
2632
  },
2630
2633
 
2631
- // metodo para funcionar como plugin
2634
+ // método para funcionar como plugin
2632
2635
  hide () {
2633
2636
  this.$refs.dialog.hide();
2634
2637
  },
@@ -2768,6 +2771,79 @@ var NotifySuccess = (message, caption) => {
2768
2771
  Notify?.create({ caption, message, type: 'success' });
2769
2772
  };
2770
2773
 
2774
+ var Screen = () => {
2775
+ const screensModel = {
2776
+ isSmall: () => Screen$1.xs,
2777
+ isMedium: () => Screen$1.sm,
2778
+ isLarge: () => Screen$1.gt.sm,
2779
+ untilMedium: () => Screen$1.lt.sm,
2780
+ untilLarge: () => Screen$1.lt.md,
2781
+
2782
+ // Plataforma
2783
+ isMobile: () => Platform.is.mobile || false
2784
+ };
2785
+
2786
+ const screens = {};
2787
+
2788
+ for (const key in screensModel) {
2789
+ // infelizmente esta é a única forma que conseguimos para que nossa função se tornasse reativa na view
2790
+ // é como o próprio quasar implementa
2791
+ Object.defineProperty(screens, key, {
2792
+ get () {
2793
+ return screensModel[key]()
2794
+ },
2795
+
2796
+ enumerable: true
2797
+ });
2798
+ }
2799
+
2800
+ return screens
2801
+ };
2802
+
2803
+ const history$2 = reactive({ list: [] });
2804
+
2805
+ function useHistory () {
2806
+ const hasPreviousRoute = computed(() => history$2.list.length > 1);
2807
+
2808
+ function getPreviousRoute (currentRoute) {
2809
+ const index = findLastIndex(history$2.list, item => item.name === currentRoute.name);
2810
+
2811
+ if (~index) {
2812
+ history$2.list.splice(index, 1);
2813
+ }
2814
+
2815
+ return history$2.list[history$2.list.length - 1]
2816
+ }
2817
+
2818
+ function addRoute (route) {
2819
+ const routeExistsInList = history$2.list?.[history$2.list?.length - 1]?.name === route.name;
2820
+
2821
+ if (routeExistsInList) return
2822
+
2823
+ history$2.list.push(route);
2824
+ }
2825
+
2826
+ function destroyRoutes (routes) {
2827
+ if (!history$2.list.length) return null
2828
+
2829
+ routes.forEach(route => {
2830
+ const index = history$2.list.findIndex(item => item.name === route.name);
2831
+
2832
+ if (~index) {
2833
+ history$2.list.splice(index, 1);
2834
+ }
2835
+ });
2836
+ }
2837
+
2838
+ return {
2839
+ history: history$2,
2840
+ hasPreviousRoute,
2841
+ getPreviousRoute,
2842
+ addRoute,
2843
+ destroyRoutes
2844
+ }
2845
+ }
2846
+
2771
2847
  var script$w = {
2772
2848
  name: 'QasDelete',
2773
2849
 
@@ -2804,6 +2880,11 @@ var script$w = {
2804
2880
 
2805
2881
  deleting: {
2806
2882
  type: Boolean
2883
+ },
2884
+
2885
+ useAutoDeleteRoute: {
2886
+ default: true,
2887
+ type: Boolean
2807
2888
  }
2808
2889
  },
2809
2890
 
@@ -2851,9 +2932,21 @@ var script$w = {
2851
2932
  this.$emit('update:deleting', true);
2852
2933
 
2853
2934
  try {
2935
+ const { destroyRoutes, history } = useHistory();
2936
+
2854
2937
  await this.$store.dispatch(`${this.entity}/destroy`, { id: this.id, url: this.url });
2938
+
2855
2939
  NotifySuccess('Item deletado com sucesso!');
2940
+
2941
+ if (this.useAutoDeleteRoute) {
2942
+ // remove todas rotas que possuem o id do item excluído.
2943
+ const routesToBeDeleted = this.getRoutesToBeDeletedById(history.list);
2944
+ destroyRoutes(routesToBeDeleted);
2945
+ }
2946
+
2947
+ // cria um evento para notificar que o item foi excluído no "window".
2856
2948
  this.createDeleteSuccessEvent();
2949
+
2857
2950
  this.$emit('success');
2858
2951
  } catch (error) {
2859
2952
  NotifyError('Ops! Não foi possível deletar o item.');
@@ -2864,6 +2957,10 @@ var script$w = {
2864
2957
  }
2865
2958
  },
2866
2959
 
2960
+ getRoutesToBeDeletedById (routes = []) {
2961
+ return routes.filter(({ params }) => params.id === this.id)
2962
+ },
2963
+
2867
2964
  createDeleteSuccessEvent () {
2868
2965
  const event = new CustomEvent('delete-success', {
2869
2966
  bubbles: false,
@@ -3022,7 +3119,7 @@ var script$u = {
3022
3119
  props: {
3023
3120
  modelValue: {
3024
3121
  default: '',
3025
- type: String
3122
+ type: [String, Number]
3026
3123
  },
3027
3124
 
3028
3125
  unmaskedValue: {
@@ -3033,11 +3130,31 @@ var script$u = {
3033
3130
  outlined: {
3034
3131
  default: true,
3035
3132
  type: Boolean
3133
+ },
3134
+
3135
+ removeErrorOnType: {
3136
+ type: Boolean
3137
+ },
3138
+
3139
+ error: {
3140
+ type: Boolean
3141
+ },
3142
+
3143
+ errorMessage: {
3144
+ type: String,
3145
+ default: ''
3036
3146
  }
3037
3147
  },
3038
3148
 
3039
3149
  emits: ['update:modelValue'],
3040
3150
 
3151
+ data () {
3152
+ return {
3153
+ errorData: false,
3154
+ messageErrorData: ''
3155
+ }
3156
+ },
3157
+
3041
3158
  computed: {
3042
3159
  hasError () {
3043
3160
  return this.inputReference.hasError
@@ -3070,6 +3187,11 @@ var script$u = {
3070
3187
  },
3071
3188
 
3072
3189
  set (value) {
3190
+ if (this.removeErrorOnType && this.error) {
3191
+ this.errorData = false;
3192
+ this.errorMessageData = '';
3193
+ }
3194
+
3073
3195
  return this.$emit('update:modelValue', value)
3074
3196
  }
3075
3197
  }
@@ -3082,6 +3204,22 @@ var script$u = {
3082
3204
  requestAnimationFrame(() => {
3083
3205
  input.selectionStart = input.value ? input.value.length : '';
3084
3206
  });
3207
+ },
3208
+
3209
+ error: {
3210
+ handler (value) {
3211
+ this.errorData = value;
3212
+ },
3213
+
3214
+ immediate: true
3215
+ },
3216
+
3217
+ errorMessage: {
3218
+ handler (value) {
3219
+ this.errorMessageData = value;
3220
+ },
3221
+
3222
+ immediate: true
3085
3223
  }
3086
3224
  },
3087
3225
 
@@ -3113,8 +3251,10 @@ function render$u(_ctx, _cache, $props, $setup, $data, $options) {
3113
3251
  ref: "input",
3114
3252
  modelValue: $options.model,
3115
3253
  "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event)),
3116
- "bottom-slots": ""
3254
+ "bottom-slots": "",
3255
+ error: $data.errorData
3117
3256
  }, _ctx.$attrs, {
3257
+ "error-message": _ctx.errorMessageData,
3118
3258
  mask: $options.mask,
3119
3259
  outlined: $props.outlined,
3120
3260
  "unmasked-value": $props.unmaskedValue
@@ -3127,7 +3267,7 @@ function render$u(_ctx, _cache, $props, $setup, $data, $options) {
3127
3267
  ])
3128
3268
  }
3129
3269
  })
3130
- ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "mask", "outlined", "unmasked-value"])
3270
+ ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "error", "error-message", "mask", "outlined", "unmasked-value"])
3131
3271
  ]))
3132
3272
  }
3133
3273
 
@@ -3386,9 +3526,8 @@ var script$r = {
3386
3526
  mixins: [passwordMixin],
3387
3527
 
3388
3528
  props: {
3389
- useStrengthChecker: {
3390
- type: Boolean,
3391
- default: true
3529
+ hideStrengthChecker: {
3530
+ type: Boolean
3392
3531
  },
3393
3532
 
3394
3533
  iconColor: {
@@ -3406,7 +3545,6 @@ var script$r = {
3406
3545
 
3407
3546
  data () {
3408
3547
  return {
3409
- key: 'error',
3410
3548
  toggleType: true
3411
3549
  }
3412
3550
  },
@@ -3436,15 +3574,6 @@ var script$r = {
3436
3574
  }
3437
3575
  },
3438
3576
 
3439
- watch: {
3440
- modelValue () {
3441
- if (this.$attrs.error) {
3442
- this.$attrs.error = false;
3443
- this.$attrs.errorMessage = '';
3444
- }
3445
- }
3446
- },
3447
-
3448
3577
  methods: {
3449
3578
  toggle () {
3450
3579
  this.toggleType = !this.toggleType;
@@ -3457,39 +3586,43 @@ function render$r(_ctx, _cache, $props, $setup, $data, $options) {
3457
3586
  const _component_qas_password_strength_checker = resolveComponent("qas-password-strength-checker");
3458
3587
  const _component_qas_input = resolveComponent("qas-input");
3459
3588
 
3460
- return (openBlock(), createBlock(_component_qas_input, {
3461
- modelValue: $options.model,
3462
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event)),
3463
- "bottom-slots": "",
3464
- type: $options.type
3465
- }, createSlots({
3466
- append: withCtx(() => [
3467
- createVNode(_component_q_icon, {
3468
- class: "cursor-pointer",
3469
- color: $props.iconColor,
3470
- name: $options.icon,
3471
- onClick: $options.toggle
3472
- }, null, 8 /* PROPS */, ["color", "name", "onClick"])
3473
- ]),
3474
- _: 2 /* DYNAMIC */
3475
- }, [
3476
- renderList(_ctx.$slots, (_, name) => {
3477
- return {
3478
- name: name,
3479
- fn: withCtx((context) => [
3480
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(context || {})))
3481
- ])
3482
- }
3483
- }),
3484
- ($props.useStrengthChecker)
3485
- ? {
3486
- name: "hint",
3487
- fn: withCtx(() => [
3488
- createVNode(_component_qas_password_strength_checker, mergeProps($options.strengthCheckerProps, { password: $options.model }), null, 16 /* FULL_PROPS */, ["password"])
3589
+ return (openBlock(), createElementBlock("div", null, [
3590
+ createVNode(_component_qas_input, mergeProps({
3591
+ modelValue: $options.model,
3592
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event)),
3593
+ "bottom-slots": ""
3594
+ }, _ctx.$attrs, {
3595
+ "remove-error-on-type": "",
3596
+ type: $options.type
3597
+ }), createSlots({
3598
+ append: withCtx(() => [
3599
+ createVNode(_component_q_icon, {
3600
+ class: "cursor-pointer",
3601
+ color: $props.iconColor,
3602
+ name: $options.icon,
3603
+ onClick: $options.toggle
3604
+ }, null, 8 /* PROPS */, ["color", "name", "onClick"])
3605
+ ]),
3606
+ _: 2 /* DYNAMIC */
3607
+ }, [
3608
+ renderList(_ctx.$slots, (_, name) => {
3609
+ return {
3610
+ name: name,
3611
+ fn: withCtx((context) => [
3612
+ renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(context || {})))
3489
3613
  ])
3490
3614
  }
3491
- : undefined
3492
- ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "type"]))
3615
+ }),
3616
+ (!$props.hideStrengthChecker)
3617
+ ? {
3618
+ name: "hint",
3619
+ fn: withCtx(() => [
3620
+ createVNode(_component_qas_password_strength_checker, mergeProps($options.strengthCheckerProps, { password: $options.model }), null, 16 /* FULL_PROPS */, ["password"])
3621
+ ])
3622
+ }
3623
+ : undefined
3624
+ ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "type"])
3625
+ ]))
3493
3626
  }
3494
3627
 
3495
3628
  script$r.render = render$r;
@@ -3688,7 +3821,7 @@ var script$q = {
3688
3821
  this.isFetching = true;
3689
3822
 
3690
3823
  try {
3691
- const { data } = await api.post('/upload-credentials/', {
3824
+ const { data } = await this.$axios.post('/upload-credentials/', {
3692
3825
  entity: this.entity,
3693
3826
  filename
3694
3827
  });
@@ -4165,7 +4298,14 @@ var script$o = {
4165
4298
  QasSignaturePad: script$p
4166
4299
  },
4167
4300
 
4301
+ mixins: [screenMixin],
4302
+
4168
4303
  props: {
4304
+ dialogProps: {
4305
+ type: Object,
4306
+ default: () => ({})
4307
+ },
4308
+
4169
4309
  uploadLabel: {
4170
4310
  default: '',
4171
4311
  type: String
@@ -4214,6 +4354,32 @@ var script$o = {
4214
4354
 
4215
4355
  headerClass () {
4216
4356
  return `q-pa-${this.readonly ? 'md' : 'sm'}`
4357
+ },
4358
+
4359
+ defaultDialogProps () {
4360
+ return {
4361
+ maxWidth: '620px',
4362
+ ...this.dialogProps
4363
+ }
4364
+ },
4365
+
4366
+ signaturePadWidth () {
4367
+ const sizes = {
4368
+ [this.mx_isSmall]: { width: '100%' },
4369
+ [this.mx_isMedium]: { width: '570px' },
4370
+ [this.mx_isLarge]: { width: '350px' }
4371
+ };
4372
+ return sizes.true
4373
+ },
4374
+
4375
+ signaturePadHeight () {
4376
+ const sizes = {
4377
+ [this.mx_isSmall]: '250',
4378
+ [this.mx_isMedium]: '400',
4379
+ [this.mx_isLarge]: '250'
4380
+ };
4381
+
4382
+ return sizes.true
4217
4383
  }
4218
4384
  },
4219
4385
 
@@ -4313,20 +4479,24 @@ function render$o(_ctx, _cache, $props, $setup, $data, $options) {
4313
4479
  ]),
4314
4480
  _: 1 /* STABLE */
4315
4481
  }, 16 /* FULL_PROPS */, ["modelValue", "label", "readonly"]),
4316
- createVNode(_component_qas_dialog, {
4482
+ createVNode(_component_qas_dialog, mergeProps({
4317
4483
  modelValue: $data.isOpenedDialog,
4318
4484
  "onUpdate:modelValue": _cache[3] || (_cache[3] = $event => (($data.isOpenedDialog) = $event))
4319
- }, {
4485
+ }, $options.defaultDialogProps), {
4320
4486
  header: withCtx(() => [
4321
4487
  _hoisted_3$8
4322
4488
  ]),
4323
4489
  description: withCtx(() => [
4324
- createVNode(_component_qas_signature_pad, {
4325
- ref: "signaturePadModal",
4326
- empty: $data.isEmpty,
4327
- "onUpdate:empty": _cache[2] || (_cache[2] = $event => (($data.isEmpty) = $event)),
4328
- height: "250"
4329
- }, null, 8 /* PROPS */, ["empty"])
4490
+ createElementVNode("div", {
4491
+ style: normalizeStyle($options.signaturePadWidth)
4492
+ }, [
4493
+ createVNode(_component_qas_signature_pad, {
4494
+ ref: "signaturePadModal",
4495
+ empty: $data.isEmpty,
4496
+ "onUpdate:empty": _cache[2] || (_cache[2] = $event => (($data.isEmpty) = $event)),
4497
+ height: $options.signaturePadHeight
4498
+ }, null, 8 /* PROPS */, ["empty", "height"])
4499
+ ], 4 /* STYLE */)
4330
4500
  ]),
4331
4501
  actions: withCtx(() => [
4332
4502
  createVNode(_component_q_btn, {
@@ -4347,7 +4517,7 @@ function render$o(_ctx, _cache, $props, $setup, $data, $options) {
4347
4517
  }, null, 8 /* PROPS */, ["onClick"])
4348
4518
  ]),
4349
4519
  _: 1 /* STABLE */
4350
- }, 8 /* PROPS */, ["modelValue"])
4520
+ }, 16 /* FULL_PROPS */, ["modelValue"])
4351
4521
  ]))
4352
4522
  }
4353
4523
 
@@ -4411,7 +4581,6 @@ var script$n = {
4411
4581
  prefix,
4412
4582
  type,
4413
4583
  mask,
4414
- pattern,
4415
4584
  maxFiles,
4416
4585
  searchable,
4417
4586
  gmt
@@ -4462,7 +4631,7 @@ var script$n = {
4462
4631
  number: { is: 'qas-input', type: 'number', ...input },
4463
4632
  hidden: { is: 'input', name, type },
4464
4633
  email: { is: 'qas-input', type, ...input },
4465
- password: { is: 'qas-password-input', type, pattern, hideStrengthChecker: !pattern, ...input },
4634
+ password: { is: 'qas-password-input', ...input },
4466
4635
 
4467
4636
  decimal: { ...numericInput, mode: 'decimal' },
4468
4637
  money: { ...numericInput, mode: 'money' },
@@ -4607,6 +4776,10 @@ var script$m = {
4607
4776
  url: {
4608
4777
  default: '',
4609
4778
  type: String
4779
+ },
4780
+
4781
+ forceRefetch: {
4782
+ type: Boolean
4610
4783
  }
4611
4784
  },
4612
4785
 
@@ -4736,7 +4909,7 @@ var script$m = {
4736
4909
  },
4737
4910
 
4738
4911
  async fetchFilters () {
4739
- if (this.hasFields || !this.useFilterButton) {
4912
+ if (!this.forceRefetch && (this.hasFields || !this.useFilterButton)) {
4740
4913
  return null
4741
4914
  }
4742
4915
 
@@ -4902,7 +5075,7 @@ function render$m(_ctx, _cache, $props, $setup, $data, $options) {
4902
5075
  label: $options.filterButtonLabel
4903
5076
  }, {
4904
5077
  default: withCtx(() => [
4905
- createVNode(_component_q_menu, { onBeforeShow: $options.fetchFilters }, {
5078
+ createVNode(_component_q_menu, null, {
4906
5079
  default: withCtx(() => [
4907
5080
  ($data.isFetching)
4908
5081
  ? (openBlock(), createElementBlock("div", _hoisted_4$6, [
@@ -4956,7 +5129,7 @@ function render$m(_ctx, _cache, $props, $setup, $data, $options) {
4956
5129
  }))
4957
5130
  ]),
4958
5131
  _: 1 /* STABLE */
4959
- }, 8 /* PROPS */, ["onBeforeShow"])
5132
+ })
4960
5133
  ]),
4961
5134
  _: 1 /* STABLE */
4962
5135
  }, 8 /* PROPS */, ["color", "label"]))
@@ -5104,28 +5277,6 @@ function render$l(_ctx, _cache, $props, $setup, $data, $options) {
5104
5277
  script$l.render = render$l;
5105
5278
  script$l.__file = "src/components/form-generator/QasFormGenerator.vue";
5106
5279
 
5107
- const history$1 = reactive({ hasPreviousRoute: false, list: [] });
5108
-
5109
- function getPreviousRoute (currentRoute) {
5110
- const index = findLastIndex(history$1.list, item => item.name === currentRoute.name);
5111
-
5112
- if (~index) {
5113
- history$1.list.splice(index, 1);
5114
- }
5115
-
5116
- history$1.hasPreviousRoute = history$1.list.length > 1;
5117
- return history$1.list[history$1.list.length - 1]
5118
- }
5119
-
5120
- function addRoute (route) {
5121
- const routeExistsInList = history$1.list?.[history$1.list?.length - 1]?.name === route.name;
5122
-
5123
- if (routeExistsInList) return
5124
-
5125
- history$1.list.push(route);
5126
- history$1.hasPreviousRoute = history$1.list.length > 1;
5127
- }
5128
-
5129
5280
  var script$k = {
5130
5281
  name: 'QasFormView',
5131
5282
 
@@ -5144,7 +5295,7 @@ var script$k = {
5144
5295
 
5145
5296
  cancelRoute: {
5146
5297
  default: '',
5147
- type: [Boolean, Object, String]
5298
+ type: [Boolean, Object, String, Function]
5148
5299
  },
5149
5300
 
5150
5301
  customId: {
@@ -5263,10 +5414,6 @@ var script$k = {
5263
5414
  return this.disable || this.isSubmitting
5264
5415
  },
5265
5416
 
5266
- history () {
5267
- return history$1.list
5268
- },
5269
-
5270
5417
  fieldsNameWithDefaultValue () {
5271
5418
  return Object.keys(this.fields).filter(field => 'default' in this.fields[field])
5272
5419
  }
@@ -5335,7 +5482,7 @@ var script$k = {
5335
5482
  this.mx_updateModels({
5336
5483
  errors: errors,
5337
5484
  fields: this.mx_fields,
5338
- metadata: metadata
5485
+ metadata
5339
5486
  });
5340
5487
 
5341
5488
  if (result) {
@@ -5364,9 +5511,11 @@ var script$k = {
5364
5511
  },
5365
5512
 
5366
5513
  handleCancelRoute () {
5367
- const acceptTypes = ['string', 'object'];
5514
+ if (typeof this.cancelRoute === 'function') {
5515
+ return this.cancelRoute()
5516
+ }
5368
5517
 
5369
- if (this.cancelRoute && acceptTypes.includes(typeof this.cancelRoute)) {
5518
+ if (this.cancelRoute && ['string', 'object'].includes(typeof this.cancelRoute)) {
5370
5519
  return this.$router.push(this.cancelRoute)
5371
5520
  }
5372
5521
 
@@ -5379,6 +5528,8 @@ var script$k = {
5379
5528
  handleDialog (next) {
5380
5529
  this.openDialog();
5381
5530
 
5531
+ const { addRoute } = useHistory();
5532
+
5382
5533
  this.defaultDialogProps.ok.onClick = () => addRoute(this.$route);
5383
5534
  this.defaultDialogProps.cancel.onClick = next;
5384
5535
  },
@@ -5461,7 +5612,9 @@ function render$k(_ctx, _cache, $props, $setup, $data, $options) {
5461
5612
  const _component_q_inner_loading = resolveComponent("q-inner-loading");
5462
5613
  const _directive_close_popup = resolveDirective("close-popup");
5463
5614
 
5464
- return (openBlock(), createBlock(resolveDynamicComponent(_ctx.mx_componentTag), null, {
5615
+ return (openBlock(), createBlock(resolveDynamicComponent(_ctx.mx_componentTag), {
5616
+ class: normalizeClass(_ctx.mx_componentClass)
5617
+ }, {
5465
5618
  default: withCtx(() => [
5466
5619
  (_ctx.mx_hasHeaderSlot)
5467
5620
  ? (openBlock(), createElementBlock("header", _hoisted_1$d, [
@@ -5533,7 +5686,7 @@ function render$k(_ctx, _cache, $props, $setup, $data, $options) {
5533
5686
  }, 8 /* PROPS */, ["showing"])
5534
5687
  ]),
5535
5688
  _: 3 /* FORWARDED */
5536
- }))
5689
+ }, 8 /* PROPS */, ["class"]))
5537
5690
  }
5538
5691
 
5539
5692
  script$k.render = render$k;
@@ -6523,7 +6676,10 @@ var script$c = {
6523
6676
  QasBtn: script$K,
6524
6677
  QasFormGenerator: script$l,
6525
6678
  QasInput: script$u,
6526
- QasLabel: script$h
6679
+ QasLabel: script$h,
6680
+
6681
+ // vue
6682
+ TransitionGroup
6527
6683
  },
6528
6684
 
6529
6685
  props: {
@@ -6687,6 +6843,16 @@ var script$c = {
6687
6843
 
6688
6844
  componentTag () {
6689
6845
  return this.useAnimation ? 'transition-group' : 'div'
6846
+ },
6847
+
6848
+ componentProps () {
6849
+ if (!this.useAnimation) return {}
6850
+
6851
+ return {
6852
+ tag: 'div',
6853
+ enterActiveClass: 'animated slideInDown',
6854
+ leaveActiveClass: 'animated slideOutUp'
6855
+ }
6690
6856
  }
6691
6857
  },
6692
6858
 
@@ -6771,23 +6937,24 @@ var script$c = {
6771
6937
 
6772
6938
  const _hoisted_1$8 = ["id"];
6773
6939
  const _hoisted_2$5 = { class: "text-left" };
6774
- const _hoisted_3$3 = ["id"];
6775
- const _hoisted_4$3 = { class: "flex items-center justify-between q-py-xs" };
6776
- const _hoisted_5$2 = {
6940
+ const _hoisted_3$3 = { ref: "inputContent" };
6941
+ const _hoisted_4$3 = ["id"];
6942
+ const _hoisted_5$2 = { class: "flex items-center justify-between q-py-xs" };
6943
+ const _hoisted_6 = {
6777
6944
  key: 1,
6778
6945
  class: "q-gutter-x-sm"
6779
6946
  };
6780
- const _hoisted_6 = {
6947
+ const _hoisted_7 = {
6781
6948
  key: 0,
6782
6949
  class: "flex items-center qas-nested-fields__actions"
6783
6950
  };
6784
- const _hoisted_7 = { class: "col-auto" };
6785
6951
  const _hoisted_8 = { class: "col-auto" };
6786
- const _hoisted_9 = { class: "col-12" };
6787
- const _hoisted_10 = { class: "q-mt-md" };
6788
- const _hoisted_11 = { class: "col" };
6789
- const _hoisted_12 = { class: "col-auto" };
6790
- const _hoisted_13 = {
6952
+ const _hoisted_9 = { class: "col-auto" };
6953
+ const _hoisted_10 = { class: "col-12" };
6954
+ const _hoisted_11 = { class: "q-mt-md" };
6955
+ const _hoisted_12 = { class: "col" };
6956
+ const _hoisted_13 = { class: "col-auto" };
6957
+ const _hoisted_14 = {
6791
6958
  key: 1,
6792
6959
  class: "q-mt-lg"
6793
6960
  };
@@ -6810,134 +6977,122 @@ function render$c(_ctx, _cache, $props, $setup, $data, $options) {
6810
6977
  }, null, 8 /* PROPS */, ["label"]))
6811
6978
  : createCommentVNode("v-if", true)
6812
6979
  ]),
6813
- createElementVNode("div", null, [
6814
- (openBlock(), createBlock(resolveDynamicComponent($options.componentTag), {
6815
- ref: "inputContent",
6816
- name: "fade",
6817
- tag: "div"
6818
- }, {
6980
+ createElementVNode("div", _hoisted_3$3, [
6981
+ (openBlock(), createBlock(resolveDynamicComponent($options.componentTag), normalizeProps(guardReactiveProps($options.componentProps)), {
6819
6982
  default: withCtx(() => [
6820
6983
  (openBlock(true), createElementBlock(Fragment, null, renderList($data.nested, (row, index) => {
6821
6984
  return (openBlock(), createElementBlock("div", {
6822
6985
  id: `row-${index}`,
6823
- key: index,
6986
+ key: `row-${index}`,
6824
6987
  class: "full-width"
6825
6988
  }, [
6826
- (openBlock(), createBlock(resolveDynamicComponent($options.componentTag), {
6827
- name: "fade",
6828
- tag: "div"
6829
- }, {
6830
- default: withCtx(() => [
6831
- (!row[$props.destroyKey])
6832
- ? (openBlock(), createElementBlock("div", {
6833
- key: index,
6834
- class: "col-12 q-mt-md"
6989
+ (!row[$props.destroyKey])
6990
+ ? (openBlock(), createElementBlock("div", {
6991
+ key: index,
6992
+ class: "col-12 q-mt-md"
6993
+ }, [
6994
+ createElementVNode("div", null, [
6995
+ createElementVNode("div", _hoisted_5$2, [
6996
+ (!$props.useSingleLabel)
6997
+ ? (openBlock(), createBlock(_component_qas_label, {
6998
+ key: 0,
6999
+ label: $options.setRowLabel(index)
7000
+ }, null, 8 /* PROPS */, ["label"]))
7001
+ : createCommentVNode("v-if", true),
7002
+ (!$props.useInlineActions)
7003
+ ? (openBlock(), createElementBlock("div", _hoisted_6, [
7004
+ ($props.useDuplicate)
7005
+ ? (openBlock(), createBlock(_component_qas_btn, mergeProps({ key: 0 }, $props.btnDuplicateProps, {
7006
+ onClick: $event => ($options.add(row))
7007
+ }), null, 16 /* FULL_PROPS */, ["onClick"]))
7008
+ : createCommentVNode("v-if", true),
7009
+ ($options.showDestroyBtn)
7010
+ ? (openBlock(), createBlock(_component_qas_btn, mergeProps({ key: 1 }, $props.btnDestroyProps, {
7011
+ onClick: $event => ($options.destroy(index, row))
7012
+ }), null, 16 /* FULL_PROPS */, ["onClick"]))
7013
+ : createCommentVNode("v-if", true)
7014
+ ]))
7015
+ : createCommentVNode("v-if", true)
7016
+ ]),
7017
+ createElementVNode("div", {
7018
+ ref_for: true,
7019
+ ref: "formGenerator",
7020
+ class: "col-12 justify-between q-col-gutter-x-md row"
6835
7021
  }, [
6836
- createElementVNode("div", null, [
6837
- createElementVNode("div", _hoisted_4$3, [
6838
- (!$props.useSingleLabel)
6839
- ? (openBlock(), createBlock(_component_qas_label, {
6840
- key: 0,
6841
- label: $options.setRowLabel(index)
6842
- }, null, 8 /* PROPS */, ["label"]))
6843
- : createCommentVNode("v-if", true),
6844
- (!$props.useInlineActions)
6845
- ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
6846
- ($props.useDuplicate)
6847
- ? (openBlock(), createBlock(_component_qas_btn, mergeProps({ key: 0 }, $props.btnDuplicateProps, {
6848
- onClick: $event => ($options.add(row))
6849
- }), null, 16 /* FULL_PROPS */, ["onClick"]))
6850
- : createCommentVNode("v-if", true),
6851
- ($options.showDestroyBtn)
6852
- ? (openBlock(), createBlock(_component_qas_btn, mergeProps({ key: 1 }, $props.btnDestroyProps, {
6853
- onClick: $event => ($options.destroy(index, row))
6854
- }), null, 16 /* FULL_PROPS */, ["onClick"]))
6855
- : createCommentVNode("v-if", true)
6856
- ]))
6857
- : createCommentVNode("v-if", true)
6858
- ]),
6859
- createElementVNode("div", {
6860
- ref_for: true,
6861
- ref: "formGenerator",
6862
- class: "col-12 justify-between q-col-gutter-x-md row"
6863
- }, [
6864
- renderSlot(_ctx.$slots, "fields", {
6865
- errors: $options.transformedErrors,
6866
- fields: $options.children,
6867
- index: index,
6868
- updateValue: $options.updateValuesFromInput
6869
- }, () => [
6870
- createVNode(_component_qas_form_generator, {
6871
- modelValue: $data.nested[index],
6872
- "onUpdate:modelValue": [$event => (($data.nested[index]) = $event), $event => ($options.updateValuesFromInput($event, index))],
6873
- class: normalizeClass($options.formClasses),
6874
- columns: $props.formColumns,
6875
- errors: $options.transformedErrors[index],
6876
- fields: $options.children,
6877
- "fields-props": $props.fieldsProps
6878
- }, createSlots({ _: 2 /* DYNAMIC */ }, [
6879
- renderList(_ctx.$slots, (slot, key) => {
6880
- return {
6881
- name: key,
6882
- fn: withCtx((scope) => [
6883
- renderSlot(_ctx.$slots, key, mergeProps(scope, {
6884
- errors: $options.transformedErrors,
6885
- index: index
6886
- }))
6887
- ])
6888
- }
6889
- })
6890
- ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "onUpdate:modelValue", "class", "columns", "errors", "fields", "fields-props"])
6891
- ]),
6892
- ($props.useInlineActions)
6893
- ? (openBlock(), createElementBlock("div", _hoisted_6, [
6894
- createElementVNode("div", _hoisted_7, [
6895
- ($props.useDuplicate)
6896
- ? (openBlock(), createBlock(_component_qas_btn, {
6897
- key: 0,
6898
- color: "primary",
6899
- flat: "",
6900
- icon: "o_content_copy",
6901
- round: "",
6902
- onClick: $event => ($options.add(row))
6903
- }, null, 8 /* PROPS */, ["onClick"]))
6904
- : createCommentVNode("v-if", true)
6905
- ]),
6906
- createElementVNode("div", _hoisted_8, [
6907
- ($options.showDestroyBtn)
6908
- ? (openBlock(), createBlock(_component_qas_btn, {
6909
- key: 0,
6910
- color: "negative",
6911
- flat: "",
6912
- icon: "o_cancel",
6913
- round: "",
6914
- onClick: $event => ($options.destroy(index, row))
6915
- }, null, 8 /* PROPS */, ["onClick"]))
6916
- : createCommentVNode("v-if", true)
6917
- ])
6918
- ]))
6919
- : createCommentVNode("v-if", true)
6920
- ], 512 /* NEED_PATCH */),
6921
- createElementVNode("div", _hoisted_9, [
6922
- renderSlot(_ctx.$slots, "custom-fields", {
6923
- fields: $options.children,
6924
- index: index,
6925
- model: $data.nested[index],
6926
- updateValue: $options.updateValuesFromInput
7022
+ renderSlot(_ctx.$slots, "fields", {
7023
+ errors: $options.transformedErrors,
7024
+ fields: $options.children,
7025
+ index: index,
7026
+ updateValue: $options.updateValuesFromInput
7027
+ }, () => [
7028
+ createVNode(_component_qas_form_generator, {
7029
+ modelValue: $data.nested[index],
7030
+ "onUpdate:modelValue": [$event => (($data.nested[index]) = $event), $event => ($options.updateValuesFromInput($event, index))],
7031
+ class: normalizeClass($options.formClasses),
7032
+ columns: $props.formColumns,
7033
+ errors: $options.transformedErrors[index],
7034
+ fields: $options.children,
7035
+ "fields-props": $props.fieldsProps
7036
+ }, createSlots({ _: 2 /* DYNAMIC */ }, [
7037
+ renderList(_ctx.$slots, (slot, key) => {
7038
+ return {
7039
+ name: key,
7040
+ fn: withCtx((scope) => [
7041
+ renderSlot(_ctx.$slots, key, mergeProps(scope, {
7042
+ errors: $options.transformedErrors,
7043
+ index: index
7044
+ }))
7045
+ ])
7046
+ }
6927
7047
  })
6928
- ])
6929
- ])
6930
- ]))
6931
- : createCommentVNode("v-if", true)
6932
- ]),
6933
- _: 2 /* DYNAMIC */
6934
- }, 1024 /* DYNAMIC_SLOTS */))
6935
- ], 8 /* PROPS */, _hoisted_3$3))
7048
+ ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "onUpdate:modelValue", "class", "columns", "errors", "fields", "fields-props"])
7049
+ ]),
7050
+ ($props.useInlineActions)
7051
+ ? (openBlock(), createElementBlock("div", _hoisted_7, [
7052
+ createElementVNode("div", _hoisted_8, [
7053
+ ($props.useDuplicate)
7054
+ ? (openBlock(), createBlock(_component_qas_btn, {
7055
+ key: 0,
7056
+ color: "primary",
7057
+ flat: "",
7058
+ icon: "o_content_copy",
7059
+ round: "",
7060
+ onClick: $event => ($options.add(row))
7061
+ }, null, 8 /* PROPS */, ["onClick"]))
7062
+ : createCommentVNode("v-if", true)
7063
+ ]),
7064
+ createElementVNode("div", _hoisted_9, [
7065
+ ($options.showDestroyBtn)
7066
+ ? (openBlock(), createBlock(_component_qas_btn, {
7067
+ key: 0,
7068
+ color: "negative",
7069
+ flat: "",
7070
+ icon: "o_cancel",
7071
+ round: "",
7072
+ onClick: $event => ($options.destroy(index, row))
7073
+ }, null, 8 /* PROPS */, ["onClick"]))
7074
+ : createCommentVNode("v-if", true)
7075
+ ])
7076
+ ]))
7077
+ : createCommentVNode("v-if", true)
7078
+ ], 512 /* NEED_PATCH */),
7079
+ createElementVNode("div", _hoisted_10, [
7080
+ renderSlot(_ctx.$slots, "custom-fields", {
7081
+ fields: $options.children,
7082
+ index: index,
7083
+ model: $data.nested[index],
7084
+ updateValue: $options.updateValuesFromInput
7085
+ })
7086
+ ])
7087
+ ])
7088
+ ]))
7089
+ : createCommentVNode("v-if", true)
7090
+ ], 8 /* PROPS */, _hoisted_4$3))
6936
7091
  }), 128 /* KEYED_FRAGMENT */))
6937
7092
  ]),
6938
7093
  _: 3 /* FORWARDED */
6939
- }, 512 /* NEED_PATCH */)),
6940
- createElementVNode("div", _hoisted_10, [
7094
+ }, 16 /* FULL_PROPS */)),
7095
+ createElementVNode("div", _hoisted_11, [
6941
7096
  renderSlot(_ctx.$slots, "add-input", { add: $options.add }, () => [
6942
7097
  ($props.useInlineActions)
6943
7098
  ? (openBlock(), createElementBlock("div", {
@@ -6945,7 +7100,7 @@ function render$c(_ctx, _cache, $props, $setup, $data, $options) {
6945
7100
  class: "cursor-pointer items-center q-col-gutter-x-md q-mt-md row",
6946
7101
  onClick: _cache[1] || (_cache[1] = $event => ($options.add()))
6947
7102
  }, [
6948
- createElementVNode("div", _hoisted_11, [
7103
+ createElementVNode("div", _hoisted_12, [
6949
7104
  createVNode(_component_qas_input, {
6950
7105
  class: "disabled no-pointer-events",
6951
7106
  "hide-bottom-space": "",
@@ -6954,7 +7109,7 @@ function render$c(_ctx, _cache, $props, $setup, $data, $options) {
6954
7109
  onFocus: _cache[0] || (_cache[0] = $event => ($options.add()))
6955
7110
  }, null, 8 /* PROPS */, ["label"])
6956
7111
  ]),
6957
- createElementVNode("div", _hoisted_12, [
7112
+ createElementVNode("div", _hoisted_13, [
6958
7113
  createVNode(_component_qas_btn, {
6959
7114
  color: "green",
6960
7115
  flat: "",
@@ -6963,9 +7118,9 @@ function render$c(_ctx, _cache, $props, $setup, $data, $options) {
6963
7118
  })
6964
7119
  ])
6965
7120
  ]))
6966
- : (openBlock(), createElementBlock("div", _hoisted_13, [
7121
+ : (openBlock(), createElementBlock("div", _hoisted_14, [
6967
7122
  createVNode(_component_qas_btn, {
6968
- class: "full-width q-py-sm",
7123
+ class: "full-width q-py-md",
6969
7124
  icon: "o_add",
6970
7125
  outline: "",
6971
7126
  onClick: _cache[2] || (_cache[2] = $event => ($options.add()))
@@ -6978,13 +7133,15 @@ function render$c(_ctx, _cache, $props, $setup, $data, $options) {
6978
7133
  ]))
6979
7134
  ])
6980
7135
  ])
6981
- ])
7136
+ ], 512 /* NEED_PATCH */)
6982
7137
  ], 8 /* PROPS */, _hoisted_1$8))
6983
7138
  }
6984
7139
 
6985
7140
  script$c.render = render$c;
6986
7141
  script$c.__file = "src/components/nested-fields/QasNestedFields.vue";
6987
7142
 
7143
+ const { hasPreviousRoute, history: history$1, getPreviousRoute } = useHistory();
7144
+
6988
7145
  var script$b = {
6989
7146
  name: 'QasPageHeader',
6990
7147
 
@@ -7012,7 +7169,7 @@ var script$b = {
7012
7169
 
7013
7170
  computed: {
7014
7171
  hasPreviousRoute () {
7015
- return history$1.hasPreviousRoute
7172
+ return hasPreviousRoute.value
7016
7173
  },
7017
7174
 
7018
7175
  transformedBreadcrumbs () {
@@ -7447,6 +7604,7 @@ var script$8 = {
7447
7604
  this.fuse = new Fuse(value, this.defaultFuseOptions);
7448
7605
 
7449
7606
  this.setResults(this.search);
7607
+ this.updateResultsModel(value);
7450
7608
  },
7451
7609
 
7452
7610
  deep: true
@@ -7463,7 +7621,7 @@ var script$8 = {
7463
7621
 
7464
7622
  searchResults: {
7465
7623
  handler (value) {
7466
- this.$emit('update:results', value.map(result => result.item || result));
7624
+ this.updateResultsModel(value);
7467
7625
  },
7468
7626
  immediate: true
7469
7627
  }
@@ -7480,6 +7638,10 @@ var script$8 = {
7480
7638
  this.searchResults = value
7481
7639
  ? this.fuse.search(value)
7482
7640
  : this.list;
7641
+ },
7642
+
7643
+ updateResultsModel (value) {
7644
+ this.$emit('update:results', value.map(result => result.item || result));
7483
7645
  }
7484
7646
  }
7485
7647
  };
@@ -7837,15 +7999,17 @@ var script$6 = {
7837
7999
  immediate: true
7838
8000
  },
7839
8001
 
7840
- modelValue (value) {
7841
- this.values = [...value];
8002
+ modelValue: {
8003
+ handler (value) {
8004
+ this.values = [...value];
8005
+ },
8006
+
8007
+ immediate: true
7842
8008
  }
7843
8009
  },
7844
8010
 
7845
8011
  created () {
7846
- this.values = [...this.modelValue];
7847
-
7848
- this.handleOptions();
8012
+ this.handleList();
7849
8013
  },
7850
8014
 
7851
8015
  methods: {
@@ -7873,7 +8037,7 @@ var script$6 = {
7873
8037
  return this.values.includes(item.value) ? this.remove(item) : this.add(item)
7874
8038
  },
7875
8039
 
7876
- handleOptions () {
8040
+ handleList () {
7877
8041
  if (this.modelValue.length) {
7878
8042
  return this.sortList()
7879
8043
  }
@@ -7904,8 +8068,8 @@ var script$6 = {
7904
8068
 
7905
8069
  sortList () {
7906
8070
  this.sortedList = this.deleteOnly
7907
- ? this.list.filter(option => this.modelValue.includes(option.value))
7908
- : sortBy(this.list, option => !this.modelValue.includes(option.value));
8071
+ ? this.list.filter(item => this.modelValue.includes(item.value))
8072
+ : sortBy(this.list, item => !this.modelValue.includes(item.value));
7909
8073
  },
7910
8074
 
7911
8075
  updateModel (model) {
@@ -8432,8 +8596,8 @@ var script$3 = {
8432
8596
  },
8433
8597
 
8434
8598
  getFullTableWidth () {
8435
- const tableElemet = this.getTableElement();
8436
- return tableElemet?.getBoundingClientRect?.()?.width
8599
+ const tableElement = this.getTableElement();
8600
+ return tableElement?.getBoundingClientRect?.()?.width
8437
8601
  },
8438
8602
 
8439
8603
  getContainerTableWidth () {
@@ -8826,7 +8990,9 @@ var script = {
8826
8990
  firstQueue: [],
8827
8991
  optionsList: [],
8828
8992
  secondQueue: [],
8829
- selectedList: []
8993
+ selectedList: [],
8994
+ firstResults: [],
8995
+ secondResults: []
8830
8996
  }
8831
8997
  },
8832
8998
 
@@ -8964,13 +9130,15 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
8964
9130
  quantity: $data.optionsList.length
8965
9131
  }, null, 8 /* PROPS */, ["label", "quantity"]),
8966
9132
  createVNode(_component_qas_search_box, mergeProps({
8967
- "form-mode": "",
8968
- list: $data.optionsList
9133
+ results: $data.firstResults,
9134
+ "onUpdate:results": _cache[0] || (_cache[0] = $event => (($data.firstResults) = $event)),
9135
+ list: $data.optionsList,
9136
+ outlined: ""
8969
9137
  }, $options.searchBoxProps), {
8970
- default: withCtx(({ results }) => [
9138
+ default: withCtx(() => [
8971
9139
  createVNode(_component_q_list, { separator: "" }, {
8972
9140
  default: withCtx(() => [
8973
- (openBlock(true), createElementBlock(Fragment, null, renderList(results, (item, index) => {
9141
+ (openBlock(true), createElementBlock(Fragment, null, renderList($data.firstResults, (item, index) => {
8974
9142
  return (openBlock(), createBlock(_component_q_item, {
8975
9143
  key: index,
8976
9144
  class: normalizeClass($options.getItemClass(item, true)),
@@ -8991,11 +9159,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
8991
9159
  }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["class", "onClick"]))
8992
9160
  }), 128 /* KEYED_FRAGMENT */))
8993
9161
  ]),
8994
- _: 2 /* DYNAMIC */
8995
- }, 1024 /* DYNAMIC_SLOTS */)
9162
+ _: 3 /* FORWARDED */
9163
+ })
8996
9164
  ]),
8997
9165
  _: 3 /* FORWARDED */
8998
- }, 16 /* FULL_PROPS */, ["list"])
9166
+ }, 16 /* FULL_PROPS */, ["results", "list"])
8999
9167
  ]),
9000
9168
  createElementVNode("div", {
9001
9169
  class: normalizeClass(["col-12 col-sm-auto items-center justify-center q-col-gutter-md row", $options.actionsClass])
@@ -9008,7 +9176,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
9008
9176
  flat: "",
9009
9177
  icon: "o_arrow_circle_down",
9010
9178
  rounded: "",
9011
- onClick: _cache[0] || (_cache[0] = $event => ($options.setSelectedFromClick(true)))
9179
+ onClick: _cache[1] || (_cache[1] = $event => ($options.setSelectedFromClick(true)))
9012
9180
  }, null, 8 /* PROPS */, ["class", "disabled"]),
9013
9181
  createVNode(_component_q_tooltip, {
9014
9182
  anchor: "top middle",
@@ -9029,7 +9197,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
9029
9197
  flat: "",
9030
9198
  icon: "o_arrow_circle_up",
9031
9199
  rounded: "",
9032
- onClick: _cache[1] || (_cache[1] = $event => ($options.setSelectedFromClick()))
9200
+ onClick: _cache[2] || (_cache[2] = $event => ($options.setSelectedFromClick()))
9033
9201
  }, null, 8 /* PROPS */, ["class", "disabled"]),
9034
9202
  createVNode(_component_q_tooltip, {
9035
9203
  anchor: "bottom middle",
@@ -9048,16 +9216,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
9048
9216
  label: "Selecionadas",
9049
9217
  quantity: $data.selectedList.length
9050
9218
  }, null, 8 /* PROPS */, ["quantity"]),
9051
- createVNode(_component_qas_search_box, mergeProps($options.searchBoxProps, {
9219
+ createVNode(_component_qas_search_box, mergeProps({
9220
+ results: $data.secondResults,
9221
+ "onUpdate:results": _cache[3] || (_cache[3] = $event => (($data.secondResults) = $event))
9222
+ }, $options.searchBoxProps, {
9052
9223
  "empty-list-height": "300px",
9053
- "form-mode": "",
9054
9224
  label: "Selecionadas",
9055
- list: $data.selectedList
9225
+ list: $data.selectedList,
9226
+ outlined: ""
9056
9227
  }), {
9057
- default: withCtx(({ results }) => [
9228
+ default: withCtx(() => [
9058
9229
  createVNode(_component_q_list, { separator: "" }, {
9059
9230
  default: withCtx(() => [
9060
- (openBlock(true), createElementBlock(Fragment, null, renderList(results, (item, index) => {
9231
+ (openBlock(true), createElementBlock(Fragment, null, renderList($data.secondResults, (item, index) => {
9061
9232
  return (openBlock(), createBlock(_component_q_item, {
9062
9233
  key: index,
9063
9234
  class: normalizeClass($options.getItemClass(item)),
@@ -9078,11 +9249,11 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
9078
9249
  }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["class", "onClick"]))
9079
9250
  }), 128 /* KEYED_FRAGMENT */))
9080
9251
  ]),
9081
- _: 2 /* DYNAMIC */
9082
- }, 1024 /* DYNAMIC_SLOTS */)
9252
+ _: 3 /* FORWARDED */
9253
+ })
9083
9254
  ]),
9084
9255
  _: 3 /* FORWARDED */
9085
- }, 16 /* FULL_PROPS */, ["list"])
9256
+ }, 16 /* FULL_PROPS */, ["results", "list"])
9086
9257
  ])
9087
9258
  ], 2 /* CLASS */))
9088
9259
  }
@@ -9092,7 +9263,7 @@ script.__file = "src/components/transfer/QasTransfer.vue";
9092
9263
 
9093
9264
  var name = "@bildvitta/quasar-ui-asteroid";
9094
9265
  var description = "Asteroid";
9095
- var version$1 = "3.0.0-alpha.2";
9266
+ var version$1 = "3.0.0-beta.2";
9096
9267
  var author = "Bild & Vitta <systemteam@bild.com.br>";
9097
9268
  var license = "MIT";
9098
9269
  var main = "dist/asteroid.cjs.min.js";
@@ -9173,6 +9344,20 @@ var packageInfo = {
9173
9344
  vetur: vetur
9174
9345
  };
9175
9346
 
9347
+ var Test = {
9348
+ name: 'test',
9349
+
9350
+ bind (element, { arg: argument, value }) {
9351
+ if (element && argument) {
9352
+ element.dataset.test = argument;
9353
+ }
9354
+
9355
+ if (element && value) {
9356
+ element.dataset.testKey = value;
9357
+ }
9358
+ }
9359
+ };
9360
+
9176
9361
  const version = packageInfo.version;
9177
9362
 
9178
9363
  function install (app) {
@@ -9234,8 +9419,11 @@ function install (app) {
9234
9419
  app.config.globalProperties.$qas = {
9235
9420
  dialog: Dialog,
9236
9421
  error: NotifyError,
9237
- success: NotifySuccess
9422
+ success: NotifySuccess,
9423
+ screen: Screen()
9238
9424
  };
9425
+
9426
+ app.directive(Test.name, Test);
9239
9427
  }
9240
9428
 
9241
9429
  var VuePlugin = /*#__PURE__*/Object.freeze({
@@ -9292,7 +9480,8 @@ var VuePlugin = /*#__PURE__*/Object.freeze({
9292
9480
  Dialog: Dialog,
9293
9481
  NotifyError: NotifyError,
9294
9482
  NotifySuccess: NotifySuccess,
9483
+ Screen: Screen,
9295
9484
  install: install
9296
9485
  });
9297
9486
 
9298
- export { Dialog, NotifyError, NotifySuccess, script$L as QasActions, script$J as QasActionsMenu, script$H as QasAlert, script$F as QasAppBar, script$E as QasAppMenu, script$G as QasAvatar, script$D as QasBox, script$I as QasBreakline, script$K as QasBtn, script$C as QasCard, script$B as QasCheckboxGroup, script$A as QasCopy, script$z as QasDateTimeInput, script$y as QasDebugger, script$w as QasDelete, script$x as QasDialog, script$v as QasDialogRouter, script$n as QasField, script$m as QasFilters, script$l as QasFormGenerator, script$k as QasFormView, script$j as QasGallery, script$i as QasGridGenerator, script$u as QasInput, script$h as QasLabel, script$g as QasLayout, script$f as QasListItems, script$e as QasListView, script$d as QasMap, script$c as QasNestedFields, script$t as QasNumericInput, script$b as QasPageHeader, script$r as QasPasswordInput, script$s as QasPasswordStrengthChecker, script$a as QasProfile, script$9 as QasResizer, script$8 as QasSearchBox, script$7 as QasSelect, script$6 as QasSelectList, script$p as QasSignaturePad, script$o as QasSignatureUploader, script$5 as QasSingleView, script$4 as QasSortable, script$3 as QasTableGenerator, script$2 as QasTabsGenerator, script$1 as QasTextTruncate, script as QasTransfer, script$q as QasUploader, VuePlugin as default, install, version };
9487
+ export { Dialog, NotifyError, NotifySuccess, script$L as QasActions, script$J as QasActionsMenu, script$H as QasAlert, script$F as QasAppBar, script$E as QasAppMenu, script$G as QasAvatar, script$D as QasBox, script$I as QasBreakline, script$K as QasBtn, script$C as QasCard, script$B as QasCheckboxGroup, script$A as QasCopy, script$z as QasDateTimeInput, script$y as QasDebugger, script$w as QasDelete, script$x as QasDialog, script$v as QasDialogRouter, script$n as QasField, script$m as QasFilters, script$l as QasFormGenerator, script$k as QasFormView, script$j as QasGallery, script$i as QasGridGenerator, script$u as QasInput, script$h as QasLabel, script$g as QasLayout, script$f as QasListItems, script$e as QasListView, script$d as QasMap, script$c as QasNestedFields, script$t as QasNumericInput, script$b as QasPageHeader, script$r as QasPasswordInput, script$s as QasPasswordStrengthChecker, script$a as QasProfile, script$9 as QasResizer, script$8 as QasSearchBox, script$7 as QasSelect, script$6 as QasSelectList, script$p as QasSignaturePad, script$o as QasSignatureUploader, script$5 as QasSingleView, script$4 as QasSortable, script$3 as QasTableGenerator, script$2 as QasTabsGenerator, script$1 as QasTextTruncate, script as QasTransfer, script$q as QasUploader, Screen, VuePlugin as default, install, version };