@ptcwebops/ptcw-design 2.8.7 → 2.9.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.
Files changed (39) hide show
  1. package/dist/cjs/embedded-form.cjs.entry.js +12 -340
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/ptc-data-lookup.cjs.entry.js +378 -0
  4. package/dist/cjs/ptc-filter-dropdown_4.cjs.entry.js +1 -1
  5. package/dist/cjs/ptc-form-checkbox_3.cjs.entry.js +10 -1
  6. package/dist/cjs/ptc-pricing-packaging-table.cjs.entry.js +4 -9
  7. package/dist/cjs/ptcw-design.cjs.js +1 -1
  8. package/dist/collection/collection-manifest.json +1 -0
  9. package/dist/collection/components/organism-bundles/form/embedded-form/embedded-form.js +13 -24
  10. package/dist/collection/components/ptc-data-lookup/ptc-data-lookup.css +3 -0
  11. package/dist/collection/components/ptc-data-lookup/ptc-data-lookup.js +316 -0
  12. package/dist/collection/components/ptc-filter-dropdown/ptc-filter-dropdown.js +1 -1
  13. package/dist/collection/components/ptc-pricing-packaging-table/ptc-pricing-packaging-table.js +4 -9
  14. package/dist/collection/components/ptc-textfield/ptc-textfield.js +10 -1
  15. package/dist/custom-elements/index.d.ts +6 -0
  16. package/dist/custom-elements/index.js +458 -407
  17. package/dist/esm/embedded-form.entry.js +12 -340
  18. package/dist/esm/loader.js +1 -1
  19. package/dist/esm/ptc-data-lookup.entry.js +374 -0
  20. package/dist/esm/ptc-filter-dropdown_4.entry.js +1 -1
  21. package/dist/esm/ptc-form-checkbox_3.entry.js +10 -1
  22. package/dist/esm/ptc-pricing-packaging-table.entry.js +4 -9
  23. package/dist/esm/ptcw-design.js +1 -1
  24. package/dist/ptcw-design/p-58c140ab.entry.js +1 -0
  25. package/dist/ptcw-design/{p-50f3a568.entry.js → p-5d183a57.entry.js} +1 -1
  26. package/dist/ptcw-design/p-97118c77.entry.js +1 -0
  27. package/dist/ptcw-design/p-aee89482.entry.js +1 -0
  28. package/dist/ptcw-design/p-b1528ee0.entry.js +1 -0
  29. package/dist/ptcw-design/ptcw-design.esm.js +1 -1
  30. package/dist/types/components/organism-bundles/form/embedded-form/embedded-form.d.ts +1 -4
  31. package/dist/types/components/ptc-data-lookup/ptc-data-lookup.d.ts +21 -0
  32. package/dist/types/components/ptc-filter-dropdown/ptc-filter-dropdown.d.ts +1 -1
  33. package/dist/types/components/ptc-pricing-packaging-table/ptc-pricing-packaging-table.d.ts +1 -1
  34. package/dist/types/components.d.ts +40 -0
  35. package/package.json +1 -1
  36. package/readme.md +1 -1
  37. package/dist/ptcw-design/p-270e5fdf.entry.js +0 -1
  38. package/dist/ptcw-design/p-5e38a498.entry.js +0 -1
  39. package/dist/ptcw-design/p-efdf34c5.entry.js +0 -1
@@ -379,325 +379,6 @@ const DynamicBoxBundle$1 = class extends HTMLElement$1 {
379
379
  static get style() { return dynamicBoxBundleCss; }
380
380
  };
381
381
 
