ng-easycommerce 0.0.402 → 0.0.405
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.
- package/README.md +14 -0
- package/assets/decidirFormEc.html +199 -158
- package/bundles/ng-easycommerce.umd.js +11 -5
- package/bundles/ng-easycommerce.umd.js.map +1 -1
- package/bundles/ng-easycommerce.umd.min.js +1 -1
- package/bundles/ng-easycommerce.umd.min.js.map +1 -1
- package/esm2015/lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component.js +3 -2
- package/esm2015/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +3 -3
- package/esm2015/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.js +7 -3
- package/esm2015/lib/services/auth.service.js +2 -1
- package/esm5/lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component.js +3 -2
- package/esm5/lib/ec-component/seller-dashboard-container-ec/seller-dashboard-container-ec.component.js +3 -3
- package/esm5/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.js +7 -3
- package/esm5/lib/services/auth.service.js +2 -1
- package/fesm2015/ng-easycommerce.js +11 -5
- package/fesm2015/ng-easycommerce.js.map +1 -1
- package/fesm5/ng-easycommerce.js +11 -5
- package/fesm5/ng-easycommerce.js.map +1 -1
- package/lib/ec-component/multiple-items-to-cart-ec/multiple-items-to-cart-ec.component.d.ts +1 -0
- package/lib/ec-component/widgets-ec/decidir-ec/decidir-ec.component.d.ts +1 -0
- package/ng-easycommerce.metadata.json +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Ultimas Modificaciones
|
|
2
2
|
|
|
3
|
+
### version: 0.0.405
|
|
4
|
+
|
|
5
|
+
- Ajustes en decidir parametros de entorno backoffice.
|
|
6
|
+
|
|
7
|
+
- Metodo para verificar si un producto tiene todas sus variantes sin segumiento en seleccion multiple de items.
|
|
8
|
+
|
|
9
|
+
### version: 0.0.404
|
|
10
|
+
|
|
11
|
+
- Ajustes en el componente SellerDashboardContainer para compatibilidad con Bs4
|
|
12
|
+
|
|
13
|
+
### version: 0.0.403
|
|
14
|
+
|
|
15
|
+
- Ajustes en parametros y navegacion componente Decidir
|
|
16
|
+
|
|
3
17
|
### version: 0.0.402
|
|
4
18
|
|
|
5
19
|
- Cambios en la parametrización de la UI del componente SellerDashboardContainer
|
|
@@ -7,7 +7,33 @@
|
|
|
7
7
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
|
|
8
8
|
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
|
9
9
|
<title>Decidir</title>
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
<!-- <script src="https://live.decidir.com/static/v2.5/decidir.js"></script> -->
|
|
12
|
+
|
|
13
|
+
<script defer>
|
|
14
|
+
|
|
15
|
+
const dataDecidirHead = localStorage.getItem('dataDecidir')
|
|
16
|
+
&& JSON.parse(localStorage.getItem('dataDecidir'))
|
|
17
|
+
|
|
18
|
+
let modoHead = dataDecidirHead?.config?.public_enviroment || null
|
|
19
|
+
|
|
20
|
+
modoHead && (modoHead == 'prod' && (modoHead = false) || modoHead == 'test' && (modoHead = true))
|
|
21
|
+
!modoHead && (modoHead = window.location.host.includes('easycommercetech'))
|
|
22
|
+
|
|
23
|
+
console.log('modoHead -> ', modoHead);
|
|
24
|
+
|
|
25
|
+
let my_awesome_script = document.createElement('script');
|
|
26
|
+
|
|
27
|
+
my_awesome_script.setAttribute('defer', 'defer')
|
|
28
|
+
|
|
29
|
+
my_awesome_script.setAttribute('src',
|
|
30
|
+
modoHead && 'https://developers.decidir.com/static/v2.5/decidir.js'
|
|
31
|
+
|| 'https://live.decidir.com/static/v2.5/decidir.js'
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
document.head.appendChild(my_awesome_script);
|
|
35
|
+
|
|
36
|
+
</script>
|
|
11
37
|
</head>
|
|
12
38
|
|
|
13
39
|
<body>
|
|
@@ -48,91 +74,97 @@
|
|
|
48
74
|
<div class="container-fluid">
|
|
49
75
|
<div class="row mt-3">
|
|
50
76
|
<div class="col-12">
|
|
51
|
-
<div class="card"
|
|
77
|
+
<div class="card">
|
|
52
78
|
<div class="w-100 text-center">
|
|
53
|
-
<img src="../assets/images/decidir-logo.png"
|
|
79
|
+
<img src="../assets/images/decidir-logo.png" class="card-img-top w-50" alt="...">
|
|
54
80
|
</div>
|
|
55
81
|
<div class="card-body">
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
<div class="col-md-4 col-12">
|
|
72
|
-
|
|
73
|
-
<div class="form-floating mb-3">
|
|
74
|
-
<input class="form-control" type="text" data-decidir="security_code"
|
|
75
|
-
placeholder="XXX" maxlength="3" value="" />
|
|
76
|
-
<label for="security_code">Codigo de seguridad:</label>
|
|
77
|
-
</div>
|
|
78
|
-
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
<div class="row">
|
|
82
|
-
|
|
83
|
-
<div class="col-md-6 col-12">
|
|
84
|
-
<div class="form-floating mb-3">
|
|
85
|
-
<input class="form-control" type="text" data-decidir="card_expiration_month"
|
|
86
|
-
placeholder="MM" maxlength="2" value="" />
|
|
87
|
-
<label for="card_expiration_month">Mes de vencimiento:</label>
|
|
88
|
-
</div>
|
|
89
|
-
</div>
|
|
90
|
-
|
|
91
|
-
<div class="col-md-6 col-12">
|
|
92
|
-
<div class="form-floating mb-3">
|
|
93
|
-
<input class="form-control" type="text" data-decidir="card_expiration_year"
|
|
94
|
-
placeholder="AA" maxlength="2" value="" />
|
|
95
|
-
<label for="card_expiration_year">Año de vencimiento:</label>
|
|
96
|
-
</div>
|
|
97
|
-
</div>
|
|
98
|
-
</div>
|
|
99
|
-
<div class="form-floating mb-3">
|
|
100
|
-
<input class="form-control" type="text" data-decidir="card_holder_name"
|
|
101
|
-
placeholder="TITULAR" value="" />
|
|
102
|
-
<label for="card_holder_name">Nombre del titular:</label>
|
|
103
|
-
</div>
|
|
104
|
-
<div class="row">
|
|
105
|
-
<div class="col-md-6 col-12">
|
|
106
|
-
<div class="form-floating mb-3">
|
|
107
|
-
<select class="form-select" data-decidir="card_holder_doc_type">
|
|
108
|
-
<option value="dni">DNI</option>
|
|
109
|
-
</select>
|
|
110
|
-
<label for="card_holder_doc_type">Tipo de documento:</label>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
<div class="col-md-6 col-12">
|
|
114
|
-
<div class="form-floating mb-3">
|
|
115
|
-
<input class="form-control" data-decidir="card_holder_doc_number"
|
|
116
|
-
placeholder="XXXXXXXXXX" maxlength="9" value="">
|
|
117
|
-
<label for="card_holder_doc_type">Numero de documento:</label>
|
|
118
|
-
</div>
|
|
119
|
-
</div>
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
<div class="w-100 text-center">
|
|
123
|
-
<div id="loadTokenBtn">
|
|
124
|
-
<input type="submit" value="Generar Token" class="btn btn-outline-success mt-3" />
|
|
125
|
-
</div>
|
|
126
|
-
<div id="loadToken" class="text-center mt-4">
|
|
127
|
-
<div class="spinner-border" role="status">
|
|
128
|
-
<span class="visually-hidden">Cargando...</span>
|
|
82
|
+
<!-- <h5 class="card-title">Decidir</h5> -->
|
|
83
|
+
<!-- <p class="card-text">Ingrese sus datos para continuar con el pago.</p> -->
|
|
84
|
+
<form action="" method="post" id="formulario">
|
|
85
|
+
<fieldset>
|
|
86
|
+
|
|
87
|
+
<div class="row">
|
|
88
|
+
<div class="col-md-8 col-12">
|
|
89
|
+
|
|
90
|
+
<div class="form-floating mb-3">
|
|
91
|
+
<input class="form-control" type="text" data-decidir="card_number"
|
|
92
|
+
placeholder="XXXXXXXXXXXXXXXX" maxlength="16" value=""
|
|
93
|
+
oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');">
|
|
94
|
+
<label for="card_number">Numero de tarjeta:</label>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
129
97
|
</div>
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
98
|
+
<div class="col-md-4 col-12">
|
|
99
|
+
|
|
100
|
+
<div class="form-floating mb-3">
|
|
101
|
+
<input class="form-control" type="text" data-decidir="security_code"
|
|
102
|
+
placeholder="XXX" maxlength="3" value=""
|
|
103
|
+
oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" />
|
|
104
|
+
<label for="security_code">Codigo de seguridad:</label>
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="row">
|
|
110
|
+
|
|
111
|
+
<div class="col-md-6 col-12">
|
|
112
|
+
<div class="form-floating mb-3">
|
|
113
|
+
<input class="form-control" type="text" data-decidir="card_expiration_month"
|
|
114
|
+
placeholder="MM" maxlength="2" value=""
|
|
115
|
+
oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" />
|
|
116
|
+
<label for="card_expiration_month">Mes de vencimiento:</label>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
|
|
120
|
+
<div class="col-md-6 col-12">
|
|
121
|
+
<div class="form-floating mb-3">
|
|
122
|
+
<input class="form-control" type="text" data-decidir="card_expiration_year"
|
|
123
|
+
placeholder="AA" maxlength="2" value=""
|
|
124
|
+
oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" />
|
|
125
|
+
<label for="card_expiration_year">Año de vencimiento:</label>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
<div class="form-floating mb-3">
|
|
130
|
+
<input class="form-control" type="text" data-decidir="card_holder_name"
|
|
131
|
+
placeholder="TITULAR" value="" />
|
|
132
|
+
<label for="card_holder_name">Nombre del titular:</label>
|
|
133
|
+
</div>
|
|
134
|
+
<div class="row">
|
|
135
|
+
<div class="col-md-6 col-12">
|
|
136
|
+
<div class="form-floating mb-3">
|
|
137
|
+
<select class="form-select" data-decidir="card_holder_doc_type">
|
|
138
|
+
<option value="dni">DNI</option>
|
|
139
|
+
</select>
|
|
140
|
+
<label for="card_holder_doc_type">Tipo de documento:</label>
|
|
141
|
+
</div>
|
|
142
|
+
</div>
|
|
143
|
+
<div class="col-md-6 col-12">
|
|
144
|
+
<div class="form-floating mb-3">
|
|
145
|
+
<input class="form-control" data-decidir="card_holder_doc_number"
|
|
146
|
+
placeholder="XXXXXXXXXX" maxlength="9" value=""
|
|
147
|
+
oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');">
|
|
148
|
+
<label for="card_holder_doc_type">Numero de documento:</label>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<div class="w-100 text-center">
|
|
154
|
+
<div id="loadTokenBtn">
|
|
155
|
+
<input type="submit" value="Generar Token"
|
|
156
|
+
class="btn btn-outline-success mt-3" />
|
|
157
|
+
</div>
|
|
158
|
+
<div id="loadToken" class="text-center mt-4">
|
|
159
|
+
<div class="spinner-border" role="status">
|
|
160
|
+
<span class="visually-hidden">Cargando...</span>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
</div>
|
|
164
|
+
</fieldset>
|
|
165
|
+
</form>
|
|
134
166
|
</div>
|
|
135
|
-
|
|
167
|
+
</div>
|
|
136
168
|
|
|
137
169
|
</div>
|
|
138
170
|
</div>
|
|
@@ -142,94 +174,103 @@
|
|
|
142
174
|
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
|
|
143
175
|
|
|
144
176
|
|
|
145
|
-
<script>
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const isLoad = (state) => {
|
|
150
|
-
loadToken.style.display = !state && 'none' || 'block';
|
|
151
|
-
loadTokenBtn.style.display = state && 'none' || 'block';
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
isLoad(false)
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
const urlSandbox = "https://developers.decidir.com/api/v2";
|
|
158
|
-
const urlProduccion = "https://live.decidir.com/api/v2";
|
|
159
|
-
const dataRedirect = localStorage.getItem('dataRedirect')
|
|
160
|
-
const dataDecidir = localStorage.getItem('dataDecidir')
|
|
161
|
-
&& JSON.parse(localStorage.getItem('dataDecidir'))
|
|
177
|
+
<script defer>
|
|
178
|
+
|
|
179
|
+
window.onload = function () {
|
|
162
180
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
let modo = dataDecidir?.config?.environment || null
|
|
181
|
+
let loadToken = document.querySelector('#loadToken');
|
|
182
|
+
let loadTokenBtn = document.querySelector('#loadTokenBtn');
|
|
166
183
|
|
|
167
|
-
|
|
168
|
-
|
|
184
|
+
const isLoad = (state) => {
|
|
185
|
+
loadToken.style.display = !state && 'none' || 'block';
|
|
186
|
+
loadTokenBtn.style.display = state && 'none' || 'block';
|
|
187
|
+
}
|
|
169
188
|
|
|
170
|
-
|
|
171
|
-
decidir.setPublishableKey(publicApiKey);
|
|
172
|
-
decidir.setTimeout(5000);
|
|
189
|
+
isLoad(false)
|
|
173
190
|
|
|
174
|
-
|
|
191
|
+
const urlSandbox = "https://developers.decidir.com/api/v2";
|
|
192
|
+
const urlProduccion = "https://live.decidir.com/api/v2";
|
|
193
|
+
const dataRedirect = localStorage.getItem('dataRedirect')
|
|
194
|
+
const dataDecidir = localStorage.getItem('dataDecidir')
|
|
195
|
+
&& JSON.parse(localStorage.getItem('dataDecidir'))
|
|
175
196
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
197
|
+
const publicApiKey = dataDecidir?.config?.public_key
|
|
198
|
+
const cybersource = dataDecidir?.config?.public_cybersource || true
|
|
199
|
+
let modo = dataDecidir?.config?.public_enviroment || null
|
|
200
|
+
|
|
201
|
+
modo && (modo == 'prod' && (modo = false) || modo == 'test' && (modo = true))
|
|
202
|
+
!modo && (modo = window.location.host.includes('easycommercetech'))
|
|
203
|
+
|
|
204
|
+
console.log(modo);
|
|
205
|
+
|
|
206
|
+
const decidir = new Decidir(modo && urlSandbox || urlProduccion, cybersource);
|
|
207
|
+
decidir.setPublishableKey(publicApiKey);
|
|
208
|
+
decidir.setTimeout(5000);
|
|
209
|
+
|
|
210
|
+
let form = document.querySelector('#formulario');
|
|
211
|
+
|
|
212
|
+
const sendToken = (data) => {
|
|
213
|
+
fetch(dataRedirect, {
|
|
214
|
+
method: 'POST',
|
|
215
|
+
body: JSON.stringify(data),
|
|
216
|
+
headers: {
|
|
217
|
+
'Content-Type': 'application/json'
|
|
218
|
+
}
|
|
219
|
+
}).then(res => res.json())
|
|
220
|
+
.catch(error => {
|
|
221
|
+
console.error('Error:', error)
|
|
222
|
+
processError(response)
|
|
223
|
+
})
|
|
224
|
+
.then(response => {
|
|
225
|
+
console.log('Success:', response)
|
|
226
|
+
if (response.hasOwnProperty('status')) {
|
|
227
|
+
if (response.status == 'success') {
|
|
228
|
+
processResponse(response)
|
|
229
|
+
} else {
|
|
230
|
+
processError(response)
|
|
231
|
+
}
|
|
193
232
|
} else {
|
|
194
|
-
|
|
233
|
+
processResponse(response)
|
|
195
234
|
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
localStorage.removeItem('dataRedirect')
|
|
201
|
-
localStorage.removeItem('dataDecidir')
|
|
202
|
-
}
|
|
235
|
+
});
|
|
236
|
+
localStorage.removeItem('dataRedirect')
|
|
237
|
+
localStorage.removeItem('dataDecidir')
|
|
238
|
+
}
|
|
203
239
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
240
|
+
const sdkResponseHandler = (status, response) => {
|
|
241
|
+
if (status != 200 && status != 201) {
|
|
242
|
+
//Manejo de error: Ver Respuesta de Error
|
|
243
|
+
processError(response)
|
|
244
|
+
} else {
|
|
245
|
+
//Manejo de respuesta donde response = {token: "99ab0740-4ef9-4b38-bdf9-c4c963459b22"}
|
|
246
|
+
sendToken(response)
|
|
247
|
+
}
|
|
211
248
|
}
|
|
212
|
-
}
|
|
213
|
-
const sendForm = (event) => {
|
|
214
|
-
isLoad(true)
|
|
215
|
-
event.preventDefault();
|
|
216
|
-
decidir.createToken(form, sdkResponseHandler);
|
|
217
|
-
return false;
|
|
218
|
-
}
|
|
219
249
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
250
|
+
const sendForm = (event) => {
|
|
251
|
+
isLoad(true)
|
|
252
|
+
event.preventDefault();
|
|
253
|
+
decidir.createToken(form, sdkResponseHandler);
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const processError = (error) => {
|
|
258
|
+
console.log("ERROR ENVIO BACK ", error);
|
|
259
|
+
isLoad(false)
|
|
260
|
+
localStorage.setItem('state', 'failure')
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
const processResponse = (response) => {
|
|
264
|
+
console.log("ENVIO BACK ", response);
|
|
265
|
+
isLoad(false)
|
|
266
|
+
localStorage.setItem('state', 'success')
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
form.addEventListener('submit', sendForm);
|
|
270
|
+
|
|
271
|
+
};
|
|
272
|
+
|
|
225
273
|
|
|
226
|
-
const processResponse = (response) => {
|
|
227
|
-
console.log("ENVIO BACK ", response);
|
|
228
|
-
isLoad(false)
|
|
229
|
-
localStorage.setItem('state', 'success')
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
form.addEventListener('submit', sendForm);
|
|
233
274
|
</script>
|
|
234
275
|
</body>
|
|
235
276
|
|
|
@@ -3688,6 +3688,7 @@
|
|
|
3688
3688
|
this.loggingInSubject.next(true);
|
|
3689
3689
|
user = __assign$8(__assign$8({}, user), this.constants.loginExtraData());
|
|
3690
3690
|
var result = this.connection.post(this.tokenApi(), user).pipe(operators.map(function (res) {
|
|
3691
|
+
console.log("RES: ", res);
|
|
3691
3692
|
if (_this.channelAccessPermission(__assign$8(__assign$8({}, user), res)) && _this.isAllowedRole(withRoles, res.type)) {
|
|
3692
3693
|
_this.doLoginUser(__assign$8(__assign$8({}, user), res));
|
|
3693
3694
|
return 'ok';
|
|
@@ -9064,8 +9065,8 @@
|
|
|
9064
9065
|
SellerDashboardContainerEcComponent = __decorate$15([
|
|
9065
9066
|
core.Component({
|
|
9066
9067
|
selector: 'app-seller-dashboard-container',
|
|
9067
|
-
template: "<section *ngIf=\"user\" id=\"seller-dashboard\">\n <div class=\"section-content mt-5 mb-2 tablaVendedores\">\n <div class=\"container-xl\">\n <div class=\"row\">\n <main class=\"col-md-12\">\n\n <ul *ngIf=\"hasHeader()\" class=\"nav nav-tabs\">\n <li class=\"nav-item col-12 col-lg-2\">\n <a *ngIf=\"hasUIComponent('HEADER_TAB')\" class=\"nav-link active cursor-pointer px-4\" aria-current=\"page\">\n {{ 'my-clients' | translate }}\n </a>\n </li>\n <div\n class=\"d-flex justify-content-end justify-content-lg-start justify-content-xl-end col-12 col-md-12 col-lg-6\">\n <a *ngIf=\"hasUIComponent('GENERATE_BUDGET_BTN')\" [routerLink]=\"'/collection'\"\n class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center\"><i\n class=\"bi bi-file-earmark me-2\"></i>{{ 'generate-budget' | translate }}</a>\n <a *ngIf=\"hasUIComponent('MANAGE_ORDERS_BTN')\" (click)=\"navigateExternal(env.apiUrl)\"\n class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center me- me-lg-4\"><i\n class=\"bi bi-archive-fill me-2\"></i>{{ 'manage-orders' | translate }}</a>\n </div>\n <div class=\"d-flex ms-auto camposVendedores col-12 col-md-12 col-lg-4 justify-content-end\">\n <select *ngIf=\"hasUIComponent('SORT_SELECT')\" id=\"customerSort\" name=\"customerSort\"\n (change)=\"sortCustomers($event.target.value)\" class=\"mb-1 ordenarVendedores\">\n <option selected hidden disabled>{{ 'order-by' | translate }}</option>\n <option value='asc'>{{ 'client' | translate }} (A-Z)</option>\n <option value='desc'>{{ 'client' | translate }} (Z-A)</option>\n </select>\n <form *ngIf=\"hasUIComponent('SEARCH_FORM')\" class=\"col-lg-auto mb-lg-0 d-flex ms-3 d-flex buscadorVendedores\">\n <input type=\"text\" name=\"searchInput\" class=\"form-control\"\n placeholder=\"{{ 'search' | translate }}\" [(ngModel)]=\"searchInput\"\n (keyup.enter)=\"updateCustomers()\">\n <button class=\"btn btn-primary ms-1 bg-white border-dark btnSearch\"><i\n class=\"bi bi-search text-dark\" (click)=\"updateCustomers()\"></i></button>\n </form>\n </div>\n </ul>\n\n <ng-container *ngIf=\"user.customers?.length; else noCustomers\">\n\n <article class=\"card card-body mb-1 carritoProductoHeader m-0 py-0 mt-4\">\n <div class=\"row align-items-center font-bold border-bottom\">\n <div class=\"col-7 col-md-3 mb-md-0\">\n <small>{{ 'client' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-4 col-md-3 text-left d-none d-md-block\">\n <small>{{ 'user' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-3 col-md-2 text-left\">\n <small>{{ 'code' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-2 col-md-4 text-left\">\n <small></small>\n </div>\n\n </div>\n </article>\n\n <article *ngFor=\"let customer of filteredCustomers\" class=\"card card-body mb-3 cadaVendedor\">\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-7 col-md-3 text-left\">\n <div class=\"price h6 fw-normal ps-2 pb-0 mb-0
|
|
9068
|
-
styles: ["#seller-dashboard{--seller-dashboard-primary-color:0,0,0}.btn-seller-primary{color:#fff!important;background-color:rgba(var(--seller-dashboard-primary-color),1)!important;border-color:rgba(var(--seller-dashboard-primary-color),1)!important}.btn-seller-primary:hover{background-color:rgba(var(--seller-dashboard-primary-color),.9)!important}.btn-seller-primary:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)!important}.btnGestionar{padding:6px 12px!important;height:36px;display:flex;align-items:center;justify-content:center;margin-left:10px}.ordenarVendedores{width:150px!important;color:#8b8b8b!important;background-color:#fff;border:1px solid #b6b6b6!important;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.buscadorVendedores{margin-bottom:4px!important}.buscadorVendedores input{border:1px solid #b6b6b6!important;width:200px}.buscadorVendedores .btnSearch{border:1px solid #b6b6b6!important;padding:.375rem .75rem;font-size:1rem}.buscadorVendedores .btnSearch:focus{background-color:#fff!important}.carritoProductoHeader{border:none!important}.carritoProductoHeader small{font-size:13px}.cadaVendedor{padding:5px 0;margin-bottom:0!important;border:none!important;border-bottom:1px solid #ccc!important;border-radius:0!important;-webkit-border-radius:0}.cadaVendedor .btnIngresar a{padding:10px!important;border-width:1px!important;border-style:solid!important;display:flex;align-items:center;width:152px!important;margin-left:auto;color:#fff}.cadaVendedor .btnIngresar .contNumero{background-color:#eee;width:20px;height:20px;color:#000;font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:600;border-radius:20px;-webkit-border-radius:20px;-moz-border-radius:20px;-ms-border-radius:20px;-o-border-radius:20px}.userMobile{font-size:14px!important;font-style:italic!important}.cadaVendedor .btnIngresar a:hover{background-color:rgba(var(--seller-dashboard-primary-color),.85)}.cadaVendedor .btnIngresar a:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.border-bottom{border-bottom:1px solid #000!important}@media screen and (max-width:1200px){.btnGestionar{font-size:12px}}@media screen and (max-width:992px){.camposVendedores{justify-content:flex-end;margin-top:8px;margin-bottom:4px}}@media all and (max-width:768px){.ordenarVendedores{width:140px!important}.buscadorVendedores input{width:140px}.cadaVendedor .btnIngresar a{width:70px!important}}@media all and (max-width:576px){.tablaVendedores .nav-tabs .nav-link{font-size:13px;padding:6px!important}.btnGestionar{padding:6px 8px!important;font-size:13px;height:36px;display:flex;align-items:center;justify-content:center;margin-top:3px;margin-left:10px}.buscadorVendedores input,.ordenarVendedores{font-size:13px}}"]
|
|
9068
|
+
template: "<section *ngIf=\"user\" id=\"seller-dashboard\">\n <div class=\"section-content mt-5 mb-2 tablaVendedores\">\n <div class=\"container-xl\">\n <div class=\"row\">\n <main class=\"col-md-12\">\n\n <ul *ngIf=\"hasHeader()\" class=\"nav nav-tabs\">\n <li class=\"nav-item col-12 col-lg-2\">\n <a *ngIf=\"hasUIComponent('HEADER_TAB')\" class=\"nav-link active cursor-pointer px-4\" aria-current=\"page\">\n {{ 'my-clients' | translate }}\n </a>\n </li>\n <div\n class=\"d-flex justify-content-end justify-content-lg-start justify-content-xl-end col-12 col-md-12 col-lg-6\">\n <a *ngIf=\"hasUIComponent('GENERATE_BUDGET_BTN')\" [routerLink]=\"'/collection'\"\n class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center\"><i\n class=\"bi bi-file-earmark me-2 mr-2\"></i>{{ 'generate-budget' | translate }}</a>\n <a *ngIf=\"hasUIComponent('MANAGE_ORDERS_BTN')\" (click)=\"navigateExternal(env.apiUrl)\"\n class=\"btn btn-seller-primary text-white btnGestionar d-flex align-items-center me- me-lg-4 mr- mr-lg-4\"><i\n class=\"bi bi-archive-fill me-2 mr-2\"></i>{{ 'manage-orders' | translate }}</a>\n </div>\n <div class=\"d-flex ms-auto camposVendedores col-12 col-md-12 col-lg-4 justify-content-end\">\n <select *ngIf=\"hasUIComponent('SORT_SELECT')\" id=\"customerSort\" name=\"customerSort\"\n (change)=\"sortCustomers($event.target.value)\" class=\"mb-1 ordenarVendedores\">\n <option selected hidden disabled>{{ 'order-by' | translate }}</option>\n <option value='asc'>{{ 'client' | translate }} (A-Z)</option>\n <option value='desc'>{{ 'client' | translate }} (Z-A)</option>\n </select>\n <form *ngIf=\"hasUIComponent('SEARCH_FORM')\" class=\"col-lg-auto mb-lg-0 d-flex ms-3 ml-3 d-flex buscadorVendedores\">\n <input type=\"text\" name=\"searchInput\" class=\"form-control\"\n placeholder=\"{{ 'search' | translate }}\" [(ngModel)]=\"searchInput\"\n (keyup.enter)=\"updateCustomers()\">\n <button class=\"btn btn-primary ms-1 ml-1 bg-white border-dark btnSearch\"><i\n class=\"bi bi-search text-dark\" (click)=\"updateCustomers()\"></i></button>\n </form>\n </div>\n </ul>\n\n <ng-container *ngIf=\"user.customers?.length; else noCustomers\">\n\n <article class=\"card card-body mb-1 carritoProductoHeader m-0 py-0 mt-4\">\n <div class=\"row align-items-center font-bold border-bottom\">\n <div class=\"col-7 col-md-3 mb-md-0\">\n <small>{{ 'client' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-4 col-md-3 text-left d-none d-md-block\">\n <small>{{ 'user' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-3 col-md-2 text-left\">\n <small>{{ 'code' | translate | uppercase }}</small>\n </div>\n\n <div class=\"col-2 col-md-4 text-left\">\n <small></small>\n </div>\n\n </div>\n </article>\n\n <article *ngFor=\"let customer of filteredCustomers\" class=\"card card-body mb-3 cadaVendedor\">\n <div class=\"row d-flex align-items-center\">\n <div class=\"col-7 col-md-3 text-left\">\n <div class=\"price h6 fw-normal ps-2 pl-2 pb-0 mb-0\">\n {{ customer.firstName }} {{ customer.lastName }}\n <p class=\"d-block d-md-none fs-6 mt-1 mb-0 p-0 userMobile\">\n {{ customer.email }}\n </p>\n </div>\n </div>\n <div class=\"col-4 col-md-3 text-left d-none d-md-block\">\n <div class=\"price h6 fw-normal pb-0 mb-0 ps-2 pl-2\">\n {{ customer.email }}\n </div>\n </div>\n <div class=\"col-2 col-md-2 text-left ps-2 pl-2\">\n <div class=\"price h6 pb-0 mb-0 ps-1 pl-1\">{{ customer.id }}</div>\n </div>\n <div class=\"col-3 col-md-4 btnIngresar\">\n\n <ng-container\n *ngIf=\"authService.getCustomer()?.id == customer.id; else noActiveCustomer\">\n <a (click)=\"changeCustomer(null)\"\n class=\"btn btn-seller-primary justify-content-center\">\n <i class=\"bi bi-box-arrow-in-right me-2 ml-2\"></i>\n <small class=\"me-2 ml-2 d-none d-md-block\">\n {{ 'exit' | translate | uppercase }}\n </small>\n <div *ngIf=\"hasUIComponent('ORDER_COUNTER')\" class=\"contNumero\">\n {{ customer.ordersNotApproved }}\n </div>\n </a>\n </ng-container>\n <ng-template #noActiveCustomer>\n <a (click)=\"changeCustomer(customer)\"\n class=\"btn btn-seller-primary justify-content-center\">\n <i class=\"bi bi-box-arrow-in-right me-2 ml-2\"></i>\n <small class=\"me-2 ml-2 d-none d-md-block\">\n {{ 'access' | translate | uppercase }}\n </small>\n <div *ngIf=\"hasUIComponent('ORDER_COUNTER')\" class=\"contNumero\">\n {{ customer.ordersNotApproved }}\n </div>\n </a>\n </ng-template>\n\n </div>\n </div>\n </article>\n\n </ng-container>\n\n </main>\n </div>\n </div>\n </div>\n</section>\n\n<ng-template #noCustomers>\n <h4 class=\"text-center p-5\">{{ 'no-customers' | translate }}</h4>\n</ng-template>",
|
|
9069
|
+
styles: ["#seller-dashboard{--seller-dashboard-primary-color:0,0,0}.btn-seller-primary{color:#fff!important;background-color:rgba(var(--seller-dashboard-primary-color),1)!important;border-color:rgba(var(--seller-dashboard-primary-color),1)!important}.btn-seller-primary:hover{background-color:rgba(var(--seller-dashboard-primary-color),.9)!important}.btn-seller-primary:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)!important}.btnGestionar{padding:6px 12px!important;height:36px;display:flex;align-items:center;justify-content:center;margin-left:10px}.ordenarVendedores{width:150px!important;color:#8b8b8b!important;background-color:#fff;border:1px solid #b6b6b6!important;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px}.buscadorVendedores{margin-bottom:4px!important}.buscadorVendedores input{border:1px solid #b6b6b6!important;width:200px}.buscadorVendedores .btnSearch{border:1px solid #b6b6b6!important;padding:.375rem .75rem;font-size:1rem}.buscadorVendedores .btnSearch:focus{background-color:#fff!important}.carritoProductoHeader{border:none!important}.carritoProductoHeader small{font-size:13px}.cadaVendedor{padding:5px 0;margin-bottom:0!important;border:none!important;border-bottom:1px solid #ccc!important;border-radius:0!important;-webkit-border-radius:0}.cadaVendedor .btnIngresar a{padding:10px!important;border-width:1px!important;border-style:solid!important;display:flex;align-items:center;width:152px!important;margin-left:auto;color:#fff}.cadaVendedor .btnIngresar .contNumero{background-color:#eee;width:20px;height:20px;color:#000;font-size:13px;display:flex;align-items:center;justify-content:center;font-weight:600;border-radius:20px;-webkit-border-radius:20px;-moz-border-radius:20px;-ms-border-radius:20px;-o-border-radius:20px}.userMobile{font-size:14px!important;font-style:italic!important}.cadaVendedor .btnIngresar a:hover{background-color:rgba(var(--seller-dashboard-primary-color),.85)}.cadaVendedor .btnIngresar a:active{background-color:rgba(var(--seller-dashboard-primary-color),.8)}.cursor-pointer{cursor:pointer}.font-bold{font-weight:700}.border-bottom{border-bottom:1px solid #000!important}@media screen and (max-width:1200px){.btnGestionar{font-size:12px}}@media screen and (max-width:992px){.camposVendedores{justify-content:flex-end;margin-top:8px;margin-bottom:4px}}@media all and (max-width:768px){.ordenarVendedores{width:140px!important}.buscadorVendedores input{width:140px}.cadaVendedor .btnIngresar a{width:70px!important}}@media all and (max-width:576px){.tablaVendedores .nav-tabs .nav-link{font-size:13px;padding:6px!important}.btnGestionar{padding:6px 8px!important;font-size:13px;height:36px;display:flex;align-items:center;justify-content:center;margin-top:3px;margin-left:10px}.buscadorVendedores input,.ordenarVendedores{font-size:13px}}.fs-6{font-size:1rem!important}"]
|
|
9069
9070
|
}),
|
|
9070
9071
|
__param$9(2, core.Inject('env'))
|
|
9071
9072
|
], SellerDashboardContainerEcComponent);
|
|
@@ -12829,6 +12830,7 @@
|
|
|
12829
12830
|
}
|
|
12830
12831
|
return true;
|
|
12831
12832
|
};
|
|
12833
|
+
_this.allWithoutTracking = function () { return _this.optionsProductForVariant().some(function (item) { var _a; return ((_a = item.currentOption) === null || _a === void 0 ? void 0 : _a.stock) != 9999; }) || true; };
|
|
12832
12834
|
_this.getObjectParamsWithVariant = function () {
|
|
12833
12835
|
return _this.objectWithVariant || _this.getObjectWithVariant();
|
|
12834
12836
|
};
|
|
@@ -12862,7 +12864,7 @@
|
|
|
12862
12864
|
MultipleItemsToCartEcComponent = __decorate$1z([
|
|
12863
12865
|
core.Component({
|
|
12864
12866
|
selector: 'app-multiple-items-to-cart-ec',
|
|
12865
|
-
template: "<table class=\"table table-hover tablas tabla-curva\">\n <thead>\n <tr>\n <th scope=\"col\">Curva</th>\n <th *ngFor=\"let item of optionsProductForVariant()\" scope=\"col\">{{item.currentOption?.code}}</th>\n </tr>\n </thead>\n <tbody>\n <
|
|
12867
|
+
template: "<table class=\"table table-hover tablas tabla-curva\">\n <thead>\n <tr>\n <th scope=\"col\">Curva</th>\n <th *ngFor=\"let item of optionsProductForVariant()\" scope=\"col\">{{item.currentOption?.code}}</th>\n </tr>\n </thead>\n <tbody>\n <ng-container *ngIf=\"allWithoutTracking()\">\n <tr>\n <td>Stock</td>\n <th *ngFor=\"let item of optionsProductForVariant()\" scope=\"col\">{{(item.currentOption?.stock == 9999)? 'N/A' : item.currentOption?.stock }}</th>\n </tr>\n </ng-container>\n <tr>\n <td></td>\n <td *ngFor=\"let item of optionsProductForVariant()\">\n <div class=\"text-center\">\n <input class=\"form-control form-control-sm in-curva\"\n (keypress)=\"consts.inputValidationByExpressions($event,'[0-9]{1,9}', condition(inputValue.value,item) )\" #inputValue \n (keyup)=\"setQuantity(inputValue.value,item)\" [max]=\"item.currentOption?.stock\" min=\"0\" type=\"text\"\n [value]=\"item?.productToCartItem?.quantity || 0\" id=\"\">\n </div>\n </td>\n </tr>\n </tbody>\n</table>\n<ng-template #loading>\n <div class=\"col-12 align-items-center\">\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center my-5\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n </div>\n</ng-template>",
|
|
12866
12868
|
styles: [".tabla-curva th{background-color:var(--color-section)}.tabla-curva td,.tabla-curva th{text-align:center}.tabla-curva .form-check .form-check-input{float:none}.tabla-curva input.in-curva{font-size:.7rem;font-weight:700;display:inline-block;width:55px}.table.tabla-curva>:not(caption)>*>*{padding:.5rem .2rem}"]
|
|
12867
12869
|
})
|
|
12868
12870
|
], MultipleItemsToCartEcComponent);
|
|
@@ -12959,6 +12961,10 @@
|
|
|
12959
12961
|
_this.url = _this.sanitizer.bypassSecurityTrustResourceUrl('assets/decidirFormEc.html');
|
|
12960
12962
|
_this.loading = false;
|
|
12961
12963
|
};
|
|
12964
|
+
_this.resizeIframe = function (obj) {
|
|
12965
|
+
obj.style.height = obj.contentWindow.document.body.scrollHeight + 'px';
|
|
12966
|
+
obj.style.width = obj.contentWindow.document.body.scrollWidth + 'px';
|
|
12967
|
+
};
|
|
12962
12968
|
_this.ecOnConstruct();
|
|
12963
12969
|
return _this;
|
|
12964
12970
|
}
|
|
@@ -13016,9 +13022,9 @@
|
|
|
13016
13022
|
DecidirEcComponent = __decorate$1A([
|
|
13017
13023
|
core.Component({
|
|
13018
13024
|
selector: 'app-decidir-ec',
|
|
13019
|
-
template: "<div class=\"text-center\">\n <h3>Continuar con el pago en Decidir</h3>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.description }}</p>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.instructions }}</p>\n <ng-container *ngIf=\"!loading ; else loadingUrl\">\n <button class=\"btn btn-outline-secondary comprar\" (click)=\"openModal(template)\">Pagar</button>\n </ng-container>\n</div>\n\n<ng-template #template>\n <div class=\"modal-content\">\n </div>\n <div class=\"modal-body\">\n <iframe [src]=\"url\" frameborder=\"0\" class=\"iframeStyle\"></iframe>\n </div>\n</ng-template>\n\n<ng-template #loadingUrl>\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n</ng-template>",
|
|
13025
|
+
template: "<div class=\"text-center\">\n <h3>Continuar con el pago en Decidir</h3>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.description }}</p>\n <p *ngIf=\"method\" class=\"px-5\">{{ method?.instructions }}</p>\n <ng-container *ngIf=\"!loading ; else loadingUrl\">\n <button class=\"btn btn-outline-secondary comprar\" (click)=\"openModal(template)\">Pagar</button>\n </ng-container>\n</div>\n\n<ng-template #template>\n <div class=\"modal-content\">\n <div class=\"modal-header border-none justify-content-end px-1\">\n <button type=\"button\" class=\"btn bg-none\" (click)=\"clickClose()\">\n X \n </button>\n </div>\n </div>\n <div class=\"modal-body\">\n <iframe [src]=\"url\" frameborder=\"0\" class=\"iframeStyle\"></iframe>\n </div>\n</ng-template>\n\n<ng-template #loadingUrl>\n <div class=\"d-flex flex-column jusitfy-content-center align-items-center mt-2\">\n <app-loading-full-ec></app-loading-full-ec>\n </div>\n</ng-template>",
|
|
13020
13026
|
providers: [modal.BsModalService],
|
|
13021
|
-
styles: [".half-width{width:49%!important}.ml-1{margin-left:1%}#card-form{height:450px}.iframeStyle{height:
|
|
13027
|
+
styles: [".half-width{width:49%!important}.ml-1{margin-left:1%}#card-form{height:450px}.iframeStyle{height:650px;width:100%}@media only screen and (max-width:1024px){.iframeStyle{height:780px;width:100%}}@media only screen and (max-width:680px){.iframeStyle{height:800px;width:100%}}"]
|
|
13022
13028
|
})
|
|
13023
13029
|
], DecidirEcComponent);
|
|
13024
13030
|
return DecidirEcComponent;
|