|
356 | 356 | };
|
357 | 357 |
|
358 | 358 | document.addEventListener('DOMContentLoaded', function() {
|
359 |
| - const form = document.getElementById('subProcessorsForm') as HTMLFormElement; |
360 |
| - const results = document.getElementById('results') as HTMLElement; |
361 |
| - const tableContainer = document.getElementById('subProcessorsTable') as HTMLElement; |
| 359 | + const form = document.getElementById('subProcessorsForm'); |
| 360 | + const results = document.getElementById('results'); |
| 361 | + const tableContainer = document.getElementById('subProcessorsTable'); |
362 | 362 |
|
363 | 363 | if (!form || !results || !tableContainer) {
|
364 | 364 | console.error('Required form elements not found');
|
365 | 365 | return;
|
366 | 366 | }
|
367 | 367 |
|
368 | 368 | // Function to get URL parameter value
|
369 |
| - function getUrlParameter(name: string): string | null { |
| 369 | + function getUrlParameter(name) { |
370 | 370 | const urlParams = new URLSearchParams(window.location.search);
|
371 | 371 | return urlParams.get(name);
|
372 | 372 | }
|
373 | 373 |
|
374 | 374 | // Function to update URL with current selections
|
375 | 375 | function updateUrl() {
|
376 |
| - const dataRegionInputs = form.querySelectorAll('input[name="dataRegion"]:checked') as NodeListOf<HTMLInputElement>; |
377 |
| - const servicesInputs = form.querySelectorAll('input[name="services"]:checked') as NodeListOf<HTMLInputElement>; |
378 |
| - const emailServicesInputs = form.querySelectorAll('input[name="emailServices"]:checked') as NodeListOf<HTMLInputElement>; |
379 |
| - const smsServicesInputs = form.querySelectorAll('input[name="smsServices"]:checked') as NodeListOf<HTMLInputElement>; |
| 376 | + const dataRegionInputs = form.querySelectorAll('input[name="dataRegion"]:checked'); |
| 377 | + const servicesInputs = form.querySelectorAll('input[name="services"]:checked'); |
| 378 | + const emailServicesInputs = form.querySelectorAll('input[name="emailServices"]:checked'); |
| 379 | + const smsServicesInputs = form.querySelectorAll('input[name="smsServices"]:checked'); |
380 | 380 |
|
381 | 381 | const dataRegion = dataRegionInputs.length > 0 ? dataRegionInputs[0].value : '';
|
382 | 382 | const services = Array.from(servicesInputs).map(input => input.value);
|
|
411 | 411 |
|
412 | 412 | if (dataRegion) {
|
413 | 413 | const dataRegionValue = dataRegion.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
|
414 |
| - const dataRegionInput = form.querySelector(`input[name="dataRegion"][value="${dataRegionValue}"]`) as HTMLInputElement; |
| 414 | + const dataRegionInput = form.querySelector(`input[name="dataRegion"][value="${dataRegionValue}"]`); |
415 | 415 | if (dataRegionInput) {
|
416 | 416 | dataRegionInput.checked = true;
|
417 | 417 | }
|
|
421 | 421 | const serviceArray = services.split(',');
|
422 | 422 | serviceArray.forEach(service => {
|
423 | 423 | const serviceValue = service.charAt(0).toUpperCase() + service.slice(1);
|
424 |
| - const serviceInput = form.querySelector(`input[name="services"][value="${serviceValue}"]`) as HTMLInputElement; |
| 424 | + const serviceInput = form.querySelector(`input[name="services"][value="${serviceValue}"]`); |
425 | 425 | if (serviceInput) {
|
426 | 426 | serviceInput.checked = true;
|
427 | 427 | }
|
|
437 | 437 | } else {
|
438 | 438 | emailServicesValue = emailServices.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
|
439 | 439 | }
|
440 |
| - const emailServicesInput = form.querySelector(`input[name="emailServices"][value="${emailServicesValue}"]`) as HTMLInputElement; |
| 440 | + const emailServicesInput = form.querySelector(`input[name="emailServices"][value="${emailServicesValue}"]`); |
441 | 441 | if (emailServicesInput) {
|
442 | 442 | emailServicesInput.checked = true;
|
443 | 443 | }
|
|
452 | 452 | } else {
|
453 | 453 | smsServicesValue = smsServices.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
|
454 | 454 | }
|
455 |
| - const smsServicesInput = form.querySelector(`input[name="smsServices"][value="${smsServicesValue}"]`) as HTMLInputElement; |
| 455 | + const smsServicesInput = form.querySelector(`input[name="smsServices"][value="${smsServicesValue}"]`); |
456 | 456 | if (smsServicesInput) {
|
457 | 457 | smsServicesInput.checked = true;
|
458 | 458 | }
|
|
461 | 461 |
|
462 | 462 | // Function to check if all required fields are filled
|
463 | 463 | function checkFormCompletion() {
|
464 |
| - const dataRegionInputs = form.querySelectorAll('input[name="dataRegion"]:checked') as NodeListOf<HTMLInputElement>; |
465 |
| - const servicesInputs = form.querySelectorAll('input[name="services"]:checked') as NodeListOf<HTMLInputElement>; |
466 |
| - const emailServicesInputs = form.querySelectorAll('input[name="emailServices"]:checked') as NodeListOf<HTMLInputElement>; |
467 |
| - const smsServicesInputs = form.querySelectorAll('input[name="smsServices"]:checked') as NodeListOf<HTMLInputElement>; |
| 464 | + const dataRegionInputs = form.querySelectorAll('input[name="dataRegion"]:checked'); |
| 465 | + const servicesInputs = form.querySelectorAll('input[name="services"]:checked'); |
| 466 | + const emailServicesInputs = form.querySelectorAll('input[name="emailServices"]:checked'); |
| 467 | + const smsServicesInputs = form.querySelectorAll('input[name="smsServices"]:checked'); |
468 | 468 |
|
469 | 469 | const dataRegion = dataRegionInputs.length > 0 ? dataRegionInputs[0].value : '';
|
470 | 470 | const services = Array.from(servicesInputs).map(input => input.value);
|
|
473 | 473 |
|
474 | 474 | if (dataRegion && services.length > 0 && emailServices && smsServices) {
|
475 | 475 | // Get relevant sub-processors
|
476 |
| - const relevantSubProcessors: Array<{ |
477 |
| - service: string; |
478 |
| - entityType: string; |
479 |
| - link: string; |
480 |
| - location: string; |
481 |
| - }> = []; |
| 476 | + const relevantSubProcessors = []; |
482 | 477 |
|
483 | 478 | services.forEach(service => {
|
484 |
| - const serviceKey = service.toLowerCase() as keyof typeof subProcessorsData; |
| 479 | + const serviceKey = service.toLowerCase(); |
485 | 480 | if (subProcessorsData[serviceKey]) {
|
486 |
| - subProcessorsData[serviceKey].forEach((processor: any) => { |
487 |
| - // Check if processor should be included based on conditions |
488 |
| - if (processor.condition) { |
489 |
| - if (processor.condition === "emailServices === 'Kinde default'") { |
490 |
| - if (emailServices !== 'Kinde default') { |
491 |
| - return; // Skip this processor |
492 |
| - } |
493 |
| - } else if (processor.condition === "smsServices === 'Kinde default'") { |
494 |
| - if (smsServices !== 'Kinde default') { |
495 |
| - return; // Skip this processor |
| 481 | + subProcessorsData[serviceKey].forEach((processor) => { |
| 482 | + // Check if processor should be included based on conditions |
| 483 | + if (processor.condition) { |
| 484 | + if (processor.condition === "emailServices === 'Kinde default'") { |
| 485 | + if (emailServices !== 'Kinde default') { |
| 486 | + return; // Skip this processor |
| 487 | + } |
| 488 | + } else if (processor.condition === "smsServices === 'Kinde default'") { |
| 489 | + if (smsServices !== 'Kinde default') { |
| 490 | + return; // Skip this processor |
| 491 | + } |
496 | 492 | }
|
497 | 493 | }
|
498 |
| - } |
499 | 494 |
|
500 | 495 | relevantSubProcessors.push({
|
501 | 496 | service: processor.service,
|
|
539 | 534 | });
|
540 | 535 | });
|
541 | 536 |
|
542 |
| - function displayResults(processors: Array<{ |
543 |
| - service: string; |
544 |
| - entityType: string; |
545 |
| - link: string; |
546 |
| - location: string; |
547 |
| - }>) { |
| 537 | + function displayResults(processors) { |
548 | 538 | if (processors.length === 0) {
|
549 | 539 | tableContainer.innerHTML = '<p class="text-gray-600">No sub-processors found for your configuration.</p>';
|
550 | 540 | } else {
|
|
0 commit comments