@bildvitta/quasar-ui-asteroid 2.14.0 → 2.14.1

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.
@@ -1,3786 +0,0 @@
1
- /*!
2
- * @bildvitta/quasar-ui-asteroid v3.0.0-alpha.2
3
- * (c) 2022 Bild & Vitta <systemteam@bild.com.br>
4
- * Released under the MIT License.
5
- */
6
- import { openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, resolveComponent, createBlock, mergeProps, createSlots, withCtx, createTextVNode, toDisplayString, createCommentVNode, renderList, normalizeProps, guardReactiveProps, createVNode, Fragment, resolveDynamicComponent, resolveDirective, withDirectives, vShow, normalizeStyle } from 'vue';
7
- import { copyToClipboard, uid, Dialog as Dialog$1, Notify, Loading, extend } from 'quasar';
8
- import AutoNumeric from 'autonumeric';
9
- import Fuse from 'fuse.js';
10
- import { sortBy, isEqual } from 'lodash-es';
11
- import SignaturePad from 'signature_pad';
12
- import Sortable from 'sortablejs';
13
-
14
- const levels = {
15
- good: {
16
- color: 'warning',
17
- label: 'Good',
18
- progress: 0.5,
19
- textClass: 'text-warning'
20
- },
21
-
22
- strong: {
23
- color: 'positive',
24
- label: 'Strong',
25
- progress: 0.75,
26
- textClass: 'text-positive'
27
- },
28
-
29
- veryStrong: {
30
- color: 'positive',
31
- label: 'Very strong',
32
- progress: 1,
33
- textClass: 'text-positive'
34
- },
35
-
36
- veryWeak: {
37
- color: 'negative',
38
- label: 'Very weak',
39
- progress: 0,
40
- textClass: 'text-negative'
41
- },
42
-
43
- weak: {
44
- color: 'warning',
45
- label: 'Weak',
46
- progress: 0.25,
47
- textClass: 'text-warning'
48
- }
49
- };
50
-
51
- var passwordMixin = {
52
- props: {
53
- levels: {
54
- default: () => levels,
55
- type: Object
56
- },
57
-
58
- // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/minlength
59
- minlength: {
60
- default: 8,
61
- type: [Number, String]
62
- },
63
-
64
- specials: {
65
- default: /[!@#$%^&*()_+\-=[\]{}|;:'",<.>/?`~]/g,
66
- type: RegExp
67
- },
68
-
69
- trackColor: {
70
- default: 'blue-grey-1',
71
- type: String
72
- },
73
-
74
- useLowercase: {
75
- default: true,
76
- type: Boolean
77
- },
78
-
79
- useNumbers: {
80
- default: true,
81
- type: Boolean
82
- },
83
-
84
- useSpecial: {
85
- default: true,
86
- type: Boolean
87
- },
88
-
89
- useUppercase: {
90
- default: true,
91
- type: Boolean
92
- }
93
- }
94
- };
95
-
96
- var screenMixin = {
97
- // TODO: Esses nomes precisam ser alterados para algo mais inteligente.
98
-
99
- computed: {
100
- $_isSmall () {
101
- // until 599
102
- return this.$q.screen.xs
103
- },
104
-
105
- $_isMedium () {
106
- // from 600 until 1023
107
- return this.$q.screen.sm
108
- },
109
-
110
- $_isLarge () {
111
- // from 1024 until the limit
112
- return this.$q.screen.gt.sm
113
- },
114
-
115
- $_untilMedium () {
116
- // from 0 until 599
117
- return this.$q.screen.lt.sm
118
- },
119
-
120
- $_untilLarge () {
121
- // from 0 until 1023
122
- return this.$q.screen.lt.md
123
- },
124
-
125
- $_isMobile () {
126
- return this.$q.platform.is.mobile
127
- }
128
- }
129
- };
130
-
131
- var script$q = {
132
- name: 'QasActions',
133
-
134
- mixins: [screenMixin],
135
-
136
- props: {
137
- align: {
138
- default: 'end',
139
- type: String,
140
- validator: value => ['start', 'around', 'between', 'center', 'end'].includes(value)
141
- },
142
-
143
- gutter: {
144
- default: 'md',
145
- type: String,
146
- validator: value => ['xs', 'sm', 'md', 'lg', 'xl'].includes(value)
147
- }
148
- },
149
-
150
- computed: {
151
- classes () {
152
- return [
153
- `justify-${this.align}`,
154
- `q-col-gutter-${this.gutter}`,
155
- this.$_isSmall ? 'column reverse' : 'row'
156
- ]
157
- }
158
- }
159
- };
160
-
161
- const _hoisted_1$f = { class: "col-12 col-sm-auto" };
162
- const _hoisted_2$9 = { class: "col-12 col-sm-auto" };
163
-
164
- function render$q(_ctx, _cache, $props, $setup, $data, $options) {
165
- return (openBlock(), createElementBlock("div", {
166
- class: normalizeClass($options.classes)
167
- }, [
168
- createElementVNode("div", _hoisted_1$f, [
169
- renderSlot(_ctx.$slots, "secondary")
170
- ]),
171
- createElementVNode("div", _hoisted_2$9, [
172
- renderSlot(_ctx.$slots, "primary")
173
- ])
174
- ], 2 /* CLASS */))
175
- }
176
-
177
- script$q.render = render$q;
178
- script$q.__file = "src/components/actions/QasActions.vue";
179
-
180
- var script$p = {
181
- name: 'QasBtn',
182
-
183
- mixins: [screenMixin],
184
-
185
- inheritAttrs: false,
186
-
187
- props: {
188
- hideLabelOnSmallScreen: {
189
- type: Boolean
190
- }
191
- },
192
-
193
- computed: {
194
- attributes () {
195
- const { label, ...attributes } = this.$attrs;
196
- return attributes
197
- },
198
-
199
- hasLabel () {
200
- return !!(this.$attrs.label || this.$slots.default)
201
- },
202
-
203
- showLabel () {
204
- return this.hasLabel && !(this.hideLabelOnSmallScreen && this.$_isSmall)
205
- },
206
-
207
- slots () {
208
- const { default: _, ...slots } = this.$slots;
209
- return slots
210
- }
211
- }
212
- };
213
-
214
- function render$p(_ctx, _cache, $props, $setup, $data, $options) {
215
- const _component_q_btn = resolveComponent("q-btn");
216
-
217
- return (openBlock(), createBlock(_component_q_btn, mergeProps({
218
- color: "primary",
219
- "no-caps": "",
220
- unelevated: ""
221
- }, $options.attributes), createSlots({
222
- default: withCtx(() => [
223
- ($options.showLabel)
224
- ? renderSlot(_ctx.$slots, "default", { key: 0 }, () => [
225
- createTextVNode(toDisplayString(_ctx.$attrs.label), 1 /* TEXT */)
226
- ])
227
- : createCommentVNode("v-if", true)
228
- ]),
229
- _: 2 /* DYNAMIC */
230
- }, [
231
- renderList($options.slots, (_, name) => {
232
- return {
233
- name: name,
234
- fn: withCtx((context) => [
235
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(context || {})))
236
- ])
237
- }
238
- })
239
- ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */))
240
- }
241
-
242
- script$p.render = render$p;
243
- script$p.__file = "src/components/btn/QasBtn.vue";
244
-
245
- var script$o = {
246
- name: 'QasActionsMenu',
247
-
248
- components: {
249
- QasBtn: script$p
250
- },
251
-
252
- props: {
253
- icon: {
254
- default: 'o_settings',
255
- type: String
256
- },
257
-
258
- label: {
259
- default: 'Configurações',
260
- type: String
261
- },
262
-
263
- list: {
264
- default: () => ({}),
265
- type: Object
266
- }
267
- },
268
-
269
- methods: {
270
- onClick (item) {
271
- if (typeof item.handler === 'function') {
272
- const { handler, ...filtered } = item;
273
- item.handler(filtered);
274
- }
275
- }
276
- }
277
- };
278
-
279
- const _hoisted_1$e = { class: "flex items-center justify-center q-gutter-x-md" };
280
-
281
- function render$o(_ctx, _cache, $props, $setup, $data, $options) {
282
- const _component_q_icon = resolveComponent("q-icon");
283
- const _component_q_item_section = resolveComponent("q-item-section");
284
- const _component_q_item = resolveComponent("q-item");
285
- const _component_q_list = resolveComponent("q-list");
286
- const _component_q_menu = resolveComponent("q-menu");
287
- const _component_qas_btn = resolveComponent("qas-btn");
288
-
289
- return (openBlock(), createBlock(_component_qas_btn, {
290
- class: "qas-actions-menu",
291
- color: "primary",
292
- "hide-label-on-small-screen": "",
293
- icon: $props.icon,
294
- label: $props.label,
295
- outline: ""
296
- }, {
297
- default: withCtx(() => [
298
- createVNode(_component_q_menu, { class: "qas-actions-menu__menu" }, {
299
- default: withCtx(() => [
300
- createVNode(_component_q_list, {
301
- class: "qas-actions-menu__list",
302
- separator: ""
303
- }, {
304
- default: withCtx(() => [
305
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.list, (item, key) => {
306
- return renderSlot(_ctx.$slots, key, { item: item }, () => [
307
- (openBlock(), createBlock(_component_q_item, mergeProps({
308
- key: key,
309
- class: "text-bold text-primary",
310
- clickable: ""
311
- }, item.props, {
312
- onClick: $event => ($options.onClick(item))
313
- }), {
314
- default: withCtx(() => [
315
- createVNode(_component_q_item_section, null, {
316
- default: withCtx(() => [
317
- createElementVNode("div", _hoisted_1$e, [
318
- createVNode(_component_q_icon, {
319
- name: item.icon,
320
- size: item.iconSize
321
- }, null, 8 /* PROPS */, ["name", "size"]),
322
- createElementVNode("div", null, toDisplayString(item.label), 1 /* TEXT */)
323
- ])
324
- ]),
325
- _: 2 /* DYNAMIC */
326
- }, 1024 /* DYNAMIC_SLOTS */)
327
- ]),
328
- _: 2 /* DYNAMIC */
329
- }, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["onClick"]))
330
- ])
331
- }), 256 /* UNKEYED_FRAGMENT */))
332
- ]),
333
- _: 3 /* FORWARDED */
334
- })
335
- ]),
336
- _: 3 /* FORWARDED */
337
- })
338
- ]),
339
- _: 3 /* FORWARDED */
340
- }, 8 /* PROPS */, ["icon", "label"]))
341
- }
342
-
343
- script$o.render = render$o;
344
- script$o.__file = "src/components/actions-menu/QasActionsMenu.vue";
345
-
346
- function addCounterSuffix (label, counter) {
347
- return counter ? `${label} (${counter})` : label
348
- }
349
-
350
- // https://stackoverflow.com/a/64167032/977687
351
-
352
- function getSlotChildrenText (children) {
353
- return children.map(node => {
354
- if (!node.children || typeof node.children === 'string') {
355
- return node.children || ''
356
- } else if (Array.isArray(node.children)) {
357
- return getSlotChildrenText(node.children)
358
- } else if (node.children.default) {
359
- return getSlotChildrenText(node.children.default())
360
- }
361
-
362
- return undefined
363
- }).join('')
364
- }
365
-
366
- var script$n = {
367
- name: 'QasBreakline',
368
-
369
- props: {
370
- split: {
371
- default: '\n',
372
- type: String
373
- },
374
-
375
- tag: {
376
- default: 'div',
377
- type: String
378
- },
379
-
380
- text: {
381
- default: '',
382
- type: String
383
- }
384
- },
385
-
386
- computed: {
387
- lines () {
388
- const text = this.text || getSlotChildrenText(this.$slots.default());
389
- return text.split(this.split)
390
- }
391
- }
392
- };
393
-
394
- function render$n(_ctx, _cache, $props, $setup, $data, $options) {
395
- return (openBlock(true), createElementBlock(Fragment, null, renderList($options.lines, (line, index) => {
396
- return (openBlock(), createBlock(resolveDynamicComponent($props.tag), mergeProps({ key: index }, _ctx.$attrs), {
397
- default: withCtx(() => [
398
- createTextVNode(toDisplayString(line), 1 /* TEXT */)
399
- ]),
400
- _: 2 /* DYNAMIC */
401
- }, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */))
402
- }), 128 /* KEYED_FRAGMENT */))
403
- }
404
-
405
- script$n.render = render$n;
406
- script$n.__file = "src/components/breakline/QasBreakline.vue";
407
-
408
- var script$m = {
409
- name: 'QasAlert',
410
-
411
- components: {
412
- QasBreakline: script$n,
413
- QasBtn: script$p
414
- },
415
-
416
- props: {
417
- color: {
418
- default: 'primary',
419
- type: String
420
- },
421
-
422
- modelValue: {
423
- default: true,
424
- type: Boolean
425
- },
426
-
427
- text: {
428
- default: '',
429
- type: String
430
- },
431
-
432
- title: {
433
- default: '',
434
- type: String
435
- }
436
- },
437
-
438
- emits: ['update:modelValue'],
439
-
440
- data () {
441
- return {
442
- model: true
443
- }
444
- },
445
-
446
- computed: {
447
- classes () {
448
- return {
449
- [`text-${this.color}`]: true,
450
- [`bg-${this.color}-contrast`]: ['primary', 'secondary'].includes(this.color)
451
- }
452
- }
453
- },
454
-
455
- watch: {
456
- modelValue: {
457
- handler (value) {
458
- this.model = value;
459
- },
460
- immediate: true
461
- }
462
- },
463
-
464
- methods: {
465
- close () {
466
- this.$emit('update:modelValue', false);
467
- }
468
- }
469
- };
470
-
471
- const _hoisted_1$d = { class: "q-gutter-md q-mr-lg" };
472
- const _hoisted_2$8 = {
473
- key: 0,
474
- class: "text-bold text-h5"
475
- };
476
-
477
- function render$m(_ctx, _cache, $props, $setup, $data, $options) {
478
- const _component_qas_btn = resolveComponent("qas-btn");
479
- const _component_qas_breakline = resolveComponent("qas-breakline");
480
-
481
- return ($data.model)
482
- ? (openBlock(), createElementBlock("div", {
483
- key: 0,
484
- class: normalizeClass(["q-pa-lg qas-alert relative-position rounded-borders", $options.classes])
485
- }, [
486
- createVNode(_component_qas_btn, {
487
- class: "absolute-top-right q-mr-md q-mt-sm",
488
- color: $props.color,
489
- dense: "",
490
- flat: "",
491
- icon: "o_close",
492
- rounded: "",
493
- onClick: $options.close
494
- }, null, 8 /* PROPS */, ["color", "onClick"]),
495
- createElementVNode("div", _hoisted_1$d, [
496
- renderSlot(_ctx.$slots, "header", {}, () => [
497
- ($props.title)
498
- ? (openBlock(), createElementBlock("h5", _hoisted_2$8, toDisplayString($props.title), 1 /* TEXT */))
499
- : createCommentVNode("v-if", true)
500
- ]),
501
- renderSlot(_ctx.$slots, "default", {}, () => [
502
- createVNode(_component_qas_breakline, {
503
- tag: "p",
504
- text: $props.text
505
- }, null, 8 /* PROPS */, ["text"])
506
- ])
507
- ])
508
- ], 2 /* CLASS */))
509
- : createCommentVNode("v-if", true)
510
- }
511
-
512
- script$m.render = render$m;
513
- script$m.__file = "src/components/alert/QasAlert.vue";
514
-
515
- var script$l = {
516
- props: {
517
- apps: {
518
- default: () => [],
519
- type: Array
520
- },
521
-
522
- brand: {
523
- default: '',
524
- type: String
525
- },
526
-
527
- isAuth: {
528
- type: Boolean
529
- },
530
-
531
- notifications: {
532
- default: () => ({}),
533
- type: Object
534
- },
535
-
536
- title: {
537
- default: '',
538
- required: true,
539
- type: String
540
- },
541
-
542
- user: {
543
- default: () => ({}),
544
- require: true,
545
- type: Object
546
- }
547
- },
548
-
549
- emits: ['sign-out', 'toggle-menu'],
550
-
551
- data () {
552
- return {
553
- menuDrawer: true
554
- }
555
- },
556
-
557
- computed: {
558
- developmentBadgeLabel () {
559
- const hosts = {
560
- develop: 'Develop',
561
- feature: 'Feature',
562
- localhost: 'Local',
563
- release: 'Release'
564
- };
565
-
566
- if (process.env.DEV) {
567
- return hosts.localhost
568
- }
569
-
570
- const current = Object.keys(hosts).find(
571
- host => location.hostname.includes(host)
572
- );
573
-
574
- return current ? hosts[current] : ''
575
- },
576
-
577
- hasApps () {
578
- return !!this.apps.length
579
- },
580
-
581
- hasDevelopmentBadge () {
582
- return !!this.developmentBadgeLabel
583
- },
584
-
585
- hasNotifications () {
586
- return !!Object.keys(this.notifications).length
587
- }
588
- },
589
-
590
- methods: {
591
- goToProfile () {
592
- return this.$router.push(this.user.to)
593
- },
594
-
595
- signOut () {
596
- this.$emit('sign-out');
597
- },
598
-
599
- toggleMenuDrawer () {
600
- this.$emit('toggle-menu');
601
- }
602
- }
603
- };
604
-
605
- const _hoisted_1$c = ["alt", "src"];
606
- const _hoisted_2$7 = {
607
- key: 1,
608
- class: "text-bold text-primary-contrast text-subtitle1 text-uppercase"
609
- };
610
- const _hoisted_3$3 = { class: "items-center no-wrap q-gutter-md row" };
611
- const _hoisted_4$2 = { key: 0 };
612
- const _hoisted_5$1 = ["title"];
613
- const _hoisted_6 = { class: "q-px-sm qas-toolbar__user-data qs-lh-lg text-caption" };
614
- const _hoisted_7 = { class: "ellipsis" };
615
- const _hoisted_8 = { class: "ellipsis text-bold" };
616
- const _hoisted_9 = { class: "qas-toolbar__user-menu" };
617
- const _hoisted_10 = { class: "q-pa-lg text-center" };
618
- const _hoisted_11 = { class: "ellipsis q-mt-lg qs-lh-sm text-bold text-subtitle1" };
619
- const _hoisted_12 = { class: "ellipsis q-mt-xs text-caption" };
620
- const _hoisted_13 = { class: "q-mt-sm" };
621
- const _hoisted_14 = { class: "q-mt-sm" };
622
-
623
- function render$l(_ctx, _cache, $props, $setup, $data, $options) {
624
- const _component_q_ajax_bar = resolveComponent("q-ajax-bar");
625
- const _component_q_btn = resolveComponent("q-btn");
626
- const _component_q_badge = resolveComponent("q-badge");
627
- const _component_router_link = resolveComponent("router-link");
628
- const _component_q_toolbar_title = resolveComponent("q-toolbar-title");
629
- const _component_qas_btn = resolveComponent("qas-btn");
630
- const _component_qas_apps_menu = resolveComponent("qas-apps-menu");
631
- const _component_qas_avatar = resolveComponent("qas-avatar");
632
- const _component_q_menu = resolveComponent("q-menu");
633
- const _component_q_toolbar = resolveComponent("q-toolbar");
634
- const _directive_close_popup = resolveDirective("close-popup");
635
-
636
- return (openBlock(), createBlock(_component_q_toolbar, { class: "qas-toolbar" }, {
637
- default: withCtx(() => [
638
- createVNode(_component_q_ajax_bar, {
639
- color: "white",
640
- position: "top",
641
- size: "2px"
642
- }),
643
- createVNode(_component_q_btn, {
644
- dense: "",
645
- flat: "",
646
- icon: "o_menu",
647
- round: "",
648
- onClick: $options.toggleMenuDrawer
649
- }, null, 8 /* PROPS */, ["onClick"]),
650
- createVNode(_component_q_toolbar_title, { class: "flex" }, {
651
- default: withCtx(() => [
652
- createVNode(_component_router_link, {
653
- class: "cursor-pointer text-no-decoration",
654
- to: "/"
655
- }, {
656
- default: withCtx(() => [
657
- ($props.brand)
658
- ? (openBlock(), createElementBlock("img", {
659
- key: 0,
660
- alt: $props.title,
661
- class: "q-mr-sm qas-toolbar__brand",
662
- src: $props.brand
663
- }, null, 8 /* PROPS */, _hoisted_1$c))
664
- : createCommentVNode("v-if", true),
665
- ($props.title)
666
- ? (openBlock(), createElementBlock("span", _hoisted_2$7, toDisplayString($props.title), 1 /* TEXT */))
667
- : createCommentVNode("v-if", true),
668
- ($options.hasDevelopmentBadge)
669
- ? (openBlock(), createBlock(_component_q_badge, {
670
- key: 2,
671
- align: "middle",
672
- class: "q-ml-sm",
673
- color: "negative",
674
- label: $options.developmentBadgeLabel
675
- }, null, 8 /* PROPS */, ["label"]))
676
- : createCommentVNode("v-if", true)
677
- ]),
678
- _: 1 /* STABLE */
679
- })
680
- ]),
681
- _: 1 /* STABLE */
682
- }),
683
- createElementVNode("div", _hoisted_3$3, [
684
- createCommentVNode(" TODO: Notificações. "),
685
- ($options.hasNotifications)
686
- ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
687
- createVNode(_component_qas_btn, {
688
- class: "q-mr-md",
689
- dense: "",
690
- icon: "o_notifications",
691
- round: ""
692
- }, {
693
- default: withCtx(() => [
694
- ($props.notifications)
695
- ? (openBlock(), createBlock(_component_q_badge, {
696
- key: 0,
697
- color: "red",
698
- floating: ""
699
- }, {
700
- default: withCtx(() => [
701
- createTextVNode(toDisplayString($props.notifications.count), 1 /* TEXT */)
702
- ]),
703
- _: 1 /* STABLE */
704
- }))
705
- : createCommentVNode("v-if", true)
706
- ]),
707
- _: 1 /* STABLE */
708
- })
709
- ]))
710
- : createCommentVNode("v-if", true),
711
- ($options.hasApps)
712
- ? (openBlock(), createBlock(_component_qas_apps_menu, {
713
- key: 1,
714
- apps: $props.apps
715
- }, null, 8 /* PROPS */, ["apps"]))
716
- : createCommentVNode("v-if", true),
717
- renderSlot(_ctx.$slots, "tools"),
718
- ($props.isAuth)
719
- ? (openBlock(), createElementBlock("div", {
720
- key: 2,
721
- class: "cursor-pointer items-center q-mr-sm qas-toolbar__user rounded-borders row",
722
- title: $props.user.name || $props.user.givenName
723
- }, [
724
- createVNode(_component_qas_avatar, {
725
- class: "rounded-borders-left",
726
- color: "white",
727
- dark: "",
728
- image: $props.user.photo,
729
- rounded: "",
730
- size: "42px",
731
- "text-color": "primary",
732
- title: $props.user.name || $props.user.givenName
733
- }, null, 8 /* PROPS */, ["image", "title"]),
734
- createElementVNode("div", _hoisted_6, [
735
- createElementVNode("div", _hoisted_7, toDisplayString($props.user.name || $props.user.givenName), 1 /* TEXT */),
736
- createElementVNode("div", _hoisted_8, toDisplayString($props.user.email), 1 /* TEXT */)
737
- ]),
738
- createVNode(_component_q_menu, {
739
- anchor: "bottom end",
740
- "max-height": "400px",
741
- offset: [0, 5],
742
- self: "top end"
743
- }, {
744
- default: withCtx(() => [
745
- createElementVNode("div", _hoisted_9, [
746
- createElementVNode("div", _hoisted_10, [
747
- createElementVNode("button", {
748
- class: "unset",
749
- onClick: _cache[0] || (_cache[0] = (...args) => ($options.goToProfile && $options.goToProfile(...args)))
750
- }, [
751
- createVNode(_component_qas_avatar, {
752
- image: $props.user.photo,
753
- size: "145px",
754
- title: $props.user.name || $props.user.givenName
755
- }, null, 8 /* PROPS */, ["image", "title"])
756
- ]),
757
- createElementVNode("div", _hoisted_11, toDisplayString($props.user.name || $props.user.givenName), 1 /* TEXT */),
758
- createElementVNode("div", _hoisted_12, toDisplayString($props.user.email), 1 /* TEXT */),
759
- createElementVNode("div", _hoisted_13, [
760
- createVNode(_component_qas_btn, {
761
- flat: "",
762
- icon: "o_edit",
763
- label: "Editar",
764
- to: $props.user.to
765
- }, null, 8 /* PROPS */, ["to"])
766
- ]),
767
- createElementVNode("div", _hoisted_14, [
768
- withDirectives(createVNode(_component_qas_btn, {
769
- class: "q-px-lg q-py-xs",
770
- dense: "",
771
- icon: "o_exit_to_app",
772
- label: "Sair",
773
- outline: "",
774
- onClick: $options.signOut
775
- }, null, 8 /* PROPS */, ["onClick"]), [
776
- [_directive_close_popup]
777
- ])
778
- ]),
779
- renderSlot(_ctx.$slots, "user", { user: $props.user })
780
- ])
781
- ])
782
- ]),
783
- _: 3 /* FORWARDED */
784
- })
785
- ], 8 /* PROPS */, _hoisted_5$1))
786
- : createCommentVNode("v-if", true)
787
- ])
788
- ]),
789
- _: 3 /* FORWARDED */
790
- }))
791
- }
792
-
793
- script$l.render = render$l;
794
- script$l.__file = "src/components/app-bar/QasAppBar.vue";
795
-
796
- var script$k = {
797
- mixins: [screenMixin],
798
-
799
- props: {
800
- itemClass: {
801
- default: '',
802
- type: [Array, Object, String]
803
- },
804
-
805
- items: {
806
- default: () => [],
807
- type: Array
808
- },
809
-
810
- modelValue: {
811
- default: true,
812
- type: Boolean
813
- }
814
- },
815
-
816
- emits: ['update:modelValue'],
817
-
818
- data () {
819
- return {
820
- miniMode: false
821
- }
822
- },
823
-
824
- computed: {
825
- activeHeaderClass () {
826
- return 'qas-app-menu__header--active'
827
- },
828
-
829
- activeItemClass () {
830
- return 'bg-primary text-primary-contrast'
831
- },
832
-
833
- model: {
834
- get () {
835
- return this.modelValue
836
- },
837
-
838
- set (value) {
839
- return this.$emit('update:modelValue', value)
840
- }
841
- }
842
- },
843
-
844
- methods: {
845
- beforeHide () {
846
- if (this.$_isLarge) {
847
- this.model = true;
848
- this.miniMode = !this.miniMode;
849
- }
850
- },
851
-
852
- hasChildren ({ children }) {
853
- return !!children?.length
854
- },
855
-
856
- shouldExpand ({ children, to }) {
857
- return !!children?.length && this.$route.matched.some(item => item.path === to.path)
858
- }
859
- }
860
- };
861
-
862
- function render$k(_ctx, _cache, $props, $setup, $data, $options) {
863
- const _component_q_icon = resolveComponent("q-icon");
864
- const _component_q_item_section = resolveComponent("q-item-section");
865
- const _component_q_item_label = resolveComponent("q-item-label");
866
- const _component_q_item = resolveComponent("q-item");
867
- const _component_q_expansion_item = resolveComponent("q-expansion-item");
868
- const _component_q_list = resolveComponent("q-list");
869
- const _component_q_drawer = resolveComponent("q-drawer");
870
- const _directive_ripple = resolveDirective("ripple");
871
-
872
- return (openBlock(), createBlock(_component_q_drawer, {
873
- modelValue: $options.model,
874
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event)),
875
- class: "bg-primary-contrast qas-app-menu",
876
- mini: $data.miniMode,
877
- width: 230,
878
- onBeforeHide: $options.beforeHide
879
- }, {
880
- default: withCtx(() => [
881
- createVNode(_component_q_list, {
882
- class: "text-primary",
883
- padding: ""
884
- }, {
885
- default: withCtx(() => [
886
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.items, (header, index) => {
887
- return (openBlock(), createElementBlock("div", { key: index }, [
888
- ($options.hasChildren(header))
889
- ? (openBlock(), createBlock(_component_q_expansion_item, {
890
- key: 0,
891
- "active-class": $options.activeHeaderClass,
892
- "default-opened": $options.shouldExpand(header),
893
- "expand-icon": "o_keyboard_arrow_down",
894
- "expand-separator": "",
895
- icon: header.icon,
896
- label: header.label,
897
- to: header.to
898
- }, {
899
- default: withCtx(() => [
900
- (openBlock(true), createElementBlock(Fragment, null, renderList(header.children, (item, itemIndex) => {
901
- return withDirectives((openBlock(), createBlock(_component_q_item, {
902
- key: itemIndex,
903
- "active-class": $options.activeItemClass,
904
- clickable: "",
905
- to: item.to
906
- }, {
907
- default: withCtx(() => [
908
- (item.icon)
909
- ? (openBlock(), createBlock(_component_q_item_section, {
910
- key: 0,
911
- avatar: ""
912
- }, {
913
- default: withCtx(() => [
914
- createVNode(_component_q_icon, {
915
- name: item.icon
916
- }, null, 8 /* PROPS */, ["name"])
917
- ]),
918
- _: 2 /* DYNAMIC */
919
- }, 1024 /* DYNAMIC_SLOTS */))
920
- : createCommentVNode("v-if", true),
921
- createVNode(_component_q_item_section, null, {
922
- default: withCtx(() => [
923
- createVNode(_component_q_item_label, null, {
924
- default: withCtx(() => [
925
- createTextVNode(toDisplayString(item.label), 1 /* TEXT */)
926
- ]),
927
- _: 2 /* DYNAMIC */
928
- }, 1024 /* DYNAMIC_SLOTS */)
929
- ]),
930
- _: 2 /* DYNAMIC */
931
- }, 1024 /* DYNAMIC_SLOTS */)
932
- ]),
933
- _: 2 /* DYNAMIC */
934
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["active-class", "to"])), [
935
- [_directive_ripple]
936
- ])
937
- }), 128 /* KEYED_FRAGMENT */))
938
- ]),
939
- _: 2 /* DYNAMIC */
940
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["active-class", "default-opened", "icon", "label", "to"]))
941
- : withDirectives((openBlock(), createBlock(_component_q_item, {
942
- key: index,
943
- "active-class": $options.activeItemClass,
944
- clickable: "",
945
- to: header.to
946
- }, {
947
- default: withCtx(() => [
948
- (header.icon)
949
- ? (openBlock(), createBlock(_component_q_item_section, {
950
- key: 0,
951
- avatar: ""
952
- }, {
953
- default: withCtx(() => [
954
- createVNode(_component_q_icon, {
955
- name: header.icon
956
- }, null, 8 /* PROPS */, ["name"])
957
- ]),
958
- _: 2 /* DYNAMIC */
959
- }, 1024 /* DYNAMIC_SLOTS */))
960
- : createCommentVNode("v-if", true),
961
- createVNode(_component_q_item_section, null, {
962
- default: withCtx(() => [
963
- createVNode(_component_q_item_label, null, {
964
- default: withCtx(() => [
965
- createTextVNode(toDisplayString(header.label), 1 /* TEXT */)
966
- ]),
967
- _: 2 /* DYNAMIC */
968
- }, 1024 /* DYNAMIC_SLOTS */)
969
- ]),
970
- _: 2 /* DYNAMIC */
971
- }, 1024 /* DYNAMIC_SLOTS */)
972
- ]),
973
- _: 2 /* DYNAMIC */
974
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["active-class", "to"])), [
975
- [_directive_ripple]
976
- ])
977
- ]))
978
- }), 128 /* KEYED_FRAGMENT */))
979
- ]),
980
- _: 1 /* STABLE */
981
- })
982
- ]),
983
- _: 1 /* STABLE */
984
- }, 8 /* PROPS */, ["modelValue", "mini", "onBeforeHide"]))
985
- }
986
-
987
- script$k.render = render$k;
988
- script$k.__file = "src/components/app-menu/QasAppMenu.vue";
989
-
990
- var script$j = {
991
- props: {
992
- apps: {
993
- default: () => [],
994
- type: Array
995
- }
996
- }
997
- };
998
-
999
- const _hoisted_1$b = { class: "bg-white q-col-gutter-sm q-pa-sm row" };
1000
- const _hoisted_2$6 = { class: "q-mt-xs" };
1001
-
1002
- function render$j(_ctx, _cache, $props, $setup, $data, $options) {
1003
- const _component_q_img = resolveComponent("q-img");
1004
- const _component_q_btn = resolveComponent("q-btn");
1005
- const _component_q_popup_proxy = resolveComponent("q-popup-proxy");
1006
- const _component_qas_btn = resolveComponent("qas-btn");
1007
-
1008
- return (openBlock(), createBlock(_component_qas_btn, {
1009
- dense: "",
1010
- icon: "o_apps",
1011
- round: ""
1012
- }, {
1013
- default: withCtx(() => [
1014
- createVNode(_component_q_popup_proxy, {
1015
- anchor: "bottom middle",
1016
- "max-width": "400px",
1017
- self: "top middle"
1018
- }, {
1019
- default: withCtx(() => [
1020
- createElementVNode("div", _hoisted_1$b, [
1021
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.apps, (app, index) => {
1022
- return (openBlock(), createElementBlock("div", {
1023
- key: index,
1024
- class: "col-6 col-sm-4"
1025
- }, [
1026
- createVNode(_component_q_btn, {
1027
- class: "full-width q-pa-sm",
1028
- flat: "",
1029
- href: app.href,
1030
- "no-caps": "",
1031
- type: "a"
1032
- }, {
1033
- default: withCtx(() => [
1034
- createVNode(_component_q_img, {
1035
- alt: app.label,
1036
- class: "rounded-borders",
1037
- src: app.image
1038
- }, null, 8 /* PROPS */, ["alt", "src"]),
1039
- createElementVNode("div", _hoisted_2$6, toDisplayString(app.label), 1 /* TEXT */)
1040
- ]),
1041
- _: 2 /* DYNAMIC */
1042
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["href"])
1043
- ]))
1044
- }), 128 /* KEYED_FRAGMENT */))
1045
- ])
1046
- ]),
1047
- _: 1 /* STABLE */
1048
- })
1049
- ]),
1050
- _: 1 /* STABLE */
1051
- }))
1052
- }
1053
-
1054
- script$j.render = render$j;
1055
- script$j.__file = "src/components/apps-menu/QasAppsMenu.vue";
1056
-
1057
- var script$i = {
1058
- name: 'QasAvatar',
1059
-
1060
- props: {
1061
- color: {
1062
- default: 'primary',
1063
- type: String
1064
- },
1065
-
1066
- dark: {
1067
- type: Boolean
1068
- },
1069
-
1070
- icon: {
1071
- default: 'o_error',
1072
- type: String
1073
- },
1074
-
1075
- image: {
1076
- default: '',
1077
- type: String
1078
- },
1079
-
1080
- textColor: {
1081
- default: '',
1082
- type: String
1083
- },
1084
-
1085
- title: {
1086
- default: '',
1087
- type: String
1088
- }
1089
- },
1090
-
1091
- data () {
1092
- return {
1093
- hasImageError: false
1094
- }
1095
- },
1096
-
1097
- computed: {
1098
- avatarClass () {
1099
- if (this.hasImage) {
1100
- return null
1101
- }
1102
-
1103
- const contrastColor = this.textColor ? this.textColor : this.contrastColor;
1104
-
1105
- return [
1106
- this.dark
1107
- ? `bg-${this.color} text-${contrastColor}`
1108
- : `bg-${contrastColor} text-${this.color}`
1109
- ]
1110
- },
1111
-
1112
- contrastColor () {
1113
- return `${this.color}-contrast`
1114
- },
1115
-
1116
- firstLetter () {
1117
- return this.title[0].toUpperCase()
1118
- },
1119
-
1120
- hasImage () {
1121
- return !this.hasImageError && !!this.image
1122
- },
1123
-
1124
- hasTitle () {
1125
- return !!this.title
1126
- }
1127
- },
1128
-
1129
- watch: {
1130
- image () {
1131
- this.hasImageError = false;
1132
- }
1133
- },
1134
-
1135
- methods: {
1136
- onImageLoadedError () {
1137
- this.hasImageError = true;
1138
- }
1139
- }
1140
- };
1141
-
1142
- function render$i(_ctx, _cache, $props, $setup, $data, $options) {
1143
- const _component_q_img = resolveComponent("q-img");
1144
- const _component_q_icon = resolveComponent("q-icon");
1145
- const _component_q_avatar = resolveComponent("q-avatar");
1146
-
1147
- return (openBlock(), createBlock(_component_q_avatar, {
1148
- class: normalizeClass(["text-bold", $options.avatarClass]),
1149
- rounded: ""
1150
- }, {
1151
- default: withCtx(() => [
1152
- ($options.hasImage)
1153
- ? (openBlock(), createBlock(_component_q_img, {
1154
- key: 0,
1155
- alt: $props.title,
1156
- ratio: 1,
1157
- "spinner-color": "primary",
1158
- "spinner-size": "16px",
1159
- src: $props.image,
1160
- onError: $options.onImageLoadedError
1161
- }, null, 8 /* PROPS */, ["alt", "src", "onError"]))
1162
- : ($options.hasTitle)
1163
- ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1164
- createTextVNode(toDisplayString($options.firstLetter), 1 /* TEXT */)
1165
- ], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */))
1166
- : (openBlock(), createBlock(_component_q_icon, {
1167
- key: 2,
1168
- name: $props.icon
1169
- }, null, 8 /* PROPS */, ["name"]))
1170
- ]),
1171
- _: 1 /* STABLE */
1172
- }, 8 /* PROPS */, ["class"]))
1173
- }
1174
-
1175
- script$i.render = render$i;
1176
- script$i.__file = "src/components/avatar/QasAvatar.vue";
1177
-
1178
- var script$h = {
1179
- name: 'QasBox',
1180
-
1181
- props: {
1182
- outlined: {
1183
- type: Boolean
1184
- },
1185
-
1186
- unelevated: {
1187
- type: Boolean
1188
- }
1189
- },
1190
-
1191
- computed: {
1192
- boxClass () {
1193
- return {
1194
- 'border-primary-contrast': this.outlined,
1195
- 'shadow-primary': !this.unelevated
1196
- }
1197
- }
1198
- }
1199
- };
1200
-
1201
- function render$h(_ctx, _cache, $props, $setup, $data, $options) {
1202
- return (openBlock(), createElementBlock("div", {
1203
- class: normalizeClass(["bg-white q-px-md q-py-lg rounded-borders", $options.boxClass])
1204
- }, [
1205
- renderSlot(_ctx.$slots, "default")
1206
- ], 2 /* CLASS */))
1207
- }
1208
-
1209
- script$h.render = render$h;
1210
- script$h.__file = "src/components/box/QasBox.vue";
1211
-
1212
- var script$g = {
1213
- name: 'QasActionsMenu',
1214
-
1215
- props: {
1216
- bgImagePosition: {
1217
- type: String,
1218
- default: 'center'
1219
- },
1220
-
1221
- formMode: {
1222
- type: Boolean
1223
- },
1224
-
1225
- gutter: {
1226
- type: String,
1227
- default: 'sm'
1228
- },
1229
-
1230
- images: {
1231
- default: () => ([]),
1232
- type: Array
1233
- },
1234
-
1235
- outlined: {
1236
- type: Boolean
1237
- },
1238
-
1239
- result: {
1240
- default: () => ({}),
1241
- type: Object
1242
- },
1243
-
1244
- useHeader: {
1245
- type: Boolean
1246
- }
1247
- },
1248
-
1249
- data () {
1250
- return {
1251
- slideImage: 0
1252
- }
1253
- },
1254
-
1255
- computed: {
1256
- bgImagePositionClass () {
1257
- return `bg-position-${this.bgImagePosition}`
1258
- },
1259
-
1260
- cardClasses () {
1261
- return this.formMode ? 'bg-white border-primary no-shadow' : 'box-shadow-1'
1262
- },
1263
-
1264
- gutterClass () {
1265
- return `q-col-gutter-${this.gutter}`
1266
- },
1267
-
1268
- hasActionsSlot () {
1269
- return !!this.$slots.actions
1270
- },
1271
-
1272
- hasImages () {
1273
- return this.images.length > 1
1274
- },
1275
-
1276
- imagesLength () {
1277
- return this.images?.length
1278
- },
1279
-
1280
- imagesList () {
1281
- return this.imagesLength && this.images.slice(0, 3)
1282
- }
1283
- },
1284
-
1285
- methods: {
1286
- getNavigationIcon (active, btn) {
1287
- return active ? 'o_radio_button_checked' : btn.icon
1288
- }
1289
- }
1290
- };
1291
-
1292
- const _hoisted_1$a = { class: "col-12 col-lg-3 col-md-4 col-sm-6" };
1293
- const _hoisted_2$5 = {
1294
- key: 0,
1295
- class: "overflow-hidden relative-position w-full"
1296
- };
1297
- const _hoisted_3$2 = { class: "absolute-top flex items-center q-pa-md" };
1298
- const _hoisted_4$1 = {
1299
- key: 1,
1300
- class: "border-primary-contrast border-top overflow-hidden row"
1301
- };
1302
-
1303
- function render$g(_ctx, _cache, $props, $setup, $data, $options) {
1304
- const _component_qas_btn = resolveComponent("qas-btn");
1305
- const _component_q_carousel_slide = resolveComponent("q-carousel-slide");
1306
- const _component_q_carousel = resolveComponent("q-carousel");
1307
- const _component_q_card_section = resolveComponent("q-card-section");
1308
- const _component_q_card = resolveComponent("q-card");
1309
-
1310
- return (openBlock(), createElementBlock("div", _hoisted_1$a, [
1311
- createVNode(_component_q_card, {
1312
- class: normalizeClass(["border-radius-lg column full-height", $options.cardClasses])
1313
- }, {
1314
- default: withCtx(() => [
1315
- ($props.useHeader)
1316
- ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
1317
- renderSlot(_ctx.$slots, "header", {}, () => [
1318
- createVNode(_component_q_carousel, {
1319
- modelValue: $data.slideImage,
1320
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($data.slideImage) = $event)),
1321
- animated: "",
1322
- class: "cursor-pointer",
1323
- height: "205px",
1324
- infinite: "",
1325
- navigation: $options.hasImages,
1326
- "navigation-icon": "o_fiber_manual_record",
1327
- swipeable: ""
1328
- }, {
1329
- "navigation-icon": withCtx(({ active, btnProps, onClick }) => [
1330
- createVNode(_component_qas_btn, {
1331
- color: "white",
1332
- dense: "",
1333
- flat: "",
1334
- icon: $options.getNavigationIcon(active, btnProps),
1335
- round: "",
1336
- size: "sm",
1337
- onClick: onClick
1338
- }, null, 8 /* PROPS */, ["icon", "onClick"])
1339
- ]),
1340
- default: withCtx(() => [
1341
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.imagesList, (item, index) => {
1342
- return (openBlock(), createBlock(_component_q_carousel_slide, {
1343
- key: index,
1344
- class: normalizeClass(["bg-no-repeat", $options.bgImagePositionClass]),
1345
- "img-src": item,
1346
- name: index
1347
- }, null, 8 /* PROPS */, ["class", "img-src", "name"]))
1348
- }), 128 /* KEYED_FRAGMENT */))
1349
- ]),
1350
- _: 1 /* STABLE */
1351
- }, 8 /* PROPS */, ["modelValue", "navigation"]),
1352
- createElementVNode("div", _hoisted_3$2, [
1353
- renderSlot(_ctx.$slots, "carousel-header")
1354
- ])
1355
- ])
1356
- ]))
1357
- : createCommentVNode("v-if", true),
1358
- createVNode(_component_q_card_section, { class: "col-grow column justify-between w-full" }, {
1359
- default: withCtx(() => [
1360
- createElementVNode("div", {
1361
- class: normalizeClass(["w-full", $options.gutterClass])
1362
- }, [
1363
- renderSlot(_ctx.$slots, "default")
1364
- ], 2 /* CLASS */)
1365
- ]),
1366
- _: 3 /* FORWARDED */
1367
- }),
1368
- ($options.hasActionsSlot)
1369
- ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
1370
- renderSlot(_ctx.$slots, "actions")
1371
- ]))
1372
- : createCommentVNode("v-if", true)
1373
- ]),
1374
- _: 3 /* FORWARDED */
1375
- }, 8 /* PROPS */, ["class"])
1376
- ]))
1377
- }
1378
-
1379
- script$g.render = render$g;
1380
- script$g.__file = "src/components/card/QasCard.vue";
1381
-
1382
- var script$f = {
1383
- name: 'QasCopy',
1384
-
1385
- props: {
1386
- icon: {
1387
- default: 'o_file_copy',
1388
- type: String
1389
- },
1390
-
1391
- size: {
1392
- default: 'xs',
1393
- type: String
1394
- },
1395
-
1396
- text: {
1397
- required: true,
1398
- type: String
1399
- }
1400
- },
1401
-
1402
- data () {
1403
- return {
1404
- isLoading: false
1405
- }
1406
- },
1407
-
1408
- methods: {
1409
- async copy () {
1410
- this.isLoading = true;
1411
-
1412
- try {
1413
- await copyToClipboard(this.text);
1414
- this.$qas.success('Copiado!', this.text);
1415
- } catch (error) {
1416
- this.$qas.error('Não foi possível copiar.', this.text);
1417
- } finally {
1418
- setTimeout(() => { this.isLoading = false; }, 500);
1419
- }
1420
- }
1421
- }
1422
- };
1423
-
1424
- const _hoisted_1$9 = /*#__PURE__*/createTextVNode("Copiar");
1425
-
1426
- function render$f(_ctx, _cache, $props, $setup, $data, $options) {
1427
- const _component_q_tooltip = resolveComponent("q-tooltip");
1428
- const _component_qas_btn = resolveComponent("qas-btn");
1429
-
1430
- return (openBlock(), createElementBlock("span", null, [
1431
- renderSlot(_ctx.$slots, "default", {}, () => [
1432
- createTextVNode(toDisplayString($props.text), 1 /* TEXT */)
1433
- ]),
1434
- createVNode(_component_qas_btn, {
1435
- class: "q-ml-xs",
1436
- color: "grey-5",
1437
- flat: "",
1438
- icon: $props.icon,
1439
- loading: $data.isLoading,
1440
- round: "",
1441
- size: $props.size,
1442
- onClick: $options.copy
1443
- }, {
1444
- default: withCtx(() => [
1445
- createVNode(_component_q_tooltip, null, {
1446
- default: withCtx(() => [
1447
- _hoisted_1$9
1448
- ]),
1449
- _: 1 /* STABLE */
1450
- })
1451
- ]),
1452
- _: 1 /* STABLE */
1453
- }, 8 /* PROPS */, ["icon", "loading", "size", "onClick"])
1454
- ]))
1455
- }
1456
-
1457
- script$f.render = render$f;
1458
- script$f.__file = "src/components/copy/QasCopy.vue";
1459
-
1460
- var script$e = {
1461
- name: 'QasDebugger',
1462
-
1463
- props: {
1464
- inspect: {
1465
- default: () => [],
1466
- required: true,
1467
- type: Array
1468
- }
1469
- }
1470
- };
1471
-
1472
- const _hoisted_1$8 = { class: "bg-grey-3 q-my-md q-pa-md rounded-borders" };
1473
- const _hoisted_2$4 = /*#__PURE__*/createElementVNode("summary", null, "Debugger", -1 /* HOISTED */);
1474
- const _hoisted_3$1 = { class: "row" };
1475
-
1476
- function render$e(_ctx, _cache, $props, $setup, $data, $options) {
1477
- return (openBlock(), createElementBlock("details", _hoisted_1$8, [
1478
- _hoisted_2$4,
1479
- createElementVNode("div", _hoisted_3$1, [
1480
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.inspect, (item, index) => {
1481
- return (openBlock(), createElementBlock("pre", {
1482
- key: index,
1483
- class: "col q-pa-sm scroll",
1484
- style: {"max-height":"300px"}
1485
- }, toDisplayString(item), 1 /* TEXT */))
1486
- }), 128 /* KEYED_FRAGMENT */))
1487
- ])
1488
- ]))
1489
- }
1490
-
1491
- script$e.render = render$e;
1492
- script$e.__file = "src/components/debugger/QasDebugger.vue";
1493
-
1494
- var script$d = {
1495
- name: 'QasDialog',
1496
-
1497
- components: {
1498
- QasBtn: script$p,
1499
- QasActions: script$q
1500
- },
1501
-
1502
- mixins: [screenMixin],
1503
-
1504
- props: {
1505
- btnActionsProps: {
1506
- default: () => ({}),
1507
- type: Object
1508
- },
1509
-
1510
- cancel: {
1511
- default: () => ({}),
1512
- type: [Object, Boolean]
1513
- },
1514
-
1515
- card: {
1516
- default: () => ({}),
1517
- type: Object
1518
- },
1519
-
1520
- cardProps: {
1521
- default: () => ({}),
1522
- type: Object
1523
- },
1524
-
1525
- maxWidth: {
1526
- default: '',
1527
- type: String
1528
- },
1529
-
1530
- minWidth: {
1531
- default: '',
1532
- type: String
1533
- },
1534
-
1535
- ok: {
1536
- default: () => ({}),
1537
- type: [Object, Boolean]
1538
- },
1539
-
1540
- persistent: {
1541
- default: true,
1542
- type: Boolean
1543
- },
1544
-
1545
- useForm: {
1546
- type: Boolean
1547
- },
1548
-
1549
- modelValue: {
1550
- type: Boolean
1551
- },
1552
-
1553
- usePlugin: {
1554
- type: Boolean
1555
- }
1556
- },
1557
-
1558
- emits: [
1559
- 'update:modelValue',
1560
- 'validate',
1561
- 'ok',
1562
- 'hide',
1563
- 'update:open'
1564
- ],
1565
-
1566
- computed: {
1567
- defaultCancel () {
1568
- return {
1569
- ...this.cancel?.events,
1570
- label: 'Cancelar',
1571
- outline: true,
1572
- ...this.cancel?.props
1573
- }
1574
- },
1575
-
1576
- defaultOk () {
1577
- return {
1578
- ...this.ok?.events,
1579
- label: 'Ok',
1580
- type: this.ok?.props?.type || this.useForm ? 'submit' : 'button',
1581
- ...this.ok?.props
1582
- }
1583
- },
1584
-
1585
- style () {
1586
- return {
1587
- maxWidth: this.maxWidth || (this.$_isSmall ? '' : '600px'),
1588
- minWidth: this.minWidth || (this.$_isSmall ? '' : '400px')
1589
- }
1590
- },
1591
-
1592
- componentTag () {
1593
- return this.useForm ? 'q-form' : 'div'
1594
- },
1595
-
1596
- dialogProps () {
1597
- return {
1598
- ...(!this.usePlugin && { modelValue: this.modelValue }),
1599
- ...this.$attrs
1600
- }
1601
- }
1602
- },
1603
-
1604
- methods: {
1605
- async submitHandler () {
1606
- this.useForm && this.$emit('validate', await this.$refs.form.validate());
1607
- },
1608
-
1609
- // metodo para funcionar como plugin
1610
- show () {
1611
- this.$refs.dialog.show();
1612
- },
1613
-
1614
- // metodo para funcionar como plugin
1615
- hide () {
1616
- this.$refs.dialog.hide();
1617
- },
1618
-
1619
- // metodo para funcionar como plugin
1620
- onDialogHide () {
1621
- this.$emit('hide');
1622
- },
1623
-
1624
- updateModelValue (value) {
1625
- this.$emit('update:modelValue', value);
1626
- }
1627
- }
1628
- };
1629
-
1630
- const _hoisted_1$7 = { class: "text-bold text-h6" };
1631
- const _hoisted_2$3 = { key: 0 };
1632
-
1633
- function render$d(_ctx, _cache, $props, $setup, $data, $options) {
1634
- const _component_q_card_section = resolveComponent("q-card-section");
1635
- const _component_qas_btn = resolveComponent("qas-btn");
1636
- const _component_qas_actions = resolveComponent("qas-actions");
1637
- const _component_q_card = resolveComponent("q-card");
1638
- const _component_q_dialog = resolveComponent("q-dialog");
1639
- const _directive_close_popup = resolveDirective("close-popup");
1640
-
1641
- return (openBlock(), createBlock(_component_q_dialog, mergeProps({
1642
- ref: "dialog",
1643
- persistent: $props.persistent
1644
- }, $options.dialogProps, {
1645
- onHide: $options.onDialogHide,
1646
- "onUpdate:modelValue": $options.updateModelValue
1647
- }), {
1648
- default: withCtx(() => [
1649
- createVNode(_component_q_card, mergeProps($props.cardProps, {
1650
- class: "q-pa-sm",
1651
- style: $options.style
1652
- }), {
1653
- default: withCtx(() => [
1654
- createVNode(_component_q_card_section, null, {
1655
- default: withCtx(() => [
1656
- renderSlot(_ctx.$slots, "header", {}, () => [
1657
- createElementVNode("div", _hoisted_1$7, toDisplayString($props.card.title), 1 /* TEXT */)
1658
- ])
1659
- ]),
1660
- _: 3 /* FORWARDED */
1661
- }),
1662
- createVNode(_component_q_card_section, { class: "q-pt-none" }, {
1663
- default: withCtx(() => [
1664
- (openBlock(), createBlock(resolveDynamicComponent($options.componentTag), { ref: "form" }, {
1665
- default: withCtx(() => [
1666
- renderSlot(_ctx.$slots, "description", {}, () => [
1667
- ($props.card.description)
1668
- ? (openBlock(), createElementBlock("div", _hoisted_2$3, toDisplayString($props.card.description), 1 /* TEXT */))
1669
- : createCommentVNode("v-if", true)
1670
- ])
1671
- ]),
1672
- _: 3 /* FORWARDED */
1673
- }, 512 /* NEED_PATCH */))
1674
- ]),
1675
- _: 3 /* FORWARDED */
1676
- }),
1677
- createVNode(_component_q_card_section, null, {
1678
- default: withCtx(() => [
1679
- renderSlot(_ctx.$slots, "actions", {}, () => [
1680
- createVNode(_component_qas_actions, normalizeProps(guardReactiveProps($props.btnActionsProps)), {
1681
- primary: withCtx(() => [
1682
- ($props.ok)
1683
- ? withDirectives((openBlock(), createBlock(_component_qas_btn, mergeProps({
1684
- key: 0,
1685
- class: "full-width"
1686
- }, $options.defaultOk, { onClick: $options.submitHandler }), null, 16 /* FULL_PROPS */, ["onClick"])), [
1687
- [_directive_close_popup, !$props.useForm]
1688
- ])
1689
- : createCommentVNode("v-if", true)
1690
- ]),
1691
- secondary: withCtx(() => [
1692
- ($props.cancel)
1693
- ? withDirectives((openBlock(), createBlock(_component_qas_btn, mergeProps({
1694
- key: 0,
1695
- class: "full-width"
1696
- }, $options.defaultCancel), null, 16 /* FULL_PROPS */)), [
1697
- [_directive_close_popup]
1698
- ])
1699
- : createCommentVNode("v-if", true)
1700
- ]),
1701
- _: 1 /* STABLE */
1702
- }, 16 /* FULL_PROPS */)
1703
- ])
1704
- ]),
1705
- _: 3 /* FORWARDED */
1706
- })
1707
- ]),
1708
- _: 3 /* FORWARDED */
1709
- }, 16 /* FULL_PROPS */, ["style"])
1710
- ]),
1711
- _: 3 /* FORWARDED */
1712
- }, 16 /* FULL_PROPS */, ["persistent", "onHide", "onUpdate:modelValue"]))
1713
- }
1714
-
1715
- script$d.render = render$d;
1716
- script$d.__file = "src/components/dialog/QasDialog.vue";
1717
-
1718
- var script$c = {
1719
- name: 'QasInput',
1720
-
1721
- props: {
1722
- modelValue: {
1723
- default: '',
1724
- type: String
1725
- }
1726
- },
1727
-
1728
- emits: ['update:modelValue'],
1729
-
1730
- computed: {
1731
- hasError () {
1732
- return this.inputReference.hasError
1733
- },
1734
-
1735
- inputReference () {
1736
- return this.$refs.input
1737
- },
1738
-
1739
- mask () {
1740
- const { mask } = this.$attrs;
1741
- const hasDefaultMask = Object.prototype.hasOwnProperty.call(this.masks, mask);
1742
-
1743
- return hasDefaultMask ? this.masks[mask]() : mask
1744
- },
1745
-
1746
- masks () {
1747
- return {
1748
- 'company-document': () => '##.###.###/####-##',
1749
- document: () => this.toggleMask('###.###.###-###', '##.###.###/####-##'),
1750
- 'personal-document': () => '###.###.###-##',
1751
- phone: () => this.toggleMask('(##) ####-#####', '(##) #####-####'),
1752
- 'postal-code': () => '#####-###'
1753
- }
1754
- },
1755
-
1756
- model: {
1757
- get () {
1758
- return this.modelValue
1759
- },
1760
-
1761
- set (value) {
1762
- return this.$emit('update:modelValue', value)
1763
- }
1764
- }
1765
- },
1766
-
1767
- watch: {
1768
- mask () {
1769
- const input = this.inputReference.$el?.querySelector('input');
1770
-
1771
- requestAnimationFrame(() => {
1772
- input.selectionStart = input.value ? input.value.length : '';
1773
- });
1774
- }
1775
- },
1776
-
1777
- methods: {
1778
- focus () {
1779
- return this.inputReference.focus()
1780
- },
1781
-
1782
- resetValidation () {
1783
- return this.inputReference.resetValidation()
1784
- },
1785
-
1786
- toggleMask (first, second) {
1787
- const length = first.split('#').length - 2;
1788
- return this.modelValue?.length > length ? second : first
1789
- },
1790
-
1791
- validate (value) {
1792
- return this.inputReference.validate(value)
1793
- }
1794
- }
1795
- };
1796
-
1797
- function render$c(_ctx, _cache, $props, $setup, $data, $options) {
1798
- const _component_q_input = resolveComponent("q-input");
1799
-
1800
- return (openBlock(), createElementBlock("div", null, [
1801
- createVNode(_component_q_input, mergeProps({
1802
- ref: "input",
1803
- modelValue: $options.model,
1804
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event)),
1805
- "bottom-slots": ""
1806
- }, _ctx.$attrs, {
1807
- mask: $options.mask,
1808
- "unmasked-value": ""
1809
- }), createSlots({ _: 2 /* DYNAMIC */ }, [
1810
- renderList(_ctx.$slots, (_, name) => {
1811
- return {
1812
- name: name,
1813
- fn: withCtx((context) => [
1814
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(context || {})))
1815
- ])
1816
- }
1817
- })
1818
- ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "mask"])
1819
- ]))
1820
- }
1821
-
1822
- script$c.render = render$c;
1823
- script$c.__file = "src/components/input/QasInput.vue";
1824
-
1825
- var script$b = {
1826
- name: 'QasLabel',
1827
-
1828
- props: {
1829
- count: {
1830
- default: 0,
1831
- type: [Number, String]
1832
- },
1833
-
1834
- label: {
1835
- default: '',
1836
- type: String
1837
- },
1838
-
1839
- margin: {
1840
- default: 'sm',
1841
- type: String
1842
- }
1843
- },
1844
-
1845
- computed: {
1846
- labelClass () {
1847
- return `q-mb-${this.margin}`
1848
- },
1849
-
1850
- labelWithSuffix () {
1851
- return addCounterSuffix(this.label, parseFloat(this.count))
1852
- }
1853
- }
1854
- };
1855
-
1856
- function render$b(_ctx, _cache, $props, $setup, $data, $options) {
1857
- return (openBlock(), createElementBlock("div", {
1858
- class: normalizeClass(["text-bold text-subtitle2", $options.labelClass])
1859
- }, [
1860
- renderSlot(_ctx.$slots, "default", { labelWithSuffix: $options.labelWithSuffix }, () => [
1861
- createTextVNode(toDisplayString($options.labelWithSuffix), 1 /* TEXT */)
1862
- ])
1863
- ], 2 /* CLASS */))
1864
- }
1865
-
1866
- script$b.render = render$b;
1867
- script$b.__file = "src/components/label/QasLabel.vue";
1868
-
1869
- var script$a = {
1870
- name: 'QasListItems',
1871
-
1872
- components: {
1873
- QasBtn: script$p
1874
- },
1875
-
1876
- props: {
1877
- iconProps: {
1878
- default: () => ({ color: 'primary', name: 'o_chevron_right' }),
1879
- type: Object
1880
- },
1881
-
1882
- list: {
1883
- default: () => [],
1884
- type: Array
1885
- },
1886
-
1887
- redirectKey: {
1888
- default: 'uuid',
1889
- type: String
1890
- },
1891
-
1892
- redirectOnIcon: {
1893
- default: true,
1894
- type: Boolean
1895
- },
1896
-
1897
- to: {
1898
- default: () => ({}),
1899
- type: Object
1900
- },
1901
-
1902
- useSectionActions: {
1903
- default: true,
1904
- type: Boolean
1905
- }
1906
- },
1907
-
1908
- methods: {
1909
- getRedirectPayload (item) {
1910
- return {
1911
- params: { [this.redirectKey]: item[this.redirectKey] },
1912
- ...this.to
1913
- }
1914
- },
1915
-
1916
- redirect (item) {
1917
- return this.redirectOnIcon ? undefined : this.getRedirectPayload(item)
1918
- }
1919
- }
1920
- };
1921
-
1922
- const _hoisted_1$6 = { class: "qas-list-items shadow-primary" };
1923
-
1924
- function render$a(_ctx, _cache, $props, $setup, $data, $options) {
1925
- const _component_q_item_section = resolveComponent("q-item-section");
1926
- const _component_q_icon = resolveComponent("q-icon");
1927
- const _component_qas_btn = resolveComponent("qas-btn");
1928
- const _component_q_item = resolveComponent("q-item");
1929
- const _component_q_list = resolveComponent("q-list");
1930
- const _directive_ripple = resolveDirective("ripple");
1931
-
1932
- return (openBlock(), createElementBlock("div", _hoisted_1$6, [
1933
- createVNode(_component_q_list, {
1934
- bordered: "",
1935
- class: "rounded-borders",
1936
- separator: ""
1937
- }, {
1938
- default: withCtx(() => [
1939
- (openBlock(true), createElementBlock(Fragment, null, renderList($props.list, (item, index) => {
1940
- return withDirectives((openBlock(), createBlock(_component_q_item, {
1941
- key: index,
1942
- clickable: !$props.redirectOnIcon,
1943
- to: $options.redirect(item)
1944
- }, {
1945
- default: withCtx(() => [
1946
- renderSlot(_ctx.$slots, "item", {
1947
- index: index,
1948
- item: item
1949
- }, () => [
1950
- createVNode(_component_q_item_section, null, {
1951
- default: withCtx(() => [
1952
- renderSlot(_ctx.$slots, "item-section-left", {
1953
- index: index,
1954
- item: item
1955
- })
1956
- ]),
1957
- _: 2 /* DYNAMIC */
1958
- }, 1024 /* DYNAMIC_SLOTS */),
1959
- ($props.useSectionActions)
1960
- ? (openBlock(), createBlock(_component_q_item_section, {
1961
- key: 0,
1962
- side: ""
1963
- }, {
1964
- default: withCtx(() => [
1965
- renderSlot(_ctx.$slots, "item-section-side", {
1966
- index: index,
1967
- item: item
1968
- }, () => [
1969
- createVNode(_component_qas_btn, {
1970
- flat: "",
1971
- round: "",
1972
- to: $options.getRedirectPayload(item)
1973
- }, {
1974
- default: withCtx(() => [
1975
- createVNode(_component_q_icon, normalizeProps(guardReactiveProps($props.iconProps)), null, 16 /* FULL_PROPS */)
1976
- ]),
1977
- _: 2 /* DYNAMIC */
1978
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["to"])
1979
- ])
1980
- ]),
1981
- _: 2 /* DYNAMIC */
1982
- }, 1024 /* DYNAMIC_SLOTS */))
1983
- : createCommentVNode("v-if", true)
1984
- ])
1985
- ]),
1986
- _: 2 /* DYNAMIC */
1987
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["clickable", "to"])), [
1988
- [_directive_ripple]
1989
- ])
1990
- }), 128 /* KEYED_FRAGMENT */))
1991
- ]),
1992
- _: 3 /* FORWARDED */
1993
- })
1994
- ]))
1995
- }
1996
-
1997
- script$a.render = render$a;
1998
- script$a.__file = "src/components/list-items/QasListItems.vue";
1999
-
2000
- const defaultModes = {
2001
- decimal: 'commaDecimalCharDotSeparator',
2002
- integer: ['commaDecimalCharDotSeparator', 'integer'],
2003
- money: 'Brazilian',
2004
- percent: 'percentageEU2dec'
2005
- };
2006
-
2007
- var script$9 = {
2008
- name: 'QasNumericInput',
2009
-
2010
- props: {
2011
- allowNegative: {
2012
- default: true,
2013
- type: Boolean
2014
- },
2015
-
2016
- allowPositive: {
2017
- default: true,
2018
- type: Boolean
2019
- },
2020
-
2021
- autonumericProps: {
2022
- default: () => ({}),
2023
- type: Object
2024
- },
2025
-
2026
- decimalPlaces: {
2027
- default: 2,
2028
- type: Number
2029
- },
2030
-
2031
- mode: {
2032
- default: 'integer',
2033
- type: String,
2034
- validator: value => ['integer', 'decimal', 'percent', 'money'].includes(value)
2035
- },
2036
-
2037
- modelValue: {
2038
- default: '',
2039
- validator (value) {
2040
- return typeof value === 'number' || typeof value === 'string' || value === '' || value === null
2041
- }
2042
- },
2043
-
2044
- preset: {
2045
- default: false,
2046
- type: [Boolean, String]
2047
- }
2048
- },
2049
-
2050
- emits: ['update:modelValue'],
2051
-
2052
- data () {
2053
- return {
2054
- autoNumeric: null
2055
- }
2056
- },
2057
-
2058
- computed: {
2059
- defaultMode () {
2060
- return defaultModes[this.mode]
2061
- },
2062
-
2063
- model: {
2064
- get () {
2065
- return this.modelValue
2066
- },
2067
-
2068
- set () {
2069
- this.$emit('update:modelValue', this.autoNumeric.getNumber());
2070
- }
2071
- }
2072
- },
2073
-
2074
- async created () {
2075
- const autoNumericPredefinedOptions = AutoNumeric.getPredefinedOptions();
2076
-
2077
- let option = this.preset || this.defaultMode;
2078
-
2079
- if (!Array.isArray(option)) {
2080
- option = [option];
2081
- }
2082
-
2083
- const options = {};
2084
-
2085
- for (const value of option) {
2086
- Object.assign(options, autoNumericPredefinedOptions[value]);
2087
- }
2088
-
2089
- if (!this.allowNegative) {
2090
- options.minimumValue = 0;
2091
- }
2092
-
2093
- if (!this.allowPositive) {
2094
- options.maximumValue = 0;
2095
- }
2096
-
2097
- if (this.mode !== 'integer') {
2098
- options.decimalPlaces = this.decimalPlaces;
2099
- }
2100
-
2101
- Object.assign(options, this.autonumericProps);
2102
-
2103
- this.$nextTick(() => {
2104
- this.$refs.input.value = this.modelValue;
2105
- this.autoNumeric = new AutoNumeric(this.$refs.input, options);
2106
- });
2107
- },
2108
-
2109
- beforeUnmount () {
2110
- this.autoNumeric.remove();
2111
- }
2112
- };
2113
-
2114
- const _hoisted_1$5 = ["id", "model-value", "onInput"];
2115
-
2116
- function render$9(_ctx, _cache, $props, $setup, $data, $options) {
2117
- const _component_q_field = resolveComponent("q-field");
2118
-
2119
- return (openBlock(), createBlock(_component_q_field, {
2120
- modelValue: $options.model,
2121
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event))
2122
- }, {
2123
- control: withCtx(({ emitValue, floatingLabel, id, value }) => [
2124
- withDirectives(createElementVNode("input", {
2125
- id: id,
2126
- ref: "input",
2127
- class: "q-field__input",
2128
- "model-value": value,
2129
- onInput: $event => (emitValue($event.target.value))
2130
- }, null, 40 /* PROPS, HYDRATE_EVENTS */, _hoisted_1$5), [
2131
- [vShow, floatingLabel]
2132
- ])
2133
- ]),
2134
- _: 1 /* STABLE */
2135
- }, 8 /* PROPS */, ["modelValue"]))
2136
- }
2137
-
2138
- script$9.render = render$9;
2139
- script$9.__file = "src/components/numeric-input/QasNumericInput.vue";
2140
-
2141
- var script$8 = {
2142
- name: 'QasPasswordStrengthChecker',
2143
-
2144
- mixins: [passwordMixin],
2145
-
2146
- props: {
2147
- modelValue: {
2148
- default: false,
2149
- type: Boolean
2150
- },
2151
-
2152
- password: {
2153
- default: '',
2154
- type: String
2155
- }
2156
- },
2157
-
2158
- emits: ['update:model-value'],
2159
-
2160
- computed: {
2161
- length () {
2162
- return this.password.length
2163
- },
2164
-
2165
- level () {
2166
- return this.levelsValues[this.score]
2167
- },
2168
-
2169
- levelsValues () {
2170
- return Object.values(this.levels)
2171
- },
2172
-
2173
- score () {
2174
- let score = 0;
2175
-
2176
- if (this.length >= parseInt(this.minlength)) {
2177
- score += this.useLowercase
2178
- ? (this.password.match(/[a-z]/g) ? 1 : 0)
2179
- : 1;
2180
-
2181
- score += this.useNumbers
2182
- ? (this.password.match(/[0-9]/g) ? 1 : 0)
2183
- : 1;
2184
-
2185
- score += this.useSpecial
2186
- ? (this.password.match(this.specials) ? 1 : 0)
2187
- : 1;
2188
-
2189
- score += this.useUppercase
2190
- ? (this.password.match(/[A-Z]/g) ? 1 : 0)
2191
- : 1;
2192
- }
2193
-
2194
- return score
2195
- }
2196
- },
2197
-
2198
- watch: {
2199
- password () {
2200
- this.emitValue();
2201
- }
2202
- },
2203
-
2204
- created () {
2205
- this.emitValue();
2206
- },
2207
-
2208
- methods: {
2209
- emitValue () {
2210
- this.$emit('update:model-value', this.score === 4);
2211
- }
2212
- }
2213
- };
2214
-
2215
- const _hoisted_1$4 = { key: 0 };
2216
-
2217
- function render$8(_ctx, _cache, $props, $setup, $data, $options) {
2218
- const _component_q_linear_progress = resolveComponent("q-linear-progress");
2219
-
2220
- return ($options.length)
2221
- ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
2222
- renderSlot(_ctx.$slots, "default", { level: $options.level }, () => [
2223
- createVNode(_component_q_linear_progress, {
2224
- color: $options.level.color,
2225
- "track-color": _ctx.trackColor,
2226
- value: $options.level.progress
2227
- }, null, 8 /* PROPS */, ["color", "track-color", "value"]),
2228
- createElementVNode("div", {
2229
- class: normalizeClass(["text-caption", $options.level.textClass])
2230
- }, toDisplayString($options.level.label), 3 /* TEXT, CLASS */)
2231
- ])
2232
- ]))
2233
- : createCommentVNode("v-if", true)
2234
- }
2235
-
2236
- script$8.render = render$8;
2237
- script$8.__file = "src/components/password-strength-checker/QasPasswordStrengthChecker.vue";
2238
-
2239
- var script$7 = {
2240
- name: 'QasPasswordInput',
2241
-
2242
- components: {
2243
- QasPasswordStrengthChecker: script$8
2244
- },
2245
-
2246
- mixins: [passwordMixin],
2247
-
2248
- props: {
2249
- hideStrengthChecker: {
2250
- type: Boolean
2251
- },
2252
-
2253
- iconColor: {
2254
- type: String,
2255
- default: 'primary'
2256
- },
2257
-
2258
- modelValue: {
2259
- type: String,
2260
- default: ''
2261
- }
2262
- },
2263
-
2264
- emits: ['update:modelValue'],
2265
-
2266
- data () {
2267
- return {
2268
- key: 'error',
2269
- toggleType: true
2270
- }
2271
- },
2272
-
2273
- computed: {
2274
- icon () {
2275
- return this.toggleType ? 'o_visibility_off' : 'o_visibility'
2276
- },
2277
-
2278
- model: {
2279
- get () {
2280
- return this.modelValue
2281
- },
2282
-
2283
- set (value) {
2284
- return this.$emit('update:modelValue', value)
2285
- }
2286
- },
2287
-
2288
- strengthCheckerProps () {
2289
- const { modelValue, ...props } = this.$props;
2290
- return props
2291
- },
2292
-
2293
- type () {
2294
- return this.toggleType ? 'password' : 'text'
2295
- }
2296
- },
2297
-
2298
- watch: {
2299
- modelValue () {
2300
- if (this.$attrs.error) {
2301
- this.$attrs.error = false;
2302
- this.$attrs.errorMessage = '';
2303
- }
2304
- }
2305
- },
2306
-
2307
- methods: {
2308
- toggle () {
2309
- this.toggleType = !this.toggleType;
2310
- }
2311
- }
2312
- };
2313
-
2314
- function render$7(_ctx, _cache, $props, $setup, $data, $options) {
2315
- const _component_q_icon = resolveComponent("q-icon");
2316
- const _component_qas_password_strength_checker = resolveComponent("qas-password-strength-checker");
2317
- const _component_q_input = resolveComponent("q-input");
2318
-
2319
- return (openBlock(), createBlock(_component_q_input, {
2320
- modelValue: $options.model,
2321
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event)),
2322
- "bottom-slots": "",
2323
- type: $options.type
2324
- }, createSlots({
2325
- append: withCtx(() => [
2326
- createVNode(_component_q_icon, {
2327
- class: "cursor-pointer",
2328
- color: $props.iconColor,
2329
- name: $options.icon,
2330
- onClick: $options.toggle
2331
- }, null, 8 /* PROPS */, ["color", "name", "onClick"])
2332
- ]),
2333
- _: 2 /* DYNAMIC */
2334
- }, [
2335
- renderList(_ctx.$slots, (_, name) => {
2336
- return {
2337
- name: name,
2338
- fn: withCtx((context) => [
2339
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(context || {})))
2340
- ])
2341
- }
2342
- }),
2343
- (!$props.hideStrengthChecker)
2344
- ? {
2345
- name: "hint",
2346
- fn: withCtx(() => [
2347
- createVNode(_component_qas_password_strength_checker, mergeProps($options.strengthCheckerProps, { password: $options.model }), null, 16 /* FULL_PROPS */, ["password"])
2348
- ])
2349
- }
2350
- : undefined
2351
- ]), 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "type"]))
2352
- }
2353
-
2354
- script$7.render = render$7;
2355
- script$7.__file = "src/components/password-input/QasPasswordInput.vue";
2356
-
2357
- var script$6 = {
2358
- name: 'QasSearchBox',
2359
-
2360
- components: {
2361
- QasBox: script$h
2362
- },
2363
-
2364
- props: {
2365
- emptyListHeight: {
2366
- default: '100px',
2367
- type: String
2368
- },
2369
-
2370
- fuseOptions: {
2371
- default: () => ({}),
2372
- type: Object
2373
- },
2374
-
2375
- height: {
2376
- default: '300px',
2377
- type: String
2378
- },
2379
-
2380
- list: {
2381
- default: () => [],
2382
- type: Array
2383
- },
2384
-
2385
- modelValue: {
2386
- default: '',
2387
- type: String
2388
- },
2389
-
2390
- placeholder: {
2391
- default: 'Pesquisar',
2392
- type: String
2393
- },
2394
-
2395
- useEmptySlot: {
2396
- default: true,
2397
- type: Boolean
2398
- }
2399
- },
2400
-
2401
- emits: ['empty-result', 'update:modelValue'],
2402
-
2403
- data () {
2404
- return {
2405
- fuse: null,
2406
- results: this.list,
2407
- search: ''
2408
- }
2409
- },
2410
-
2411
- computed: {
2412
- contentStyle () {
2413
- return { height: this.list.length ? this.height : this.emptyListHeight }
2414
- },
2415
-
2416
- defaultFuseOptions () {
2417
- return {
2418
- distance: 100,
2419
- location: 0,
2420
- maxPatternLength: 32,
2421
- minMatchCharLength: 1,
2422
- shouldSort: true,
2423
- threshold: 0.1,
2424
- tokenize: true,
2425
-
2426
- ...this.fuseOptions
2427
- }
2428
- },
2429
-
2430
- hasResults () {
2431
- return !!this.results.length
2432
- },
2433
-
2434
- normalizedResults () {
2435
- return this.results.map(result => result?.item) || []
2436
- }
2437
- },
2438
-
2439
- watch: {
2440
- defaultFuseOptions (value) {
2441
- this.fuse.options = { ...this.fuse.options, ...value };
2442
- },
2443
-
2444
- hasResults (value) {
2445
- !value && this.$emit('empty-result');
2446
- },
2447
-
2448
- list: {
2449
- handler (value) {
2450
- this.fuse.list = value;
2451
- this.setResults(this.search);
2452
- },
2453
-
2454
- deep: true
2455
- },
2456
-
2457
- search: {
2458
- handler (value) {
2459
- this.setResults(value);
2460
- this.$emit('update:modelValue', value);
2461
- },
2462
-
2463
- immediate: true
2464
- }
2465
- },
2466
-
2467
- async created () {
2468
- this.search = this.modelValue;
2469
- this.fuse = new Fuse(this.list, this.defaultFuseOptions);
2470
- this.setResults();
2471
- },
2472
-
2473
- methods: {
2474
- setResults (value) {
2475
- this.results = value
2476
- ? this.fuse.search(value)
2477
- : this.list.map(listItem => ({ item: listItem }));
2478
- }
2479
- }
2480
- };
2481
-
2482
- const _hoisted_1$3 = { class: "absolute-center text-center" };
2483
- const _hoisted_2$2 = /*#__PURE__*/createElementVNode("div", null, "Não há resultados disponíveis.", -1 /* HOISTED */);
2484
-
2485
- function render$6(_ctx, _cache, $props, $setup, $data, $options) {
2486
- const _component_q_icon = resolveComponent("q-icon");
2487
- const _component_q_input = resolveComponent("q-input");
2488
- const _component_qas_box = resolveComponent("qas-box");
2489
-
2490
- return (openBlock(), createBlock(_component_qas_box, null, {
2491
- default: withCtx(() => [
2492
- createVNode(_component_q_input, {
2493
- modelValue: $data.search,
2494
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($data.search) = $event)),
2495
- clearable: "",
2496
- disable: !$props.list.length,
2497
- outlined: "",
2498
- placeholder: $props.placeholder
2499
- }, {
2500
- append: withCtx(() => [
2501
- createVNode(_component_q_icon, {
2502
- color: "primary",
2503
- name: "o_search"
2504
- })
2505
- ]),
2506
- _: 1 /* STABLE */
2507
- }, 8 /* PROPS */, ["modelValue", "disable", "placeholder"]),
2508
- createElementVNode("div", {
2509
- class: "overflow-auto q-mt-xs relative-position",
2510
- style: normalizeStyle($options.contentStyle)
2511
- }, [
2512
- ($options.hasResults)
2513
- ? renderSlot(_ctx.$slots, "default", {
2514
- key: 0,
2515
- results: $options.normalizedResults
2516
- })
2517
- : ($props.useEmptySlot)
2518
- ? renderSlot(_ctx.$slots, "empty-result", { key: 1 }, () => [
2519
- createElementVNode("div", _hoisted_1$3, [
2520
- createVNode(_component_q_icon, {
2521
- class: "q-mb-sm text-center",
2522
- color: "primary",
2523
- name: "o_search",
2524
- size: "38px"
2525
- }),
2526
- _hoisted_2$2
2527
- ])
2528
- ])
2529
- : createCommentVNode("v-if", true)
2530
- ], 4 /* STYLE */)
2531
- ]),
2532
- _: 3 /* FORWARDED */
2533
- }))
2534
- }
2535
-
2536
- script$6.render = render$6;
2537
- script$6.__file = "src/components/search-box/QasSearchBox.vue";
2538
-
2539
- var script$5 = {
2540
- name: 'QasSelect',
2541
-
2542
- props: {
2543
- fuseOptions: {
2544
- default: () => ({}),
2545
- type: Object
2546
- },
2547
-
2548
- labelKey: {
2549
- default: '',
2550
- type: String
2551
- },
2552
-
2553
- modelValue: {
2554
- default: () => [],
2555
- type: [Array, Object, String, Number]
2556
- },
2557
-
2558
- noOptionLabel: {
2559
- default: 'Nenhum resultado foi encontrado.',
2560
- type: String
2561
- },
2562
-
2563
- options: {
2564
- default: () => [],
2565
- type: Array
2566
- },
2567
-
2568
- searchable: {
2569
- type: Boolean
2570
- },
2571
-
2572
- valueKey: {
2573
- default: '',
2574
- type: String
2575
- }
2576
- },
2577
-
2578
- emits: ['update:modelValue'],
2579
-
2580
- data () {
2581
- return {
2582
- filteredOptions: [],
2583
- fuse: null
2584
- }
2585
- },
2586
-
2587
- computed: {
2588
- attributes () {
2589
- return {
2590
- clearable: this.searchable,
2591
- emitValue: true,
2592
- mapOptions: true,
2593
- outlined: true,
2594
-
2595
- ...this.$attrs,
2596
-
2597
- options: this.filteredOptions,
2598
- useInput: this.searchable
2599
- }
2600
- },
2601
-
2602
- defaultFuseOptions () {
2603
- return {
2604
- distance: 100,
2605
- includeScore: true,
2606
- keys: ['label', 'value'],
2607
- location: 0,
2608
- maxPatternLength: 32,
2609
- minMatchCharLength: 1,
2610
- shouldSort: true,
2611
- threshold: 0.1,
2612
- tokenize: true,
2613
-
2614
- ...this.fuseOptions
2615
- }
2616
- },
2617
-
2618
- formattedResult () {
2619
- if (!this.labelKey && !this.valueKey) {
2620
- return this.options
2621
- }
2622
-
2623
- return this.options.map(item => this.renameKey(item))
2624
- },
2625
-
2626
- model: {
2627
- get () {
2628
- return this.modelValue
2629
- },
2630
-
2631
- set (value) {
2632
- this.$emit('update:modelValue', value);
2633
- }
2634
- }
2635
- },
2636
-
2637
- watch: {
2638
- defaultFuseOptions (value) {
2639
- this.fuse.options = { ...this.fuse.options, ...value };
2640
- },
2641
-
2642
- options: {
2643
- handler () {
2644
- if (this.fuse) {
2645
- this.fuse.list = this.formattedResult;
2646
- }
2647
-
2648
- this.filteredOptions = this.formattedResult;
2649
- },
2650
-
2651
- immediate: true
2652
- }
2653
- },
2654
-
2655
- async created () {
2656
- if (this.searchable) {
2657
- this.fuse = new Fuse(this.options, this.defaultFuseOptions);
2658
- }
2659
- },
2660
-
2661
- methods: {
2662
- filterOptions (value, update) {
2663
- update(() => {
2664
- if (!this.searchable) return
2665
-
2666
- if (value === '') {
2667
- this.filteredOptions = this.formattedResult;
2668
- } else {
2669
- const results = this.fuse.search(value);
2670
- this.filteredOptions = results.map(item => item.item);
2671
- }
2672
- });
2673
- },
2674
-
2675
- renameKey (item) {
2676
- const mapKeys = {
2677
- label: this.labelKey,
2678
- value: this.valueKey
2679
- };
2680
-
2681
- for (const newKey in mapKeys) {
2682
- if (!item.hasOwnProperty.call(newKey)) {
2683
- item[newKey] = item[mapKeys[newKey]];
2684
- delete item[mapKeys[newKey]];
2685
- }
2686
- }
2687
-
2688
- return item
2689
- }
2690
- }
2691
- };
2692
-
2693
- function render$5(_ctx, _cache, $props, $setup, $data, $options) {
2694
- const _component_q_icon = resolveComponent("q-icon");
2695
- const _component_q_item_section = resolveComponent("q-item-section");
2696
- const _component_q_item = resolveComponent("q-item");
2697
- const _component_q_select = resolveComponent("q-select");
2698
-
2699
- return (openBlock(), createBlock(_component_q_select, mergeProps({
2700
- modelValue: $options.model,
2701
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event))
2702
- }, $options.attributes, { onFilter: $options.filterOptions }), createSlots({
2703
- append: withCtx(() => [
2704
- renderSlot(_ctx.$slots, "append", {}, () => [
2705
- ($props.searchable)
2706
- ? (openBlock(), createBlock(_component_q_icon, {
2707
- key: 0,
2708
- name: "o_search"
2709
- }))
2710
- : createCommentVNode("v-if", true)
2711
- ])
2712
- ]),
2713
- "no-option": withCtx(() => [
2714
- renderSlot(_ctx.$slots, "no-option", {}, () => [
2715
- createVNode(_component_q_item, null, {
2716
- default: withCtx(() => [
2717
- createVNode(_component_q_item_section, { class: "text-grey" }, {
2718
- default: withCtx(() => [
2719
- createTextVNode(toDisplayString($props.noOptionLabel), 1 /* TEXT */)
2720
- ]),
2721
- _: 1 /* STABLE */
2722
- })
2723
- ]),
2724
- _: 1 /* STABLE */
2725
- })
2726
- ])
2727
- ]),
2728
- _: 2 /* DYNAMIC */
2729
- }, [
2730
- renderList(_ctx.$slots, (_, name) => {
2731
- return {
2732
- name: name,
2733
- fn: withCtx((context) => [
2734
- renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(context || {})))
2735
- ])
2736
- }
2737
- })
2738
- ]), 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["modelValue", "onFilter"]))
2739
- }
2740
-
2741
- script$5.render = render$5;
2742
- script$5.__file = "src/components/select/QasSelect.vue";
2743
-
2744
- var script$4 = {
2745
- name: 'QasSelectList',
2746
-
2747
- components: {
2748
- QasBtn: script$p,
2749
- QasSearchBox: script$6
2750
- },
2751
-
2752
- mixins: [screenMixin],
2753
-
2754
- props: {
2755
- deleteOnly: {
2756
- type: Boolean
2757
- },
2758
-
2759
- fuseOptions: {
2760
- default: () => ({ keys: ['label'] }),
2761
- type: Object
2762
- },
2763
-
2764
- list: {
2765
- default: () => [],
2766
- type: Array
2767
- },
2768
-
2769
- modelValue: {
2770
- type: Array,
2771
- default: () => []
2772
- },
2773
-
2774
- to: {
2775
- default: () => ({}),
2776
- type: Object
2777
- },
2778
-
2779
- toIdentifier: {
2780
- default: 'value',
2781
- type: String
2782
- }
2783
- },
2784
-
2785
- emits: [
2786
- 'added',
2787
- 'update:modelValue',
2788
- 'removed'
2789
- ],
2790
-
2791
- data () {
2792
- return {
2793
- sortedList: [],
2794
- values: []
2795
- }
2796
- },
2797
-
2798
- computed: {
2799
- isRedirectEnabled () {
2800
- return Object.keys(this.to).length
2801
- },
2802
-
2803
- labelClass () {
2804
- return this.isRedirectEnabled ? 'cursor-pointer' : ''
2805
- },
2806
-
2807
- slotData () {
2808
- return {
2809
- add: this.add,
2810
- handleClick: this.handleClick,
2811
- remove: this.remove,
2812
- updateModel: this.updateModel
2813
- }
2814
- }
2815
- },
2816
-
2817
- watch: {
2818
- list: {
2819
- handler (value) {
2820
- if (!this.sortedList.length) {
2821
- this.sortedList = value;
2822
- }
2823
- },
2824
-
2825
- immediate: true
2826
- },
2827
-
2828
- modelValue (value) {
2829
- this.values = [...value];
2830
- }
2831
- },
2832
-
2833
- created () {
2834
- this.values = [...this.modelValue];
2835
-
2836
- this.handleOptions();
2837
- },
2838
-
2839
- methods: {
2840
- add (item) {
2841
- this.values.push(item.value);
2842
- this.updateModel();
2843
-
2844
- this.$emit('added', item);
2845
- },
2846
-
2847
- getButtonProps ({ value }) {
2848
- const isSelected = this.values.includes(value);
2849
-
2850
- return {
2851
- dense: this.$_isSmall,
2852
- hideLabelOnSmallScreen: true,
2853
- icon: !this.$_isSmall ? undefined : isSelected ? 'o_close' : 'o_add',
2854
- label: isSelected ? 'Remover' : 'Adicionar',
2855
- outline: isSelected,
2856
- size: 'sm'
2857
- }
2858
- },
2859
-
2860
- handleClick (item) {
2861
- return this.values.includes(item.value) ? this.remove(item) : this.add(item)
2862
- },
2863
-
2864
- handleOptions () {
2865
- if (this.modelValue.length) {
2866
- return this.sortList()
2867
- }
2868
-
2869
- const unwatch = this.$watch('modelValue', () => {
2870
- if (!this.sortedList.length) {
2871
- this.sortList();
2872
- unwatch();
2873
- }
2874
- });
2875
- },
2876
-
2877
- redirectRoute (item) {
2878
- return this.isRedirectEnabled && this.$router.push({
2879
- params: { id: item[this.toIdentifier] },
2880
- ...this.to
2881
- })
2882
- },
2883
-
2884
- remove (item) {
2885
- const index = this.values.findIndex(value => value === item.value);
2886
-
2887
- this.values.splice(index, 1);
2888
- this.updateModel();
2889
-
2890
- this.$emit('removed', item, index);
2891
- },
2892
-
2893
- sortList () {
2894
- this.sortedList = this.deleteOnly
2895
- ? this.options.filter(option => this.modelValue.includes(option.value))
2896
- : sortBy(this.options, option => !this.modelValue.includes(option.value));
2897
- },
2898
-
2899
- updateModel (model) {
2900
- this.$emit('update:modelValue', model || this.values);
2901
- }
2902
- }
2903
- };
2904
-
2905
- const _hoisted_1$2 = ["onClick"];
2906
-
2907
- function render$4(_ctx, _cache, $props, $setup, $data, $options) {
2908
- const _component_q_item_section = resolveComponent("q-item-section");
2909
- const _component_qas_btn = resolveComponent("qas-btn");
2910
- const _component_q_item = resolveComponent("q-item");
2911
- const _component_q_list = resolveComponent("q-list");
2912
- const _component_qas_search_box = resolveComponent("qas-search-box");
2913
-
2914
- return (openBlock(), createBlock(_component_qas_search_box, {
2915
- class: "q-pa-md",
2916
- "fuse-options": $props.fuseOptions,
2917
- list: $data.sortedList
2918
- }, {
2919
- default: withCtx(({ results }) => [
2920
- createVNode(_component_q_list, { separator: "" }, {
2921
- default: withCtx(() => [
2922
- (openBlock(true), createElementBlock(Fragment, null, renderList(results, (result) => {
2923
- return (openBlock(), createBlock(_component_q_item, {
2924
- key: result.value
2925
- }, {
2926
- default: withCtx(() => [
2927
- renderSlot(_ctx.$slots, "item", normalizeProps(guardReactiveProps($options.slotData)), () => [
2928
- renderSlot(_ctx.$slots, "item-section", { result: result }, () => [
2929
- createVNode(_component_q_item_section, { class: "items-start text-bold" }, {
2930
- default: withCtx(() => [
2931
- createElementVNode("div", {
2932
- class: normalizeClass($options.labelClass),
2933
- onClick: $event => ($options.redirectRoute(result))
2934
- }, toDisplayString(result.label), 11 /* TEXT, CLASS, PROPS */, _hoisted_1$2)
2935
- ]),
2936
- _: 2 /* DYNAMIC */
2937
- }, 1024 /* DYNAMIC_SLOTS */)
2938
- ]),
2939
- createVNode(_component_q_item_section, { avatar: "" }, {
2940
- default: withCtx(() => [
2941
- renderSlot(_ctx.$slots, "item-action", normalizeProps(guardReactiveProps($options.slotData)), () => [
2942
- createVNode(_component_qas_btn, mergeProps($options.getButtonProps(result), {
2943
- onClick: $event => ($options.handleClick(result))
2944
- }), null, 16 /* FULL_PROPS */, ["onClick"])
2945
- ])
2946
- ]),
2947
- _: 2 /* DYNAMIC */
2948
- }, 1024 /* DYNAMIC_SLOTS */)
2949
- ])
2950
- ]),
2951
- _: 2 /* DYNAMIC */
2952
- }, 1024 /* DYNAMIC_SLOTS */))
2953
- }), 128 /* KEYED_FRAGMENT */))
2954
- ]),
2955
- _: 2 /* DYNAMIC */
2956
- }, 1024 /* DYNAMIC_SLOTS */)
2957
- ]),
2958
- _: 3 /* FORWARDED */
2959
- }, 8 /* PROPS */, ["fuse-options", "list"]))
2960
- }
2961
-
2962
- script$4.render = render$4;
2963
- script$4.__file = "src/components/select-list/QasSelectList.vue";
2964
-
2965
- var script$3 = {
2966
- name: 'QasSignaturePad',
2967
-
2968
- components: {
2969
- QasBtn: script$p
2970
- },
2971
-
2972
- props: {
2973
- emptyModel: {
2974
- type: Boolean,
2975
- default: true
2976
- },
2977
-
2978
- height: {
2979
- default: '250',
2980
- type: String
2981
- },
2982
-
2983
- signatureOptions: {
2984
- default: () => ({}),
2985
- type: Object
2986
- },
2987
-
2988
- type: {
2989
- default: 'image/png',
2990
- type: String
2991
- }
2992
- },
2993
-
2994
- emits: ['update:emptyModel'],
2995
-
2996
- expose: ['clearSignature', 'saveSignature', 'updateEmptyModel'],
2997
-
2998
- data () {
2999
- return {
3000
- canvasId: uid(),
3001
- hasEndStrokeEvent: false,
3002
- signaturePad: null,
3003
- SignaturePad: null
3004
- }
3005
- },
3006
-
3007
- watch: {
3008
- async signatureOptions (newValue, oldValue) {
3009
- if (isEqual(newValue, oldValue)) return
3010
-
3011
- await this.setupSignaturePad();
3012
- this.updateEmptyModel();
3013
- }
3014
- },
3015
-
3016
- async mounted () {
3017
- window.addEventListener('resize', this.setCanvasWidth);
3018
- this.setCanvasWidth();
3019
-
3020
- this.setupSignaturePad();
3021
- },
3022
-
3023
- unmounted () {
3024
- window.removeEventListener('resize', this.setCanvasWidth);
3025
- this.signaturePad.off();
3026
- },
3027
-
3028
- methods: {
3029
- clearSignature () {
3030
- this.signaturePad.clear();
3031
- this.updateEmptyModel();
3032
- },
3033
-
3034
- saveSignature () {
3035
- return this.signaturePad.toDataURL(this.type)
3036
- },
3037
-
3038
- setCanvasWidth () {
3039
- const signatureContainer = this.$refs.signatureContainer;
3040
- const canvasElement = signatureContainer.querySelector('canvas');
3041
- canvasElement.setAttribute('width', signatureContainer.offsetWidth);
3042
- },
3043
-
3044
- setupSignaturePad () {
3045
- const canvasElement = document.getElementById(this.canvasId);
3046
- this.signaturePad = new SignaturePad(canvasElement, this.signatureOptions);
3047
-
3048
- if (!this.hasEndStrokeEvent) {
3049
- this.signaturePad.addEventListener('endStroke', this.updateEmptyModel);
3050
- }
3051
-
3052
- this.hasEndStrokeEvent = true;
3053
- this.clearSignature();
3054
- },
3055
-
3056
- updateEmptyModel () {
3057
- this.$emit('update:emptyModel', this.signaturePad.isEmpty());
3058
- }
3059
- }
3060
- };
3061
-
3062
- const _hoisted_1$1 = {
3063
- ref: "signatureContainer",
3064
- class: "qas-signature-pad relative-position"
3065
- };
3066
- const _hoisted_2$1 = ["id", "height"];
3067
-
3068
- function render$3(_ctx, _cache, $props, $setup, $data, $options) {
3069
- const _component_qas_btn = resolveComponent("qas-btn");
3070
-
3071
- return (openBlock(), createElementBlock("div", _hoisted_1$1, [
3072
- createElementVNode("canvas", {
3073
- id: $data.canvasId,
3074
- ref: _ctx.$attrs.ref,
3075
- class: "qas-signature-pad__canvas rounded-borders vertical-bottom",
3076
- height: $props.height
3077
- }, null, 8 /* PROPS */, _hoisted_2$1),
3078
- (!$props.emptyModel)
3079
- ? (openBlock(), createBlock(_component_qas_btn, {
3080
- key: 0,
3081
- class: "absolute-bottom-right q-mb-sm q-mr-sm",
3082
- color: "primary",
3083
- dense: "",
3084
- icon: "o_delete",
3085
- round: "",
3086
- onClick: $options.clearSignature
3087
- }, null, 8 /* PROPS */, ["onClick"]))
3088
- : createCommentVNode("v-if", true)
3089
- ], 512 /* NEED_PATCH */))
3090
- }
3091
-
3092
- script$3.render = render$3;
3093
- script$3.__file = "src/components/signature-pad/QasSignaturePad.vue";
3094
-
3095
- /**
3096
- * @param {object} componentProps={}
3097
- *
3098
- * @example Dialog({ card: { title: 'Esse é o meu titulo!' } })
3099
- */
3100
- var Dialog = (componentProps = {}) => {
3101
- Dialog$1.create({
3102
- component: script$d,
3103
- componentProps: { ...componentProps, usePlugin: true }
3104
- });
3105
- };
3106
-
3107
- Notify.registerType('error', {
3108
- color: 'negative',
3109
- progress: true
3110
- });
3111
-
3112
- var NotifyError = (message, caption) => {
3113
- Notify.create({ caption, message, type: 'error' });
3114
- };
3115
-
3116
- Notify.registerType('success', {
3117
- icon: 'o_check',
3118
- progress: true
3119
- });
3120
-
3121
- var NotifySuccess = (message, caption) => {
3122
- Notify.create({ caption, message, type: 'success' });
3123
- };
3124
-
3125
- var script$2 = {
3126
- name: 'QasSortable',
3127
-
3128
- props: {
3129
- entity: {
3130
- default: '',
3131
- type: String
3132
- },
3133
-
3134
- sortableOptions: {
3135
- default: () => ({ animation: 500 }),
3136
- type: Object
3137
- },
3138
-
3139
- results: {
3140
- default: () => [],
3141
- type: Array
3142
- },
3143
-
3144
- tag: {
3145
- default: 'div',
3146
- type: String
3147
- },
3148
-
3149
- url: {
3150
- default: '',
3151
- type: String
3152
- },
3153
-
3154
- sortedModel: {
3155
- default: () => [],
3156
- type: Array
3157
- }
3158
- },
3159
-
3160
- emits: [
3161
- 'update:sortedModel',
3162
- 'sort',
3163
- 'success'
3164
- ],
3165
-
3166
- data () {
3167
- return {
3168
- sortable: null,
3169
- sorted: null
3170
- }
3171
- },
3172
-
3173
- computed: {
3174
- identifiers () {
3175
- return this.sorted.map(({ id }) => id)
3176
- }
3177
- },
3178
-
3179
- watch: {
3180
- sortableOptions (value) {
3181
- this.sortable.options = { ...this.sortable.options, ...value };
3182
- },
3183
-
3184
- results (value) {
3185
- this.setSortedValue(value);
3186
- this.sortable.sort(this.sortable.toArray());
3187
- }
3188
- },
3189
-
3190
- created () {
3191
- this.setSortedValue();
3192
- },
3193
-
3194
- async mounted () {
3195
- this.sortable = new Sortable(this.$refs.sortableItems, {
3196
- ...this.sortableOptions,
3197
-
3198
- onUpdate: event => {
3199
- this.updateOrder(event);
3200
- this.$emit('sort', event);
3201
- }
3202
- });
3203
- },
3204
-
3205
- unmounted () {
3206
- this.sortable.destroy();
3207
- },
3208
-
3209
- methods: {
3210
- setError (error) {
3211
- const { response } = error;
3212
- const exception = response?.data?.exception || error.message;
3213
-
3214
- NotifyError('Ops! Erro ao ordernar itens.', exception);
3215
- },
3216
-
3217
- // TODO precisa testar este metodo quando tivermos uma API para teste.
3218
- async replace () {
3219
- Loading.show();
3220
-
3221
- try {
3222
- const response = await this.$store.dispatch(`${this.entity}/replace`, {
3223
- payload: { order: this.identifiers },
3224
- url: this.url || `${this.entity}/sort`
3225
- });
3226
-
3227
- this.$emit('success', response);
3228
- } catch (error) {
3229
- this.setError(error);
3230
- } finally {
3231
- Loading.hide();
3232
- }
3233
- },
3234
-
3235
- updateOrder ({ newIndex, oldIndex }) {
3236
- const deleted = this.sorted.splice(oldIndex, 1);
3237
- this.sorted.splice(newIndex, 0, deleted[0]);
3238
-
3239
- this.replace();
3240
- },
3241
-
3242
- setSortedValue (value) {
3243
- this.sorted = extend(true, [], value || this.results);
3244
- this.updateSortedModel();
3245
- },
3246
-
3247
- updateSortedModel () {
3248
- return this.$emit('update:sortedModel', this.sorted)
3249
- }
3250
- }
3251
- };
3252
-
3253
- function render$2(_ctx, _cache, $props, $setup, $data, $options) {
3254
- return (openBlock(), createBlock(resolveDynamicComponent($props.tag), { ref: "sortableItems" }, {
3255
- default: withCtx(() => [
3256
- renderSlot(_ctx.$slots, "default")
3257
- ]),
3258
- _: 3 /* FORWARDED */
3259
- }, 512 /* NEED_PATCH */))
3260
- }
3261
-
3262
- script$2.render = render$2;
3263
- script$2.__file = "src/components/sortable/QasSortable.vue";
3264
-
3265
- var script$1 = {
3266
- name: 'QasTabsGenerator',
3267
-
3268
- props: {
3269
- activeColor: {
3270
- default: 'primary',
3271
- type: String
3272
- },
3273
-
3274
- counterProps: {
3275
- default: () => ({}),
3276
- type: Object
3277
- },
3278
-
3279
- counters: {
3280
- default: () => ({}),
3281
- type: Object
3282
- },
3283
-
3284
- indicatorColor: {
3285
- default: 'primary',
3286
- type: String
3287
- },
3288
-
3289
- modelValue: {
3290
- default: '',
3291
- type: String
3292
- },
3293
-
3294
- tabClass: {
3295
- default: 'text-primary',
3296
- type: String
3297
- },
3298
-
3299
- tabs: {
3300
- default: () => ({}),
3301
- required: true,
3302
- type: Object
3303
- }
3304
- },
3305
-
3306
- emits: ['update:modelValue'],
3307
-
3308
- computed: {
3309
- defaultCounterProps () {
3310
- return {
3311
- color: 'negative',
3312
- floating: true,
3313
- ...this.counterProps
3314
- }
3315
- },
3316
-
3317
- formattedTabs () {
3318
- const tabs = extend(true, {}, this.tabs);
3319
-
3320
- for (const key in tabs) {
3321
- if (typeof tabs[key] === 'string') {
3322
- tabs[key] = { label: tabs[key] };
3323
- }
3324
- }
3325
-
3326
- return tabs
3327
- },
3328
-
3329
- model: {
3330
- get () {
3331
- return this.modelValue
3332
- },
3333
-
3334
- set (value) {
3335
- this.$emit('update:modelValue', value);
3336
- }
3337
- }
3338
- }
3339
- };
3340
-
3341
- function render$1(_ctx, _cache, $props, $setup, $data, $options) {
3342
- const _component_q_badge = resolveComponent("q-badge");
3343
- const _component_q_tab = resolveComponent("q-tab");
3344
- const _component_q_tabs = resolveComponent("q-tabs");
3345
-
3346
- return (openBlock(), createBlock(_component_q_tabs, {
3347
- modelValue: $options.model,
3348
- "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => (($options.model) = $event)),
3349
- "active-color": $props.activeColor,
3350
- "indicator-color": $props.indicatorColor,
3351
- "outside-arrows": ""
3352
- }, {
3353
- default: withCtx(() => [
3354
- (openBlock(true), createElementBlock(Fragment, null, renderList($options.formattedTabs, (tab, key) => {
3355
- return renderSlot(_ctx.$slots, `tab-${tab.value}`, { item: tab }, () => [
3356
- (openBlock(), createBlock(_component_q_tab, mergeProps({ key: key }, tab, {
3357
- class: $props.tabClass,
3358
- label: tab.label,
3359
- name: key
3360
- }), {
3361
- default: withCtx(() => [
3362
- renderSlot(_ctx.$slots, `tab-after-${tab.value}`, { item: tab }, () => [
3363
- ($props.counters[key])
3364
- ? (openBlock(), createBlock(_component_q_badge, mergeProps({
3365
- key: 0,
3366
- label: $props.counters[key]
3367
- }, $options.defaultCounterProps), null, 16 /* FULL_PROPS */, ["label"]))
3368
- : createCommentVNode("v-if", true)
3369
- ])
3370
- ]),
3371
- _: 2 /* DYNAMIC */
3372
- }, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["class", "label", "name"]))
3373
- ])
3374
- }), 256 /* UNKEYED_FRAGMENT */))
3375
- ]),
3376
- _: 3 /* FORWARDED */
3377
- }, 8 /* PROPS */, ["modelValue", "active-color", "indicator-color"]))
3378
- }
3379
-
3380
- script$1.render = render$1;
3381
- script$1.__file = "src/components/tabs-generator/QasTabsGenerator.vue";
3382
-
3383
- var script = {
3384
- name: 'QasTransfer',
3385
-
3386
- components: {
3387
- QasBtn: script$p,
3388
- QasLabel: script$b,
3389
- QasSearchBox: script$6
3390
- },
3391
-
3392
- mixins: [screenMixin],
3393
-
3394
- props: {
3395
- emitValue: {
3396
- type: Boolean
3397
- },
3398
-
3399
- fuseOptions: {
3400
- default: () => ({ keys: ['label'] }),
3401
- type: Object
3402
- },
3403
-
3404
- label: {
3405
- default: '',
3406
- required: true,
3407
- type: String
3408
- },
3409
-
3410
- labelKey: {
3411
- default: 'label',
3412
- type: String
3413
- },
3414
-
3415
- modelValue: {
3416
- default: () => [],
3417
- type: Array
3418
- },
3419
-
3420
- options: {
3421
- default: () => [],
3422
- type: Array
3423
- },
3424
-
3425
- useEmptySlot: {
3426
- default: true,
3427
- type: Boolean
3428
- },
3429
-
3430
- valueKey: {
3431
- default: 'value',
3432
- type: String
3433
- }
3434
- },
3435
-
3436
- emits: ['update:modelValue'],
3437
-
3438
- data () {
3439
- return {
3440
- firstQueue: [],
3441
- optionsList: [],
3442
- secondQueue: [],
3443
- selectedList: []
3444
- }
3445
- },
3446
-
3447
- computed: {
3448
- actionsClass () {
3449
- return !this.$_isSmall && 'column'
3450
- },
3451
-
3452
- gutterClass () {
3453
- return `q-col-gutter-${this.$_untilLarge ? 'md' : 'xl'}`
3454
- },
3455
-
3456
- iconClass () {
3457
- return !this.$_isSmall && 'qas-transfer__icon'
3458
- },
3459
-
3460
- searchBoxProps () {
3461
- return {
3462
- fuseOptions: this.fuseOptions,
3463
- useEmptySlot: this.useEmptySlot
3464
- }
3465
- }
3466
- },
3467
-
3468
- watch: {
3469
- modelValue: {
3470
- handler () {
3471
- this.setSelectedFromValue(true);
3472
- },
3473
-
3474
- immediate: true
3475
- },
3476
-
3477
- options: {
3478
- handler (value) {
3479
- this.optionsList = extend(true, [], value);
3480
- },
3481
-
3482
- immediate: true
3483
- },
3484
-
3485
- selectedList: {
3486
- handler () {
3487
- this.updateModelValue();
3488
- }
3489
- }
3490
- },
3491
-
3492
- methods: {
3493
- deleteItemsFromList (isFirst) {
3494
- this[isFirst ? 'firstQueue' : 'secondQueue'].forEach(item => {
3495
- const model = isFirst ? 'optionsList' : 'selectedList';
3496
- const index = this[model].findIndex(itemValue => {
3497
- return (itemValue[this.valueKey] || itemValue) === item[this.valueKey]
3498
- });
3499
-
3500
- if (~index) {
3501
- this[model].splice(index, 1);
3502
- }
3503
- });
3504
- },
3505
-
3506
- getItemClass (object, isFirst) {
3507
- return this[isFirst
3508
- ? 'firstQueue'
3509
- : 'secondQueue'
3510
- ].some(item => item[this.valueKey] === object[this.valueKey]) && 'bg-secondary'
3511
- },
3512
-
3513
- getItemLabel (item) {
3514
- return item?.[this.labelKey]
3515
- },
3516
-
3517
- getModelValue () {
3518
- const selectedList = extend(true, [], this.selectedList);
3519
- return this.emitValue ? selectedList.map(item => item[this.valueKey]) : selectedList
3520
- },
3521
-
3522
- handleSelectedList (isFirst) {
3523
- const model = isFirst ? 'firstQueue' : 'secondQueue';
3524
-
3525
- this[isFirst ? 'selectedList' : 'optionsList'].push(...this[model]);
3526
- this.deleteItemsFromList(isFirst);
3527
- this[model] = [];
3528
- },
3529
-
3530
- onSelectQueue (item, isFirst) {
3531
- const model = isFirst ? 'firstQueue' : 'secondQueue';
3532
- const index = this[model].findIndex(selected => selected[this.valueKey] === item[this.valueKey]);
3533
-
3534
- ~index ? this[model].splice(index, 1) : this[model].push(item);
3535
- },
3536
-
3537
- setSelectedFromClick (isFirst) {
3538
- this.handleSelectedList(isFirst);
3539
- },
3540
-
3541
- setSelectedFromValue (isFirst) {
3542
- this.modelValue.forEach(item => {
3543
- const selected = this.optionsList.find(option => {
3544
- return option[this.valueKey] === (this.emitValue ? item : item[this.valueKey])
3545
- });
3546
-
3547
- if (selected) {
3548
- this.firstQueue.push(extend(true, {}, selected));
3549
- }
3550
- });
3551
-
3552
- this.handleSelectedList(isFirst);
3553
- },
3554
-
3555
- updateModelValue () {
3556
- return this.$emit('update:modelValue', this.getModelValue())
3557
- }
3558
- }
3559
- };
3560
-
3561
- const _hoisted_1 = /*#__PURE__*/createElementVNode("div", { class: "col-12" }, null, -1 /* HOISTED */);
3562
- const _hoisted_2 = { class: "col-12 col-sm" };
3563
- const _hoisted_3 = /*#__PURE__*/createTextVNode("Selecionar");
3564
- const _hoisted_4 = /*#__PURE__*/createTextVNode("Remover");
3565
- const _hoisted_5 = { class: "col-12 col-sm" };
3566
-
3567
- function render(_ctx, _cache, $props, $setup, $data, $options) {
3568
- const _component_qas_label = resolveComponent("qas-label");
3569
- const _component_q_item_section = resolveComponent("q-item-section");
3570
- const _component_q_item = resolveComponent("q-item");
3571
- const _component_q_list = resolveComponent("q-list");
3572
- const _component_qas_search_box = resolveComponent("qas-search-box");
3573
- const _component_qas_btn = resolveComponent("qas-btn");
3574
- const _component_q_tooltip = resolveComponent("q-tooltip");
3575
-
3576
- return (openBlock(), createElementBlock("div", {
3577
- class: normalizeClass(["qas-transfer row", $options.gutterClass])
3578
- }, [
3579
- _hoisted_1,
3580
- createElementVNode("div", _hoisted_2, [
3581
- createVNode(_component_qas_label, {
3582
- label: $props.label,
3583
- quantity: $data.optionsList.length
3584
- }, null, 8 /* PROPS */, ["label", "quantity"]),
3585
- createVNode(_component_qas_search_box, mergeProps({
3586
- "form-mode": "",
3587
- list: $data.optionsList
3588
- }, $options.searchBoxProps), {
3589
- default: withCtx(({ results }) => [
3590
- createVNode(_component_q_list, { separator: "" }, {
3591
- default: withCtx(() => [
3592
- (openBlock(true), createElementBlock(Fragment, null, renderList(results, (item, index) => {
3593
- return (openBlock(), createBlock(_component_q_item, {
3594
- key: index,
3595
- class: normalizeClass($options.getItemClass(item, true)),
3596
- clickable: "",
3597
- onClick: $event => ($options.onSelectQueue(item, true))
3598
- }, {
3599
- default: withCtx(() => [
3600
- renderSlot(_ctx.$slots, "item-first-column", {}, () => [
3601
- createVNode(_component_q_item_section, null, {
3602
- default: withCtx(() => [
3603
- createTextVNode(toDisplayString($options.getItemLabel(item)), 1 /* TEXT */)
3604
- ]),
3605
- _: 2 /* DYNAMIC */
3606
- }, 1024 /* DYNAMIC_SLOTS */)
3607
- ])
3608
- ]),
3609
- _: 2 /* DYNAMIC */
3610
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["class", "onClick"]))
3611
- }), 128 /* KEYED_FRAGMENT */))
3612
- ]),
3613
- _: 2 /* DYNAMIC */
3614
- }, 1024 /* DYNAMIC_SLOTS */)
3615
- ]),
3616
- _: 3 /* FORWARDED */
3617
- }, 16 /* FULL_PROPS */, ["list"])
3618
- ]),
3619
- createElementVNode("div", {
3620
- class: normalizeClass(["col-12 col-sm-auto items-center justify-center q-col-gutter-md row", $options.actionsClass])
3621
- }, [
3622
- createElementVNode("div", null, [
3623
- createVNode(_component_qas_btn, {
3624
- class: normalizeClass($options.iconClass),
3625
- dense: "",
3626
- disabled: !$data.firstQueue.length,
3627
- flat: "",
3628
- icon: "o_arrow_circle_down",
3629
- rounded: "",
3630
- onClick: _cache[0] || (_cache[0] = $event => ($options.setSelectedFromClick(true)))
3631
- }, null, 8 /* PROPS */, ["class", "disabled"]),
3632
- createVNode(_component_q_tooltip, {
3633
- anchor: "top middle",
3634
- self: "center middle"
3635
- }, {
3636
- default: withCtx(() => [
3637
- _hoisted_3
3638
- ]),
3639
- _: 1 /* STABLE */
3640
- })
3641
- ]),
3642
- createElementVNode("div", null, [
3643
- createElementVNode("div", null, [
3644
- createVNode(_component_qas_btn, {
3645
- class: normalizeClass($options.iconClass),
3646
- dense: "",
3647
- disabled: !$data.secondQueue.length,
3648
- flat: "",
3649
- icon: "o_arrow_circle_up",
3650
- rounded: "",
3651
- onClick: _cache[1] || (_cache[1] = $event => ($options.setSelectedFromClick()))
3652
- }, null, 8 /* PROPS */, ["class", "disabled"]),
3653
- createVNode(_component_q_tooltip, {
3654
- anchor: "bottom middle",
3655
- self: "center middle"
3656
- }, {
3657
- default: withCtx(() => [
3658
- _hoisted_4
3659
- ]),
3660
- _: 1 /* STABLE */
3661
- })
3662
- ])
3663
- ])
3664
- ], 2 /* CLASS */),
3665
- createElementVNode("div", _hoisted_5, [
3666
- createVNode(_component_qas_label, {
3667
- label: "Selecionadas",
3668
- quantity: $data.selectedList.length
3669
- }, null, 8 /* PROPS */, ["quantity"]),
3670
- createVNode(_component_qas_search_box, mergeProps($options.searchBoxProps, {
3671
- "empty-list-height": "300px",
3672
- "form-mode": "",
3673
- label: "Selecionadas",
3674
- list: $data.selectedList
3675
- }), {
3676
- default: withCtx(({ results }) => [
3677
- createVNode(_component_q_list, { separator: "" }, {
3678
- default: withCtx(() => [
3679
- (openBlock(true), createElementBlock(Fragment, null, renderList(results, (item, index) => {
3680
- return (openBlock(), createBlock(_component_q_item, {
3681
- key: index,
3682
- class: normalizeClass($options.getItemClass(item)),
3683
- clickable: "",
3684
- onClick: $event => ($options.onSelectQueue(item))
3685
- }, {
3686
- default: withCtx(() => [
3687
- renderSlot(_ctx.$slots, "item-second-column", {}, () => [
3688
- createVNode(_component_q_item_section, null, {
3689
- default: withCtx(() => [
3690
- createTextVNode(toDisplayString($options.getItemLabel(item)), 1 /* TEXT */)
3691
- ]),
3692
- _: 2 /* DYNAMIC */
3693
- }, 1024 /* DYNAMIC_SLOTS */)
3694
- ])
3695
- ]),
3696
- _: 2 /* DYNAMIC */
3697
- }, 1032 /* PROPS, DYNAMIC_SLOTS */, ["class", "onClick"]))
3698
- }), 128 /* KEYED_FRAGMENT */))
3699
- ]),
3700
- _: 2 /* DYNAMIC */
3701
- }, 1024 /* DYNAMIC_SLOTS */)
3702
- ]),
3703
- _: 3 /* FORWARDED */
3704
- }, 16 /* FULL_PROPS */, ["list"])
3705
- ])
3706
- ], 2 /* CLASS */))
3707
- }
3708
-
3709
- script.render = render;
3710
- script.__file = "src/components/transfer/QasTransfer.vue";
3711
-
3712
- const version = '3.0.0-alpha.2';
3713
-
3714
- function install (app) {
3715
- app.component('QasActions', script$q);
3716
- app.component('QasActionsMenu', script$o);
3717
- app.component('QasAlert', script$m);
3718
- app.component('QasAppBar', script$l);
3719
- app.component('QasAppMenu', script$k);
3720
- app.component('QasAppsMenu', script$j);
3721
- app.component('QasAvatar', script$i);
3722
- app.component('QasBox', script$h);
3723
- app.component('QasBreakline', script$n);
3724
- app.component('QasBtn', script$p);
3725
- app.component('QasCard', script$g);
3726
- app.component('QasCopy', script$f);
3727
- app.component('QasDebugger', script$e);
3728
- app.component('QasDialog', script$d);
3729
- app.component('QasInput', script$c);
3730
- app.component('QasLabel', script$b);
3731
- app.component('QasListItems', script$a);
3732
- app.component('QasNumericInput', script$9);
3733
- app.component('QasPasswordInput', script$7);
3734
- app.component('QasPasswordStrengthChecker', script$8);
3735
- app.component('QasSearchBox', script$6);
3736
- app.component('QasSelect', script$5);
3737
- app.component('QasSelectList', script$4);
3738
- app.component('QasSignaturePad', script$3);
3739
- app.component('QasSortable', script$2);
3740
- app.component('QasTabsGenerator', script$1);
3741
- app.component('QasTransfer', script);
3742
-
3743
- app.config.globalProperties.$qas = {
3744
- error: NotifyError,
3745
- success: NotifySuccess,
3746
- dialog: Dialog
3747
- };
3748
- }
3749
-
3750
- var VuePlugin = /*#__PURE__*/Object.freeze({
3751
- __proto__: null,
3752
- version: version,
3753
- QasActions: script$q,
3754
- QasActionsMenu: script$o,
3755
- QasAlert: script$m,
3756
- QasAppBar: script$l,
3757
- QasAppMenu: script$k,
3758
- QasAppsMenu: script$j,
3759
- QasAvatar: script$i,
3760
- QasBox: script$h,
3761
- QasBreakline: script$n,
3762
- QasBtn: script$p,
3763
- QasCard: script$g,
3764
- QasCopy: script$f,
3765
- QasDebugger: script$e,
3766
- QasDialog: script$d,
3767
- QasInput: script$c,
3768
- QasLabel: script$b,
3769
- QasListItems: script$a,
3770
- QasNumericInput: script$9,
3771
- QasPasswordInput: script$7,
3772
- QasPasswordStrengthChecker: script$8,
3773
- QasSearchBox: script$6,
3774
- QasSelect: script$5,
3775
- QasSelectList: script$4,
3776
- QasSignaturePad: script$3,
3777
- QasSortable: script$2,
3778
- QasTabsGenerator: script$1,
3779
- QasTransfer: script,
3780
- Dialog: Dialog,
3781
- NotifyError: NotifyError,
3782
- NotifySuccess: NotifySuccess,
3783
- install: install
3784
- });
3785
-
3786
- export { Dialog, NotifyError, NotifySuccess, script$q as QasActions, script$o as QasActionsMenu, script$m as QasAlert, script$l as QasAppBar, script$k as QasAppMenu, script$j as QasAppsMenu, script$i as QasAvatar, script$h as QasBox, script$n as QasBreakline, script$p as QasBtn, script$g as QasCard, script$f as QasCopy, script$e as QasDebugger, script$d as QasDialog, script$c as QasInput, script$b as QasLabel, script$a as QasListItems, script$9 as QasNumericInput, script$7 as QasPasswordInput, script$8 as QasPasswordStrengthChecker, script$6 as QasSearchBox, script$5 as QasSelect, script$4 as QasSelectList, script$3 as QasSignaturePad, script$2 as QasSortable, script$1 as QasTabsGenerator, script as QasTransfer, VuePlugin as default, install, version };