@@ -168,7 +168,11 @@ export class ProcPage {
168168 let img = document . createElement ( 'img' ) ;
169169 img . src = mediaData . src ;
170170 img . alt = mediaData . alt ;
171- img . classList . add ( 'procPagesMediaImage' ) ;
171+ if ( this . layout == 'vertical' ) {
172+ img . classList . add ( 'procPagesVerticalLockMediaImage' ) ;
173+ } else {
174+ img . classList . add ( 'procPagesMediaImage' ) ;
175+ }
172176
173177 this . applyStyle ( mediaData , img ) ;
174178
@@ -378,9 +382,15 @@ export class ProcPage {
378382
379383 buildPage ( ) {
380384
381- let setPageType = "block" ;
382385 let pageContent = document . createElement ( 'div' ) ;
383386 pageContent . classList . add ( 'procPagesContentStyle' ) ;
387+ if ( this . layout == 'triple' ) {
388+ pageContent . classList . add ( 'procPagesPlacementTripleStyle' ) ;
389+ } else if ( this . layout == 'vertical' ) {
390+ pageContent . classList . add ( 'procPagesPlacementVerticalStyle' ) ;
391+ pageContent . classList . add ( 'procPagesLockVertical' ) ;
392+ }
393+ let setPageType = "block" ;
384394 if ( this . pageStyles . hasOwnProperty ( setPageType ) && Array . isArray ( this . pageStyles [ setPageType ] ) ) {
385395 this . pageStyles [ setPageType ] . forEach ( ( style ) => { pageContent . classList . add ( style ) } ) ;
386396 }
@@ -399,7 +409,9 @@ export class ProcPage {
399409
400410 setPageType = "parent" ;
401411 let pageInnerContent = document . createElement ( 'div' ) ;
402- pageInnerContent . classList . add ( 'procPagesInnerStyle' ) ;
412+ if ( this . layout == 'triple' ) {
413+ pageInnerContent . classList . add ( 'procPagesInnerStyle' ) ;
414+ }
403415 this . applyPageStyle ( 'parent' , pageInnerContent ) ;
404416 pageContent . appendChild ( pageInnerContent ) ;
405417
@@ -443,33 +455,32 @@ export class ProcPage {
443455 pageInnerContent . appendChild ( pageSubHeader ) ;
444456 }
445457
446- let pageSections = document . createElement ( 'div' ) ;
447- pageSections . classList . add ( 'procPageSections' ) ;
458+ let pageSections = pageInnerContent ;
459+ if ( false && this . layout == 'triple' ) {
460+ pageSections = document . createElement ( 'div' ) ;
461+ pageSections . classList . add ( 'procPageSections' ) ;
448462
449- this . applyPageStyle ( 'inner' , pageSections ) ;
463+ this . applyPageStyle ( 'inner' , pageSections ) ;
450464
451- pageInnerContent . appendChild ( pageSections ) ;
465+ pageInnerContent . appendChild ( pageSections ) ;
466+ }
452467 this . pageSectionsObject = pageSections ;
453468
454469 // -- -- -- -- -- --
455470
456471 let pageSectionList ;
457472 if ( this . layout != 'single' ) {
458473 pageSectionList = document . createElement ( 'div' ) ;
459- pageSectionList . classList . add ( 'procPageSectionList' ) ;
460- pageSections . appendChild ( pageSectionList ) ;
461- }
474+ if ( this . layout == 'triple' ) {
475+ pageSectionList . classList . add ( 'procPageSectionList' ) ;
476+ } else if ( this . layout == 'vertical' ) {
477+ pageSectionList . classList . add ( 'procPageVerticalLockSectionList' ) ;
478+ }
462479
463- // -- -- --
480+ this . applyPageStyle ( 'sectionNavList' , pageSectionList ) ;
464481
465- let pageContentView = document . createElement ( 'div' ) ;
466- if ( this . layout != 'single' ) {
467- pageContentView . classList . add ( 'procPageContentView' ) ;
482+ pageSections . appendChild ( pageSectionList ) ;
468483 }
469-
470- this . applyPageStyle ( 'content' , pageContentView ) ;
471-
472- pageSections . appendChild ( pageContentView ) ;
473484
474485 // -- -- --
475486
@@ -486,6 +497,20 @@ export class ProcPage {
486497
487498 // -- -- --
488499
500+ let pageContentView = document . createElement ( 'div' ) ;
501+ if ( this . layout == 'triple' ) {
502+ pageContentView . classList . add ( 'procPageContentView' ) ;
503+ } else if ( this . layout == 'vertical' ) {
504+ pageContentView . classList . add ( 'procPageVerticalLockContentView' ) ;
505+ }
506+
507+ this . applyPageStyle ( 'content' , pageContentView ) ;
508+
509+ pageSections . appendChild ( pageContentView ) ;
510+
511+ // -- -- --
512+
513+
489514 if ( this . layout == 'single' ) {
490515 let curKey = Object . keys ( this . sectionTitles ) [ 0 ] ;
491516 let curSectionData = this . sectionData [ curKey ] ;
@@ -567,16 +592,26 @@ export class ProcPage {
567592 } ) ;
568593 }
569594
570- // Triple Layout Section
571- if ( this . layout == "triple" ) {
572- if ( this . sectionData [ sectionName ] . media . length == 0 ) {
595+ let mediaLength = this . sectionData [ sectionName ] . media . length ;
596+ if ( this . layout == "triple" ) { // Triple Layout Section
597+ if ( mediaLength == 0 ) {
573598 this . pageSectionsObject . classList . remove ( 'procPageNoMediaStyle' ) ;
574599 this . mediaViewObject . style . display = "" ;
575- } else if ( this . sectionData [ sectionName ] . media . length == 1 ) {
600+ } else if ( mediaLength == 1 ) {
576601 this . mediaViewObject . style . alignContent = "" ;
602+ this . mediaViewObject . style . height = "" ;
603+ }
604+ } else if ( this . layout == "vertical" ) { // Vertical locked layout
605+ if ( mediaLength == 0 ) {
606+ this . pageSectionsObject . classList . remove ( 'procPageNoMediaLockVerticalStyle' ) ;
607+ this . mediaViewObject . style . display = "" ;
608+ } else if ( mediaLength == 1 ) {
609+ this . mediaViewObject . style . alignContent = "" ;
610+ this . mediaViewObject . style . height = "" ;
577611 }
578612 }
579613
614+
580615 this . sectionData [ sectionName ] . objects . forEach ( ( obj ) => {
581616 obj . classList . remove ( 'procPagesSectionActive' ) ;
582617 obj . classList . remove ( 'pagesVisOn' ) ;
@@ -607,13 +642,25 @@ export class ProcPage {
607642 }
608643
609644
610- // Triple Layout Section
611- if ( this . layout == "triple" ) {
645+ // Modify page's media display
646+ // Vertical center single media
647+ // Hide media area if no media exists for the current section
648+ let mediaLength = this . sectionData [ sectionName ] . media . length ;
649+ if ( this . layout == "triple" ) { // Triple Layout Section
612650 if ( this . sectionData [ sectionName ] . media . length == 0 ) {
613651 this . pageSectionsObject . classList . add ( 'procPageNoMediaStyle' ) ;
614652 this . mediaViewObject . style . display = "none" ;
615653 } else if ( this . sectionData [ sectionName ] . media . length == 1 ) {
616654 this . mediaViewObject . style . alignContent = "center" ;
655+ this . mediaViewObject . style . height = "auto" ;
656+ }
657+ } else if ( this . layout == "vertical" ) { // Vertical locked layout
658+ if ( mediaLength == 0 ) {
659+ this . pageSectionsObject . classList . add ( 'procPageNoMediaLockVerticalStyle' ) ;
660+ this . mediaViewObject . style . display = "none" ;
661+ } else if ( mediaLength == 1 ) {
662+ this . mediaViewObject . style . alignContent = "center" ;
663+ this . mediaViewObject . style . height = "auto" ;
617664 }
618665 }
619666
@@ -622,6 +669,7 @@ export class ProcPage {
622669 obj . classList . add ( 'procPagesSectionActive' ) ;
623670 obj . classList . add ( 'pagesVisOn' ) ;
624671 obj . classList . remove ( 'pagesVisOff' ) ;
672+ obj . scrollTop = 0 ;
625673 } ) ;
626674 }
627675
@@ -675,7 +723,11 @@ export class ProcPage {
675723
676724 if ( sectionData . name != '' ) {
677725 let sectionTitleDiv = document . createElement ( 'div' ) ;
678- sectionTitleDiv . classList . add ( 'procPagesNavSectionStyle' ) ;
726+ if ( this . layout == 'triple' ) {
727+ sectionTitleDiv . classList . add ( 'procPagesNavSectionStyle' ) ;
728+ } else if ( this . layout == 'vertical' ) {
729+ sectionTitleDiv . classList . add ( 'procPagesVerticalLockNavSectionStyle' ) ;
730+ }
679731 sectionTitleDiv . classList . add ( 'procPagesButtonStyle' ) ;
680732 sectionTitleDiv . classList . add ( 'procPagesSectionNavColor' ) ;
681733
@@ -722,10 +774,13 @@ export class ProcPage {
722774 let captionParent = document . createElement ( 'div' ) ;
723775 captionParent . classList . add ( 'procPagesMediaCaptionParentStyle' ) ;
724776
777+ this . applyPageStyle ( 'sectionCaption' , captionParent ) ;
778+
725779 let caption = document . createElement ( 'div' ) ;
726780 caption . classList . add ( 'procPagesMediaCaptionStyle' ) ;
727781 caption . innerHTML = innerHtml ;
728782
783+
729784 captionParent . appendChild ( caption ) ;
730785 sectionMedia . appendChild ( captionParent ) ;
731786 }
@@ -742,6 +797,7 @@ export class ProcPage {
742797
743798 // -- -- --
744799
800+
745801 applyPageStyle ( styleType , obj ) {
746802 if ( this . pageStyles . hasOwnProperty ( styleType ) && Array . isArray ( this . pageStyles [ styleType ] ) ) {
747803 this . pageStyles [ styleType ] . forEach ( ( style ) => { style != '' && obj . classList . add ( style ) } ) ;
0 commit comments