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 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
- <script src="https://live.decidir.com/static/v2.5/decidir.js"></script>
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" class="card-img-top w-50" alt="...">
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
- <!-- <h5 class="card-title">Decidir</h5> -->
57
- <!-- <p class="card-text">Ingrese sus datos para continuar con el pago.</p> -->
58
- <form action="" method="post" id="formulario">
59
- <fieldset>
60
-
61
- <div class="row">
62
- <div class="col-md-8 col-12">
63
-
64
- <div class="form-floating mb-3">
65
- <input class="form-control" type="text" data-decidir="card_number"
66
- placeholder="XXXXXXXXXXXXXXXX" maxlength="16" value="">
67
- <label for="card_number">Numero de tarjeta:</label>
68
- </div>
69
-
70
- </div>
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
- </div>
131
- </div>
132
- </fieldset>
133
- </form>
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
- </div>
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
- let loadToken = document.querySelector('#loadToken');
147
- let loadTokenBtn = document.querySelector('#loadTokenBtn');
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
- const publicApiKey = dataDecidir?.config?.public_key
164
- const cybersource = dataDecidir?.config?.cybersource || true
165
- let modo = dataDecidir?.config?.environment || null
181
+ let loadToken = document.querySelector('#loadToken');
182
+ let loadTokenBtn = document.querySelector('#loadTokenBtn');
166
183
 
167
- modo && (modo == 'prod' && (modo = false) || modo == 'test' && (modo = true))
168
- !modo && (modo = window.location.host.includes('easycommercetech'))
184
+ const isLoad = (state) => {
185
+ loadToken.style.display = !state && 'none' || 'block';
186
+ loadTokenBtn.style.display = state && 'none' || 'block';
187
+ }
169
188
 
170
- const decidir = new Decidir( modo && urlSandbox || urlProduccion, cybersource);
171
- decidir.setPublishableKey(publicApiKey);
172
- decidir.setTimeout(5000);
189
+ isLoad(false)
173
190
 
174
- let form = document.querySelector('#formulario');
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
- const sendToken = (data) => {
177
- fetch(dataRedirect, {
178
- method: 'POST',
179
- body: JSON.stringify(data),
180
- headers: {
181
- 'Content-Type': 'application/json'
182
- }
183
- }).then(res => res.json())
184
- .catch(error => {
185
- console.error('Error:', error)
186
- processError(response)
187
- })
188
- .then(response => {
189
- console.log('Success:', response)
190
- if (response.hasOwnProperty('status')) {
191
- if (response.status == 'success') {
192
- processResponse(response)
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
- processError(response)
233
+ processResponse(response)
195
234
  }
196
- } else {
197
- processResponse(response)
198
- }
199
- });
200
- localStorage.removeItem('dataRedirect')
201
- localStorage.removeItem('dataDecidir')
202
- }
235
+ });
236
+ localStorage.removeItem('dataRedirect')
237
+ localStorage.removeItem('dataDecidir')
238
+ }
203
239
 
204
- const sdkResponseHandler = (status, response) => {
205
- if (status != 200 && status != 201) {
206
- //Manejo de error: Ver Respuesta de Error
207
- processError(response)
208
- } else {
209
- //Manejo de respuesta donde response = {token: "99ab0740-4ef9-4b38-bdf9-c4c963459b22"}
210
- sendToken(response)
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
- const processError = (error) => {
221
- console.log("ERROR ENVIO BACK ", error);
222
- isLoad(false)
223
- localStorage.setItem('state', 'failure')
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 ps-3\">\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\">\n {{ customer.email }}\n </div>\n </div>\n <div class=\"col-2 col-md-2 text-left ps-2\">\n <div class=\"price h6 pb-0 mb-0 ps-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\"></i>\n <small class=\"me-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\"></i>\n <small class=\"me-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>",
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 <tr>\n <td>Stock</td>\n <th *ngFor=\"let item of optionsProductForVariant()\" scope=\"col\">{{item.currentOption?.stock}}</th>\n </tr>\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>",
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:600px;width:100%}@media only screen and (max-width:600px){.iframeStyle{height:700px;width:100%}}"]
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;