@@ -4586,4 +4586,221 @@ describe(' Islamic Calendar', () => {
4586
4586
expect ( calendar . changedArgs . event ) . not . toBe ( null ) ;
4587
4587
} ) ;
4588
4588
} ) ;
4589
+ describe ( 'EJ2-45081 : Need to provide support for handling the week number based on the year starts' , ( ) => {
4590
+ let cal : any ;
4591
+ beforeEach ( ( ) => {
4592
+ let ele : HTMLElement = createElement ( 'div' , { id : 'calendar' } ) ;
4593
+ document . body . appendChild ( ele ) ;
4594
+ } ) ;
4595
+ afterEach ( ( ) => {
4596
+ if ( cal ) {
4597
+ cal . destroy ( ) ;
4598
+ }
4599
+ document . body . innerHTML = '' ;
4600
+ } ) ;
4601
+ it ( ' weekRule as FirstDay ' , ( ) => {
4602
+ cal = new Calendar ( {
4603
+ weekNumber : true ,
4604
+ weekRule : 'FirstDay' ,
4605
+ value : new Date ( '1/1/2021' ) ,
4606
+ } ) ;
4607
+ cal . appendTo ( '#calendar' ) ;
4608
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4609
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4610
+ cal . value = new Date ( '12/31/2020' ) ;
4611
+ cal . dataBind ( ) ;
4612
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 52 ) ;
4613
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 1 ) ;
4614
+ cal . value = new Date ( '1/1/2021' ) ;
4615
+ cal . firstDayOfWeek = 1 ;
4616
+ cal . dataBind ( ) ;
4617
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4618
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4619
+ cal . value = new Date ( '12/31/2020' ) ;
4620
+ cal . dataBind ( ) ;
4621
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 52 ) ;
4622
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 1 ) ;
4623
+ cal . value = new Date ( '1/1/2021' ) ;
4624
+ cal . firstDayOfWeek = 2 ;
4625
+ cal . dataBind ( ) ;
4626
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4627
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4628
+ cal . value = new Date ( '12/31/2020' ) ;
4629
+ cal . dataBind ( ) ;
4630
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4631
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 1 ) ;
4632
+ cal . value = new Date ( '1/1/2021' ) ;
4633
+ cal . firstDayOfWeek = 3 ;
4634
+ cal . dataBind ( ) ;
4635
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4636
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4637
+ cal . value = new Date ( '12/31/2020' ) ;
4638
+ cal . dataBind ( ) ;
4639
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4640
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 1 ) ;
4641
+ cal . value = new Date ( '1/1/2021' ) ;
4642
+ cal . firstDayOfWeek = 4 ;
4643
+ cal . dataBind ( ) ;
4644
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4645
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4646
+ cal . value = new Date ( '12/31/2020' ) ;
4647
+ cal . dataBind ( ) ;
4648
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 53 ) ;
4649
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 1 ) ;
4650
+ cal . value = new Date ( '1/1/2021' ) ;
4651
+ cal . firstDayOfWeek = 5 ;
4652
+ cal . dataBind ( ) ;
4653
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4654
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 2 ] . textContent ) . toBe ( '' + 2 ) ;
4655
+ cal . value = new Date ( '12/31/2020' ) ;
4656
+ cal . dataBind ( ) ;
4657
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 52 ) ;
4658
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 53 ) ;
4659
+ cal . value = new Date ( '1/1/2021' ) ;
4660
+ cal . firstDayOfWeek = 6 ;
4661
+ cal . dataBind ( ) ;
4662
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4663
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4664
+ cal . value = new Date ( '12/31/2020' ) ;
4665
+ cal . dataBind ( ) ;
4666
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 52 ) ;
4667
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 1 ) ;
4668
+ } ) ;
4669
+ it ( ' weekRule as FirstFullWeek ' , ( ) => {
4670
+ cal = new Calendar ( {
4671
+ weekNumber : true ,
4672
+ weekRule : 'FirstFullWeek' ,
4673
+ value : new Date ( '1/1/2021' ) ,
4674
+ } ) ;
4675
+ cal . appendTo ( '#calendar' ) ;
4676
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 52 ) ;
4677
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4678
+ cal . value = new Date ( '12/31/2020' ) ;
4679
+ cal . dataBind ( ) ;
4680
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 51 ) ;
4681
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4682
+ cal . value = new Date ( '1/1/2021' ) ;
4683
+ cal . firstDayOfWeek = 1 ;
4684
+ cal . dataBind ( ) ;
4685
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 52 ) ;
4686
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4687
+ cal . value = new Date ( '12/31/2020' ) ;
4688
+ cal . dataBind ( ) ;
4689
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 51 ) ;
4690
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4691
+ cal . value = new Date ( '1/1/2021' ) ;
4692
+ cal . firstDayOfWeek = 2 ;
4693
+ cal . dataBind ( ) ;
4694
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 52 ) ;
4695
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4696
+ cal . value = new Date ( '12/31/2020' ) ;
4697
+ cal . dataBind ( ) ;
4698
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 51 ) ;
4699
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 52 ) ;
4700
+ cal . value = new Date ( '1/1/2021' ) ;
4701
+ cal . firstDayOfWeek = 3 ;
4702
+ cal . dataBind ( ) ;
4703
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 53 ) ;
4704
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4705
+ cal . value = new Date ( '12/31/2020' ) ;
4706
+ cal . dataBind ( ) ;
4707
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4708
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 53 ) ;
4709
+ cal . value = new Date ( '1/1/2021' ) ;
4710
+ cal . firstDayOfWeek = 4 ;
4711
+ cal . dataBind ( ) ;
4712
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 53 ) ;
4713
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4714
+ cal . value = new Date ( '12/31/2020' ) ;
4715
+ cal . dataBind ( ) ;
4716
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4717
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 53 ) ;
4718
+ cal . value = new Date ( '1/1/2021' ) ;
4719
+ cal . firstDayOfWeek = 5 ;
4720
+ cal . dataBind ( ) ;
4721
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4722
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 2 ] . textContent ) . toBe ( '' + 2 ) ;
4723
+ cal . value = new Date ( '12/31/2020' ) ;
4724
+ cal . dataBind ( ) ;
4725
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 51 ) ;
4726
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4727
+ cal . value = new Date ( '1/1/2021' ) ;
4728
+ cal . firstDayOfWeek = 6 ;
4729
+ cal . dataBind ( ) ;
4730
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 52 ) ;
4731
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4732
+ cal . value = new Date ( '12/31/2020' ) ;
4733
+ cal . dataBind ( ) ;
4734
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 51 ) ;
4735
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4736
+ } ) ;
4737
+ it ( ' weekRule as FirstFourDayWeek ' , ( ) => {
4738
+ cal = new Calendar ( {
4739
+ weekNumber : true ,
4740
+ weekRule : 'FirstFourDayWeek' ,
4741
+ value : new Date ( '1/1/2021' ) ,
4742
+ } ) ;
4743
+ cal . appendTo ( '#calendar' ) ;
4744
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 53 ) ;
4745
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4746
+ cal . value = new Date ( '12/31/2020' ) ;
4747
+ cal . dataBind ( ) ;
4748
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 52 ) ;
4749
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 53 ) ;
4750
+ cal . value = new Date ( '1/1/2021' ) ;
4751
+ cal . firstDayOfWeek = 1 ;
4752
+ cal . dataBind ( ) ;
4753
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 53 ) ;
4754
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4755
+ cal . value = new Date ( '12/31/2020' ) ;
4756
+ cal . dataBind ( ) ;
4757
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 52 ) ;
4758
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 53 ) ;
4759
+ cal . value = new Date ( '1/1/2021' ) ;
4760
+ cal . firstDayOfWeek = 2 ;
4761
+ cal . dataBind ( ) ;
4762
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4763
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4764
+ cal . value = new Date ( '12/31/2020' ) ;
4765
+ cal . dataBind ( ) ;
4766
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4767
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 1 ) ;
4768
+ cal . value = new Date ( '1/1/2021' ) ;
4769
+ cal . firstDayOfWeek = 3 ;
4770
+ cal . dataBind ( ) ;
4771
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4772
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4773
+ cal . value = new Date ( '12/31/2020' ) ;
4774
+ cal . dataBind ( ) ;
4775
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4776
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 1 ) ;
4777
+ cal . value = new Date ( '1/1/2021' ) ;
4778
+ cal . firstDayOfWeek = 4 ;
4779
+ cal . dataBind ( ) ;
4780
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 1 ) ;
4781
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 2 ) ;
4782
+ cal . value = new Date ( '12/31/2020' ) ;
4783
+ cal . dataBind ( ) ;
4784
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4785
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 5 ] . textContent ) . toBe ( '' + 1 ) ;
4786
+ cal . value = new Date ( '1/1/2021' ) ;
4787
+ cal . firstDayOfWeek = 5 ;
4788
+ cal . dataBind ( ) ;
4789
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4790
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 2 ] . textContent ) . toBe ( '' + 2 ) ;
4791
+ cal . value = new Date ( '12/31/2020' ) ;
4792
+ cal . dataBind ( ) ;
4793
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 51 ) ;
4794
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4795
+ cal . value = new Date ( '1/1/2021' ) ;
4796
+ cal . firstDayOfWeek = 6 ;
4797
+ cal . dataBind ( ) ;
4798
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 0 ] . textContent ) . toBe ( '' + 52 ) ;
4799
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 1 ] . textContent ) . toBe ( '' + 1 ) ;
4800
+ cal . value = new Date ( '12/31/2020' ) ;
4801
+ cal . dataBind ( ) ;
4802
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 3 ] . textContent ) . toBe ( '' + 51 ) ;
4803
+ expect ( cal . tableBodyElement . querySelectorAll ( 'tr .e-week-number' ) [ 4 ] . textContent ) . toBe ( '' + 52 ) ;
4804
+ } ) ;
4805
+ } ) ;
4589
4806
} ) ;
0 commit comments