382
- // Define the ElqLib class
383
- class ElqLib {
384
- constructor(params) {
385
- this.params = params;
386
- this.url_vars = {};
387
- this.visitor_elq_id = null;
388
- this.field_mappings = [];
389
- this.callback_queue = [];
390
- //private fields_populated: boolean = false;
391
- this.user_elq_email = '';
392
- this.user_elq_firstname = '';
393
- this.user_elq_lastname = '';
394
- // Merge defaults with params
395
- const defaults = {
396
- elq_site_id: '',
397
- elq_visitor_lookup_key: '',
398
- elq_recipient_id_lookup_key: '',
399
- elq_contact_lookup_key: '',
400
- elq_field_email_rec_id: 'V_EmailRecipientID',
401
- elq_field_contact_email: 'C_EmailAddress',
402
- elq_field_visitor_email: 'V_Email_Address',
403
- elq_field_visitor_firstname: 'V_First_Name',
404
- elq_field_visitor_lastname: 'V_Last_Name',
405
- notme_link_id: null,
406
- notme_fields_class: null,
407
- notme_message: 'Not {name}? Click here.',
408
- notme_message_noname: 'Not your details below? Click here.',
409
- };
410
- this.params = Object.assign(Object.assign({}, defaults), this.params);
411
- this.init();
412
- }
413
- init() {
414
- // Merge defaults with user-provided params if not already done in the constructor
415
- // ...
416
- // Set Eloqua site ID
417
- this.setEloquaSiteId();
418
- // Load Eloqua scripts
419
- this.async_load();
420
- // Store URL variables
421
- this.store_url_vars();
422
- // Store visitor's Eloqua IDgit
423
- this.store_visitor_elq_id();
424
- // Set the global Eloqua callback function
425
- window.SetElqContent = this.eloqua_callback.bind(this);
426
- }
427
- setEloquaSiteId() {
428
- if (this.params.elq_site_id) {
429
- ElqLib._elqQ.push(['elqSetSiteId', this.params.elq_site_id]);
430
- }
431
- }
432
- fire_pageview(url) {
433
- try {
434
- if (typeof url === 'undefined') {
435
- ElqLib._elqQ.push(['elqTrackPageView']);
436
- }
437
- else {
438
- ElqLib._elqQ.push(['elqTrackPageView', url]);
439
- }
440
- console.log('TRACKING: Eloqua pageview fired for URL: ' + (url || 'current page'));
441
- }
442
- catch (e) {
443
- console.log('TRACKING: Could not fire Eloqua pageview: ', e);
444
- }
445
- }
446
- find_eloqua_contact() {
447
- console.log('CONTACT LOOKUP: Attempting to find Eloqua contact...');
448
- // Queue callback action for the return of lookup
449
- this.callback_queue.push(this.handle_visitor_lookup.bind(this));
450
- // Start with a recipient lookup if ID was supplied in URL
451
- if (this.visitor_elq_id !== null) {
452
- this.lookup_visitor_by_recipient_id();
453
- }
454
- else {
455
- // If no visitor ID, attempt to do a visitor lookup with an Eloqua cookie
456
- this.lookup_visitor_by_cookie();
457
- }
458
- }
459
- add_field_mapping(mapping) {
460
- this.field_mappings.push(mapping);
461
- }
462
- add_queue_action(action) {
463
- this.callback_queue.push(action);
464
- }
465
- store_url_vars() {
466
- // Clear the current url_vars
467
- this.url_vars = {};
468
- // Split the URL by the '?' to get the query string part
469
- const queryString = window.location.search.substring(1);
470
- // Split the query string by '&' to get each key-value pair
471
- queryString.split('&').forEach(paramString => {
472
- // Split the key-value pairs by '=' to separate keys and values
473
- let [key, value] = paramString.split('=');
474
- // Decode URI components to handle URL encoding
475
- key = decodeURIComponent(key);
476
- value = decodeURIComponent(value);
477
- // Store the key-value pair in the url_vars object
478
- this.url_vars[key] = value;
479
- });
480
- // Optionally, log the stored URL variables
481
- console.log('URL variables stored:', this.url_vars);
482
- }
483
- store_visitor_elq_id() {
484
- console.log("INIT: Looking for visitor's Eloqua ID in URL...");
485
- const elqIdParam = this.url_vars['elq'];
486
- if (elqIdParam) {
487
- const elqId = elqIdParam.toUpperCase().replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5');
488
- this.visitor_elq_id = elqId;
489
- console.log(`INIT: ...visitor Eloqua ID found in URL: ${elqId}`);
490
- }
491
- else {
492
- this.visitor_elq_id = null;
493
- console.log('INIT: ...no visitor Eloqua ID found in URL');
494
- }
495
- }
496
- // private merge(root: any, ...sources: any[]): any {
497
- // sources.forEach(source => {
498
- // for (const key in source) {
499
- // if (source.hasOwnProperty(key)) {
500
- // root[key] = source[key];
501
- // }
502
- // }
503
- // });
504
- // return root;
505
- // }
506
- eloqua_callback() {
507
- console.log('LOOKUP: Eloqua lookup finished');
508
- // Process each action in the callback queue
509
- let actionSucceeded = true;
510
- while (actionSucceeded && this.callback_queue.length > 0) {
511
- const action = this.callback_queue.shift();
512
- if (action) {
513
- console.log(`QUEUE: Executing action`);
514
- actionSucceeded = action(); // Execute the action. It must return a boolean indicating success.
515
- if (actionSucceeded) {
516
- console.log('QUEUE: Action executed successfully, removed from queue');
517
- }
518
- else {
519
- console.log('QUEUE: Action failed, re-adding to queue');
520
- this.callback_queue.unshift(action); // Re-add the action to the front of the queue
521
- break; // Break out of the loop if an action fails
522
- }
523
- }
524
- }
525
- // After processing the queue, you might want to update user details or perform other operations
526
- if (actionSucceeded) {
527
- this.update_user_details();
528
- }
529
- //this.populate_mapped_fields();
530
- // ...additional code to handle the aftermath of callback processing...
531
- }
532
- lookup_visitor_by_cookie() {
533
- if (this.params.elq_visitor_lookup_key != '') {
534
- ElqLib._elqQ.push(['elqDataLookup', escape(this.params.elq_visitor_lookup_key), '']);
535
- console.log('LOOKUP: Visitor lookup sent using Eloqua cookie');
536
- }
537
- else {
538
- console.log('LOOKUP: A visitor lookup cannot be performed as no lookup key was defined');
539
- }
540
- }
541
- lookup_visitor_by_recipient_id() {
542
- if (this.params.elq_recipient_id_lookup_key != '') {
543
- ElqLib._elqQ.push([
544
- 'elqDataLookup',
545
- escape(this.params.elq_recipient_id_lookup_key),
546
- '<' + this.params.elq_field_email_rec_id + '>' + this.visitor_elq_id + '</' + this.params.elq_field_email_rec_id + '>',
547
- ]);
548
- console.log('LOOKUP: Visitor lookup sent using email recipient id: ' + this.visitor_elq_id);
549
- }
550
- else {
551
- console.log('LOOKUP: A visitor lookup cannot be performed as no lookup key was defined');
552
- }
553
- }
554
- lookup_contact_by_email() {
555
- if (this.params.elq_contact_lookup_key != '') {
556
- ElqLib._elqQ.push([
557
- 'elqDataLookup',
558
- escape(this.params.elq_contact_lookup_key),
559
- '<' + this.params.elq_field_contact_email + '>' + this.user_elq_email + '</' + this.params.elq_field_contact_email + '>',
560
- ]);
561
- console.log('LOOKUP: Contact lookup sent using email address: ' + this.user_elq_email);
562
- }
563
- else {
564
- console.log('LOOKUP: A visitor lookup cannot be performed as no lookup key was defined');
565
- }
566
- }
567
- handle_visitor_lookup() {
568
- const email = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_email);
569
- if (email) {
570
- console.log(`LOOKUP: Found visitor email address: ${email}`);
571
- this.user_elq_email = email.trim();
572
- this.lookup_contact_by_email();
573
- this.callback_queue.push(this.handle_contact_lookup.bind(this));
574
- return true;
575
- }
576
- else {
577
- return false;
578
- }
579
- }
580
- handle_contact_lookup() {
581
- if (window.GetElqContentPersonalizationValue(this.params.elq_field_contact_email) != '') {
582
- console.log('LOOKUP: Found contact email address: ' + window.GetElqContentPersonalizationValue(this.params.elq_field_contact_email));
583
- return true;
584
- }
585
- else {
586
- return false;
587
- }
588
- }
589
- // private populate_mapped_fields(): void {
590
- // console.log("MAPPING: Starting field mapping");
591
- // // Loop through all mappings
592
- // for (mapping_set in field_mappings) {
593
- // for (mapping_element in field_mappings[mapping_set]) {
594
- // var mapping_elq_field = field_mappings[mapping_set][mapping_element];
595
- // var element = document.getElementById(mapping_element);
596
- // var field_value = GetElqContentPersonalizationValue(mapping_elq_field);
597
- // // Check that field exists
598
- // if (element == null) {
599
- // log("MAPPING: Could not populate element '" + mapping_element + "' as it does not exist");
600
- // }
601
- // else if (element.value != '') {
602
- // log("MAPPING: Could not populate element '" + mapping_element + "' as it already contained a value");
603
- // }
604
- // else if (field_value == '') {
605
- // log("MAPPING: Could not populate element '" + mapping_element + "' as the Eloqua field '" + mapping_elq_field + "' contained no data");
606
- // }
607
- // else {
608
- // fields_populated = true;
609
- // element.value = field_value;
610
- // log("MAPPING: Mapped element '" + mapping_element + "' with Eloqua field '" + mapping_elq_field + "'");
611
- // }
612
- // }
613
- // }
614
- // console.log("MAPPING: Finished field mapping");
615
- // // Update notme link
616
- // //update_notme_link ();
617
- // }
618
- update_user_details() {
619
- if (this.user_elq_email == '' && window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_email) != '') {
620
- this.user_elq_email = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_email);
621
- }
622
- if (this.user_elq_firstname == '' && window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_firstname) != '') {
623
- this.user_elq_firstname = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_firstname);
624
- }
625
- if (this.user_elq_lastname == '' && window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_lastname) != '') {
626
- this.user_elq_lastname = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_lastname);
627
- }
628
- }
629
- // private update_notme_link(): void {
630
- // // Get link element
631
- // var notme_link_element = $('#' + this.params.notme_link_id);
632
- // // Get Eloqua vars
633
- // var first_name = this.user_elq_firstname;
634
- // var last_name = this.user_elq_lastname;
635
- // var email = this.user_elq_email;
636
- // // Check if we have both first name and last name
637
- // if (first_name != '' && last_name !='') {
638
- // name = first_name + ' ' + last_name;
639
- // display_link = true;
640
- // }
641
- // // Check if we have first name
642
- // else if (first_name != '') {
643
- // name = first_name;
644
- // }
645
- // // Other use a generic message
646
- // else {
647
- // name = '';
648
- // }
649
- // // Check if some fields have been populated
650
- // if (this.fields_populated && this.params.notme_link_id != null && this.params.notme_fields_class != null) {
651
- // if (name != '') {
652
- // var message = this.params.notme_message.replace("{name}", name);
653
- // }
654
- // else {
655
- // var message = this.params.notme_message_noname;
656
- // }
657
- // console.log("MAPPING: Updating not me link");
658
- // notme_link_element.find('*').remove();
659
- // var link = $('<a href="">' + message + '</a>').appendTo(notme_link_element).click(this.remove_user_details);
660
- // }
661
- // }
662
- // private remove_user_details(): void {
663
- // this.user_elq_email = '';
664
- // this.user_elq_firstname = '';
665
- // this.user_elq_lastname = '';
666
- // $('.' + this.params.notme_fields_class).val('');
667
- // $('#' + this.params.notme_link_id)
668
- // .find('a')
669
- // .remove();
670
- // //Flush out old user cookie
671
- // ElqLib._elqQ.push(['elqVisitorGuid', ' ']);
672
- // ElqLib._elqQ.push(['elqTrackPageView']);
673
- // //return false;
674
- // }
675
- // Private Method to load Eloqua Scripts
676
- async_load() {
677
- const scriptUrl = 'http://img.en25.com/i/elqCfg.min.js';
678
- const scriptElement = document.createElement('script');
679
- scriptElement.type = 'text/javascript';
680
- scriptElement.async = true;
681
- scriptElement.src = scriptUrl;
682
- // Error handling for script loading
683
- scriptElement.onerror = errorEvent => {
684
- console.log(`Error loading script: ${errorEvent}`);
685
- };
686
- // Append the script element to the head of the document, or before the first script tag found
687
- const firstScriptTag = document.getElementsByTagName('script')[0];
688
- if (firstScriptTag && firstScriptTag.parentNode) {
689
- firstScriptTag.parentNode.insertBefore(scriptElement, firstScriptTag);
690
- }
691
- else {
692
- document.head.appendChild(scriptElement);
693
- }
694
- console.log(`Async loading of script ${scriptUrl} initiated.`);
695
- }
696
- }
697
- ElqLib._elqQ = [];
698
- // Static member initialization
699
- //ElqLib._elqQ = window['_elqQ'] || [];
700
-
701
382
  const embeddedFormCss = ":host{display:block}.flex-adjustments{display:flex;justify-content:center}@media only screen and (min-width: 768px){.flex-adjustments{justify-content:flex-end}}.embedded-form-container{background-color:#142D48}.form-wrapper{width:433px;display:flex;border-radius:3px;background:#FFF;box-shadow:0px 2px 6px 0px rgba(0, 0, 0, 0.16);flex-direction:column;align-items:center;padding:24px 0px;justify-content:center}";
