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