@bildvitta/quasar-ui-asteroid 2.14.0 → 2.16.0

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