702
383
 
703
384
  const EmbeddedForm$1 = class extends HTMLElement$1 {
@@ -715,29 +396,9 @@ const EmbeddedForm$1 = class extends HTMLElement$1 {
715
396
  howhearselfreport: '',
716
397
  policyChecked: false,
717
398
  };
718
- this.elqLib = undefined;
719
- }
720
- componentWillLoad() {
721
- this.initializeElqLib();
722
- }
723
- initializeElqLib() {
724
- this.elqLib = new ElqLib({
725
- elq_site_id: '2826',
726
- elq_visitor_lookup_key: 'bf7df9f5b15c4b47b3c75e50c902bd53',
727
- elq_recipient_id_lookup_key: '4da0a50be2db4a56a1a59d4bea5e0ea6',
728
- elq_contact_lookup_key: '4da0a50be2db4a56a1a59d4bea5e0ea6',
729
- elq_field_email_rec_id: 'V_EmailRecipientID',
730
- elq_field_contact_email: 'C_EmailAddress',
731
- elq_field_visitor_email: 'V_Email_Address',
732
- elq_field_visitor_firstname: 'V_First_Name',
733
- elq_field_visitor_lastname: 'V_Last_Name',
734
- notme_link_id: null,
735
- notme_fields_class: null,
736
- notme_message: 'Not {name}? Click here.',
737
- notme_message_noname: 'Not your details below? Click here.',
738
- });
739
399
  }
