@sysvale/show 1.0.0 → 1.2.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,662 +0,0 @@
1
- import { h } from 'vue';
2
- import swal from 'sweetalert2';
3
- import get from 'lodash.get';
4
- import camelCase from 'lodash.camelcase';
5
- import isObject from 'lodash.isobject';
6
- import snakeCase from 'lodash.snakecase';
7
- import keyBy from 'lodash.keyby';
8
-
9
- var isArray = function (arg) { return Array.isArray(arg); };
10
-
11
- var convertKeysToCamelCase = function (data) {
12
- if (isArray(data)) {
13
- return data.map(function (element) {
14
- if (isObject(element) || isArray(element)) {
15
- return convertKeysToCamelCase(element);
16
- }
17
- return element;
18
- });
19
- }
20
- var newData = {};
21
- Object.keys(data).forEach(function (key) {
22
- if (isObject(data[key]) || isArray(data[key])) {
23
- newData[camelCase(key)] = convertKeysToCamelCase(data[key]);
24
- } else {
25
- newData[camelCase(key)] = data[key];
26
- }
27
- });
28
-
29
- return newData;
30
- };
31
-
32
- var isArray$1 = function (arg) { return Array.isArray(arg); };
33
-
34
- var convertKeysToSnakeCase = function (data) {
35
- if (isArray$1(data)) {
36
- return data.map(function (element) {
37
- if (isObject(element) || isArray$1(element)) {
38
- return convertKeysToSnakeCase(element);
39
- }
40
- return element;
41
- });
42
- }
43
- var newData = {};
44
- Object.keys(data).forEach(function (key) {
45
- if (isObject(data[key]) || isArray$1(data[key])) {
46
- newData[snakeCase(key)] = convertKeysToSnakeCase(data[key]);
47
- } else {
48
- newData[snakeCase(key)] = data[key];
49
- }
50
- });
51
-
52
- return newData;
53
- };
54
-
55
- function generateKey(length) {
56
- if ( length === void 0 ) length = 8;
57
-
58
- var result = '';
59
- var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
60
- var charactersLength = characters.length;
61
- for (var i = 0; i < length; i += 1) {
62
- result += characters.charAt(Math.floor(Math.random() * charactersLength));
63
- }
64
- return result;
65
- }
66
-
67
- function getFirstErrorMessage(response, fallbackMsg) {
68
- if ( fallbackMsg === void 0 ) fallbackMsg = 'Não conseguimos processar sua requisição. Tente novamente.';
69
-
70
- var errors = get(response, 'errors', false);
71
- if (!errors) { return fallbackMsg; }
72
- var ref = Object.keys(errors);
73
- var firstKey = ref[0];
74
- return errors[firstKey][0] || fallbackMsg;
75
- }
76
-
77
- var SUCCESS_SWAL_DEFAULT_CONFIG = {
78
- title: 'Informações salvas com sucesso!',
79
- icon: 'success',
80
- text: '',
81
- showCloseButton: true,
82
- confirmButtonText: 'Ok',
83
- };
84
-
85
- var ERROR_SWAL_DEFAULT_CONFIG = {
86
- icon: 'error',
87
- title: 'Erro',
88
- text: 'mensagem de error',
89
- showCancelButton: true,
90
- showConfirmButton: false,
91
- cancelButtonText: 'Fechar',
92
- };
93
-
94
- var script = {
95
- inject: ['$_requestObserver'],
96
- emits: ['success', 'error', 'success-feedback-ok', 'error-feedback-ok', 'success-feedback-cancel', 'error-feedback-cancel'],
97
- props: {
98
- vid: {
99
- type: String,
100
- default: function () { return generateKey(); },
101
- },
102
- tag: {
103
- type: String,
104
- default: 'div',
105
- },
106
- service: {
107
- type: Function,
108
- required: true,
109
- },
110
- payload: {
111
- type: Object,
112
- default: function () { return ({}); },
113
- },
114
- payloadResolver: {
115
- type: Function,
116
- default: function (data) { return convertKeysToSnakeCase(data); },
117
- },
118
- dataResolver: {
119
- type: Function,
120
- default: function (data) { return convertKeysToCamelCase(data); },
121
- },
122
- successSwalConfig: {
123
- type: Object,
124
- default: function () { return SUCCESS_SWAL_DEFAULT_CONFIG; },
125
- },
126
- errorSwalConfig: {
127
- type: Object,
128
- default: function () { return ERROR_SWAL_DEFAULT_CONFIG; },
129
- },
130
- errorFeedbackResolver: {
131
- type: Function,
132
- default: null,
133
- },
134
- successFeedbackResolver: {
135
- type: Function,
136
- default: null,
137
- },
138
- showSuccessFeedback: {
139
- type: Boolean,
140
- default: false,
141
- },
142
- hideErrorFeedback: {
143
- type: Boolean,
144
- default: false,
145
- },
146
- immediate: {
147
- type: Boolean,
148
- default: false,
149
- },
150
- forceResetError: {
151
- type: Boolean,
152
- default: false,
153
- },
154
- initialData: {
155
- default: null,
156
- },
157
- },
158
-
159
- data: function data() {
160
- return {
161
- loading: false,
162
- failed: false,
163
- succeeded: false,
164
- error: null,
165
- data: this.initialData,
166
- };
167
- },
168
-
169
- computed: {
170
- requestState: function requestState() {
171
- return {
172
- loading: this.loading,
173
- failed: this.failed,
174
- succeeded: this.succeeded,
175
- error: this.error,
176
- data: this.data,
177
- };
178
- }
179
- },
180
-
181
- watch: {
182
- forceResetError: function forceResetError(newValue) {
183
- if (newValue) {
184
- this.error = null;
185
- }
186
- },
187
- },
188
-
189
- mounted: function mounted() {
190
- if (this.immediate) {
191
- this.action();
192
- }
193
- },
194
-
195
- created: function created() {
196
- if(this.$_requestObserver) {
197
- this.$_requestObserver.subscribe(this);
198
- }
199
- },
200
-
201
- beforeDestroy: function beforeDestroy() {
202
- if(this.$_requestObserver) {
203
- this.$_requestObserver.unsubscribe(this);
204
- }
205
- },
206
-
207
- methods: {
208
- action: function action(payloadFromArgs) {
209
- var this$1 = this;
210
-
211
- this.startRequest();
212
- var payload = payloadFromArgs || this.payload;
213
- this.service(this.payloadResolver(payload))
214
- .then(
215
- function (ref) {
216
- var data = ref.data;
217
-
218
- this$1.data = this$1.dataResolver(data);
219
- this$1.succeeded = true;
220
- this$1.$emit('success', this$1.data);
221
-
222
- if (this$1.showSuccessFeedback) {
223
- if (this$1.successFeedbackResolver) {
224
- this$1.successFeedbackResolver({ vm: this$1, data: this$1.data });
225
- return;
226
- }
227
- swal.fire(Object.assign({}, SUCCESS_SWAL_DEFAULT_CONFIG,
228
- this$1.successSwalConfig)).then(function () {
229
- this$1.$emit('success-feedback-ok', this$1.data);
230
- });
231
- }
232
- }
233
- ).catch(
234
- function (error) {
235
- this$1.failed = true;
236
- this$1.error = error;
237
- this$1.$emit('error', error);
238
-
239
- if (!this$1.hideErrorFeedback) {
240
- var errorMessage = getFirstErrorMessage(
241
- get(error, 'response.data', null),
242
- 'Um erro aconteceu... por favor, tente novamente. Se o erro persistir, contate o suporte.'
243
- );
244
-
245
- if (this$1.errorFeedbackResolver) {
246
- this$1.errorFeedbackResolver({ vm: this$1, error: error, errorMessage: errorMessage });
247
- return;
248
- }
249
-
250
- swal.fire(Object.assign({}, ERROR_SWAL_DEFAULT_CONFIG,
251
- this$1.errorSwalConfig,
252
- {text: errorMessage})).then(function (result) {
253
- if (result.isDismissed) {
254
- this$1.$emit('error-feedback-cancel', error);
255
- }
256
- if (result.isConfirmed) {
257
- this$1.$emit('error-feedback-ok', error);
258
- }
259
- });
260
- }
261
- }
262
- ).finally(function () {
263
- this$1.loading = false;
264
- });
265
- },
266
-
267
- loadingTextResolver: function loadingTextResolver(label, loadingLabel) {
268
- if ( loadingLabel === void 0 ) loadingLabel = 'Carregando...';
269
-
270
- if (this.loading) {
271
- return loadingLabel;
272
- }
273
- return label;
274
- },
275
-
276
- startRequest: function startRequest() {
277
- this.loading = true;
278
- this.failed = false;
279
- this.succeeded = false;
280
- this.error = null;
281
- },
282
- },
283
-
284
- render: function render() {
285
- var slotProvider = this.$slots;
286
- var slot = slotProvider.default(Object.assign({}, this.requestState,
287
- {action: this.action,
288
- loadingTextResolver: this.loadingTextResolver,
289
- errorMessage: getFirstErrorMessage(
290
- get(this.error, 'response.data', null),
291
- 'Um erro aconteceu... por favor, tente novamente. Se o erro persistir, contate o suporte.'
292
- )}));
293
-
294
- return h(this.tag, slot);
295
- },
296
- };
297
-
298
- function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
299
- if (typeof shadowMode !== 'boolean') {
300
- createInjectorSSR = createInjector;
301
- createInjector = shadowMode;
302
- shadowMode = false;
303
- }
304
- // Vue.extend constructor export interop.
305
- var options = typeof script === 'function' ? script.options : script;
306
- // render functions
307
- if (template && template.render) {
308
- options.render = template.render;
309
- options.staticRenderFns = template.staticRenderFns;
310
- options._compiled = true;
311
- // functional template
312
- if (isFunctionalTemplate) {
313
- options.functional = true;
314
- }
315
- }
316
- // scopedId
317
- if (scopeId) {
318
- options._scopeId = scopeId;
319
- }
320
- var hook;
321
- if (moduleIdentifier) {
322
- // server build
323
- hook = function (context) {
324
- // 2.3 injection
325
- context =
326
- context || // cached call
327
- (this.$vnode && this.$vnode.ssrContext) || // stateful
328
- (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
329
- // 2.2 with runInNewContext: true
330
- if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
331
- context = __VUE_SSR_CONTEXT__;
332
- }
333
- // inject component styles
334
- if (style) {
335
- style.call(this, createInjectorSSR(context));
336
- }
337
- // register component module identifier for async chunk inference
338
- if (context && context._registeredComponents) {
339
- context._registeredComponents.add(moduleIdentifier);
340
- }
341
- };
342
- // used by ssr in case component is cached and beforeCreate
343
- // never gets called
344
- options._ssrRegister = hook;
345
- }
346
- else if (style) {
347
- hook = shadowMode
348
- ? function (context) {
349
- style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
350
- }
351
- : function (context) {
352
- style.call(this, createInjector(context));
353
- };
354
- }
355
- if (hook) {
356
- if (options.functional) {
357
- // register for functional component in vue file
358
- var originalRender = options.render;
359
- options.render = function renderWithStyleInjection(h, context) {
360
- hook.call(context);
361
- return originalRender(h, context);
362
- };
363
- }
364
- else {
365
- // inject component registration as beforeCreate hook
366
- var existing = options.beforeCreate;
367
- options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
368
- }
369
- }
370
- return script;
371
- }
372
-
373
- /* script */
374
- var __vue_script__ = script;
375
-
376
- /* template */
377
-
378
- /* style */
379
- var __vue_inject_styles__ = undefined;
380
- /* scoped */
381
- var __vue_scope_id__ = undefined;
382
- /* module identifier */
383
- var __vue_module_identifier__ = undefined;
384
- /* functional template */
385
- var __vue_is_functional_template__ = undefined;
386
- /* style inject */
387
-
388
- /* style inject SSR */
389
-
390
- /* style inject shadow dom */
391
-
392
-
393
-
394
- var __vue_component__ = /*#__PURE__*/normalizeComponent(
395
- {},
396
- __vue_inject_styles__,
397
- __vue_script__,
398
- __vue_scope_id__,
399
- __vue_is_functional_template__,
400
- __vue_module_identifier__,
401
- false,
402
- undefined,
403
- undefined,
404
- undefined
405
- );
406
-
407
- var booleanReduceByProp = function (arr, prop, operator, defaultValue) {
408
- if ( operator === void 0 ) operator = '||';
409
- if ( defaultValue === void 0 ) defaultValue = false;
410
-
411
- return arr.reduce(function (acc, item) {
412
- if(operator === '||') {
413
- return acc || item[prop];
414
- } else if(operator === '&&') {
415
- return acc && item[prop];
416
- }
417
- }, defaultValue);
418
- };
419
-
420
- var script$1 = {
421
- emits: ['success', 'error'],
422
- props: {
423
- vid: {
424
- type: String,
425
- default: function () { return generateKey(); },
426
- },
427
- tag: {
428
- type: String,
429
- default: 'div',
430
- },
431
- },
432
- data: function data() {
433
- return {
434
- providers: [],
435
- providersVids: {},
436
- };
437
- },
438
- provide: function provide() {
439
- return {
440
- $_requestObserver: this,
441
- }
442
- },
443
-
444
- computed: {
445
- context: function context() {
446
- return {
447
- vid: this.vid,
448
- loading: booleanReduceByProp(this.providers, 'loading'),
449
- failed: booleanReduceByProp(this.providers, 'failed'),
450
- succeeded: booleanReduceByProp(this.providers, 'succeeded', '&&', true),
451
- errors: keyBy(this.providers.filter(function (ref) {
452
- var failed = ref.failed;
453
-
454
- return failed;
455
- }).map(function (ref) {
456
- var error = ref.error;
457
- var vid = ref.vid;
458
-
459
- return ({ error: error, vid: vid });
460
- }), 'vid'),
461
- providerRequestState: this.providerRequestState,
462
- loadingTextResolver: this.loadingTextResolver,
463
- };
464
- },
465
-
466
- providerRequestState: function providerRequestState() {
467
- var this$1 = this;
468
-
469
- return function (vid) {
470
- var element = this$1.providers.find(function (ref) {
471
- var providerVid = ref.vid;
472
-
473
- return providerVid === vid;
474
- });
475
- return element ? element.requestState : {
476
- loading: false,
477
- failed: false,
478
- succeeded: false,
479
- error: null,
480
- data: null,
481
- };
482
- }
483
- },
484
-
485
- loadingTextResolver: function loadingTextResolver() {
486
- var this$1 = this;
487
-
488
- return function (label, loadingLabel) {
489
- if ( loadingLabel === void 0 ) loadingLabel = 'Carregando...';
490
-
491
- if (this$1.context.loading) {
492
- return loadingLabel;
493
- }
494
- return label;
495
- }
496
- },
497
- },
498
-
499
- watch: {
500
- 'context.succeeded': {
501
- handler: function handler(newValue) {
502
- if (newValue) {
503
- this.$emit('success', this.context);
504
- }
505
- },
506
- },
507
- 'context.failed': {
508
- handler: function handler(newValue) {
509
- if (newValue) {
510
- this.$emit('error', this.context);
511
- }
512
- },
513
- },
514
- },
515
-
516
- render: function render() {
517
- var slotProvider = this.$slots;
518
- var slot = slotProvider.default(this.context);
519
- return h(this.tag, slot);
520
- },
521
-
522
- methods: {
523
- subscribe: function subscribe(provider) {
524
- if(!this.providersVids[provider.vid]) {
525
- this.providersVids[provider.vid] = true;
526
- this.providers.push(provider);
527
- } else {
528
- throw new Error(("Provider não reigistrado no observer! Já existe um provider com o vid >> " + (provider.vid) + " <<"));
529
- }
530
- },
531
- unsubscribe: function unsubscribe(provider) {
532
- delete this.providersVids[provider.vid];
533
- this.providers.filter(function (ref) {
534
- var vid = ref.vid;
535
-
536
- return vid !== provider.vid;
537
- });
538
- },
539
- },
540
- };
541
-
542
- /* script */
543
- var __vue_script__$1 = script$1;
544
-
545
- /* template */
546
-
547
- /* style */
548
- var __vue_inject_styles__$1 = undefined;
549
- /* scoped */
550
- var __vue_scope_id__$1 = undefined;
551
- /* module identifier */
552
- var __vue_module_identifier__$1 = undefined;
553
- /* functional template */
554
- var __vue_is_functional_template__$1 = undefined;
555
- /* style inject */
556
-
557
- /* style inject SSR */
558
-
559
- /* style inject shadow dom */
560
-
561
-
562
-
563
- var __vue_component__$1 = /*#__PURE__*/normalizeComponent(
564
- {},
565
- __vue_inject_styles__$1,
566
- __vue_script__$1,
567
- __vue_scope_id__$1,
568
- __vue_is_functional_template__$1,
569
- __vue_module_identifier__$1,
570
- false,
571
- undefined,
572
- undefined,
573
- undefined
574
- );
575
-
576
-
577
-
578
- var components = /*#__PURE__*/Object.freeze({
579
- __proto__: null,
580
- RequestProvider: __vue_component__,
581
- RequestObserver: __vue_component__$1
582
- });
583
-
584
- function removeAccents(str) {
585
- if ( str === void 0 ) str = '';
586
-
587
- var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž';
588
- var accentsOut = 'AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz';
589
- var strLen = str.length;
590
- var newStr = str.split('');
591
- var x;
592
-
593
- for (var i = 0; i < strLen; i += 1) {
594
- x = accents.indexOf(str[i]);
595
- if (x !== -1) {
596
- newStr[i] = accentsOut[x];
597
- }
598
- }
599
-
600
- newStr = newStr.join('');
601
- newStr = newStr.split('.').join('');
602
- newStr = newStr.split('-').join('');
603
- newStr = newStr.split('/').join('');
604
-
605
- return newStr;
606
- }
607
-
608
- var utils = {
609
- $showConvertKeysToCamelCase: convertKeysToCamelCase,
610
- $showConvertKeysToSnakeCase: convertKeysToSnakeCase,
611
- $showRemoveAccents: removeAccents,
612
- $showGenerateKey: generateKey,
613
- };
614
-
615
- // install function executed by Vue.use()
616
- function install(app) {
617
- if (install.installed) { return; }
618
-
619
- install.installed = true;
620
-
621
- var version = Number(app.version.split('.')[0]);
622
-
623
- if (version <= 2) {
624
- throw new Error('Essa versão só é compatível com projetos que possuem o Vue 3. Para projetos com a Vue 2, utilize a versão 0.3.0 ou inferior');
625
- }
626
-
627
- if (version > 2) {
628
- // ficará disponível apenas com o uso do Options API
629
- Object.keys(utils).forEach(function (key) {
630
- app.config.globalProperties[key] = utils[key];
631
- });
632
- }
633
-
634
- Object.keys(components).forEach(function (componentName) {
635
- app.component(
636
- ("Show" + componentName),
637
- components[componentName]
638
- );
639
- });
640
- }
641
-
642
- // Create module definition for Vue.use()
643
- var plugin = {
644
- install: install,
645
- };
646
-
647
- // To auto-install when vue is found
648
- /* global window global */
649
- var GlobalVue = null;
650
-
651
- if (typeof window !== 'undefined') {
652
- GlobalVue = window.Vue;
653
- } else if (typeof global !== 'undefined') {
654
- GlobalVue = global.Vue;
655
- }
656
-
657
- if (GlobalVue) {
658
- GlobalVue.use(plugin);
659
- }
660
-
661
- export default plugin;
662
- export { __vue_component__$1 as RequestObserver, __vue_component__ as RequestProvider };
@@ -1 +0,0 @@
1
- var SHOW=function(e,t,r,o,n,i,s,a){"use strict";r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,o=o&&Object.prototype.hasOwnProperty.call(o,"default")?o.default:o,n=n&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n,i=i&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i,s=s&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s,a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a;var u=function(e){return Array.isArray(e)},c=function(e){if(u(e))return e.map((function(e){return i(e)||u(e)?c(e):e}));var t={};return Object.keys(e).forEach((function(r){i(e[r])||u(e[r])?t[n(r)]=c(e[r]):t[n(r)]=e[r]})),t},d=function(e){return Array.isArray(e)},l=function(e){if(d(e))return e.map((function(e){return i(e)||d(e)?l(e):e}));var t={};return Object.keys(e).forEach((function(r){i(e[r])||d(e[r])?t[s(r)]=l(e[r]):t[s(r)]=e[r]})),t};function f(e){void 0===e&&(e=8);for(var t="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",o=r.length,n=0;n<e;n+=1)t+=r.charAt(Math.floor(Math.random()*o));return t}function v(e,t){void 0===t&&(t="Não conseguimos processar sua requisição. Tente novamente.");var r=o(e,"errors",!1);return r&&r[Object.keys(r)[0]][0]||t}var h={title:"Informações salvas com sucesso!",icon:"success",text:"",showCloseButton:!0,confirmButtonText:"Ok"},p={icon:"error",title:"Erro",text:"mensagem de error",showCancelButton:!0,showConfirmButton:!1,cancelButtonText:"Fechar"};function b(e,t,r,o,n,i,s,a,u,c){"boolean"!=typeof s&&(u=a,a=s,s=!1);var d,l="function"==typeof r?r.options:r;if(e&&e.render&&(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0,n&&(l.functional=!0)),o&&(l._scopeId=o),i?(d=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),t&&t.call(this,u(e)),e&&e._registeredComponents&&e._registeredComponents.add(i)},l._ssrRegister=d):t&&(d=s?function(e){t.call(this,c(e,this.$root.$options.shadowRoot))}:function(e){t.call(this,a(e))}),d)if(l.functional){var f=l.render;l.render=function(e,t){return d.call(t),f(e,t)}}else{var v=l.beforeCreate;l.beforeCreate=v?[].concat(v,d):[d]}return r}var y=b({},void 0,{inject:["$_requestObserver"],emits:["success","error","success-feedback-ok","error-feedback-ok","success-feedback-cancel","error-feedback-cancel"],props:{vid:{type:String,default:function(){return f()}},tag:{type:String,default:"div"},service:{type:Function,required:!0},payload:{type:Object,default:function(){return{}}},payloadResolver:{type:Function,default:function(e){return l(e)}},dataResolver:{type:Function,default:function(e){return c(e)}},successSwalConfig:{type:Object,default:function(){return h}},errorSwalConfig:{type:Object,default:function(){return p}},errorFeedbackResolver:{type:Function,default:null},successFeedbackResolver:{type:Function,default:null},showSuccessFeedback:{type:Boolean,default:!1},hideErrorFeedback:{type:Boolean,default:!1},immediate:{type:Boolean,default:!1},forceResetError:{type:Boolean,default:!1},initialData:{default:null}},data:function(){return{loading:!1,failed:!1,succeeded:!1,error:null,data:this.initialData}},computed:{requestState:function(){return{loading:this.loading,failed:this.failed,succeeded:this.succeeded,error:this.error,data:this.data}}},watch:{forceResetError:function(e){e&&(this.error=null)}},mounted:function(){this.immediate&&this.action()},created:function(){this.$_requestObserver&&this.$_requestObserver.subscribe(this)},beforeDestroy:function(){this.$_requestObserver&&this.$_requestObserver.unsubscribe(this)},methods:{action:function(e){var t=this;this.startRequest();var n=e||this.payload;this.service(this.payloadResolver(n)).then((function(e){var o=e.data;if(t.data=t.dataResolver(o),t.succeeded=!0,t.$emit("success",t.data),t.showSuccessFeedback){if(t.successFeedbackResolver)return void t.successFeedbackResolver({vm:t,data:t.data});r.fire(Object.assign({},h,t.successSwalConfig)).then((function(){t.$emit("success-feedback-ok",t.data)}))}})).catch((function(e){if(t.failed=!0,t.error=e,t.$emit("error",e),!t.hideErrorFeedback){var n=v(o(e,"response.data",null),"Um erro aconteceu... por favor, tente novamente. Se o erro persistir, contate o suporte.");if(t.errorFeedbackResolver)return void t.errorFeedbackResolver({vm:t,error:e,errorMessage:n});r.fire(Object.assign({},p,t.errorSwalConfig,{text:n})).then((function(r){r.isDismissed&&t.$emit("error-feedback-cancel",e),r.isConfirmed&&t.$emit("error-feedback-ok",e)}))}})).finally((function(){t.loading=!1}))},loadingTextResolver:function(e,t){return void 0===t&&(t="Carregando..."),this.loading?t:e},startRequest:function(){this.loading=!0,this.failed=!1,this.succeeded=!1,this.error=null}},render:function(){var e=this.$slots.default(Object.assign({},this.requestState,{action:this.action,loadingTextResolver:this.loadingTextResolver,errorMessage:v(o(this.error,"response.data",null),"Um erro aconteceu... por favor, tente novamente. Se o erro persistir, contate o suporte.")}));return t.h(this.tag,e)}},void 0,void 0,void 0,!1,void 0,void 0,void 0),m=function(e,t,r,o){return void 0===r&&(r="||"),void 0===o&&(o=!1),e.reduce((function(e,o){return"||"===r?e||o[t]:"&&"===r?e&&o[t]:void 0}),o)},g=b({},void 0,{emits:["success","error"],props:{vid:{type:String,default:function(){return f()}},tag:{type:String,default:"div"}},data:function(){return{providers:[],providersVids:{}}},provide:function(){return{$_requestObserver:this}},computed:{context:function(){return{vid:this.vid,loading:m(this.providers,"loading"),failed:m(this.providers,"failed"),succeeded:m(this.providers,"succeeded","&&",!0),errors:a(this.providers.filter((function(e){return e.failed})).map((function(e){return{error:e.error,vid:e.vid}})),"vid"),providerRequestState:this.providerRequestState,loadingTextResolver:this.loadingTextResolver}},providerRequestState:function(){var e=this;return function(t){var r=e.providers.find((function(e){return e.vid===t}));return r?r.requestState:{loading:!1,failed:!1,succeeded:!1,error:null,data:null}}},loadingTextResolver:function(){var e=this;return function(t,r){return void 0===r&&(r="Carregando..."),e.context.loading?r:t}}},watch:{"context.succeeded":{handler:function(e){e&&this.$emit("success",this.context)}},"context.failed":{handler:function(e){e&&this.$emit("error",this.context)}}},render:function(){var e=this.$slots.default(this.context);return t.h(this.tag,e)},methods:{subscribe:function(e){if(this.providersVids[e.vid])throw new Error("Provider não reigistrado no observer! Já existe um provider com o vid >> "+e.vid+" <<");this.providersVids[e.vid]=!0,this.providers.push(e)},unsubscribe:function(e){delete this.providersVids[e.vid],this.providers.filter((function(t){return t.vid!==e.vid}))}}},void 0,void 0,void 0,!1,void 0,void 0,void 0),O=Object.freeze({__proto__:null,RequestProvider:y,RequestObserver:g});var R={$showConvertKeysToCamelCase:c,$showConvertKeysToSnakeCase:l,$showRemoveAccents:function(e){void 0===e&&(e="");for(var t,r=e.length,o=e.split(""),n=0;n<r;n+=1)-1!==(t="ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž".indexOf(e[n]))&&(o[n]="AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz"[t]);return o=(o=(o=(o=o.join("")).split(".").join("")).split("-").join("")).split("/").join("")},$showGenerateKey:f};var w={install:function e(t){if(!e.installed){e.installed=!0;var r=Number(t.version.split(".")[0]);if(r<=2)throw new Error("Essa versão só é compatível com projetos que possuem o Vue 3. Para projetos com a Vue 2, utilize a versão 0.3.0 ou inferior");r>2&&Object.keys(R).forEach((function(e){t.config.globalProperties[e]=R[e]})),Object.keys(O).forEach((function(e){t.component("Show"+e,O[e])}))}}},k=null;return"undefined"!=typeof window?k=window.Vue:"undefined"!=typeof global&&(k=global.Vue),k&&k.use(w),e.RequestObserver=g,e.RequestProvider=y,e.default=w,e}({},vue,swal,get,camelCase,isObject,snakeCase,keyBy);