740
400
  componentDidLoad() {
401
+ this.onDataLookup();
741
402
  this.formButton = this.el.querySelector('.form-submit');
742
403
  this.formButton.addEventListener('click', this.handleSubmit.bind(this));
743
404
  //get Email
@@ -751,6 +412,17 @@ const EmbeddedForm$1 = class extends HTMLElement$1 {
751
412
  this.howhearselfreport = this.el.querySelector('ptc-textfield[field-id="self-reporting"]');
752
413
  this.policy1 = this.el.querySelector('ptc-form-checkbox[checkbox-id="policy1"]');
753
414
  }
415
+ //handle dataLookup
416
+ onDataLookup() {
417
+ const dataLookupElement = this.el.closest('ptc-data-lookup');
418
+ if (dataLookupElement) {
419
+ console.log('Perform Data Lookup...');
420
+ dataLookupElement.performDataLookup();
421
+ }
422
+ else {
423
+ console.log('No Data Lookup...');
424
+ }
425
+ }
754
426
  handleInputChange(field, value) {
755
427
  this.formData = Object.assign(Object.assign({}, this.formData), { [field]: value });
756
428
  }
@@ -8286,76 +7958,449 @@ const PtcCollapseList$1 = class extends HTMLElement$1 {
8286
7958
  this.onExpandClick(e, level == 1);
8287
7959
  }
8288
7960
  else {
8289
- this.onItemLinkClick(e, item.id);
7961
+ this.onItemLinkClick(e, item.id);
7962
+ }
7963
+ };
7964
+ let tooltip = level == 1 ? item.tooltip : undefined;
7965
+ if (item.isExternalLink) {
7966
+ return (h$1("a", { href: item.href, target: item.target, title: item.title }, icon, item.text, renderToolTip(tooltip)));
7967
+ }
7968
+ else if ((!expandable && selectable) || (expandable && !selectable)) {
7969
+ return (h$1("a", { href: "#", title: item.text, onClick: clickEvent }, icon, item.text, renderToolTip(tooltip)));
7970
+ }
7971
+ else {
7972
+ return [
7973
+ h$1("a", { class: "expander-icon", href: "#", onClick: (e) => { this.onExpandClick(e, false); } }, icon),
7974
+ h$1("a", { href: "#", title: item.text, onClick: (e) => { this.onItemLinkClick(e, item.id); } }, item.text),
7975
+ renderToolTip(tooltip)
7976
+ ];
7977
+ }
7978
+ };
7979
+ return (h$1(Host, null, h$1("div", { class: "container" }, h$1("ptc-title", { type: 'h2', "title-size": "medium", "title-weight": "w-6", "text-align": 'left', upperline: "no-upperline" }, this.header), h$1("div", { class: "search-box" }, h$1("input", { type: "text", placeholder: this.placeholderText, onKeyUp: (e) => { this.onInputUpdated(e); } })), renderLevel(this.data, 1))));
7980
+ }
7981
+ async removeSelectedItem(value) {
7982
+ let item = this.getItemByValue(value);
7983
+ this.unSelectItem(item.id);
7984
+ this.fireChangedEvent();
7985
+ }
7986
+ async addSelectedItem(value) {
7987
+ let item = this.getItemByValue(value);
7988
+ this.selectItem(item.id);
7989
+ }
7990
+ get el() { return this; }
7991
+ static get style() { return ptcCollapseListCss; }
7992
+ };
7993
+
7994
+ const ptcContainerCss = ":host{display:block;position:relative}.white{border-radius:4px;background-color:var(--color-white)}.gray{border-radius:4px;background-color:var(--color-white-gray)}.content-wrapper{font-family:Raleway;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left}.content-wrapper.x-small{box-shadow:var(--ptc-shadow-x-small)}.content-wrapper.small{box-shadow:var(--ptc-shadow-small)}.content-wrapper.medium{box-shadow:var(--ptc-shadow-medium)}.content-wrapper.large{box-shadow:var(--ptc-shadow-large)}.content-wrapper.x-large{box-shadow:var(--ptc-shadow-x-large)}.content-wrapper.spacing-xx-small{padding:var(--ptc-element-spacing-01)}.content-wrapper.spacing-x-small{padding:var(--ptc-element-spacing-02)}.content-wrapper.spacing-small{padding:var(--ptc-element-spacing-03)}.content-wrapper.spacing-medium{padding:var(--ptc-element-spacing-04)}.content-wrapper.spacing-large{padding:var(--ptc-element-spacing-05)}.content-wrapper.spacing-x-large{padding:var(--ptc-element-spacing-06)}.content-wrapper.spacing-xx-large{padding:var(--ptc-element-spacing-07)}.content-wrapper.spacing-xxx-large{padding:var(--ptc-element-spacing-08)}";
7995
+
7996
+ const PtcContainer$1 = class extends HTMLElement$1 {
7997
+ constructor() {
7998
+ super();
7999
+ this.__registerHost();
8000
+ this.__attachShadow();
8001
+ this.backgroundColor = 'white';
8002
+ this.elevation = 'small';
8003
+ this.containerType = '';
8004
+ this.spacing = 'xxx-large';
8005
+ this.styles = undefined;
8006
+ }
8007
+ render() {
8008
+ const classMap = this.getCssClassMap();
8009
+ return (h$1(Host, { class: this.getContainerClass() }, this.styles && h$1("style", null, this.styles), h$1("div", { class: classMap }, h$1("slot", null))));
8010
+ }
8011
+ getContainerClass() {
8012
+ switch (this.containerType) {
8013
+ case 'large':
8014
+ return 'ptc-container-lg';
8015
+ case 'none':
8016
+ return undefined;
8017
+ default:
8018
+ return 'ptc-container';
8019
+ }
8020
+ }
8021
+ getCssClassMap() {
8022
+ const spacing = `spacing-${this.spacing}`;
8023
+ return {
8024
+ ['content-wrapper']: true,
8025
+ [this.backgroundColor]: true,
8026
+ [this.elevation]: true,
8027
+ [spacing]: true
8028
+ };
8029
+ }
8030
+ static get style() { return ptcContainerCss; }
8031
+ };
8032
+
8033
+ // Define the ElqLib class
8034
+ class ElqLib {
8035
+ constructor(params) {
8036
+ this.params = params;
8037
+ this.url_vars = {};
8038
+ this.visitor_elq_id = null;
8039
+ this.field_mappings = [];
8040
+ this.callback_queue = [];
8041
+ //private fields_populated: boolean = false;
8042
+ this.user_elq_email = '';
8043
+ this.user_elq_firstname = '';
8044
+ this.user_elq_lastname = '';
8045
+ // Merge defaults with params
8046
+ const defaults = {
8047
+ elq_site_id: '',
8048
+ elq_visitor_lookup_key: '',
8049
+ elq_recipient_id_lookup_key: '',
8050
+ elq_contact_lookup_key: '',
8051
+ elq_field_email_rec_id: 'V_EmailRecipientID',
8052
+ elq_field_contact_email: 'C_EmailAddress',
8053
+ elq_field_visitor_email: 'V_Email_Address',
8054
+ elq_field_visitor_firstname: 'V_First_Name',
8055
+ elq_field_visitor_lastname: 'V_Last_Name',
8056
+ notme_link_id: null,
8057
+ notme_fields_class: null,
8058
+ notme_message: 'Not {name}? Click here.',
8059
+ notme_message_noname: 'Not your details below? Click here.',
8060
+ };
8061
+ this.params = Object.assign(Object.assign({}, defaults), this.params);
8062
+ this.init();
8063
+ }
8064
+ init() {
8065
+ // Merge defaults with user-provided params if not already done in the constructor
8066
+ // ...
8067
+ // Set Eloqua site ID
8068
+ this.setEloquaSiteId();
8069
+ // Load Eloqua scripts
8070
+ this.async_load();
8071
+ // Store URL variables
8072
+ this.store_url_vars();
8073
+ // Store visitor's Eloqua IDgit
8074
+ this.store_visitor_elq_id();
8075
+ // Set the global Eloqua callback function
8076
+ window.SetElqContent = this.eloqua_callback.bind(this);
8077
+ }
8078
+ setEloquaSiteId() {
8079
+ if (this.params.elq_site_id) {
8080
+ ElqLib._elqQ.push(['elqSetSiteId', this.params.elq_site_id]);
8081
+ }
8082
+ }
8083
+ fire_pageview(url) {
8084
+ try {
8085
+ if (typeof url === 'undefined') {
8086
+ ElqLib._elqQ.push(['elqTrackPageView']);
8087
+ }
8088
+ else {
8089
+ ElqLib._elqQ.push(['elqTrackPageView', url]);
8090
+ }
8091
+ console.log('TRACKING: Eloqua pageview fired for URL: ' + (url || 'current page'));
8092
+ }
8093
+ catch (e) {
8094
+ console.log('TRACKING: Could not fire Eloqua pageview: ', e);
8095
+ }
8096
+ }
8097
+ find_eloqua_contact() {
8098
+ console.log('CONTACT LOOKUP: Attempting to find Eloqua contact...');
8099
+ // Queue callback action for the return of lookup
8100
+ this.callback_queue.push(this.handle_visitor_lookup.bind(this));
8101
+ // Start with a recipient lookup if ID was supplied in URL
8102
+ if (this.visitor_elq_id !== null) {
8103
+ this.lookup_visitor_by_recipient_id();
8104
+ }
8105
+ else {
8106
+ // If no visitor ID, attempt to do a visitor lookup with an Eloqua cookie
8107
+ this.lookup_visitor_by_cookie();
8108
+ }
8109
+ }
8110
+ add_field_mapping(mapping) {
8111
+ this.field_mappings.push(mapping);
8112
+ }
8113
+ add_queue_action(action) {
8114
+ this.callback_queue.push(action);
8115
+ }
8116
+ store_url_vars() {
8117
+ // Clear the current url_vars
8118
+ this.url_vars = {};
8119
+ // Split the URL by the '?' to get the query string part
8120
+ const queryString = window.location.search.substring(1);
8121
+ // Split the query string by '&' to get each key-value pair
8122
+ queryString.split('&').forEach(paramString => {
8123
+ // Split the key-value pairs by '=' to separate keys and values
8124
+ let [key, value] = paramString.split('=');
8125
+ // Decode URI components to handle URL encoding
8126
+ key = decodeURIComponent(key);
8127
+ value = decodeURIComponent(value);
8128
+ // Store the key-value pair in the url_vars object
8129
+ this.url_vars[key] = value;
8130
+ });
8131
+ // Optionally, log the stored URL variables
8132
+ console.log('URL variables stored:', this.url_vars);
8133
+ }
8134
+ store_visitor_elq_id() {
8135
+ console.log("INIT: Looking for visitor's Eloqua ID in URL...");
8136
+ const elqIdParam = this.url_vars['elq'];
8137
+ if (elqIdParam) {
8138
+ const elqId = elqIdParam.toUpperCase().replace(/(.{8})(.{4})(.{4})(.{4})(.{12})/, '$1-$2-$3-$4-$5');
8139
+ this.visitor_elq_id = elqId;
8140
+ console.log(`INIT: ...visitor Eloqua ID found in URL: ${elqId}`);
8141
+ }
8142
+ else {
8143
+ this.visitor_elq_id = null;
8144
+ console.log('INIT: ...no visitor Eloqua ID found in URL');
8145
+ }
8146
+ }
8147
+ // private merge(root: any, ...sources: any[]): any {
8148
+ // sources.forEach(source => {
8149
+ // for (const key in source) {
8150
+ // if (source.hasOwnProperty(key)) {
8151
+ // root[key] = source[key];
8152
+ // }
8153
+ // }
8154
+ // });
8155
+ // return root;
8156
+ // }
8157
+ eloqua_callback() {
8158
+ console.log('LOOKUP: Eloqua lookup finished');
8159
+ // Process each action in the callback queue
8160
+ let actionSucceeded = true;
8161
+ while (actionSucceeded && this.callback_queue.length > 0) {
8162
+ const action = this.callback_queue.shift();
8163
+ if (action) {
8164
+ console.log(`QUEUE: Executing action`);
8165
+ actionSucceeded = action(); // Execute the action. It must return a boolean indicating success.
8166
+ if (actionSucceeded) {
8167
+ console.log('QUEUE: Action executed successfully, removed from queue');
8168
+ }
8169
+ else {
8170
+ console.log('QUEUE: Action failed, re-adding to queue');
8171
+ this.callback_queue.unshift(action); // Re-add the action to the front of the queue
8172
+ break; // Break out of the loop if an action fails
8290
8173
  }
8291
- };
8292
- let tooltip = level == 1 ? item.tooltip : undefined;
8293
- if (item.isExternalLink) {
8294
- return (h$1("a", { href: item.href, target: item.target, title: item.title }, icon, item.text, renderToolTip(tooltip)));
8295
- }
8296
- else if ((!expandable && selectable) || (expandable && !selectable)) {
8297
- return (h$1("a", { href: "#", title: item.text, onClick: clickEvent }, icon, item.text, renderToolTip(tooltip)));
8298
- }
8299
- else {
8300
- return [
8301
- h$1("a", { class: "expander-icon", href: "#", onClick: (e) => { this.onExpandClick(e, false); } }, icon),
8302
- h$1("a", { href: "#", title: item.text, onClick: (e) => { this.onItemLinkClick(e, item.id); } }, item.text),
8303
- renderToolTip(tooltip)
8304
- ];
8305
8174
  }
8306
- };
8307
- return (h$1(Host, null, h$1("div", { class: "container" }, h$1("ptc-title", { type: 'h2', "title-size": "medium", "title-weight": "w-6", "text-align": 'left', upperline: "no-upperline" }, this.header), h$1("div", { class: "search-box" }, h$1("input", { type: "text", placeholder: this.placeholderText, onKeyUp: (e) => { this.onInputUpdated(e); } })), renderLevel(this.data, 1))));
8175
+ }
8176
+ // After processing the queue, you might want to update user details or perform other operations
8177
+ if (actionSucceeded) {
8178
+ this.update_user_details();
8179
+ }
8180
+ //this.populate_mapped_fields();
8181
+ // ...additional code to handle the aftermath of callback processing...
8308
8182
  }
8309
- async removeSelectedItem(value) {
8310
- let item = this.getItemByValue(value);
8311
- this.unSelectItem(item.id);
8312
- this.fireChangedEvent();
8183
+ lookup_visitor_by_cookie() {
8184
+ if (this.params.elq_visitor_lookup_key != '') {
8185
+ ElqLib._elqQ.push(['elqDataLookup', escape(this.params.elq_visitor_lookup_key), '']);
8186
+ console.log('LOOKUP: Visitor lookup sent using Eloqua cookie');
8187
+ }
8188
+ else {
8189
+ console.log('LOOKUP: A visitor lookup cannot be performed as no lookup key was defined');
8190
+ }
8313
8191
  }
8314
- async addSelectedItem(value) {
8315
- let item = this.getItemByValue(value);
8316
- this.selectItem(item.id);
8192
+ lookup_visitor_by_recipient_id() {
8193
+ if (this.params.elq_recipient_id_lookup_key != '') {
8194
+ ElqLib._elqQ.push([
8195
+ 'elqDataLookup',
8196
+ escape(this.params.elq_recipient_id_lookup_key),
8197
+ '<' + this.params.elq_field_email_rec_id + '>' + this.visitor_elq_id + '</' + this.params.elq_field_email_rec_id + '>',
8198
+ ]);
8199
+ console.log('LOOKUP: Visitor lookup sent using email recipient id: ' + this.visitor_elq_id);
8200
+ }
8201
+ else {
8202
+ console.log('LOOKUP: A visitor lookup cannot be performed as no lookup key was defined');
8203
+ }
8317
8204
  }
8318
- get el() { return this; }
8319
- static get style() { return ptcCollapseListCss; }
8320
- };
8205
+ lookup_contact_by_email() {
8206
+ if (this.params.elq_contact_lookup_key != '') {
8207
+ ElqLib._elqQ.push([
8208
+ 'elqDataLookup',
8209
+ escape(this.params.elq_contact_lookup_key),
8210
+ '<' + this.params.elq_field_contact_email + '>' + this.user_elq_email + '</' + this.params.elq_field_contact_email + '>',
8211
+ ]);
8212
+ console.log('LOOKUP: Contact lookup sent using email address: ' + this.user_elq_email);
8213
+ }
8214
+ else {
8215
+ console.log('LOOKUP: A visitor lookup cannot be performed as no lookup key was defined');
8216
+ }
8217
+ }
8218
+ handle_visitor_lookup() {
8219
+ const email = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_email);
8220
+ if (email) {
8221
+ console.log(`LOOKUP: Found visitor email address: ${email}`);
8222
+ this.user_elq_email = email.trim();
8223
+ this.lookup_contact_by_email();
8224
+ this.callback_queue.push(this.handle_contact_lookup.bind(this));
8225
+ return true;
8226
+ }
8227
+ else {
8228
+ return false;
8229
+ }
8230
+ }
8231
+ handle_contact_lookup() {
8232
+ if (window.GetElqContentPersonalizationValue(this.params.elq_field_contact_email) != '') {
8233
+ console.log('LOOKUP: Found contact email address: ' + window.GetElqContentPersonalizationValue(this.params.elq_field_contact_email));
8234
+ return true;
8235
+ }
8236
+ else {
8237
+ return false;
8238
+ }
8239
+ }
8240
+ // private populate_mapped_fields(): void {
8241
+ // console.log("MAPPING: Starting field mapping");
8242
+ // // Loop through all mappings
8243
+ // for (mapping_set in field_mappings) {
8244
+ // for (mapping_element in field_mappings[mapping_set]) {
8245
+ // var mapping_elq_field = field_mappings[mapping_set][mapping_element];
8246
+ // var element = document.getElementById(mapping_element);
8247
+ // var field_value = GetElqContentPersonalizationValue(mapping_elq_field);
8248
+ // // Check that field exists
8249
+ // if (element == null) {
8250
+ // log("MAPPING: Could not populate element '" + mapping_element + "' as it does not exist");
8251
+ // }
8252
+ // else if (element.value != '') {
8253
+ // log("MAPPING: Could not populate element '" + mapping_element + "' as it already contained a value");
8254
+ // }
8255
+ // else if (field_value == '') {
8256
+ // log("MAPPING: Could not populate element '" + mapping_element + "' as the Eloqua field '" + mapping_elq_field + "' contained no data");
8257
+ // }
8258
+ // else {
8259
+ // fields_populated = true;
8260
+ // element.value = field_value;
8261
+ // log("MAPPING: Mapped element '" + mapping_element + "' with Eloqua field '" + mapping_elq_field + "'");
8262
+ // }
8263
+ // }
8264
+ // }
8265
+ // console.log("MAPPING: Finished field mapping");
8266
+ // // Update notme link
8267
+ // //update_notme_link ();
8268
+ // }
8269
+ update_user_details() {
8270
+ if (this.user_elq_email == '' && window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_email) != '') {
8271
+ this.user_elq_email = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_email);
8272
+ }
8273
+ if (this.user_elq_firstname == '' && window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_firstname) != '') {
8274
+ this.user_elq_firstname = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_firstname);
8275
+ }
8276
+ if (this.user_elq_lastname == '' && window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_lastname) != '') {
8277
+ this.user_elq_lastname = window.GetElqContentPersonalizationValue(this.params.elq_field_visitor_lastname);
8278
+ }
8279
+ }
8280
+ // private update_notme_link(): void {
8281
+ // // Get link element
8282
+ // var notme_link_element = $('#' + this.params.notme_link_id);
8283
+ // // Get Eloqua vars
8284
+ // var first_name = this.user_elq_firstname;
8285
+ // var last_name = this.user_elq_lastname;
8286
+ // var email = this.user_elq_email;
8287
+ // // Check if we have both first name and last name
8288
+ // if (first_name != '' && last_name !='') {
8289
+ // name = first_name + ' ' + last_name;
8290
+ // display_link = true;
8291
+ // }
8292
+ // // Check if we have first name
8293
+ // else if (first_name != '') {
8294
+ // name = first_name;
8295
+ // }
8296
+ // // Other use a generic message
8297
+ // else {
8298
+ // name = '';
8299
+ // }
8300
+ // // Check if some fields have been populated
8301
+ // if (this.fields_populated && this.params.notme_link_id != null && this.params.notme_fields_class != null) {
8302
+ // if (name != '') {
8303
+ // var message = this.params.notme_message.replace("{name}", name);
8304
+ // }
8305
+ // else {
8306
+ // var message = this.params.notme_message_noname;
8307
+ // }
8308
+ // console.log("MAPPING: Updating not me link");
8309
+ // notme_link_element.find('*').remove();
8310
+ // var link = $('<a href="">' + message + '</a>').appendTo(notme_link_element).click(this.remove_user_details);
8311
+ // }
8312
+ // }
8313
+ // private remove_user_details(): void {
8314
+ // this.user_elq_email = '';
8315
+ // this.user_elq_firstname = '';
8316
+ // this.user_elq_lastname = '';
8317
+ // $('.' + this.params.notme_fields_class).val('');
8318
+ // $('#' + this.params.notme_link_id)
8319
+ // .find('a')
8320
+ // .remove();
8321
+ // //Flush out old user cookie
8322
+ // ElqLib._elqQ.push(['elqVisitorGuid', ' ']);
8323
+ // ElqLib._elqQ.push(['elqTrackPageView']);
8324
+ // //return false;
8325
+ // }
8326
+ // Private Method to load Eloqua Scripts
8327
+ async_load() {
8328
+ const scriptUrl = 'http://img.en25.com/i/elqCfg.min.js';
8329
+ const scriptElement = document.createElement('script');
8330
+ scriptElement.type = 'text/javascript';
8331
+ scriptElement.async = true;
8332
+ scriptElement.src = scriptUrl;
8333
+ // Error handling for script loading
8334
+ scriptElement.onerror = errorEvent => {
8335
+ console.log(`Error loading script: ${errorEvent}`);
8336
+ };
8337
+ // Append the script element to the head of the document, or before the first script tag found
8338
+ const firstScriptTag = document.getElementsByTagName('script')[0];
8339
+ if (firstScriptTag && firstScriptTag.parentNode) {
8340
+ firstScriptTag.parentNode.insertBefore(scriptElement, firstScriptTag);
8341
+ }
8342
+ else {
8343
+ document.head.appendChild(scriptElement);
8344
+ }
8345
+ console.log(`Async loading of script ${scriptUrl} initiated.`);
8346
+ }
8347
+ }
8348
+ ElqLib._elqQ = [];
8349
+ // Static member initialization
8350
+ //ElqLib._elqQ = window['_elqQ'] || [];
8321
8351
 
8322
- const ptcContainerCss = ":host{display:block;position:relative}.white{border-radius:4px;background-color:var(--color-white)}.gray{border-radius:4px;background-color:var(--color-white-gray)}.content-wrapper{font-family:Raleway;font-size:16px;font-weight:400;line-height:24px;letter-spacing:0;text-align:left}.content-wrapper.x-small{box-shadow:var(--ptc-shadow-x-small)}.content-wrapper.small{box-shadow:var(--ptc-shadow-small)}.content-wrapper.medium{box-shadow:var(--ptc-shadow-medium)}.content-wrapper.large{box-shadow:var(--ptc-shadow-large)}.content-wrapper.x-large{box-shadow:var(--ptc-shadow-x-large)}.content-wrapper.spacing-xx-small{padding:var(--ptc-element-spacing-01)}.content-wrapper.spacing-x-small{padding:var(--ptc-element-spacing-02)}.content-wrapper.spacing-small{padding:var(--ptc-element-spacing-03)}.content-wrapper.spacing-medium{padding:var(--ptc-element-spacing-04)}.content-wrapper.spacing-large{padding:var(--ptc-element-spacing-05)}.content-wrapper.spacing-x-large{padding:var(--ptc-element-spacing-06)}.content-wrapper.spacing-xx-large{padding:var(--ptc-element-spacing-07)}.content-wrapper.spacing-xxx-large{padding:var(--ptc-element-spacing-08)}";
8352
+ const ptcDataLookupCss = ":host{display:block}";
8323
8353
 
8324
- const PtcContainer$1 = class extends HTMLElement$1 {
8354
+ const PtcDataLookup$1 = class extends HTMLElement$1 {
8325
8355
  constructor() {
8326
8356
  super();
8327
8357
  this.__registerHost();
8328
8358
  this.__attachShadow();
8329
- this.backgroundColor = 'white';
8330
- this.elevation = 'small';
8331
- this.containerType = '';
8332
- this.spacing = 'xxx-large';
8333
- this.styles = undefined;
8359
+ this.elqSiteId = undefined;
8360
+ this.elqVisitorLookupKey = undefined;
8361
+ this.elqRecipientIdLookupKey = undefined;
8362
+ this.elqContactLookupKey = undefined;
8363
+ this.elqFieldEmailRecId = "V_EmailRecipientID";
8364
+ this.elqFieldContactEmail = "C_EmailAddress";
8365
+ this.elqFieldVisitorEmail = 'V_Email_Address';
8366
+ this.elqFieldVisitorFirstname = 'C_FirstName';
8367
+ this.elqFieldVisitorLastname = 'C_LastName';
8368
+ this.notmeLinkId = undefined;
8369
+ this.notmeFieldsClass = undefined;
8370
+ this.notmeMessage = undefined;
8371
+ this.notmeMessageNoname = undefined;
8372
+ this.isInitialized = false;
8334
8373
  }
8335
- render() {
8336
- const classMap = this.getCssClassMap();
8337
- return (h$1(Host, { class: this.getContainerClass() }, this.styles && h$1("style", null, this.styles), h$1("div", { class: classMap }, h$1("slot", null))));
8374
+ componentWillLoad() {
8375
+ this.initializeElqLib();
8338
8376
  }
8339
- getContainerClass() {
8340
- switch (this.containerType) {
8341
- case 'large':
8342
- return 'ptc-container-lg';
8343
- case 'none':
8344
- return undefined;
8345
- default:
8346
- return 'ptc-container';
8377
+ initializeElqLib() {
8378
+ this.elqLib = new ElqLib({
8379
+ elq_site_id: this.elqSiteId,
8380
+ elq_visitor_lookup_key: this.elqVisitorLookupKey,
8381
+ elq_recipient_id_lookup_key: this.elqRecipientIdLookupKey,
8382
+ elq_contact_lookup_key: this.elqContactLookupKey,
8383
+ elq_field_email_rec_id: this.elqFieldEmailRecId,
8384
+ elq_field_contact_email: this.elqFieldContactEmail,
8385
+ elq_field_visitor_email: this.elqFieldVisitorEmail,
8386
+ elq_field_visitor_firstname: this.elqFieldVisitorFirstname,
8387
+ elq_field_visitor_lastname: this.elqFieldVisitorLastname,
8388
+ notme_link_id: this.notmeLinkId,
8389
+ notme_fields_class: this.notmeFieldsClass,
8390
+ notme_message: this.notmeMessage,
8391
+ notme_message_noname: this.notmeMessageNoname,
8392
+ });
8393
+ this.isInitialized = true;
8394
+ }
8395
+ async performDataLookup() {
8396
+ if (this.isInitialized) {
8397
+ this.elqLib.find_eloqua_contact();
8347
8398
  }
8348
8399
  }
8349
- getCssClassMap() {
8350
- const spacing = `spacing-${this.spacing}`;
8351
- return {
8352
- ['content-wrapper']: true,
8353
- [this.backgroundColor]: true,
8354
- [this.elevation]: true,
8355
- [spacing]: true
8356
- };
8400
+ render() {
8401
+ return (h$1("slot", null));
8357
8402
  }
8358
- static get style() { return ptcContainerCss; }
8403
+ static get style() { return ptcDataLookupCss; }
8359
8404
  };
8360
8405
 
8361
8406
  const ptcDateCss = ":host{display:block}:host(.small) span{font-size:var(--ptc-font-size-xx-small)}:host(.medium) span{font-size:var(--ptc-font-size-x-small)}:host(.primary-grey){color:var(--color-primary-gray-new)}:host(.white) span{color:var(--color-white)}:host(.date-m-top){margin-top:var(--ptc-element-spacing-01)}";
@@ -8842,7 +8887,7 @@ const PtcFilterDropdown$1 = class extends HTMLElement$1 {
8842
8887
  });
8843
8888
  this.toggleDropdown();
8844
8889
  }
8845
- componentWillLoad() {
8890
+ componentWillRender() {
8846
8891
  this.parseOptions();
8847
8892
  }
8848
8893
  render() {
@@ -13355,15 +13400,10 @@ const PtcPricingPackagingTable$1 = class extends HTMLElement$1 {
13355
13400
  }
13356
13401
  this.lastScrollTop = scrollTopPosition <= 0 ? 0 : scrollTopPosition;
13357
13402
  };
13358
- this.handleHorizontalScroll = (element) => {
13403
+ this.handleHorizontalScroll = () => {
13359
13404
  let tableHeader = this.el.shadowRoot.querySelector("#table-header");
13360
13405
  let tableBody = this.el.shadowRoot.querySelector("#table-body");
13361
- if (element === "body") {
13362
- tableHeader.scrollLeft = tableBody.scrollLeft;
13363
- }
13364
- else if (element === "header") {
13365
- tableBody.scrollLeft = tableHeader.scrollLeft;
13366
- }
13406
+ tableHeader.scrollLeft = tableBody.scrollLeft;
13367
13407
  this.handleScrollButtonsVisibility();
13368
13408
  };
13369
13409
  this.handleScrollButtonsVisibility = () => {
@@ -13572,7 +13612,7 @@ const PtcPricingPackagingTable$1 = class extends HTMLElement$1 {
13572
13612
  h$1("ptc-readmore", { "more-text": "More", "less-text": "Less" }, h$1("slot", { name: "table-description" }))))));
13573
13613
  };
13574
13614
  const TableHeader = () => {
13575
- return h$1("div", { id: "table-header", class: this.headerType, onScroll: () => this.handleHorizontalScroll("header") }, h$1("div", { class: `desktop-header-first-cell` }, (this.isDesktopView) ?
13615
+ return h$1("div", { id: "table-header", class: this.headerType, onScroll: () => this.handleHorizontalScroll() }, h$1("div", { class: `desktop-header-first-cell` }, (this.isDesktopView) ?
13576
13616
  h$1("ptc-para", { "font-size": "medium", "font-weight": "w-7", "para-align": "left", "para-color": "white", "para-line-h": "line-height-p", "para-margin": "margin-flush" }, h$1("slot", { name: "desktop-header-first-cell" }))
13577
13617
  : null, h$1("div", { class: "scroll-button", id: "previous-scroll-button" }, h$1("div", { onClick: () => this.handleBackwardScroll() }, h$1("icon-asset", { type: "solid", size: "medium", name: "chevron-left", color: "primary-gray" }), h$1("ptc-para", { "font-size": "small", "font-weight": "w-6", "para-align": "justify", "para-color": "primary-grey", "para-line-h": "line-height-p", "para-margin": "margin-flush" }, "More"))), h$1("div", { class: "scroll-button", id: "next-scroll-button" }, h$1("div", { onClick: () => this.handleForwardScroll() }, h$1("ptc-para", { "font-size": "small", "font-weight": "w-6", "para-align": "justify", "para-color": "primary-grey", "para-line-h": "line-height-p", "para-margin": "margin-flush" }, "More"), h$1("icon-asset", { type: "solid", size: "medium", name: "chevron-right", color: "primary-gray" })))), ([...Array(this.dataCols).keys()]).map(col => {
13578
13618
  return h$1("div", { class: `table-cell ${(col + 1) === this.dataCols ? "table-last-cell" : ""}` }, h$1("ptc-para", { "font-size": "medium", "font-weight": "w-7", "para-align": "center", "para-color": "white", "para-line-h": "line-height-densest", "para-margin": "margin-flush", "para-z-index": "z-1" }, h$1("slot", { name: `column-header-${col + 1}` })), (this.columnHeaderLinks.length === this.dataCols) ? h$1(Fragment, null, h$1("ptc-spacer", { breakpoint: 'small', size: "small" }), h$1("ptc-spacer", { breakpoint: 'x-small', size: "medium" }), h$1("ptc-link", { "font-size": "medium", "font-weight": "w-extrabold", href: `${this.columnHeaderLinks[col].linkHref}`, "link-area": "undefined", target: `${this.columnHeaderLinks[col].linkTarget}`, theme: "d-green-underline", styles: "a.ptc-link {line-height: var(--ptc-line-height-p);}" }, this.isDesktopView ?
@@ -13612,7 +13652,7 @@ const PtcPricingPackagingTable$1 = class extends HTMLElement$1 {
13612
13652
  return h$1(Fragment, null, h$1("ptc-para", { "font-size": "xx-small", "font-weight": "w-6", "para-align": "center", "para-color": "primary-grey", "para-line-h": "line-height-p", "para-margin": "margin-flush" }, h$1("slot", { name: `disclaimer-${ind + 1}` })), (ind != (this.disclaimerCount - 1)) ? h$1("ptc-spacer", { size: "xx-small" }) : null);
13613
13653
  })));
13614
13654
  };
13615
- return (h$1(Host, null, h$1("div", { id: "pricing-table" }, h$1(TableTitle, null), h$1(TableSubTitle, null), h$1(TableDescription, null), h$1("ptc-spacer", { breakpoint: "small", size: "xx-large" }), h$1("ptc-spacer", { breakpoint: "small", size: "xx-small" }), h$1("ptc-spacer", { breakpoint: "x-small", size: "xxx-large" }), h$1("ptc-spacer", { breakpoint: "x-small", size: "xx-small" }), h$1("div", { id: "vertical-scroll-content-clipper", class: this.headerType }), h$1("div", { id: "table-container" }, h$1("div", { id: "horizontal-scroll-shadow" }), h$1("div", { id: "table-body", onScroll: () => this.handleHorizontalScroll("body") }, h$1(TableHeader, null), h$1(TableHeaderPlaceholder, null), h$1(TableDataRows, null), h$1(TableCtaRow, null))), h$1(TableDisclaimers, null))));
13655
+ return (h$1(Host, null, h$1("div", { id: "pricing-table" }, h$1(TableTitle, null), h$1(TableSubTitle, null), h$1(TableDescription, null), h$1("ptc-spacer", { breakpoint: "small", size: "xx-large" }), h$1("ptc-spacer", { breakpoint: "small", size: "xx-small" }), h$1("ptc-spacer", { breakpoint: "x-small", size: "xxx-large" }), h$1("ptc-spacer", { breakpoint: "x-small", size: "xx-small" }), h$1("div", { id: "vertical-scroll-content-clipper", class: this.headerType }), h$1("div", { id: "table-container" }, h$1("div", { id: "horizontal-scroll-shadow" }), h$1("div", { id: "table-body", onScroll: () => this.handleHorizontalScroll() }, h$1(TableHeader, null), h$1(TableHeaderPlaceholder, null), h$1(TableDataRows, null), h$1(TableCtaRow, null))), h$1(TableDisclaimers, null))));
13616
13656
  }
13617
13657
  get el() { return this; }
13618
13658
  static get style() { return ptcPricingPackagingTableCss; }
@@ -24629,7 +24669,16 @@ const PtcTextfield$1 = class extends HTMLElement$1 {
24629
24669
  }, 100);
24630
24670
  }
24631
24671
  componentDidLoad() {
24632
- this.mdcTextfieldComponent = MDCTextField.attachTo(this.mdcTextfield);
24672
+ if (this.type !== 'hidden') {
24673
+ this.mdcTextfieldComponent = MDCTextField.attachTo(this.mdcTextfield);
24674
+ }
24675
+ // try{
24676
+ // // debugger;
24677
+ // this.mdcTextfieldComponent = MDCTextField.attachTo(this.mdcTextfield);
24678
+ // }catch(error){
24679
+ // debugger;
24680
+ // console.error('An error found here!', error.message);
24681
+ // }
24633
24682
  if (this.fieldId === 'contact-phone' && this.name === 'phone') {
24634
24683
  this.iti = intlTelInput(this.customInput, {
24635
24684
  separateDialCode: true,
@@ -25512,7 +25561,7 @@ const BundleExample = /*@__PURE__*/proxyCustomElement(BundleExample$1, [1,"bundl
25512
25561
  const BundleJumbotronExample = /*@__PURE__*/proxyCustomElement(BundleJumbotronExample$1, [1,"bundle-jumbotron-example",{"jumbotron":[1],"isIframe":[4,"is-iframe"]}]);
25513
25562
  const DropdownItem = /*@__PURE__*/proxyCustomElement(DropdownItem$1, [4,"dropdown-item",{"linkHref":[1,"link-href"],"linkTarget":[1,"link-target"]}]);
25514
25563
  const DynamicBoxBundle = /*@__PURE__*/proxyCustomElement(DynamicBoxBundle$1, [1,"dynamic-box-bundle",{"topImgSrc":[1,"top-img-src"],"topImgAlt":[1,"top-img-alt"],"boxHeight":[2,"box-height"],"isHovering":[32]},[[1,"mouseover","handleMouseOver"],[1,"mouseout","handleMouseOut"]]]);
25515
- const EmbeddedForm = /*@__PURE__*/proxyCustomElement(EmbeddedForm$1, [0,"embedded-form",{"formData":[32],"elqLib":[32]}]);
25564
+ const EmbeddedForm = /*@__PURE__*/proxyCustomElement(EmbeddedForm$1, [0,"embedded-form",{"formData":[32]}]);
25516
25565
  const FeaturedList = /*@__PURE__*/proxyCustomElement(FeaturedList$1, [1,"featured-list",{"isMobile":[32],"selectedTabGloble":[32]},[[9,"resize","handleResize"],[4,"flTabClicked","handleflTabClicked"]]]);
25517
25566
  const FlTabContent = /*@__PURE__*/proxyCustomElement(FlTabContent$1, [1,"fl-tab-content",{"nameKey":[1,"name-key"],"selected":[4]}]);
25518
25567
  const FlTabHeader = /*@__PURE__*/proxyCustomElement(FlTabHeader$1, [6,"fl-tab-header",{"tabTitle":[1,"tab-title"],"nameKey":[1,"name-key"],"selected":[4],"initialHeader":[32]}]);
@@ -25540,6 +25589,7 @@ const PtcCaseStudiesSlider = /*@__PURE__*/proxyCustomElement(PtcCaseStudiesSlide
25540
25589
  const PtcCheckbox = /*@__PURE__*/proxyCustomElement(PtcCheckbox$1, [1,"ptc-checkbox",{"checked":[1025],"value":[1025],"disabled":[1028],"inputName":[1,"input-name"]}]);
25541
25590
  const PtcCollapseList = /*@__PURE__*/proxyCustomElement(PtcCollapseList$1, [1,"ptc-collapse-list",{"header":[1],"listItems":[1040],"placeholderText":[1025,"placeholder-text"],"debounceUpdateDelay":[1026,"debounce-update-delay"],"data":[32],"searchText":[32],"selectedValue":[32],"selectedItems":[32],"hashMap":[32],"debouncedUpdatedEvent":[32],"refreshBuffer":[32]}]);
25542
25591
  const PtcContainer = /*@__PURE__*/proxyCustomElement(PtcContainer$1, [1,"ptc-container",{"backgroundColor":[1,"background-color"],"elevation":[1],"containerType":[1,"container-type"],"spacing":[1],"styles":[1]}]);
25592
+ const PtcDataLookup = /*@__PURE__*/proxyCustomElement(PtcDataLookup$1, [1,"ptc-data-lookup",{"elqSiteId":[1,"elq-site-id"],"elqVisitorLookupKey":[1,"elq-visitor-lookup-key"],"elqRecipientIdLookupKey":[1,"elq-recipient-id-lookup-key"],"elqContactLookupKey":[1,"elq-contact-lookup-key"],"elqFieldEmailRecId":[1,"elq-field-email-rec-id"],"elqFieldContactEmail":[1,"elq-field-contact-email"],"elqFieldVisitorEmail":[1,"elq-field-visitor-email"],"elqFieldVisitorFirstname":[1,"elq-field-visitor-firstname"],"elqFieldVisitorLastname":[1,"elq-field-visitor-lastname"],"notmeLinkId":[1,"notme-link-id"],"notmeFieldsClass":[1,"notme-fields-class"],"notmeMessage":[1,"notme-message"],"notmeMessageNoname":[1,"notme-message-noname"],"isInitialized":[32]}]);
25543
25593
  const PtcDate = /*@__PURE__*/proxyCustomElement(PtcDate$1, [1,"ptc-date",{"year":[2],"month":[2],"day":[2],"country":[1],"dateString":[1,"date-string"],"dateColor":[1,"date-color"],"dateStyles":[1,"date-styles"],"dataSize":[1,"data-size"],"formatOptions":[1,"format-options"]}]);
25544
25594
  const PtcDropdown = /*@__PURE__*/proxyCustomElement(PtcDropdown$1, [1,"ptc-dropdown",{"theme":[1],"label":[1],"listItems":[16],"toggle":[32],"selectedItem":[32]},[[4,"click","offClick"]]]);
25545
25595
  const PtcDynamicCard = /*@__PURE__*/proxyCustomElement(PtcDynamicCard$1, [1,"ptc-dynamic-card",{"cardType":[1,"card-type"],"cardTitle":[1,"card-title"],"cardImgSrc":[1,"card-img-src"],"cardImgAlt":[1,"card-img-alt"],"cardScreen":[1,"card-screen"],"isExpanded":[4,"is-expanded"],"styles":[1],"overlayExists":[32]}]);
@@ -25663,6 +25713,7 @@ const defineCustomElements = (opts) => {
25663
25713
  PtcCheckbox,
25664
25714
  PtcCollapseList,
25665
25715
  PtcContainer,
25716
+ PtcDataLookup,
25666
25717
  PtcDate,
25667
25718
  PtcDropdown,
25668
25719
  PtcDynamicCard,
@@ -25758,4 +25809,4 @@ const defineCustomElements = (opts) => {
25758
25809
  }
25759
25810
  };
25760
25811
 
25761
- export { AuthorListingExample, BundleExample, BundleJumbotronExample, DropdownItem, DynamicBoxBundle, EmbeddedForm, FeaturedList, FlTabContent, FlTabHeader, FlTabImage, FooterForm, IconAsset, InnovatorToggleContainer, ListItem, MaxWidthContainer, MyComponent, PtcAccordion, PtcAccordionItem, PtcAnnouncement, PtcBackToTop, PtcBackgroundVideo, PtcBioCard, PtcBreadcrumb, PtcBrightcovVideo, PtcButton, PtcCard, PtcCardBottom, PtcCardContent, PtcCardWrapper, PtcCaseStudiesSlider, PtcCheckbox, PtcCollapseList, PtcContainer, PtcDate, PtcDropdown, PtcDynamicCard, PtcEllipsisDropdown, PtcEmbeddedQuiz, PtcFeaturedList, PtcFilterDropdown, PtcFilterLevelTheater, PtcFilterTag, PtcForm, PtcFormCheckbox, PtcHero, PtcHeroFooterCta, PtcIconComponent, PtcIconList, PtcIconMinimize, PtcImageDownloadStrip, PtcImg, PtcJumbotron, PtcLink, PtcList, PtcMediaCard, PtcMinimizedNav, PtcMobileSelect, PtcModal, PtcModalQuiz, PtcNavCard, PtcNavLink, PtcNavPills, PtcNavSlider, PtcNavSubmenu, PtcNews, PtcOverlay, PtcPagenation, PtcPara, PtcPicture, PtcPodcastCard, PtcPreviousUrl, PtcPricingAddOnCard, PtcPricingAddOnSection, PtcPricingBlock, PtcPricingPackagingTable, PtcPricingTable, PtcPricingTabs, PtcProductCard, PtcProductCategory, PtcProductDropdown, PtcProductHighlightCard, PtcProductList, PtcProductSidebar, PtcProgressBar, PtcQuote, PtcReadmore, PtcReadmoreChar, PtcRelatedCardRail, PtcResponsiveWrapper, PtcSearchField, PtcSelect, PtcShoppingCart, PtcSkeleton, PtcSlitCard, PtcSocialShare, PtcSpacer, PtcSpan, PtcSquareCard, PtcStickyIcons, PtcStickySection, PtcStickyTitle, PtcSubnav, PtcSubnavCard, PtcSvgBtn, PtcTab, PtcTabList, PtcTabs, PtcTextCopyWithBackground, PtcTextfield, PtcTheaterVideo, PtcTheaterVideoModal, PtcTheaterVideoPlaylist, PtcTitle, PtcTooltip, PtcTwoColumnMedia, PtcValuePropCard, SequentialBundle, SequentialBundleExample, TabContent, TabHeader, defineCustomElements };
25812
+ export { AuthorListingExample, BundleExample, BundleJumbotronExample, DropdownItem, DynamicBoxBundle, EmbeddedForm, FeaturedList, FlTabContent, FlTabHeader, FlTabImage, FooterForm, IconAsset, InnovatorToggleContainer, ListItem, MaxWidthContainer, MyComponent, PtcAccordion, PtcAccordionItem, PtcAnnouncement, PtcBackToTop, PtcBackgroundVideo, PtcBioCard, PtcBreadcrumb, PtcBrightcovVideo, PtcButton, PtcCard, PtcCardBottom, PtcCardContent, PtcCardWrapper, PtcCaseStudiesSlider, PtcCheckbox, PtcCollapseList, PtcContainer, PtcDataLookup, PtcDate, PtcDropdown, PtcDynamicCard, PtcEllipsisDropdown, PtcEmbeddedQuiz, PtcFeaturedList, PtcFilterDropdown, PtcFilterLevelTheater, PtcFilterTag, PtcForm, PtcFormCheckbox, PtcHero, PtcHeroFooterCta, PtcIconComponent, PtcIconList, PtcIconMinimize, PtcImageDownloadStrip, PtcImg, PtcJumbotron, PtcLink, PtcList, PtcMediaCard, PtcMinimizedNav, PtcMobileSelect, PtcModal, PtcModalQuiz, PtcNavCard, PtcNavLink, PtcNavPills, PtcNavSlider, PtcNavSubmenu, PtcNews, PtcOverlay, PtcPagenation, PtcPara, PtcPicture, PtcPodcastCard, PtcPreviousUrl, PtcPricingAddOnCard, PtcPricingAddOnSection, PtcPricingBlock, PtcPricingPackagingTable, PtcPricingTable, PtcPricingTabs, PtcProductCard, PtcProductCategory, PtcProductDropdown, PtcProductHighlightCard, PtcProductList, PtcProductSidebar, PtcProgressBar, PtcQuote, PtcReadmore, PtcReadmoreChar, PtcRelatedCardRail, PtcResponsiveWrapper, PtcSearchField, PtcSelect, PtcShoppingCart, PtcSkeleton, PtcSlitCard, PtcSocialShare, PtcSpacer, PtcSpan, PtcSquareCard, PtcStickyIcons, PtcStickySection, PtcStickyTitle, PtcSubnav, PtcSubnavCard, PtcSvgBtn, PtcTab, PtcTabList, PtcTabs, PtcTextCopyWithBackground, PtcTextfield, PtcTheaterVideo, PtcTheaterVideoModal, PtcTheaterVideoPlaylist, PtcTitle, PtcTooltip, PtcTwoColumnMedia, PtcValuePropCard, SequentialBundle, SequentialBundleExample, TabContent, TabHeader, defineCustomElements };